Changeset 2547

Show
Ignore:
Timestamp:
08/04/07 19:36:51 (1 year ago)
Author:
mgood
Message:

AccountManagerPlugin:

add forgot password link to metanav if not using html login (re #950)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • accountmanagerplugin/trunk/acct_mgr/web_ui.py

    r2064 r2547  
    120120    """ 
    121121 
    122     implements(IPreferencePanelProvider, IRequestHandler, ITemplateProvider
     122    implements(IPreferencePanelProvider, IRequestHandler, ITemplateProvider, INavigationContributor
    123123 
    124124    _password_chars = string.ascii_letters + string.digits 
     
    158158        data = {'reset': self._do_reset_password(req)} 
    159159        return 'reset_password.html', data, None 
     160 
     161    # INavigationContributor methods 
     162    def get_active_navigation_item(self, req): 
     163        return 'reset_password' 
     164 
     165    def get_navigation_items(self, req): 
     166        if not self.reset_password_enabled or LoginModule(self.env).enabled: 
     167            return 
     168        if req.authname == 'anonymous': 
     169            yield 'metanav', 'reset_password', Markup('<a href="%s">Forgot your password?</a>', 
     170                                                      (req.href.reset_password())) 
     171 
     172    def reset_password_enabled(self): 
     173        return (self.env.is_component_enabled(AccountModule) 
     174                and NotificationSystem(self.env).smtp_enabled 
     175                and self._write_check()) 
     176    reset_password_enabled = property(reset_password_enabled) 
    160177 
    161178    def _do_account(self, req): 
     
    350367            data = { 
    351368                'referer': self._referer(req), 
    352                 'reset_password_enabled': 
    353                     (self.env.is_component_enabled(AccountModule) 
    354                      and NotificationSystem(self.env).smtp_enabled) 
     369                'reset_password_enabled': AccountModule(self.env).reset_password_enabled 
    355370            } 
    356371            if req.method == 'POST':