Ticket #1506: acctmgr-add-password-edit.patch

File acctmgr-add-password-edit.patch, 4.2 kB (added by ian@ianduggan.net, 2 years ago)

Password Edit Patch

  • acct_mgr/admin.py

    old new  
    4545        if page == 'config':  
    4646            return self._do_config(req) 
    4747        elif page == 'users':  
    48             return self._do_users(req)  
     48            if path_info: 
     49                return self._do_user(req, cat, page, path_info)  
     50            else: 
     51                return self._do_users(req, cat, page)  
    4952             
    5053    def _do_config(self, req): 
    5154        if req.method == 'POST': 
     
    7881        req.hdf['sections'] = sections 
    7982        return 'admin_accountsconfig.cs', None 
    8083             
    81     def _do_users(self, req): 
     84    def _do_users(self, req, cat, page): 
    8285        perm = PermissionSystem(self.env) 
    8386        listing_enabled = self.account_manager.supports('get_users') 
    8487        create_enabled = self.account_manager.supports('set_password')  
     
    117120                if account: 
    118121                    account['name'] = name 
    119122                    account['email'] = email 
     123                    account['href'] = self.env.href.admin(cat, page, username) 
    120124 
    121125            db = self.env.get_db_cnx() 
    122126            cursor = db.cursor() 
     
    131135 
    132136        return 'admin_users.cs', None 
    133137 
     138    def _do_user(self, req, cat, page, path_info): 
     139        user = path_info 
     140        if not self.account_manager.has_user(user): 
     141            req.redirect(self.env.href.admin(cat, page)) 
     142            return 
     143 
     144        success = False 
     145        if req.method == 'POST': 
     146            if req.method == 'POST': 
     147                if req.args.get('change'): 
     148                    password = req.args.get('password1') 
     149                    if len(password) == 0: 
     150                        req.hdf['users.error'] = 'Password cannot be empty.' 
     151                    elif password != req.args.get('password2'): 
     152                        req.hdf['users.error'] = 'The passwords must match.' 
     153                    else: 
     154                        success = self.account_manager.set_password(user, password) 
     155                #elif req.args.get('delete'): 
     156                #    success = self._do_delete(req, mgr, user) 
     157                else: 
     158                    success = True 
     159        if success: 
     160            req.redirect(self.env.href.admin(cat, page)) 
     161        else: 
     162            req.hdf['admin.user'] = user 
     163            return 'admin_user.cs', None 
     164 
    134165    # ITemplateProvider 
    135166     
    136167    def get_htdocs_dirs(self): 
  • acct_mgr/templates/admin_user.cs

    old new  
     1<h2>Change Password</h2> 
     2 
     3<?cs if users.error ?> 
     4<div class="system-message"> 
     5  <?cs var:users.error ?> 
     6</div> 
     7<?cs /if ?> 
     8 
     9<form class="mod" id="usermod" method="post"> 
     10  <fieldset> 
     11    <legend>Change Password:</legend> 
     12    <div class="field"> 
     13      <label>Name: <?cs var:admin.user ?> </label> 
     14    </div> 
     15    <div class="field"> 
     16      <label>Password: <input type="password" name="password1" /></label> 
     17    </div> 
     18    <div class="field"> 
     19      <label>Confirm Password: 
     20      <input type="password" name="password2" /></label> 
     21    </div> 
     22    <div class="buttons"> 
     23      <input type="submit" name="change" value=" Change Password "/> 
     24      <!--input type="submit" name="delete" value=" Delete Account "/--> 
     25      <input type="submit" name="cancel" value=" Cancel "/> 
     26    </div> 
     27  </fieldset> 
     28</form> 
  • acct_mgr/templates/admin_users.cs

    old new  
    5050    <?cs if:delete_enabled ?> 
    5151     <td><input type="checkbox" name="sel" value="<?cs var:account.username ?>" /></td> 
    5252    <?cs /if ?> 
    53     <td><?cs var:account.username ?></td> 
    54         <td><?cs var:account.name ?></td> 
    55         <td><?cs var:account.email ?></td> 
    56         <td><?cs var:account.last_visit ?></td> 
     53    <td> 
     54      <a href="<?cs var:account.href ?>"><?cs var:account.username ?></a> 
     55    </td> 
     56    <td> 
     57      <a href="<?cs var:account.href ?>"><?cs var:account.name ?></a> 
     58    </td> 
     59    <td> 
     60      <a href="<?cs var:account.href ?>"><?cs var:account.email ?></a> 
     61    </td> 
     62    <td> 
     63      <a href="<?cs var:account.href ?>"><?cs var:account.last_visit ?></a> 
     64    </td> 
    5765   </tr><?cs 
    5866  /each ?></tbody> 
    5967 </table>