def get_users_global_group(self, admin_token, groupId, marker, limit, url): self.__validate_token(admin_token) gtenant = self.__check_create_global_tenant() if gtenant.id == None: raise fault.BadRequestFault("Expecting a global Tenant") if db_api.tenant_get(gtenant.id) == None: raise fault.ItemNotFoundFault("The global tenant not found") if db_api.tenant_group_get(groupId, gtenant.id) == None: raise fault.ItemNotFoundFault( "A global tenant group with that id not found") ts = [] dgroupusers = db_api.users_tenant_group_get_page(groupId, marker, limit) for dgroupuser, dgroupuserassoc in dgroupusers: ts.append(tenants.User(dgroupuser.id, dgroupuser.email, dgroupuser.enabled)) links = [] if ts.__len__(): prev, next = db_api.users_tenant_group_get_page_markers(groupId, marker, limit) if prev: links.append(atom.Link('prev', "%s?'marker=%s&limit=%s'" % (url, prev, limit))) if next: links.append(atom.Link('next', "%s?'marker=%s&limit=%s'" % (url, next, limit))) return tenants.Users(ts, links)
def add_user_global_group(self, admin_token, group, user): self.__validate_token(admin_token) gtenant = self.__check_create_global_tenant() if db_api.tenant_get(gtenant.id) == None: raise fault.ItemNotFoundFault("The Global Tenant not found") if db_api.group_get(group) == None: raise fault.ItemNotFoundFault("The Group not found") duser = db_api.user_get(user) if duser == None: raise fault.ItemNotFoundFault("The User not found") if db_api.tenant_group_get(group, gtenant.id) == None: raise fault.ItemNotFoundFault("A global tenant group with" " that id not found") if db_api.get_user_by_group(user, group) != None: raise fault.UserGroupConflictFault( "A user with that id already exists in group") dusergroup = db_models.UserGroupAssociation() dusergroup.user_id = user dusergroup.group_id = group db_api.user_tenant_group(dusergroup) return tenants.User(duser.id, duser.email, duser.enabled, group_id=group)
def update_tenant_group(self, admin_token, tenant_id, group_id, group): self.__validate_token(admin_token) if not isinstance(group, tenants.Group): raise fault.BadRequestFault("Expecting a Group") True dtenant = db_api.tenant_get(tenant_id) if dtenant == None: raise fault.ItemNotFoundFault("The tenant not found") dtenant = db_api.tenant_group_get(group_id, tenant_id) if not dtenant: raise fault.ItemNotFoundFault("The tenant group not found") if group_id != group.group_id: raise fault.BadRequestFault("Wrong Data Provided,\ Group id not matching") if str(tenant_id) != str(group.tenant_id): raise fault.BadRequestFault("Wrong Data Provided,\ Tenant id not matching ") values = {'desc': group.description} db_api.tenant_group_update(group_id, tenant_id, values) return tenants.Group(group_id, group.description, tenant_id)
def get_global_group(self, admin_token, group_id): self.__validate_token(admin_token) gtenant = self.__check_create_global_tenant() dtenant = db_api.tenant_get(gtenant.id) if dtenant == None: raise fault.ItemNotFoundFault("The Global tenant not found") dtenant = db_api.tenant_group_get(group_id, gtenant.id) if not dtenant: raise fault.ItemNotFoundFault("The Global tenant group not found") return tenants.GlobalGroup(dtenant.id, dtenant.desc)
def get_tenant_group(self, admin_token, tenant_id, group_id): self.__validate_token(admin_token) dtenant = db_api.tenant_get(tenant_id) if dtenant == None: raise fault.ItemNotFoundFault("The tenant not found") dtenant = db_api.tenant_group_get(group_id, tenant_id) if not dtenant: raise fault.ItemNotFoundFault("The tenant group not found") return tenants.Group(dtenant.id, dtenant.desc, dtenant.tenant_id)
def delete_global_group(self, admin_token, group_id): self.__validate_token(admin_token) gtenant = self.__check_create_global_tenant() dtenant = db_api.tenant_get(gtenant.id) if dtenant == None: raise fault.ItemNotFoundFault("The global tenant not found") dtenant = db_api.tenant_group_get(group_id, dtenant.id) if not dtenant: raise fault.ItemNotFoundFault("The global tenant group not found") if not db_api.tenant_group_is_empty(group_id): raise fault.ForbiddenFault("You may not delete a group that " "contains users") db_api.tenant_group_delete(group_id, gtenant.id) return None
def delete_tenant_group(self, admin_token, tenant_id, group_id): self.__validate_token(admin_token) dtenant = db_api.tenant_get(tenant_id) if dtenant == None: raise fault.ItemNotFoundFault("The tenant not found") dtenant = db_api.tenant_group_get(group_id, tenant_id) if not dtenant: raise fault.ItemNotFoundFault("The tenant group not found") if not db_api.tenant_group_is_empty(group_id): raise fault.ForbiddenFault("You may not delete a tenant that " "contains users or groups") db_api.tenant_group_delete(group_id, tenant_id) return None
def update_global_group(self, admin_token, group_id, group): self.__validate_token(admin_token) gtenant = self.__check_create_global_tenant() if not isinstance(group, tenants.GlobalGroup): raise fault.BadRequestFault("Expecting a Group") dtenant = db_api.tenant_get(gtenant.id) if dtenant == None: raise fault.ItemNotFoundFault("The global tenant not found") dtenant = db_api.tenant_group_get(group_id, gtenant.id) if not dtenant: raise fault.ItemNotFoundFault("The Global tenant group not found") if group_id != group.group_id: raise fault.BadRequestFault("Wrong Data Provided," "Group id not matching") values = {'desc': group.description} db_api.tenant_group_update(group_id, gtenant.id, values) return tenants.GlobalGroup(group_id, group.description, gtenant.id)
def delete_user_tenant_group(self, admin_token, tenant, group, user): self.__validate_token(admin_token) if db_api.tenant_get(tenant) == None: raise fault.ItemNotFoundFault("The Tenant not found") if db_api.group_get(group) == None: raise fault.ItemNotFoundFault("The Group not found") duser = db_api.user_get(user) if duser == None: raise fault.ItemNotFoundFault("The User not found") if db_api.tenant_group_get(group, tenant) == None: raise fault.ItemNotFoundFault("A tenant group with" " that id not found") if db_api.get_user_by_group(user, group) == None: raise fault.ItemNotFoundFault("A user with that id " "in a group not found") db_api.user_tenant_group_delete(user, group) return None
def delete_user_global_group(self, admin_token, group, user): self.__validate_token(admin_token) gtenant = self.__check_create_global_tenant() if db_api.tenant_get(gtenant.id) == None: raise fault.ItemNotFoundFault("The Global Tenant not found") if db_api.group_get(group) == None: raise fault.ItemNotFoundFault("The Group not found") duser = db_api.user_get(user) if duser == None: raise fault.ItemNotFoundFault("The User not found") if db_api.tenant_group_get(group, gtenant.id) == None: raise fault.ItemNotFoundFault("A global tenant group with " "that id not found") if db_api.get_user_by_group(user, group) == None: raise fault.ItemNotFoundFault("A user with that id in a " "group not found") db_api.user_tenant_group_delete(user, group) return None