def addUser(self, name, passwd=None): ''' Add a new user to the auth system. Args: name (str): The user name. Returns: User: The newly created user. Raises: s_exc.DupUserName: If the user already exists. ''' with self.lenv.begin(write=True) as xact: if self.users.get(name) is not None: raise s_exc.DupUserName(name=name) if self.roles.get(name) is not None: raise s_exc.DupUserName(name=name) user = User(self, name, {}) self.users[name] = user uenc = name.encode('utf8') user.info['vers'] = authver byts = s_msgpack.en(user.info) xact.put(uenc, byts, db=self._db_users) return user
async def addUser(self, name, passwd=None, email=None): ''' Add a User to the Hive. Args: name (str): The name of the User. passwd (str): A optional password for the user. email (str): A optional emall for the user. Returns: HiveUser: A Hive User. ''' if self.usersbyname.get(name) is not None: raise s_exc.DupUserName(name=name) iden = s_common.guid() await self._push('user:add', iden, name) user = self.user(iden) if passwd is not None: await user.setPasswd(passwd) if email is not None: await self.setUserInfo(user.iden, 'email', email) # Everyone's a member of 'all' await user.grant(self.allrole.iden) return user
async def _addUser(self, iden, name): if self.usersbyname.get(name) is not None: raise s_exc.DupUserName(name=name) node = await self.node.open(('users', iden)) await node.set(name) return await self._addUserNode(node)
async def setUserName(self, iden, name): if self.usersbyname.get(name) is not None: raise s_exc.DupUserName(name=name) user = await self.reqUser(iden) self.usersbyname.pop(user.name, None) self.usersbyname[name] = user user.name = name await user.node.set(name)
async def addUser(self, name): if self.usersbyname.get(name) is not None: raise s_exc.DupUserName(name=name) iden = s_common.guid() path = self.node.full + ('users', iden) # directly set the nodes value and let events prop await self.node.hive.set(path, name) node = await self.node.hive.open(path) return await self._addUserNode(node)
async def setUserName(self, iden, name): if not isinstance(name, str): raise s_exc.BadArg(mesg='setUserName() name must be a string') user = self.usersbyname.get(name) if user is not None: if user.iden == iden: return raise s_exc.DupUserName(name=name) user = await self.reqUser(iden) self.usersbyname.pop(user.name, None) self.usersbyname[name] = user user.name = name await user.node.set(name)
async def addUser(self, name, passwd=None, email=None): if self.usersbyname.get(name) is not None: raise s_exc.DupUserName(name=name) iden = s_common.guid() user = await self._push('user:add', iden, name) if passwd is not None: await user.setPasswd(passwd) if email is not None: await self.setUserInfo(user.iden, 'email', email) # Everyone's a member of 'all' await user.grant(self.allrole.iden) return user
async def addUser(self, name, passwd=None, email=None, iden=None): ''' Add a User to the Hive. Args: name (str): The name of the User. passwd (str): A optional password for the user. email (str): A optional email for the user. iden (str): A optional iden to use as the user iden. Returns: HiveUser: A Hive User. ''' if self.usersbyname.get(name) is not None: raise s_exc.DupUserName(name=name) if iden is None: iden = s_common.guid() else: if not s_common.isguid(iden): raise s_exc.BadArg(name='iden', arg=iden, mesg='Argument it not a valid iden.') if self.usersbyiden.get(iden) is not None: raise s_exc.DupIden(name=name, iden=iden, mesg='User already exists for the iden.') await self._push('user:add', iden, name) user = self.user(iden) if passwd is not None: await user.setPasswd(passwd) if email is not None: await self.setUserInfo(user.iden, 'email', email) # Everyone's a member of 'all' await user.grant(self.allrole.iden) return user