class RoleController: def __init__(self, connection): self.connection = connection from models.role import Role from models.user_role import UserRole self.role = Role(connection) self.user_role = UserRole(connection) from token_controller import TokenController self.token_controller = TokenController(connection) from user_role_controller import UserRoleController self.user_role_controller = UserRoleController(connection) def is_admin(self, user_id): row = self.user_role.find({ 'user_id': user_id, 'role_id': ADMIN_ROLE_ID }) if len(row) > 0: return True else: return False # only the admin can create a role def create(self, access_token, params): rows = self.token_controller.find(access_token) user_id = rows[0]['user_id'] if not self.is_admin(user_id): raise Exception("not permitted") self.role.create(params) return True def update(self, access_token, params): raise Exception("not supported") def delete(self, access_token, params): raise Exception("not supported") """ 1. find all roles if I'm the admin 2. find only roles where I'm the role admin """ def find_all(self, access_token, params=None): rows = self.token_controller.find(access_token) user_id = rows[0]['user_id'] return self.user_role_controller.find_by_user_id(user_id) def find_one(self, access_token, params): raise Exception("not supported")
class RoleController: def __init__(self, connection): self.connection = connection from models.role import Role from models.user_role import UserRole self.role = Role(connection) self.user_role = UserRole(connection) from token_controller import TokenController self.token_controller = TokenController(connection) from user_role_controller import UserRoleController self.user_role_controller = UserRoleController(connection) def is_admin(self, user_id): row = self.user_role.find({'user_id': user_id, 'role_id': ADMIN_ROLE_ID}) if len(row) > 0: return True else: return False # only the admin can create a role def create(self, access_token, params): rows = self.token_controller.find(access_token) user_id = rows[0]['user_id'] if not self.is_admin(user_id): raise Exception("not permitted") self.role.create(params) return True def update(self, access_token, params): raise Exception("not supported") def delete(self, access_token, params): raise Exception("not supported") """ 1. find all roles if I'm the admin 2. find only roles where I'm the role admin """ def find_all(self, access_token, params=None): rows = self.token_controller.find(access_token) user_id = rows[0]['user_id'] return self.user_role_controller.find_by_user_id(user_id) def find_one(self, access_token, params): raise Exception("not supported")
import sys sys.path.insert(0, r'../..') from models.connection import connection from models.role import Role role = Role(connection) print role.find({'id': '3867c370-552f-43b8-bed9-6aa00ffc41b4'}) print role.find({ 'ids': [ '435a6417-6c1f-4d7c-87dd-e8f6c0effc7a', 'ffffffff-ffff-ffff-ffff-ffffffffffff' ] }) print role.find({'ids': []}) print role.find({}) print role.create({'id': '333', 'name': '333'}) #print role.create({'id':'ffffffff-ffff-ffff-ffff-ffffffffffff', 'name':'admin'}) #print role.create({'id':'435a6417-6c1f-4d7c-87dd-e8f6c0effc7a', 'name':'public'}) #print role.create({'id':'3867c370-552f-43b8-bed9-6aa00ffc41b4', 'name':'Awesome Role'})
import sys sys.path.insert(0, r'../..') from models.connection import connection from models.role import Role role = Role(connection) print role.find({'id':'3867c370-552f-43b8-bed9-6aa00ffc41b4'}) print role.find({'ids':['435a6417-6c1f-4d7c-87dd-e8f6c0effc7a', 'ffffffff-ffff-ffff-ffff-ffffffffffff']}) print role.find({'ids':[]}) print role.find({}) print role.create({'id':'333', 'name':'333'}) #print role.create({'id':'ffffffff-ffff-ffff-ffff-ffffffffffff', 'name':'admin'}) #print role.create({'id':'435a6417-6c1f-4d7c-87dd-e8f6c0effc7a', 'name':'public'}) #print role.create({'id':'3867c370-552f-43b8-bed9-6aa00ffc41b4', 'name':'Awesome Role'})