def members(self, request, *args, **kwargs): organization = self.get_object() status_code = status.HTTP_200_OK data = [] username = request.DATA.get('username') or request.QUERY_PARAMS.get( 'username') if request.method in ['DELETE', 'POST', 'PUT'] and not username: status_code = status.HTTP_400_BAD_REQUEST data = {'username': [_(u"This field is required.")]} elif request.method == 'POST': data, status_code = _add_username_to_organization( organization, username) elif request.method == 'PUT': role = request.DATA.get('role') role_cls = ROLES.get(role) if not role or not role_cls: status_code = status.HTTP_400_BAD_REQUEST message = (_(u"'%s' is not a valid role." % role) if role else _(u"This field is required.")) data = {'role': [message]} else: _update_username_role(organization, username, role_cls) elif request.method == 'DELETE': data, status_code = _remove_username_to_organization( organization, username) if status_code in [status.HTTP_200_OK, status.HTTP_201_CREATED]: members = get_organization_members(organization) data = [u.username for u in members] return Response(data, status=status_code)
def get_org_permissions(self, obj): members = get_organization_members(obj) if obj else [] return [{ 'user': u.username, 'role': get_role_in_org(u, obj) } for u in members]
def get_users(self, obj): members = get_organization_members(obj) if obj else [] return [{ 'user': u.username, 'role': get_role_in_org(u, obj), 'first_name': u.first_name, 'last_name': u.last_name, 'gravatar': u.profile.gravatar, 'metadata': u.profile.metadata, } for u in members]
def get_org_permissions(self, obj): members = get_organization_members(obj) if obj else [] return [{ 'user': u.username, 'role': get_role_in_org(u, obj), 'first_name': u.first_name, 'last_name': u.last_name, 'gravatar': u.profile.gravatar, 'metadata': u.profile.metadata, } for u in members]
def get_users(self, obj): # pylint: disable=no-self-use """ Return organization members. """ members = get_organization_members(obj) if obj else [] return [{ 'user': u.username, 'role': get_role_in_org(u, obj), 'first_name': u.first_name, 'last_name': u.last_name, 'gravatar': u.profile.gravatar, } for u in members]
def members(self, request, *args, **kwargs): organization = self.get_object() status_code = status.HTTP_200_OK data = [] username = request.DATA.get('username') or request.QUERY_PARAMS.get( 'username') if request.method in ['DELETE', 'POST'] and not username: status_code = status.HTTP_400_BAD_REQUEST data = {'username': [_(u"This field is required.")]} elif request.method == 'POST': data, status_code = _add_username_to_organization( organization, username) elif request.method == 'DELETE': data, status_code = _remove_username_to_organization( organization, username) if status_code in [status.HTTP_200_OK, status.HTTP_201_CREATED]: members = get_organization_members(organization) data = [u.username for u in members] return Response(data, status=status_code)
def members(self, request, *args, **kwargs): organization = self.get_object() status_code = status.HTTP_200_OK data = [] username = request.data.get('username') or request.query_params.get( 'username') if request.method in ['DELETE', 'POST', 'PUT'] and not username: status_code = status.HTTP_400_BAD_REQUEST data = {'username': [_(u"This field is required.")]} elif request.method == 'POST': data, status_code = _add_username_to_organization( organization, username) if ('email_msg' in request.data or 'email_msg' in request.query_params) \ and status_code == 201: _compose_send_email(request, organization, username) if 'role' in request.data: status_code, data = _check_set_role(request, organization, username) elif request.method == 'PUT': status_code, data = _check_set_role(request, organization, username, required=True) elif request.method == 'DELETE': data, status_code = _remove_username_to_organization( organization, username) if status_code in [status.HTTP_200_OK, status.HTTP_201_CREATED]: members = get_organization_members(organization) data = [u.username for u in members] self.etag_data = json.dumps(data) return Response(data, status=status_code)
def members(self, request, *args, **kwargs): organization = self.get_object() status_code = status.HTTP_200_OK data = [] username = request.DATA.get('username') or request.QUERY_PARAMS.get( 'username') if request.method in ['DELETE', 'POST', 'PUT'] and not username: status_code = status.HTTP_400_BAD_REQUEST data = {'username': [_(u"This field is required.")]} elif request.method == 'POST': data, status_code = _add_username_to_organization( organization, username) if ('email_msg' in request.DATA or 'email_msg' in request.QUERY_PARAMS) \ and status_code == 201: _compose_send_email(request, organization, username) if 'role' in request.DATA: status_code, data = _check_set_role(request, organization, username) elif request.method == 'PUT': status_code, data = _check_set_role(request, organization, username, required=True) elif request.method == 'DELETE': data, status_code = _remove_username_to_organization( organization, username) if status_code in [status.HTTP_200_OK, status.HTTP_201_CREATED]: members = get_organization_members(organization) data = [u.username for u in members] return Response(data, status=status_code)
def members(self, request, *args, **kwargs): organization = self.get_object() self.headers = merge_dicts( self.headers, last_modified_header(get_date(organization, 'joined'))) status_code = status.HTTP_200_OK data = [] username = request.DATA.get('username') or request.QUERY_PARAMS.get( 'username') if request.method in ['DELETE', 'POST', 'PUT'] and not username: status_code = status.HTTP_400_BAD_REQUEST data = {'username': [_(u"This field is required.")]} elif request.method == 'POST': data, status_code = _add_username_to_organization( organization, username) elif request.method == 'PUT': role = request.DATA.get('role') role_cls = ROLES.get(role) if not role or not role_cls: status_code = status.HTTP_400_BAD_REQUEST message = (_(u"'%s' is not a valid role." % role) if role else _(u"This field is required.")) data = {'role': [message]} else: _update_username_role(organization, username, role_cls) elif request.method == 'DELETE': data, status_code = _remove_username_to_organization( organization, username) if status_code in [status.HTTP_200_OK, status.HTTP_201_CREATED]: members = get_organization_members(organization) data = [u.username for u in members] return Response(data, status=status_code)
def get_users(self, obj): # pylint: disable=no-self-use """ Return organization members. """ def create_user_list(user_list): return [{ 'user': u.username, 'role': get_role_in_org(u, obj), 'first_name': u.first_name, 'last_name': u.last_name, 'gravatar': u.profile.gravatar } for u in user_list] members = get_organization_members(obj) if obj else [] owners = get_organization_owners(obj) if obj else [] if owners and members: members = members.exclude( username__in=[user.username for user in owners]) members_list = create_user_list(members) owners_list = create_user_list(owners) return owners_list + members_list
def data(self): organization = self.validated_data.get("organization") members = get_organization_members(organization) return [u.username for u in members]