def _create_user(self, req): """Set password and prime a new authenticated Trac session.""" email = req.args.get('email', '').strip() name = req.args.get('name', '').strip() username = self.handle_username_casing( req.args.get('username', '').strip()) # Result of a successful account creation request is a made-up # authenticated session, that a new user can refer to later on. # Strictly required to create a primary key for additional attributes, # perhaps even something as critical as the SessionStore password. from acct_mgr.model import prime_auth_session, set_user_attribute try: prime_auth_session(self.env, username) # Save attributes for the user with reference to that session ID. # Done before writing to a password store to preserve attributes # in case of non-fatal errors (especially notification errors). for attribute in ('name', 'email'): value = req.args.get(attribute) if not value: continue set_user_attribute(self.env, username, attribute, value) # Create the user in the configured (primary) password store. self.set_password(username, req.args.get('password'), overwrite=False) finally: if not self.has_user(username): # Rollback. from acct_mgr.model import delete_user delete_user(self.env, username)
def _create_user(self, req): """Set password and prime a new authenticated Trac session.""" username = req.args.get('username', '').strip() username = self.handle_username_casing(username) # Result of a successful account creation request is a made-up # authenticated session, that a new user can refer to later on. # Strictly required to create a primary key for additional attributes, # perhaps even something as critical as the SessionStore password. from acct_mgr.model import prime_auth_session, set_user_attribute try: prime_auth_session(self.env, username) # Save attributes for the user with reference to that session ID. # Done before writing to a password store to preserve attributes # in case of non-fatal errors (especially notification errors). for attribute in ('name', 'email'): value = req.args.get(attribute) if not value: continue set_user_attribute(self.env, username, attribute, value) # Create the user in the configured (primary) password store. self.set_password(username, req.args.get('password'), overwrite=False) finally: if not self.has_user(username): # Rollback. from acct_mgr.model import delete_user delete_user(self.env, username)
def delete_user(self, user): user = self.handle_username_casing(user) # Delete from password store store = self.find_user_store(user) del_method = getattr(store, 'delete_user', None) if callable(del_method): del_method(user) # Delete session attributes, session and any custom permissions # set for the user. delete_user(self.env, user) self._notify('deleted', user)