def setUp(self): # Creator self.username = "******" self.email = "*****@*****.**" self.password = "******" self.creator = User.objects.create_superuser(username=self.username, email_address=self.email, password=self.password) token = generate_token(self.creator) self.creator_token = 'Bearer {0}'.format(token.decode('utf-8')) # User self.username = "******" self.email = "*****@*****.**" self.password = "******" self.member = User.objects.create_user(username=self.username, email_address=self.email, password=self.password) token = generate_token(self.member) self.member_token = 'Bearer {0}'.format(token.decode('utf-8')) # Group response = self.client.post(url_prefix + '/group/', {"name": "testing group"}, HTTP_AUTHORIZATION=self.creator_token) self.group_id = response.data.setdefault('data', {}).get('id', '') self.url = "{}/group/{}/".format(url_prefix, self.group_id)
def setUp(self): self.url = url_prefix + '/group/' # Creator self.username = "******" self.email = "*****@*****.**" self.password = "******" self.creator = User.objects.create_superuser(username=self.username, email_address=self.email, password=self.password) token = generate_token(self.creator) self.creator_token = 'Bearer {0}'.format(token.decode('utf-8')) # A member username = "******" email = "*****@*****.**" password = "******" self.member = User.objects.create_user(username=username, email_address=email, password=password) token = generate_token(self.member) self.member_token = 'Bearer {0}'.format(token.decode('utf-8')) # Create a group response = self.client.post(url_prefix + '/group/', {"name": "testing group"}, HTTP_AUTHORIZATION=self.creator_token) self.group = Group.objects.get( id=response.data.get('data', {}).get('id')) self.url = "{}/group/{}/setting/".format(url_prefix, self.group.id) self.group.add_member(self.member)
def setUp(self): # Creator self.username = "******" self.email = "*****@*****.**" self.password = "******" self.creator = User.objects.create_superuser(username=self.username, email_address=self.email, password=self.password) token = generate_token(self.creator) self.creator_token = 'Bearer {0}'.format(token.decode('utf-8')) # User self.username = "******" self.email = "*****@*****.**" self.password = "******" self.user = User.objects.create_user(username=self.username, email_address=self.email, password=self.password) token = generate_token(self.user) self.user_token = 'Bearer {0}'.format(token.decode('utf-8')) # Member username = "******" email = "*****@*****.**" password = "******" member = User.objects.create_user(username=username, email_address=email, password=password) token = generate_token(member) self.member_token = 'Bearer {0}'.format(token.decode('utf-8')) # Create a Group response = self.client.post(url_prefix + '/group/', {"name": "testing group"}, HTTP_AUTHORIZATION=self.creator_token) self.group_id = response.data.get('data', {}).get('id', '') Group.objects.get(id=self.group_id).add_member(member) #self.url = "{}/group/{}/".format(url_prefix, self.group_id) # Create a post self.post = Post.objects.create_post( content='Need someone to eat lunch at pgp?', creator=self.creator, group=Group.objects.get(id=self.group_id)) self.post2 = Post.objects.create_post( content='Another post', creator=self.creator, group=Group.objects.get(id=self.group_id)) # Create a comment self.comment = Comment.objects.create_comment(content='OKAY', post=self.post, creator=self.creator) # Create another comment self.another_comment = Comment.objects.create_comment( content='not okay at all', post=self.post, creator=self.creator)
def setUp(self): self.url = url_prefix + '/batch/' self.username = "******" self.email = "*****@*****.**" self.password = "******" self.user = User.objects.create_superuser(username=self.username, email_address=self.email, password=self.password) token = generate_token(self.user) self.token = 'Bearer {0}'.format(token.decode('utf-8'))
def setUp(self): # Create a superuser username = "******" email = "*****@*****.**" password = "******" self.creator = User.objects.create_superuser(username=username, email_address=email, password=password) token = generate_token(self.creator) self.creator_token = 'Bearer {0}'.format(token.decode('utf-8')) # Create a member username = "******" email = "snake@in_my.boot" password = "******" self.member = User.objects.create_user(username=username, email_address=email, password=password) token = generate_token(self.member) self.member_token = 'Bearer {0}'.format(token.decode('utf-8')) # Create a Group response = self.client.post(url_prefix + '/group/', {"name": "testing group"}, HTTP_AUTHORIZATION=self.creator_token) self.group_id = response.data.get('data', {}).get('id', '') self.group = Group.objects.get(id=self.group_id) self.group.add_member(self.member) #self.url = "{}/group/{}/".format(url_prefix, self.group_id) # Create a post self.post = Post.objects.create_post( content='Stop talking shit, n***a', creator=self.creator, group=self.group) # Create a comment self.comment = Comment.objects.create_comment(content='F**k you s**t', post=self.post, creator=self.creator)
def test_view_all_members_as_non_member(self): username = "******" email = "*****@*****.**" password = "******" user = User.objects.create_user(username=username, email_address=email, password=password) token = generate_token(user) token = 'Bearer {0}'.format(token.decode('utf-8')) response = self.client.get("{}users/".format(self.url), HTTP_AUTHORIZATION=token) self.assertEqual(403, response.status_code)
def test_create_group_by_non_superuser(self): # Create a non-super user username = "******" email = "*****@*****.**" password = "******" user = User.objects.create_user(username=username, email_address=email, password=password) token = generate_token(user) token = 'Bearer {0}'.format(token.decode('utf-8')) # Create a group response = self.client.post(url_prefix + '/group/', {"name": "testing group"}, HTTP_AUTHORIZATION=token) self.assertEqual(403, response.status_code)
def test_delete_group_by_non_creator(self): # Create a group group_response = self.client.post( self.url, {"name": "testing group"}, HTTP_AUTHORIZATION=self.creator_token) group_id = str( group_response.data.setdefault('data', {}).get('id', '')) url = self.url + group_id + '/' # Creat a non-creator username = "******" email = "*****@*****.**" password = "******" user = User.objects.create_user(username=username, email_address=email, password=password) token = 'Bearer {0}'.format(generate_token(user).decode('utf-8')) response = self.client.delete(url, HTTP_AUTHORIZATION=token) self.assertEqual(403, response.status_code)
def get_token(self, user): token = generate_token(user) return "Bearer {0}".format(token.decode("utf-8"))
def get_token(self, user): token = generate_token(user) return 'Bearer {0}'.format(token.decode('utf-8'))
def login(request): """User login from SLS platform. An account on ClassBuzz for the user will be created.""" request_data = request.data if "user-id" not in request_data: return Response( {"error": 'Missing field "user-id" in the body of the request.'}, status=status.HTTP_400_BAD_REQUEST, ) user_id = request_data["user-id"] sls_user_data = get_sls_user_data(user_id) if not sls_user_data or "errors" in sls_user_data: return Response( {"error": "Failed to receive the user from SLS."}, status=status.HTTP_400_BAD_REQUEST, ) user_data = convert_sls_user_to_classbuzz( sls_user_data.get("data", {}).get("user", {}) ) if not user_data: return Response( {"error": "Unable to get the user from SLS."}, status=status.HTTP_400_BAD_REQUEST, ) # Pop out the unnessary attributes for User's creation groups = user_data.pop("groups", []) # If the SLS link is already exist, just return the user if User.objects.filter(sls_id=user_data["sls_id"]).exists(): try: user = User.objects.get(sls_id=user_data["sls_id"]) token = generate_token(user) except Exception as exc: return Response({"error": str(exc)}, status=status.HTTP_400_BAD_REQUEST) # Create all the groups that the user is in create_and_add_sls_user_to_his_groups(user, groups) serializer = UserSerializer(user) return Response({"data": {"user": serializer.data, "token": token}}) if ( user_data["email_address"].strip() != "" and User.objects.filter(email_address=user_data["email_address"]).exists() ): user = User.objects.get(email_address=user_data["email_address"]) del user_data["email_address"] for attr, value in user_data.items(): setattr(user, attr, value) try: user.save() token = generate_token(user) except Exception as exc: return Response({"error": str(exc)}, status=status.HTTP_400_BAD_REQUEST) # Create all the groups that the user is in create_and_add_sls_user_to_his_groups(user, groups) serializer = UserSerializer(user) return Response({"data": {"user": serializer.data, "token": token}}) # Create an account if the user has not registed under ClassBuzz create_user = User.objects.create_user if user_data.get("is_superuser", False): create_user = User.objects.create_superuser try: user = create_user(**user_data) token = generate_token(user) except Exception as exc: return Response({"error": str(exc)}, status=status.HTTP_400_BAD_REQUEST) # Create all the groups that the user is in create_and_add_sls_user_to_his_groups(user, groups) serializer = UserSerializer(user) return Response( {"data": {"user": serializer.data, "token": token}}, status=status.HTTP_200_OK )