Ticket #3153: verify_email_option.patch

File verify_email_option.patch, 3.2 kB (added by coderanger, 7 months ago)
  • acct_mgr/admin.py

    old new  
    5959                    self.config.save() 
    6060            self.config.set('account-manager', 'force_passwd_change', 
    6161                            req.args.get('force_passwd_change')) 
     62            self.config.set('account-manager', 'verify_email', 
     63                            ('verify_email' in req.args and 'true' or 'false')) 
    6264            self.config.save() 
    6365 
    6466 
     
    8183        ] 
    8284        sections = sorted(sections, key=lambda i: i['name']) 
    8385        data = {'sections': sections, 
    84                 'force_passwd_change': self.account_manager.force_passwd_change} 
     86                'force_passwd_change': self.account_manager.force_passwd_change, 
     87                'verify_email': self.config.getbool('account-manager', 'verify_email')} 
    8588        return 'admin_accountsconfig.html', data 
    8689 
    8790    def _do_users(self, req): 
  • acct_mgr/web_ui.py

    old new  
    505505class EmailVerificationModule(Component): 
    506506    implements(IRequestFilter, IRequestHandler) 
    507507 
     508    enable = BoolOption('account-manager', 'verify_email', default=False, 
     509                        doc='Verify the email address of Trac users.') 
     510 
    508511    # IRequestFilter methods 
    509  
    510512    def pre_process_request(self, req, handler): 
    511         if handler is not self and 'email_verification_token' in req.session: 
     513        if self.enable and handler is not self and \ 
     514           'email_verification_token' in req.session and \ 
     515           'TRAC_ADMIN' not in req.perm: 
    512516            chrome.add_warning(req, MessageWrapper(tag.span( 
    513517                    'Your permissions have been limited until you ', 
    514518                    tag.a(href=req.href.verify_email())( 
     
    517521        return handler 
    518522 
    519523    def post_process_request(self, req, template, data, content_type): 
    520         if req.session.get('email') != req.session.get('email_verification_sent_to'): 
     524        if self.enable and 'TRAC_ADMIN' not in req.perm and \ 
     525           req.session.get('email') != req.session.get('email_verification_sent_to'): 
    521526            req.session['email_verification_token'] = self._gen_token() 
    522527            req.session['email_verification_sent_to'] = req.session.get('email') 
    523528            self._send_email(req) 
  • acct_mgr/templates/admin_accountsconfig.html

    old new  
    3939        <input type="radio" name="force_passwd_change" value="false" 
    4040          checked="${not force_passwd_change and 'checked' or None}">No</input> 
    4141      </fieldset> 
     42      <fieldset> 
     43        <legend>Verify email</legend> 
     44        <label for="verify_email"> 
     45          Force users to verify their email addresses? 
     46        </label> 
     47        <input type="checkbox" name="verify_email" value="1" checked="$verify_email" /> 
     48      </fieldset> 
    4249      <div class="buttons"> 
    4350        <input type="submit" name="save" value="Save" /> 
    4451      </div>