예제 #1
0
파일: api.py 프로젝트: bobff/ev-cloud
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)
예제 #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)
예제 #3
0
파일: api.py 프로젝트: iselu/ev-cloud
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)