def get_domain_list(self, in_global_acl=False): search = request.args.get('search', None) if self.auth.account.account_type == 'senior_admin' or in_global_acl: query = ModelDomain.select() if (search is not None): search = search.replace('*', '%') query = query.where((ModelDomain.domain**('%' + search + '%'))) return query # domain group maps query dgmq = DomainGroupMap.select(DomainGroupMap.domain_id).where( DomainGroupMap.group_id << self.get_group_maps()) # domains query domainQuery = ModelDomain.select().where( ((ModelDomain.owner_id == self.auth.account.account_id) | (ModelDomain.domain_id << dgmq))) if (search is not None): search = search.replace('*', '%') domainQuery = domainQuery.where( (ModelDomain.domain**(search + '%'))) return domainQuery
def get_domain_list(self): search = request.args.get('search', None) if self.auth.account.account_type == 'senior_admin': query = ModelDomain.select() if (search is not None): search = search.replace('*', '%') query = query.where( (ModelDomain.domain ** ('%' + search + '%')) ) return query # domain group maps query dgmq = DomainGroupMap.select(DomainGroupMap.domain_id).where( DomainGroupMap.group_id << self.get_group_maps() ) # domains query domainQuery = ModelDomain.select().where( ( (ModelDomain.owner_id == self.auth.account.account_id) | (ModelDomain.domain_id << dgmq) ) ) if (search is not None): search = search.replace('*', '%') domainQuery = domainQuery.where( (ModelDomain.domain ** (search + '%')) ) return domainQuery
def delete(self, account_id): if self.auth.account.account_type != "senior_admin": abort(403, message="Insufficient privileges to delete account") if self.auth.account.account_id == account_id: abort(400, message="Sorry, you can't delete yourself") try: account = ModelAccount.get(ModelAccount.account_id == account_id) except peewee.DoesNotExist: abort(404, message="account does not exist") # update existing domains to be owned by account 0 domains = ModelDomain.select().where( ModelDomain.owner_id == account_id ) for domain in domains: domain.owner_id == 0 domain.save() account.delete_instance() self.dns_log( 0, ( "deleted account " + account.first_name + " " + account.last_name + ", " + account.email ) ) return {'status': 'ok'}
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': []}
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': [] }
def delete(self, account_id): if self.auth.account.account_type != "senior_admin": abort(403, message="Insufficient privileges to delete account") if self.auth.account.account_id == account_id: abort(400, message="Sorry, you can't delete yourself") try: account = ModelAccount.get(ModelAccount.account_id == account_id) except peewee.DoesNotExist: abort(404, message="account does not exist") # update existing domains to be owned by account 0 domains = ModelDomain.select().where( ModelDomain.owner_id == account_id ) for domain in domains: domain.owner_id == 0 domain.save() account.delete_instance() return {'status': 'ok'}