Index: acct_mgr/admin.py =================================================================== --- acct_mgr/admin.py (revision 2212) +++ acct_mgr/admin.py (working copy) @@ -45,7 +45,10 @@ if page == 'config': return self._do_config(req) elif page == 'users': - return self._do_users(req) + if path_info: + return self._do_user(req, cat, page, path_info) + else: + return self._do_users(req, cat, page) def _do_config(self, req): if req.method == 'POST': @@ -78,7 +81,7 @@ req.hdf['sections'] = sections return 'admin_accountsconfig.cs', None - def _do_users(self, req): + def _do_users(self, req, cat, page): perm = PermissionSystem(self.env) listing_enabled = self.account_manager.supports('get_users') create_enabled = self.account_manager.supports('set_password') @@ -117,6 +120,7 @@ if account: account['name'] = name account['email'] = email + account['href'] = self.env.href.admin(cat, page, username) db = self.env.get_db_cnx() cursor = db.cursor() @@ -131,6 +135,33 @@ return 'admin_users.cs', None + def _do_user(self, req, cat, page, path_info): + user = path_info + if not self.account_manager.has_user(user): + req.redirect(self.env.href.admin(cat, page)) + return + + success = False + if req.method == 'POST': + if req.method == 'POST': + if req.args.get('change'): + password = req.args.get('password1') + if len(password) == 0: + req.hdf['users.error'] = 'Password cannot be empty.' + elif password != req.args.get('password2'): + req.hdf['users.error'] = 'The passwords must match.' + else: + success = self.account_manager.set_password(user, password) + #elif req.args.get('delete'): + # success = self._do_delete(req, mgr, user) + else: + success = True + if success: + req.redirect(self.env.href.admin(cat, page)) + else: + req.hdf['admin.user'] = user + return 'admin_user.cs', None + # ITemplateProvider def get_htdocs_dirs(self): Index: acct_mgr/templates/admin_user.cs =================================================================== --- acct_mgr/templates/admin_user.cs (revision 0) +++ acct_mgr/templates/admin_user.cs (revision 0) @@ -0,0 +1,28 @@ +