def test_user_get_user_by_key_succeed(self): usr = User('*****@*****.**') usr.set_nickname('Somebodyguks') usr.set_user_id('SomeUserid1234guks') key = ps.add_user(usr) self.assertEqual(ps.get_user_by_key(key).email(), usr.email())
def test_user_modify_user_by_id_succeed(self): usr = User('*****@*****.**') usr.set_nickname('Somebodymids') usr.set_user_id('SomeUserid1234mids') ps.add_user(usr) newusr = User('*****@*****.**') newusr.set_nickname('SomebodyElsemids') newusr.set_user_id('SomeUotherId3878mids') key = ps.modify_user_by_id('SomeUserid1234mids',newusr) self.assertEqual(ps.get_user_by_key(key).email(), newusr.email())
def test_user_get_user_by_key_fail(self): fakeKey = ndb.Key("doesntExist","noReally") self.assertIsNone(ps.get_user_by_key(fakeKey))
def file_permissions_json(request): authed_user = auth.get_current_user() if authed_user is None: return __unauthed_response() user_key = ps.get_user_key_by_id(authed_user.user_id()) json_response = { 'success' : False, 'users' : [] } try: list_req = json.loads(request.raw_post_data) except ValueError: json_response.update({'error' : 'Invalid request payload.'}) return HttpResponse(json.dumps(json_response), content_type="application/json") if 'filename' not in list_req: json_response.update({'error' : 'Incomplete request.'}) return HttpResponse(json.dumps(json_response), content_type="application/json") filename = list_req['filename'] file_entry = ps.get_file_by_name(DATA_BUCKET + '/' + filename) if file_entry is None: json_response.update( { 'error' : 'File does not exist.' } ) return HttpResponse(json.dumps(json_response), content_type="application/json") fp_entry = ps.get_user_file_permissions(file_entry.key, user_key) if fp_entry is None: json_response.update( { 'error' : 'Permission denied.' } ) return HttpResponse(json.dumps(json_response), content_type="application/json") permissions_list = ps.get_file_permissions_list(file_entry.key) if permissions_list is None: json_response.update( { 'error' : 'Permission could not be retrieved.' } ) return HttpResponse(json.dumps(json_response), content_type="application/json") for perm in permissions_list: new_perm = {} user = ps.get_user_by_key(perm.user_key) if user is not None: nickname = user.nickname() email = user.email() user_found = True else: nickname = 'Unknown' email = 'unknown' user_found = False new_perm.update( { 'nickname' : nickname, 'userFound' : user_found, 'email' : email, 'isMe' : (perm.user_key == user_key), 'permissions' : { 'read' : perm.read, 'write' : perm.write, 'fullControl' : perm.full_control } } ) json_response['users'].append(new_perm) json_response.update({ 'success' : True }) return HttpResponse(json.dumps(json_response), content_type="application/json")