Example #1
0
 def get(self):
     claims = get_jwt_claims()
     if not claims['is_admin']:
         return {'message': 'User not authorized to view'}
     try:
         data = request.args
         role_id = data.get("role_id")
         role_desc = data.get("role_desc")
         role_name = data.get("role_name")
         if role_id:
             roles = UserRoleModel.find_by_role_id(role_id)
         elif role_name:
             roles = UserRoleModel.find_by_role_name(role_name)
         elif role_desc:
             roles = UserRoleModel.find_by_role_desc(role_desc)
         else:
             roles = UserRoleModel.find_all()
     except:
         roles = UserRoleModel.find_all()
     finally:
         if len(roles) > 0:
             resp = []
             for role in roles:
                 resp.append(role.json())
             return resp, 200
         return {'message': 'Role not found'}, 404
Example #2
0
 def delete(self):
     claims = get_jwt_claims()
     if not claims['is_super_admin']:
         return {'message': 'Super Admin privilege required.'}, 412
     data = _user_role_parser.parse_args()
     try:
         role_name = data["role_name"]
     except Exception as e:
         return {"message": f"Role name missing."}
     user_role = UserRoleModel.find_by_role_name(role_name)[0]
     if user_role:
         user_role.delete_from_db()
         return {'message': 'Role name deleted.'}, 200
     return {'message': 'Role name not found.'}, 404
Example #3
0
 def put(self):
     claims = get_jwt_claims()
     if not claims['is_super_admin']:
         return {'message': 'Super Admin privilege required.'}, 412
     data = _user_role_parser.parse_args()
     for key in data.keys():
         if str(data[key]).lower() in ('none', 'null', ''):
             data[key] = None
     try:
         role_name = data["role_name"]
     except Exception as e:
         return {"message": f"Role name required. {repr(e)}"}
     user_role = UserRoleModel.find_by_role_name(role_name)[0]
     if user_role:
         user_role.set_attribute(data)
     else:
         user_role = UserRoleModel(**data)
     user_role.save_to_db()
     return user_role.json(), 201
Example #4
0
 def set_attribute(self, payload):
     cols = [
         'status', 'first_name', 'last_name', 'gender', 'password',
         'mobile', 'designation', 'image', 'type', 'authtoken',
         'teacher_code', 'bloodgroup', 'user_role_id', 'organization_id'
     ]
     for col in cols:
         if col in payload.keys():
             setattr(self, col, payload[col])
     if payload.get('user_role_name'):
         user_role = UserRoleModel.find_by_role_name(
             payload['user_role_name'])
         self.user_role_id = user_role.id
     if payload.get('organization_name'):
         organization = OrganizationModel.find_by_organization_name(
             payload['organization_name'])
         self.organization_id = organization.id
     if 'password' in payload.keys():
         self.password = md5(str(
             payload['password']).encode('UTF-8')).hexdigest()
Example #5
0
    def post(self):
        claims = get_jwt_claims()
        if not claims['is_super_admin']:
            return {'message': 'Super Admin privilege required.'}, 412
        data = _user_role_parser.parse_args()
        try:
            role_name = data["role_name"]
        except Exception as e:
            return {'message': f"Role name missing. {repr(e)}"}

        if UserRoleModel.find_by_role_name(role_name):
            return {'message': f"Role name already exists."}, 400
        user_role = UserRoleModel(**data)
        try:
            user_role.save_to_db()
        except Exception as e:
            return {
                "message":
                f"An error occurred inserting the role. Error: {repr(e)}"
            }, 500
        return user_role.json(), 201
Example #6
0
 def find_by_any(cls, **kwargs):
     cols = [
         'id', 'email', 'status', 'first_name', 'last_name', 'gender',
         'mobile', 'designation', 'type', 'teacher_code', 'bloodgroup',
         'organization_id', 'user_role_id', 'organization_name',
         'user_role_name'
     ]
     filter_str = 'cls.query'
     if 'id' in kwargs.keys():
         filter_str = filter_str + '.filter_by(_id="' + str(
             kwargs['id']) + '")'
     if 'email' in kwargs.keys():
         filter_str = filter_str + '.filter_by(email="' + str(
             kwargs['email']) + '")'
     if 'status' in kwargs.keys():
         filter_str = filter_str + '.filter_by(status="' + str(
             kwargs['status']) + '")'
     if 'first_name' in kwargs.keys():
         filter_str = filter_str + '.filter_by(first_name="' + str(
             kwargs['first_name']) + '")'
     if 'last_name' in kwargs.keys():
         filter_str = filter_str + '.filter_by(last_name="' + str(
             kwargs['last_name']) + '")'
     if 'gender' in kwargs.keys():
         filter_str = filter_str + '.filter_by(gender="' + str(
             kwargs['gender']) + '")'
     if 'mobile' in kwargs.keys():
         filter_str = filter_str + '.filter_by(mobile="' + str(
             kwargs['mobile']) + '")'
     if 'designation' in kwargs.keys():
         filter_str = filter_str + '.filter_by(designation="' + str(
             kwargs['designation']) + '")'
     if 'type' in kwargs.keys():
         filter_str = filter_str + '.filter_by(type="' + str(
             kwargs['type']) + '")'
     if 'teacher_code' in kwargs.keys():
         filter_str = filter_str + '.filter_by(teacher_code="' + str(
             kwargs['teacher_code']) + '")'
     if 'bloodgroup' in kwargs.keys():
         filter_str = filter_str + '.filter_by(bloodgroup="' + str(
             kwargs['bloodgroup']) + '")'
     if 'organization_id' in kwargs.keys():
         filter_str = filter_str + '.filter_by(organization_id="' + str(
             kwargs['organization_id']) + '")'
     if 'user_role_id' in kwargs.keys():
         filter_str = filter_str + '.filter_by(user_role_id="' + str(
             kwargs['user_role_id']) + '")'
     if 'user_role_name' in kwargs.keys():
         user_role = UserRoleModel.find_by_role_name(
             kwargs['user_role_name'])
         if user_role:
             user_role_id = user_role[0].id
             filter_str = filter_str + '.filter_by(user_role_id="' + str(
                 user_role_id) + '")'
     if 'organization_name' in kwargs.keys():
         organization = OrganizationModel.find_by_organization_name(
             kwargs['organization_name'])
         if organization:
             organization_id = organization[0].id
             filter_str = filter_str + '.filter_by(organization_id="'\
                          + str(organization_id) + '")'
     filter_str = filter_str + '.all()'
     return eval(filter_str)