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)
def handle_args(req, **kwargs): try: session_id = req.POST.get('session_id') if settings.DEBUG: print('login required', session_id) if session_id: userapi = UserAPI() session = userapi.get_session_by_id(session_id) username = session.get(userapi.SESSION_KEY) ip = session.get(userapi.IP_SESSION_KEY) if settings.DEBUG: print('login required', username, ip) if ip == req.META['REMOTE_ADDR']: user = User.objects.get(username = username) req.user = user return func(req, **kwargs) except Exception as e: if settings.DEBUG: print(e) return HttpResponse(json.dumps({'res': False, 'err':ERR_AUTH_NO_LOGIN}))
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 handle_args(req, **kwargs): try: session_id = req.POST.get('session_id') if settings.DEBUG: print('login required', session_id) if session_id: userapi = UserAPI() session = userapi.get_session_by_id(session_id) username = session.get(userapi.SESSION_KEY) ip = session.get(userapi.IP_SESSION_KEY) if settings.DEBUG: print('login required', username, ip) if ip == req.META['REMOTE_ADDR']: user = User.objects.get(username=username) req.user = user return func(req, **kwargs) except Exception as e: if settings.DEBUG: print(e) return HttpResponse( json.dumps({ 'res': False, 'err': ERR_AUTH_NO_LOGIN }))
def __init__(self, user_api=None): if not user_api: self.user_api = UserAPI() else: self.user_api = user_api
def logout(args): api = API() res = api.logout(args['session_id']) if not res: return {'res': False, 'err': ERR_AUTH_LOGOUT} return {'res': True}
def login(args): api = API() session_key = api.login(args['login_name'], args['password'], args['ip']) if session_key: return {'res': True, 'session_id': session_key} return {'res': False, 'err': ERR_AUTH_LOGIN}