Exemple #1
0
 def get_group_members(self, group_id):
     return ModelMap.select(ModelMap, ModelAccount).where(
         ModelMap.group_id == group_id
     ).join(
         ModelAccount,
         on=ModelMap.account_id == ModelAccount.account_id
     )
Exemple #2
0
    def put(self, member_id):
        try:
            map = self.get_map(member_id)
            account = self.get_account(map.account_id)
        except peewee.DoesNotExist:
            abort(404, message="groupmember does not exist")

        # Handle params
        is_admin = request.form.get('is_admin')
        if is_admin != "0" and is_admin != "1":
            abort(400, message="is_admin must be 1 or 0")

        # make sure logged in user has perms
        if self.auth.account.account_type != 'senior_admin':
            # check they are a member and is_admin is 1
            try:
                mymap = ModelMap.get(
                    ModelMap.group_id == member_id,
                    ModelMap.account_id == self.auth.account.account_id
                )
                if mymap.is_admin != 1:
                    abort(403)
            except peewee.DoesNotExist:
                abort(403)

        # make change
        map.is_admin = int(is_admin)
        map.save()

        formatted = map.format_member(map, account)

        return {'status': 'ok', 'groupmember': formatted}
Exemple #3
0
    def put(self, member_id):
        try:
            map = self.get_map(member_id)
            account = self.get_account(map.account_id)
        except peewee.DoesNotExist:
            abort(404, message="groupmember does not exist")

        # Handle params
        is_admin = request.form.get('is_admin')
        if is_admin != "0" and is_admin != "1":
            abort(400, message="is_admin must be 1 or 0")

        # make sure logged in user has perms
        if self.auth.account.account_type != 'senior_admin':
            # check they are a member and is_admin is 1
            try:
                mymap = ModelMap.get(
                    ModelMap.group_id == map.group_id,
                    ModelMap.account_id == self.auth.account.account_id)
                if mymap.is_admin != 1:
                    abort(403)
            except peewee.DoesNotExist:
                abort(403)

        # make change
        map.is_admin = int(is_admin)
        map.save()

        formatted = map.format_member(map, account)

        return {'status': 'ok', 'groupmember': formatted}
Exemple #4
0
    def delete(self, member_id):
        try:
            map = self.get_map(member_id)
            account = self.get_account(map.account_id)
        except peewee.DoesNotExist:
            abort(404, message="groupmember does not exist")

        # make sure logged in user has perms
        if self.auth.account.account_type != 'senior_admin':
            # check they are a member and is_admin is 1
            try:
                mymap = ModelMap.get(
                    ModelMap.group_id == map.group_id,
                    ModelMap.account_id == self.auth.account.account_id)
                if mymap.is_admin != 1:
                    abort(403)
            except peewee.DoesNotExist:
                abort(403)

        try:
            # FIXME need to delete domain maps when in place
            map.delete_instance()

            # Log change
            group = ModelGroup.get(ModelGroup.group_id == map.group_id)
            self.dns_log(0, ("Removed " + account.first_name + " " +
                             account.last_name + " from group " + group.name))
        except:
            abort(400, message="unable to delete groupmember")
        return {'status': 'ok'}
Exemple #5
0
    def load_domains(self):
        # reset
        self.domains = {}

        # look up my group ids
        accountgroupmaps = AccountGroupMap.select(
            AccountGroupMap.group_id).where(
                AccountGroupMap.account_id == self.account_id)
        group_ids = []
        for map in accountgroupmaps:
            group_ids.append(map.group_id)

        # get domain group maps
        if group_ids:
            domaingroupmaps = DomainGroupMap.select(
                DomainGroupMap,
                Domain).where(DomainGroupMap.group_id << group_ids).join(
                    Domain,
                    on=Domain.domain_id == DomainGroupMap.domain_id,
                    attr='domain_id')

            # store the maps by domain id for the can_* methods below
            for map in domaingroupmaps:
                did = map.domain_id.domain_id
                if map.domain_id.domain_id not in self.domains:
                    self.domains[did] = {'domain': map.domain_id, 'maps': []}
                self.domains[did]["maps"].append(map)

        # grab domains this user owns
        domains = Domain.select(Domain).where(
            Domain.owner_id == self.account_id)

        for domain in domains:
            if domain.domain_id not in self.domains:
                self.domains[domain.domain_id] = {'domain': domain, 'maps': []}
Exemple #6
0
    def delete(self, member_id):
        try:
            map = self.get_map(member_id)
            account = self.get_account(map.account_id)
        except peewee.DoesNotExist:
            abort(404, message="groupmember does not exist")

        # make sure logged in user has perms
        if self.auth.account.account_type != 'senior_admin':
            # check they are a member and is_admin is 1
            try:
                mymap = ModelMap.get(
                    ModelMap.group_id == member_id,
                    ModelMap.account_id == self.auth.account.account_id
                )
                if mymap.is_admin != 1:
                    abort(403)
            except peewee.DoesNotExist:
                abort(403)

        try:
            # FIXME need to delete domain maps when in place
            map.delete_instance()
        except:
            abort(400, message="unable to delete groupmember")
        return {'status': 'ok'}
Exemple #7
0
 def get_group_members(self, group_id):
     return ModelMap.select(ModelMap, ModelAccount).where(
         ModelMap.group_id == group_id
     ).join(
         ModelAccount,
         on=ModelMap.account_id == ModelAccount.account_id
     )
Exemple #8
0
    def get_group(self, group_id):
        if self.auth.account.account_type != 'senior_admin':
            # DoesNotExist will be raised if map doesn't exist
            group_map = ModelMap.get(
                ModelMap.account_id == self.auth.account.account_id,
                ModelMap.group_id == group_id)

        return ModelGroup.get(ModelGroup.group_id == group_id)
Exemple #9
0
    def get_group(self, group_id):
        if self.auth.account.account_type != 'senior_admin':
            # DoesNotExist will be raised if map doesn't exist
            group_map = ModelMap.get(
                ModelMap.account_id == self.auth.account.account_id,
                ModelMap.group_id == group_id
            )

        return ModelGroup.get(ModelGroup.group_id == group_id)
Exemple #10
0
 def get_group_list(self):
     if self.auth.account.account_type == 'senior_admin':
         return ModelGroup.select()
     else:
         group_maps = ModelMap.select().where(
             ModelMap.account_id == self.auth.account.account_id)
         ids = []
         for group_map in group_maps:
             ids.append(group_map.group_id)
         return ModelGroup.select().where(ModelGroup.group_id << ids)
Exemple #11
0
 def get_group_list(self):
     if self.auth.account.account_type == 'senior_admin':
         return ModelGroup.select()
     else:
         group_maps = ModelMap.select().where(
             ModelMap.account_id == self.auth.account.account_id
         )
         ids = []
         for group_map in group_maps:
             ids.append(group_map.group_id)
         return ModelGroup.select().where(ModelGroup.group_id << ids)
Exemple #12
0
    def create_map(self, account_id, group_id, is_admin):
        map = ModelMap()
        map.account_id = account_id
        map.group_id = group_id
        map.is_admin = is_admin
        map.save()

        return map
Exemple #13
0
    def create_map(self, account_id, group_id, is_admin):
        map = ModelMap()
        map.account_id = account_id
        map.group_id = group_id
        map.is_admin = is_admin
        map.save()

        return map
Exemple #14
0
    def load_domains(self):
        # reset
        self.domains = {}

        # look up my group ids
        accountgroupmaps = AccountGroupMap.select(
            AccountGroupMap.group_id
        ).where(
            AccountGroupMap.account_id == self.account_id
        )
        group_ids = []
        for map in accountgroupmaps:
            group_ids.append(map.group_id)

        # get domain group maps
        if group_ids:
            domaingroupmaps = DomainGroupMap.select(
                DomainGroupMap, Domain
            ).where(
                DomainGroupMap.group_id << group_ids
            ).join(
                Domain,
                on=Domain.domain_id == DomainGroupMap.domain_id
            )

            # store the maps by domain id for the can_* methods below
            for map in domaingroupmaps:
                did = map.domain_id.domain_id
                if map.domain_id.domain_id not in self.domains:
                    self.domains[did] = {
                        'domain': map.domain_id,
                        'maps': []
                    }
                self.domains[did]["maps"].append(map)

        # grab domains this user owns
        domains = Domain.select(
            Domain
        ).where(
            Domain.owner_id == self.account_id
        )

        for domain in domains:
            if domain.domain_id not in self.domains:
                self.domains[domain.domain_id] = {
                    'domain': domain,
                    'maps': []
                }
Exemple #15
0
 def get_map(self, account_id, group_id):
     return ModelMap.get(
         ModelMap.account_id == account_id,
         ModelMap.group_id == group_id
     )
Exemple #16
0
 def get_map(self, member_id):
     return ModelMap.get(ModelMap.map_id == member_id)
Exemple #17
0
 def get_map(self, account_id, group_id):
     return ModelMap.get(
         ModelMap.account_id == account_id,
         ModelMap.group_id == group_id
     )
Exemple #18
0
 def get_group_maps(self):
     return AccountGroupMap.select(AccountGroupMap.group_id).where(
         AccountGroupMap.account_id == self.auth.account.account_id
     )
Exemple #19
0
 def get_group_maps(self):
     return AccountGroupMap.select(AccountGroupMap.group_id).where(
         AccountGroupMap.account_id == self.auth.account.account_id)
Exemple #20
0
 def get_map(self, member_id):
     return ModelMap.get(ModelMap.map_id == member_id)