def add(phone, username, password): hashed = hashlib.sha512() hashed.update(password.encode('utf-8')) user = User(phone=phone, username=username, password=hashed.hexdigest()) user.save()
def test_60_addUser(self): UserOperations.add('17605123977', 'muffin', 'nopassword') users = User.objects(phone='17605123977') self.assertEqual(len(users), 1) self.assertEqual(users[0].username, 'muffin') UserTests.saved_id = users[0].id UserTests.saved_password = users[0].password
def modify_password(phone, new_password): users = User.objects(phone=phone) if len(users) == 1: user = users.first() hashed = hashlib.sha512() hashed.update(new_password.encode('utf-8')) user.password = hashed.hexdigest() user.save()
def post(self): try: body = request.get_json() user = User(**body) user.password = self.hash_password(user.password) user.save() id = user.id return {'id': str(id)}, 201 except ValidationError: return {"Error": "Request is missing required fields"}, 400 except FieldDoesNotExist: return {"Error": "Invalid field"}, 400 except NotUniqueError: return { "Error": "User with given email address already exists" }, 400 except Exception as e: return {"Error": str(e)}, 500
def verify_password(phone, password): users = User.objects(phone=phone) if len(users) == 1: user = users.first() hashed = hashlib.sha512() hashed.update(password.encode('utf-8')) if user.password == hashed.hexdigest(): return True return False
def modify_user(phone, username, picture_path): users = User.objects(phone=phone) if len(users) == 1: user = users.first() user.username = username if user.picture_path is not None: if os.path.isfile(user.picture_path): os.remove(user.picture_path) user.picture_path = picture_path user.save()
def test_65_deleteUser(self): UserOperations.delete('15850208731') users = User.objects(phone='15850208731') self.assertEqual(len(users), 0)
def test_64_modifyPhone(self): UserOperations.modify_phone(UserTests.saved_id, '15850208731') users = User.objects(id=UserTests.saved_id) self.assertEqual(len(users), 1) self.assertEqual(users[0].phone, '15850208731')
def test_62_modifyPassword(self): UserOperations.modify_password('17605123977', 'new_password') users = User.objects(phone='17605123977') self.assertEqual(len(users), 1) self.assertNotEqual(users[0].password, UserTests.saved_password)
def test_61_modifyUser(self): UserOperations.modify_user('17605123977', 'marvin', 'web/my.png') users = User.objects(phone='17605123977') self.assertEqual(len(users), 1) self.assertEqual(users[0].username, 'marvin') self.assertEqual(users[0].picture_path, 'web/my.png')
def modify_phone(_id, new_phone): users = User.objects(id=_id) if len(users) == 1: user = users.first() user.phone = new_phone user.save()
def delete(phone): users = User.objects(phone=phone) if len(users) == 1: user = users.first() user.delete()