def _do_users(self, req): perm = PermissionSystem(self.env) listing_enabled = self.account_manager.supports('get_users') create_enabled = self.account_manager.supports('set_password') delete_enabled = self.account_manager.supports('delete_user') req.hdf['listing_enabled'] = listing_enabled req.hdf['create_enabled'] = create_enabled req.hdf['delete_enabled'] = delete_enabled if req.method == 'POST': if req.args.get('add'): if create_enabled: try: _create_user(req, self.env, check_permissions=False) except TracError, e: req.hdf['registration.error'] = e.message else: req.hdf['registration_error'] = 'The password store does ' \ 'not support creating users' elif req.args.get('remove'): if delete_enabled: sel = req.args.get('sel') sel = isinstance(sel, list) and sel or [sel] for account in sel: self.account_manager.delete_user(account) else: req.hdf['deletion_error'] = 'The password store does not ' \ 'support deleting users'
def _do_users(self, req): perm = PermissionSystem(self.env) listing_enabled = self.account_manager.supports("get_users") create_enabled = self.account_manager.supports("set_password") password_change_enabled = self.account_manager.supports("set_password") delete_enabled = self.account_manager.supports("delete_user") data = { "listing_enabled": listing_enabled, "create_enabled": create_enabled, "delete_enabled": delete_enabled, "password_change_enabled": password_change_enabled, "acctmgr": {"username": None, "name": None, "email": None}, } if req.method == "POST": if req.args.get("add"): if create_enabled: try: _create_user(req, self.env, check_permissions=False) except TracError, e: data["registration_error"] = e.message data["acctmgr"] = e.acctmgr else: data["registration_error"] = "The password store does " "not support creating users" elif req.args.get("remove"): if delete_enabled: sel = req.args.get("sel") sel = isinstance(sel, list) and sel or [sel] for account in sel: self.account_manager.delete_user(account) else: data["deletion_error"] = "The password store does not " "support deleting users" elif req.args.get("change"): if password_change_enabled: try: user = req.args.get("change_user") acctmgr = {"change_username": user} error = TracError("") error.acctmgr = acctmgr if not user: error.message = "Username cannot be empty." raise error password = req.args.get("change_password") if not password: error.message = "Password cannot be empty." raise error if password != req.args.get("change_password_confirm"): error.message = "The passwords must match." raise error self.account_manager.set_password(user, password) except TracError, e: data["password_change_error"] = e.message data["acctmgr"] = getattr(e, "acctmgr", "") else: data["password_change_error"] = "The password store does not " "support changing passwords"
def _do_users(self, req): env = self.env perm = PermissionSystem(env) acctmgr = self.acctmgr acctmod = AccountModule(env) guard = self.guard listing_enabled = acctmgr.supports('get_users') create_enabled = acctmgr.supports('set_password') password_change_enabled = acctmgr.supports('set_password') password_reset_enabled = acctmod.reset_password_enabled delete_enabled = acctmgr.supports('delete_user') data = { '_': _, 'listing_enabled': listing_enabled, 'create_enabled': create_enabled, 'delete_enabled': delete_enabled, 'password_change_enabled': password_change_enabled, 'password_reset_enabled': password_reset_enabled, 'account' : { 'username' : None, 'name' : None, 'email' : None, } } if req.method == 'GET': if 'user' in req.args.iterkeys(): return self._do_acct_details(req) if req.method == 'POST': if req.args.get('add'): if create_enabled: try: _create_user(req, env, check_permissions=False) except TracError, e: data['editor_error'] = e.message data['account'] = getattr(e, 'account', '') else: data['editor_error'] = _( "The password store does not support creating users.") elif req.args.get('reset') and req.args.get('sel'): if password_reset_enabled: sel = req.args.get('sel') sel = isinstance(sel, list) and sel or [sel] for username, name, email in env.get_known_users(): if username in sel: acctmod._reset_password(username, email) else: data['deletion_error'] = _( "The password reset procedure is not enabled.") elif req.args.get('remove') and req.args.get('sel'): if delete_enabled: sel = req.args.get('sel') sel = isinstance(sel, list) and sel or [sel] for account in sel: acctmgr.delete_user(account) else: data['deletion_error'] = _( "The password store does not support deleting users.") elif req.args.get('change'): attributes = { 'email': _("Email Address"), 'name': _("Full name"), 'password': _("Password") } data['success'] = [] error = TracError('') username = acctmgr.handle_username_casing( req.args.get('username').strip()) try: if not username: error.account = {'username' : username} error.message = _("Username cannot be empty.") raise error if not acctmgr.has_user(username): error.account = {'username' : username} error.message = _("Unknown user %(user)s.", user=username) raise error password = req.args.get('password') if password and (password.strip() != ''): if password_change_enabled: if password != req.args.get('password_confirm'): error.message = _("The passwords must match.") raise error acctmgr.set_password(username, password) data['success'].append(attributes.get('password')) else: data['editor_error'] = _( """The password store does not support changing passwords. """) for attribute in ('name', 'email'): value = req.args.get(attribute).strip() if value: set_user_attribute(env, username, attribute, value) data['success'].append(attributes.get(attribute)) except TracError, e: data['editor_error'] = e.message data['account'] = getattr(e, 'account', '')
def _do_users(self, req): perm = PermissionSystem(self.env) listing_enabled = self.account_manager.supports('get_users') create_enabled = self.account_manager.supports('set_password') password_change_enabled = self.account_manager.supports('set_password') delete_enabled = self.account_manager.supports('delete_user') data = { 'listing_enabled': listing_enabled, 'create_enabled': create_enabled, 'delete_enabled': delete_enabled, 'password_change_enabled': password_change_enabled, 'acctmgr' : { 'username' : None, 'name' : None, 'email' : None, } } if req.method == 'POST': if req.args.get('add'): if create_enabled: try: _create_user(req, self.env, check_permissions=False) except TracError, e: data['registration_error'] = e.message data['acctmgr'] = e.acctmgr else: data['registration_error'] = 'The password store does ' \ 'not support creating users' elif req.args.get('remove'): if delete_enabled: sel = req.args.get('sel') sel = isinstance(sel, list) and sel or [sel] for account in sel: self.account_manager.delete_user(account) else: data['deletion_error'] = 'The password store does not ' \ 'support deleting users' elif req.args.get('change'): if password_change_enabled: try: user = req.args.get('change_user') acctmgr = { 'change_username' : user, } error = TracError('') error.acctmgr = acctmgr if not user: error.message = 'Username cannot be empty.' raise error password = req.args.get('change_password') if not password: error.message = 'Password cannot be empty.' raise error if password != req.args.get('change_password_confirm'): error.message = 'The passwords must match.' raise error self.account_manager.set_password(user, password) except TracError, e: data['password_change_error'] = e.message data['acctmgr'] = getattr(e, 'acctmgr', '') else: data['password_change_error'] = 'The password store does not ' \ 'support changing passwords'