Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
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)
Exemple #4
0
 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}))
Exemple #5
0
 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
Exemple #6
0
 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
Exemple #7
0
 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
         }))
Exemple #8
0
 def __init__(self, user_api=None):
     if not user_api:
         self.user_api = UserAPI()
     else:
         self.user_api = user_api
Exemple #9
0
def logout(args):
    api = API()
    res = api.logout(args['session_id'])
    if not res:
        return {'res': False, 'err': ERR_AUTH_LOGOUT}
    return {'res': True}
Exemple #10
0
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}