예제 #1
0
    async def getTeleApi(self, link, mesg, path):

        auth = await self.getHiveAuth()

        if not self.conf.get('auth:en'):
            user = auth.getUserByName('root')
            return await HiveApi.anit(self, user)

        name, info = mesg[1].get('auth')

        user = auth.getUserByName(name)
        if user is None:
            raise s_exc.NoSuchUser(name=name)

        # passwd None always fails...
        passwd = info.get('passwd')
        if not user.tryPasswd(passwd):
            raise s_exc.AuthDeny(mesg='Invalid password', user=user.name)

        return await HiveApi.anit(self, user)
예제 #2
0
async def storm(core, item):
    '''
    Storm implementation for SpawnCore use.
    '''
    useriden = item.get('user')
    viewiden = item.get('view')

    storminfo = item.get('storm')

    opts = storminfo.get('opts')
    text = storminfo.get('query')

    user = core.auth.user(useriden)
    if user is None:
        raise s_exc.NoSuchUser(iden=useriden)

    view = core.views.get(viewiden)
    if view is None:
        raise s_exc.NoSuchView(iden=viewiden)

    async for mesg in view.streamstorm(text, opts=opts, user=user):
        yield mesg
예제 #3
0
    def delUser(self, name):
        '''
        Delete a user from the auth system.

        Args:
            name (str): The user name to delete.

        Returns:
            True: True if the operation succeeded.

        Raises:
            s_exc.NoSuchUser: If the user did not exist.
        '''
        with self.lenv.begin(write=True) as xact:

            user = self.users.pop(name, None)
            if user is None:
                raise s_exc.NoSuchUser(user=name)

            uenc = name.encode('utf8')
            xact.delete(uenc, db=self._db_users)
        return True
예제 #4
0
 async def reqUserByName(self, name):
     user = await self.getUserByName(name)
     if user is None:
         mesg = f'No user named {name}.'
         raise s_exc.NoSuchUser(mesg=mesg)
     return user
예제 #5
0
    async def addUserRole(self, username, rolename):
        user = self.cell.auth.getUserByName(username)
        if user is None:
            raise s_exc.NoSuchUser(user=username)

        await user.grant(rolename)
예제 #6
0
    async def setUserArchived(self, name, archived):
        user = self.cell.auth.getUserByName(name)
        if user is None:
            raise s_exc.NoSuchUser(user=name)

        await user.setArchived(archived)
예제 #7
0
    async def setUserLocked(self, name, locked):
        user = self.cell.auth.getUserByName(name)
        if user is None:
            raise s_exc.NoSuchUser(user=name)

        await user.setLocked(locked)
예제 #8
0
    def setUserLocked(self, name, locked):
        user = self.cell.auth.users.get(name)
        if user is None:
            raise s_exc.NoSuchUser(user=name)

        user.setLocked(locked)
예제 #9
0
    def setUserPasswd(self, name, passwd):
        user = self.cell.auth.users.get(name)
        if user is None:
            raise s_exc.NoSuchUser(user=name)

        user.setPasswd(passwd)
예제 #10
0
    async def setUserPasswd(self, name, passwd):
        user = self.cell.auth.getUserByName(name)
        if user is None:
            raise s_exc.NoSuchUser(user=name)

        await user.setPasswd(passwd)