def get(self): filter_criterion = self.request.get('filter_criterion') if filter_criterion == feconf.USER_FILTER_CRITERION_ROLE: role = self.request.get(feconf.USER_FILTER_CRITERION_ROLE) users_by_role = { username: role for username in user_services.get_usernames_by_role(role) } role_services.log_role_query(self.user_id, feconf.ROLE_ACTION_VIEW_BY_ROLE, role=role) self.render_json(users_by_role) elif filter_criterion == feconf.USER_FILTER_CRITERION_USERNAME: username = self.request.get(feconf.USER_FILTER_CRITERION_USERNAME) user_id = user_services.get_user_id_from_username(username) role_services.log_role_query(self.user_id, feconf.ROLE_ACTION_VIEW_BY_USERNAME, username=username) if user_id is None: raise self.InvalidInputException( 'User with given username does not exist.') user_role_dict = { username: user_services.get_user_role_from_id(user_id) } self.render_json(user_role_dict) else: raise self.InvalidInputException( 'Invalid filter criterion to view roles.')
def post(self): username = self.payload.get('username') role = self.payload.get('role') topic_id = self.payload.get('topic_id') user_id = user_services.get_user_id_from_username(username) if user_id is None: raise self.InvalidInputException( 'User with given username does not exist.') if (user_services.get_user_role_from_id(user_id) == feconf.ROLE_ID_TOPIC_MANAGER): topic_services.deassign_user_from_all_topics( user_services.get_system_user(), user_id) user_services.update_user_role(user_id, role) role_services.log_role_query(self.user_id, feconf.ROLE_ACTION_UPDATE, role=role, username=username) if topic_id: user = user_services.UserActionsInfo(user_id) topic_services.assign_role(user_services.get_system_user(), user, topic_domain.ROLE_MANAGER, topic_id) self.render_json({})
def get(self): view_method = self.request.get('method') if view_method == feconf.VIEW_METHOD_ROLE: role = self.request.get(feconf.VIEW_METHOD_ROLE) users_by_role = { username: role for username in user_services.get_usernames_by_role(role) } role_services.log_role_query(self.user_id, feconf.ROLE_ACTION_VIEW_BY_ROLE, role=role) self.render_json(users_by_role) elif view_method == feconf.VIEW_METHOD_USERNAME: username = self.request.get(feconf.VIEW_METHOD_USERNAME) user_id = user_services.get_user_id_from_username(username) role_services.log_role_query(self.user_id, feconf.ROLE_ACTION_VIEW_BY_USERNAME, username=username) if user_id is None: raise self.InvalidInputException( 'User with given username does not exist.') user_role_dict = { username: user_services.get_user_role_from_id(user_id) } self.render_json(user_role_dict) else: raise self.InvalidInputException('Invalid method to view roles.')
def test_log_role_query(self) -> None: self.assertEqual( gae_models.RoleQueryAuditModel.has_reference_to_user_id( 'TEST_USER'), False) role_services.log_role_query('TEST_USER', feconf.ROLE_ACTION_ADD, role='GUEST') self.assertEqual( gae_models.RoleQueryAuditModel.has_reference_to_user_id( 'TEST_USER'), True)
def post(self): username = self.payload.get('username') role = self.payload.get('role') user_id = user_services.get_user_id_from_username(username) if user_id is None: raise self.InvalidInputException( 'User with given username does not exist.') user_services.update_user_role(user_id, role) role_services.log_role_query(self.user_id, feconf.ROLE_ACTION_UPDATE, role=role, username=username) self.render_json({})
def post(self) -> None: """Handles POST requests.""" username = self.normalized_payload.get('username') role = self.normalized_payload.get('role') user_id = user_services.get_user_id_from_username(username) if user_id is None: raise self.InvalidInputException( 'User with given username does not exist.') user_services.add_user_role(user_id, role) role_services.log_role_query( self.user_id, feconf.ROLE_ACTION_ADD, role=role, username=username) self.render_json({})
def get(self): filter_criterion = self.normalized_request.get( 'filter_criterion') if filter_criterion == feconf.USER_FILTER_CRITERION_ROLE: role = self.normalized_request.get( feconf.USER_FILTER_CRITERION_ROLE) users_by_role = { username: role for username in user_services.get_usernames_by_role(role) } role_services.log_role_query( self.user_id, feconf.ROLE_ACTION_VIEW_BY_ROLE, role=role) self.render_json(users_by_role) elif filter_criterion == feconf.USER_FILTER_CRITERION_USERNAME: username = self.normalized_request.get( feconf.USER_FILTER_CRITERION_USERNAME) user_id = user_services.get_user_id_from_username(username) role_services.log_role_query( self.user_id, feconf.ROLE_ACTION_VIEW_BY_USERNAME, username=username) if user_id is None: raise self.InvalidInputException( 'User with given username does not exist.') user_settings = user_services.get_user_settings(user_id) user_roles = user_settings.roles managed_topic_ids = [] if feconf.ROLE_ID_TOPIC_MANAGER in user_roles: managed_topic_ids = [ rights.id for rights in topic_fetchers.get_topic_rights_with_user(user_id)] user_roles_dict = { 'roles': user_roles, 'managed_topic_ids': managed_topic_ids, 'banned': user_settings.banned } self.render_json(user_roles_dict)