Forum Ametys

Forum de la communauté Ametys

You are not logged in.

#1 01/07/2013 09:39:22

alexis
Guest
Registered: 25/06/2013
Posts: 29

Changer la page d'authentification

Bonjour,

Suite à la demande de ma hiérarchie, je souhaiterai savoir si il est possible de changer la page d'authentification pour la mettre plus au gout de la société.

Merci

Offline

#2 01/07/2013 14:16:17

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,117

Re: Changer la page d'authentification

Coté back-office ou front-office ?


Raphael Franchet
Expert Ametys

Offline

#3 01/07/2013 14:30:58

alexis
Guest
Registered: 25/06/2013
Posts: 29

Re: Changer la page d'authentification

Bonjour,

coté back svp

Offline

#4 01/07/2013 14:32:31

alexis
Guest
Registered: 25/06/2013
Posts: 29

Re: Changer la page d'authentification

@ XXXX:8080/cms/.../index.html
C'est bien le back???
merci  smile

Offline

#5 01/07/2013 14:40:24

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,117

Re: Changer la page d'authentification

Coté back, aucun mécanise facile n'est prévu.
Il faut donc mettre les mains dans le cambouis.

Ametys possède un système de plugin et d'extensions.
L'authentification est une extension. Le formulaire en est une des implémentations.
L'idée serait donc d'écrire votre propre implémentation: c'est assez facile car tout est configurable.

Pour cela, il faut définir un nouveau plugin (répertoire dans le dossier plugins, avec un fichier plugin.xml et catalogue i18n - vous pouvez copiez et vider un de ceux que vous avez dans la démo)
Ensuite, vous dupliquez la définition de l'extension actuelle:

    <feature name="runtime.authentication.impl.formbased">
        <!-- 
            This features defines the form based credential provider. Data are sent to the provider through a
            html form. If the option is enabled, user's data can be stored with a cookie.
         -->
        <extensions>
            <extension point="org.ametys.runtime.authentication.CredentialsProvider"
                       id="org.ametys.runtime.plugins.core.authentication.FormBased"
                       class="org.ametys.runtime.plugins.core.authentication.FormBasedCredentialsProvider"
                       logger="org.ametys.runtime.authentication.formbased">
                <username-field>Username</username-field>
                <password-field>Password</password-field>
                <rememberMe-field>rememberMe</rememberMe-field>
                <cookie>
                    <cookieEnabled>true</cookieEnabled>
                    <cookieLifeTime>604800</cookieLifeTime>
                    <cookieName>AmetysAuthentication</cookieName>
                </cookie>
                <loginUrl internal="true">login.html</loginUrl>
                <loginFailedUrl provideLoginParameter="true" internal="true">login_failed.html</loginFailedUrl>
            </extension>
        </extensions>
    </feature>

en changeant l'identifiant et les urls.
Pour les urls, il faudra mettre des urls en "plugins/VOTREPLUGIN/login...html"
Puis il vous faudra posséder un fichier sitemap.xmap qui définit les pipelines nécessaire. Voici ceux utilisés par défaut:

            <map:match pattern="login.html">
                <map:generate type="action-result" label="content"/>
                <map:transform type="xslt" src="stylesheets/login.xsl">
                    <map:parameter name="contextPath" value="{request:contextPath}"/>
                    <map:parameter name="workspaceURI" value="{request-attr:workspaceURI}"/>
                    <map:parameter name="workspaceName" value="{request-attr:workspaceName}"/>
                </map:transform>
                <map:transform type="i18n" label="xml">
                    <map:parameter name="locale" value="{locale:locale}"/>
                    <map:parameter name="default-catalogue-id" value="plugin.cms"/>
                </map:transform>
                <map:serialize/>
            </map:match>
            
            <map:match pattern="login_failed.html">
                <map:generate type="action-result" label="content"/>
                <map:transform type="xslt" src="stylesheets/login.xsl">
                    <map:parameter name="contextPath" value="{request:contextPath}"/>
                    <map:parameter name="workspaceURI" value="{request-attr:workspaceURI}"/>
                    <map:parameter name="workspaceName" value="{request-attr:workspaceName}"/>
                    <map:parameter name="login-failed" value="true"/>
                </map:transform>
                <map:transform type="i18n" label="xml">
                    <map:parameter name="locale" value="{locale:locale}"/>
                    <map:parameter name="default-catalogue-id" value="plugin.cms"/>
                </map:transform>
                <map:serialize/>
            </map:match>

Enfin, vous écrivez les xsl référencées ici pour faire votre rendu.
Là aussi vous pouvez partir des xsls actuelles

Et enfin, il vous faudra sélectionner votre nouvelle extension (après redémarrage) parmi les extensions existantes. c'est décrit ici  (en utilisant la vue "par points d'extensions")

Voilà. Si vous avez des question.


Raphael Franchet
Expert Ametys

Offline

#6 01/07/2013 14:52:12

alexis
Guest
Registered: 25/06/2013
Posts: 29

Re: Changer la page d'authentification

Merci vous assurez grave smile smile smile
je m'y attele

Offline

#7 16/07/2013 09:58:20

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,117

Re: Changer la page d'authentification

alors, avez-vous réussi à obtenir le résultat voulu ?


Raphael Franchet
Expert Ametys

Offline

Board footer

Powered by FluxBB