Changeset efa98d in indico


Ignore:
Timestamp:
01/12/12 15:34:53 (17 months ago)
Author:
Jose Benito <jose.benito.gonzalez@…>
Branches:
master, hello-world-walkthrough, ipv6, v0.98-series, v0.98.2, v0.98.3, v0.99, b8c30da8ebdbdcbd675a873997cc3e95f567de49, 4287315ec967a3da168d83963c14001db8487d53
Children:
6dc9af
Parents:
bcb158
git-author:
Alexis Castilla Hernandez <alexis.castilla.hernandez@…> (05/26/11 16:33:06)
git-committer:
Jose Benito <jose.benito.gonzalez@…> (01/12/12 15:34:53)
Message:

Replaced login as.. page by users list popup

  • Changed the place of file Users.js to Core/Dialogs? because the user list popup must have visibility everywhere.
  • New JS file Login.js
  • Implemented AJAX service for the "login as..." functionality.
  • Deleted old code for this functionality.
  • Added the functionality to "log me as..." button in "Manage users" page.
Files:
1 added
18 edited

Legend:

Unmodified
Added
Removed
  • etc/js/indico.cfg

    rfbe037 refa98d  
    2323        Services.js 
    2424        Util.js 
     25        Login.js 
    2526exclude= 
    2627        Loader.js 
  • indico/MaKaC/services/implementation/admin.py

    rbcb158 refa98d  
    2020from MaKaC.services.implementation.base import AdminService 
    2121from MaKaC.services.implementation.base import ParameterManager 
    22 from MaKaC.user import PrincipalHolder 
     22from MaKaC.user import PrincipalHolder, AvatarHolder 
    2323import MaKaC.webcast as webcast 
     24import MaKaC.common.timezoneUtils as timezoneUtils 
     25from MaKaC.services.interface.rpc.common import ServiceError 
    2426 
     27 
     28### Webcast Administrators classes ### 
    2529class AddWebcastAdministrators(AdminService): 
    2630 
     
    4650        self._wm = webcast.HelperWebcastManager.getWebcastManagerInstance() 
    4751        self._userId = pm.extract("user", pType=str, allowEmpty=False) 
     52        self._pr = PrincipalHolder().getById(self._userId) 
     53        if self._pr == None: 
     54            raise ServiceError("ER-U0", _("Cannot found user with id %s") % self._userId) 
    4855 
    4956    def _getAnswer( self): 
     
    5562 
    5663 
     64### Administrator Login as... class ### 
     65class AdminLoginAs(AdminService): 
     66 
     67    def _checkParams(self): 
     68        AdminService._checkParams(self) 
     69        pm = ParameterManager(self._params) 
     70        self._userId = pm.extract("userId", pType=str, allowEmpty=False) 
     71        self._av = AvatarHolder().getById(self._userId) 
     72        if self._av == None: 
     73            raise ServiceError("ER-U0", _("Cannot found user with id %s") % self._userId) 
     74 
     75    def _getAnswer(self): 
     76        tzUtil = timezoneUtils.SessionTZ(self._av) 
     77        tz = tzUtil.getSessionTZ() 
     78        self._getSession().setVar("ActiveTimezone", tz) 
     79        self._getSession().setUser(self._av) 
     80        return True 
     81 
     82 
    5783methodMap = { 
    5884    "services.addWebcastAdministrators": AddWebcastAdministrators, 
    5985    "services.removeWebcastAdministrator": RemoveWebcastAdministrator, 
     86 
     87    "header.loginAs": AdminLoginAs 
    6088} 
  • indico/MaKaC/webinterface/meeting.py

    r250e54 refa98d  
    12141214                             "type": WebFactory.getId(),\ 
    12151215                             "filterActive": False,\ 
    1216                              "dark": True,\ 
    1217                              "loginAsURL": self.getLoginAsURL()} ) 
     1216                             "dark": True } ) 
    12181217 
    12191218    def _getBody( self, params ): 
  • indico/MaKaC/webinterface/pages/admins.py

    rbcb158 refa98d  
    7878                             "loginURL": self._escapeChars(str(self.getLoginURL())),\ 
    7979                             "logoutURL": self._escapeChars(str(self.getLogoutURL())), \ 
    80                              "tabControl": self._getTabControl(), \ 
    81                              "loginAsURL": self.getLoginAsURL() } ) 
     80                             "tabControl": self._getTabControl() } ) 
    8281 
    8382    def _createSideMenu(self): 
     
    12761275        vars["createUserURL"] = urlHandlers.UHUserCreation.getURL() 
    12771276        vars["mergeUsersURL"] = urlHandlers.UHUserMerge.getURL() 
    1278         vars["logMeAsURL"] = urlHandlers.UHLogMeAs.getURL() 
    12791277        vars["searchUsersURL"] = urlHandlers.UHUsers.getURL() 
    12801278        vars["browseUsersURL"] = urlHandlers.UHUsers.getURL() 
     
    19641962 
    19651963 
    1966 class WPSelectUserToLogAs(WPUserCommon ): 
    1967  
    1968 #    def _getTabContent( self, params ): 
    1969 #        wc = WSelectUserToLogAs() 
    1970 #        pars = {"submitURL":urlHandlers.UHLogMeAs.getURL()} 
    1971 #        return wc.getHTML( pars ) 
    1972  
    1973     def _getTabContent( self, params ): 
    1974         searchURL = urlHandlers.UHLogMeAs.getURL() 
    1975         #cancelURL = urlHandlers.UHUsers.getURL() 
    1976         wc = wcomponents.WUserSelection( searchURL, multi=False, forceWithoutExtAuth=True ) 
    1977         wc.setTitle(_("Select user to log in as")) 
    1978         params["addURL"] =  urlHandlers.UHLogMeAs.getURL() 
    1979  
    1980         return wc.getHTML( params ) 
    1981  
    1982  
    1983  
    1984  
    19851964class WPUserMerge( WPUserCommon ): 
    19861965 
  • indico/MaKaC/webinterface/pages/base.py

    r1a3173 refa98d  
    212212        return urlHandlers.UHSignOut.getURL("%s"%self._rh.getCurrentURL()) 
    213213 
    214     def getLoginAsURL( self ): 
    215         return urlHandlers.UHLogMeAs.getURL("%s"%self._rh.getCurrentURL()) 
    216214 
    217215    def _getHeader( self ): 
     
    222220        return wc.getHTML( { "subArea": self._getSiteArea(), \ 
    223221                             "loginURL": self._escapeChars(str(self.getLoginURL())),\ 
    224                              "logoutURL": self._escapeChars(str(self.getLogoutURL())),\ 
    225                              "loginAsURL": self.getLoginAsURL() } ) 
     222                             "logoutURL": self._escapeChars(str(self.getLogoutURL())) } ) 
    226223 
    227224    def _getTabControl(self): 
  • indico/MaKaC/webinterface/pages/category.py

    rbe157b refa98d  
    12601260        return wc.getHTML( { "subArea": self._getSiteArea(), \ 
    12611261                             "loginURL": self._escapeChars(str(self.getLoginURL())),\ 
    1262                              "logoutURL": self._escapeChars(str(self.getLogoutURL())),\ 
    1263                              "loginAsURL": self.getLoginAsURL() } ) 
     1262                             "logoutURL": self._escapeChars(str(self.getLogoutURL())) } ) 
    12641263 
    12651264    def _getNavigationDrawer(self): 
     
    12951294        return wc.getHTML( { "subArea": self._getSiteArea(), \ 
    12961295                             "loginURL": self._escapeChars(str(self.getLoginURL())),\ 
    1297                              "logoutURL": self._escapeChars(str(self.getLogoutURL())),\ 
    1298                              "loginAsURL": self.getLoginAsURL() } ) 
     1296                             "logoutURL": self._escapeChars(str(self.getLogoutURL())) } ) 
    12991297 
    13001298    def _getNavigationDrawer(self): 
  • indico/MaKaC/webinterface/pages/collaboration.py

    r842982 refa98d  
    5858                             "loginURL": self._escapeChars(str(self.getLoginURL())), \ 
    5959                             "logoutURL": self._escapeChars(str(self.getLogoutURL())), \ 
    60                              "tabControl": self._getTabControl(), \ 
    61                              "loginAsURL": self.getLoginAsURL() }) 
     60                             "tabControl": self._getTabControl() }) 
    6261 
    6362    def _getBody(self, params): 
  • indico/MaKaC/webinterface/pages/conferences.py

    rfbe037 refa98d  
    163163        return wc.getHTML( { "loginURL": self.getLoginURL(),\ 
    164164                             "logoutURL": self.getLogoutURL(),\ 
    165                              "loginAsURL": self.getLoginAsURL(), \ 
    166165                             "confId": self._conf.getId(), \ 
    167166                             "dark": True} ) 
     
    12651264                             "detailLevel": self._params.get("detailLevel",""),\ 
    12661265                             "filterActive": self._params.get("filterActive",""),\ 
    1267                              "loginAsURL": self.getLoginAsURL(), 
    12681266                            "dark": True } ) 
    12691267 
     
    15371535        return wc.getHTML( { "subArea": self._getSiteArea(), \ 
    15381536                             "loginURL": self._escapeChars(str(self.getLoginURL())),\ 
    1539                              "logoutURL": self._escapeChars(str(self.getLogoutURL())),\ 
    1540                              "loginAsURL": self.getLoginAsURL() } ) 
     1537                             "logoutURL": self._escapeChars(str(self.getLogoutURL())) } ) 
    15411538 
    15421539    def _getNavigationDrawer(self): 
  • indico/MaKaC/webinterface/pages/links.py

    r663efb refa98d  
    6161        wc = wcomponents.WManagementHeader( self._getAW() ) 
    6262        return wc.getHTML( { "loginURL": urlHandlers.UHSignIn.getURL("%s"%self._rh.getCurrentURL()),\ 
    63                              "logoutURL": urlHandlers.UHSignOut.getURL(),\ 
    64                              "loginAsURL": self.getLoginAsURL() } ) 
     63                             "logoutURL": urlHandlers.UHSignOut.getURL() } ) 
    6564 
    6665##        wc = wcomponents.WManagementHeader( self._getAW(), self._getNavigationDrawer() ) 
  • indico/MaKaC/webinterface/rh/users.py

    r5135b6 refa98d  
    8080        p = adminPages.WPUserList( self, self._params ) 
    8181        return p.display() 
    82  
    83 class RHUserManagementLogMeAs( admins.RHAdminBase ): 
    84  
    85     def _checkParams( self, params ): 
    86         admins.RHAdminBase._checkParams( self, params ) 
    87         self._params = params 
    88         self._userId = None 
    89         self._av = None 
    90  
    91         self._returnURL = urlHandlers.UHWelcome.getURL() 
    92         if "returnURL" in params.keys(): 
    93             self._returnURL = params["returnURL"] 
    94  
    95         if "selectedPrincipals" in params.keys() and not "cancel" in params: 
    96             self._userId = params["selectedPrincipals"] 
    97             try: 
    98                 self._av = user.AvatarHolder().getById(self._userId) 
    99             except: 
    100                 raise MaKaCError("can't found user with id %s"%self._userId) 
    101  
    102     def _process( self ): 
    103         if self._av: 
    104             tzUtil = timezoneUtils.SessionTZ(self._av) 
    105             tz = tzUtil.getSessionTZ() 
    106             self._getSession().setVar("ActiveTimezone",tz) 
    107             self._getSession().setUser(self._av) 
    108             self._redirect(self._returnURL) 
    109         else: 
    110             p = adminPages.WPSelectUserToLogAs( self ) 
    111             return p.display(**self._getRequestParams()) 
    11282 
    11383 
  • indico/MaKaC/webinterface/simple_event.py

    r60708b refa98d  
    404404                             "currentView": "static",\ 
    405405                             "type": WebFactory.getId(),\ 
    406                              "dark": True,\ 
    407                              "loginAsURL": self.getLoginAsURL() } ) 
     406                             "dark": True } ) 
    408407 
    409408    def _getBody( self, params ): 
  • indico/MaKaC/webinterface/tpls/LoginWidget.tpl

    rc0de5a refa98d  
    22        <li><span>${ _("Logged in as")}</span><a href="${ urlHandlers.UHUserDetails.getURL(currentUser) }">${ currentUser.getAbrName() }</a></li> 
    33        % if currentUser.isAdmin(): 
    4             <li><a href="${ loginAsURL }">${ _("Login as...") }</a></li> 
     4            <li><a href="#" onclick="loginAsManager.drawUsersPopup();">${ _("Login as...") }</a></li> 
    55        % endif 
    66        <li style="border-right: none;"><a href="${ logoutURL }">${ _("Logout") }</a></li> 
     
    88     <li class="loginHighlighted" style="border-right: none;"><a href="${ loginURL }"><strong style="color: white">${ _("Login")}</strong></a></li> 
    99% endif 
     10 
     11<script> 
     12% if currentUser: 
     13    % if currentUser.isAdmin(): 
     14        var loginAsManager = new LoginAsManager(); 
     15    % endif 
     16% endif 
     17</script> 
  • indico/MaKaC/webinterface/tpls/RoomBookingHeader.tpl

    rc0de5a refa98d  
    3131                                <td width="25%">&nbsp;</td> 
    3232                                <td rowspan="2" class="loginInfoHeader"><a ${ userDetails }><img class="imglink" src="${ imgLogin }" alt="user"></a></td> 
    33                                 <td rowspan="2" nowrap class="loginInfoHeader" style="padding-top:3px">${ userInfo }${ " "}${ logMeAs }</td> 
     33                                <td rowspan="2" nowrap class="loginInfoHeader" style="padding-top:3px">${ userInfo }${ " "}</td> 
    3434                            </tr> 
    3535                            <tr> 
  • indico/MaKaC/webinterface/tpls/UserList.tpl

    rc0de5a refa98d  
    2525    </tr> 
    2626    </form> 
    27     <form action="${ logMeAsURL }" method="POST"> 
    2827    <tr> 
    2928      <td> 
    30         <input type="submit" value="${ _("Log me as ...")}" class="btn"> 
     29        <input type="button" value="${ _("Log me as ...")}" onclick="loginAsManager.drawUsersPopup();"> 
    3130      </td> 
    3231    </tr> 
    33     </form> 
    3432    </table> 
    3533  </td> 
     
    9088 
    9189</table> 
     90 
     91<script> 
     92 
     93var loginAsManager = new LoginAsManager(); 
     94 
     95</script> 
  • indico/MaKaC/webinterface/urlHandlers.py

    rbcb158 refa98d  
    18201820class UHUserMerge( URLHandler ): 
    18211821    _relativeURL = "userMerge.py" 
    1822  
    1823 class UHLogMeAs( URLHandler ): 
    1824     _relativeURL = "userManagement.py/LogMeAs" 
    1825  
    1826     def getURL( cls, returnURL="" ): 
    1827         url = cls._getURL() 
    1828         if str(returnURL).strip() != "": 
    1829             url.addParam( "returnURL", returnURL ) 
    1830         return url 
    1831     getURL = classmethod( getURL ) 
    18321822 
    18331823 
  • indico/MaKaC/webinterface/wcomponents.py

    rb58f4b refa98d  
    306306        vars = WTemplated.getVars( self ) 
    307307        #urlHandlers.UHUserDetails.getURL(self._currentuser) 
    308         vars["logMeAs"] = "" 
    309308        # TODO: Remove this after CRBS headers are fixed! 
    310309        if self._currentuser: 
     
    312311            vars["userDetails"] = 'class="topbar" href="%s" target="_blank"'%urlHandlers.UHUserDetails.getURL(self._currentuser) 
    313312 
    314             if self._currentuser.isAdmin(): 
    315                 vars["logMeAs"] = vars["loginAsURL"] 
    316313        else: 
    317314            vars["userInfo"] = """<a href="%s">login</a>"""%(vars["loginURL"]) 
  • indico/htdocs/js/indico/Core/Loader.js

    rfbe037 refa98d  
    22include(ScriptRoot + "indico/Core/Data.js"); 
    33include(ScriptRoot + "indico/Core/Util.js"); 
     4include(ScriptRoot + "indico/Core/Login.js"); 
    45 
    56include(ScriptRoot + "indico/Core/Presentation.js"); 
  • indico/htdocs/userManagement.py

    rbdd862 refa98d  
    3434def switchModerateAccountCreation( req, **params ): 
    3535    return users.RHUserManagementSwitchModerateAccountCreation( req ).process( params ) 
    36  
    37 def LogMeAs(req, **params ): 
    38     return users.RHUserManagementLogMeAs( req ).process( params ) 
Note: See TracChangeset for help on using the changeset viewer.