Beispiel #1
0
def delete_roles_owners(roles: List[RoleModel], owner_keys: List[str]) -> bool:
    owners = user_facade.get_users(keys=owner_keys)
    if not owners:
        return False
    return item_facade.delete_roles_owners(
        role_keys=[role.key for role in roles],
        user_keys=[owner.key for owner in owners])
Beispiel #2
0
def set_roles_owners(roles: List[RoleModel], owner_keys: List[str]) -> bool:
    if not owner_keys:
        return True
    owners = user_facade.get_users(keys=owner_keys)
    if not owners:
        return False
    return item_facade.set_owners_of_roles(
        user_keys=[owner.key for owner in owners],
        role_keys=[role.key for role in roles])
Beispiel #3
0
def set_permissions_owners(permission_keys: List[str],
                           owner_keys: List[str]) -> bool:
    if not owner_keys:
        return True
    owners = user_facade.get_users(keys=owner_keys)
    if not owners:
        return False
    return item_facade.set_permissions_owners(
        user_keys=[owner.key for owner in owners],
        permission_keys=permission_keys)
Beispiel #4
0
def required_login():
    if request.endpoint == 'userresource':
        return
    ctx = request.authorization
    if not ctx:
        return {'message': 'no auth'}, 403
    users = get_users(keys=[ctx.username])
    if not users or users[0].password != ctx.password:
        return {'message': 'username or password error'}, 403
    logging.debug(f"user {ctx.username} visit")
    return
Beispiel #5
0
 def get(self):
     keys = request.args.getlist('keys', type=str)
     name = request.args.get('name', default='', type=str)
     level = request.args.get('level', default=0, type=int)
     user_type = request.args.get('type', type=int)
     if user_type:
         user_type = UserType(user_type)
     if not level:
         level = 0
     phones = request.args.getlist('phones', type=int) or None
     email = request.args.get('email', type=str, default='') or None
     users = get_users(keys=keys, name=name, user_type=user_type, phones=phones, email=email, level=level)
     out = list()
     for user in users:
         out.append(dict(self.UserModel.from_orm(user)))
     return {
         'data': out
     }
Beispiel #6
0
def create_role(role: RoleModel) -> Role:
    owners = user_facade.get_users(keys=role.owner_keys)
    if not owners:
        return None
    if not item_facade.create_role(key=role.key, extra=role.extra):
        return None
    new_role = rc.create_role(name=role.name,
                              key=role.key,
                              level=role.level,
                              role_type=RoleType(role.type))
    if not new_role:
        item_facade.disable_items(keys=[role.key])
        return None
    if not item_facade.set_owners_of_roles(
            user_keys=[owner.key for owner in owners], role_keys=[role.key]):
        item_facade.disable_items(keys=[role.key])
        rc.disable_roles([new_role])
        return None
    return new_role
Beispiel #7
0
 def post(self):
     args = request.get_json()
     keys = args.get("keys")
     users = get_users(keys=keys)
     if not users:
         return {
             "message": "Not user"
         }
     name = args.get("name")
     level = args.get('level', None)
     type = args.get('type', None)
     password = args.get('password', None)
     if type:
         type = UserType(type)
     phone = args.get('phone', None)
     email = args.get('email', None)
     for user in users:
         if not update_user(user, name=name, level=level, user_type=type, phone=phone, email=email, password=password):
             return {
                 'message': 'error'
             }
     return {
         'message': 'ok'
     }