Example #1
0
    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
Example #2
0
    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
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
    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)
Example #6
0
    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)
Example #7
0
    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
Example #8
0
    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