class GroupAPI(object): def __init__(self, manager=None, user_api=None): if not user_api: self.user_api = UserAPI() else: self.user_api = user_api if not manager: self.manager = GroupManager() else: self.manager = manager def get_group_list_in_perm(self, username, center_id = None): user = self.user_api.get_db_user_by_username(username) if self.user_api.is_superuser(user): return self.manager.get_group_list(center_id) else: return self.manager.get_group_list_by_user(user, center_id) def get_group_list(self, center_id = None): return self.manager.get_group_list(center_id) def get_group_by_id(self, group_id): return self.manager.get_group_by_id(group_id) def has_center_perm(self, username, center_id): user = self.user_api.get_db_user_by_username(username) '''对指定center有部分或全部管理权,即对该分中心中的 某个集群有管理权,则返回True''' return self.manager.has_center_perm(user, center_id)
class GroupAPI(object): def __init__(self, manager=None, user_api=None): if not user_api: self.user_api = UserAPI() else: self.user_api = user_api if not manager: self.manager = GroupManager() else: self.manager = manager def get_group_list_in_perm(self, username, center_id=None): user = self.user_api.get_db_user_by_username(username) if self.user_api.is_superuser(user): return self.manager.get_group_list(center_id) else: return self.manager.get_group_list_by_user(user, center_id) def get_group_list(self, center_id=None): return self.manager.get_group_list(center_id) def get_group_by_id(self, group_id): return self.manager.get_group_by_id(group_id) def has_center_perm(self, username, center_id): if not isinstance(username, User) and type(username) is str: user = self.user_api.get_db_user_by_username(username) else: user = username '''对指定center有部分或全部管理权,即对该分中心中的 某个集群有管理权,则返回True''' return self.manager.has_center_perm(user, center_id)
class GroupAPI(object): def __init__(self, user_api=None): if not user_api: self.user_api = UserAPI() else: self.user_api = user_api def get_group_list_in_perm(self, username, center_id = None): user = self.user_api.get_db_user_by_username(username) if self.user_api.is_superuser(user): if center_id == None: groups = DBGroup.objects.all() else: groups = DBGroup.objects.filter(center_id = center_id) else: if center_id == None: groups = DBGroup.objects.filter(admin_user = user) else: groups = DBGroup.objects.filter(admin_user = user, center_id = center_id) groups = groups.order_by('order') ret_list = [] for group in groups: ret_list.append(self._get_group_data(group)) return ret_list def get_group_list(self, center_id = None): if center_id == None: groups = DBGroup.objects.filter() else: groups = DBGroup.objects.filter(center_id = center_id) groups = groups.order_by('order') ret_list = [] for group in groups: ret_list.append(self._get_group_data(group)) return ret_list def get_group_by_id(self, group_id): group = DBGroup.objects.filter(id = group_id) if not group.exists(): raise Error(ERR_GROUP_ID) return self._get_group_data(group[0]) def has_center_perm(self, username, center_id): user = self.user_api.get_db_user_by_username(username) '''对指定center有部分或全部管理权,即对该分中心中的 某个集群有管理权,则返回True''' return DBGroup.objects.filter(admin_user = user, center_id = center_id).exists() #-------------------------------------------------------- def _get_group_data(self, group): if not type(group) == DBGroup: return False return Group(group)