def get(self, author_username): """Handles GET requests.""" user_settings = ( user_services.get_user_settings_from_username(author_username)) if user_settings is None: raise self.PageNotFoundException( Exception('User with given username does not exist')) if not any(role in user_settings.roles for role in [BLOG_ADMIN, BLOG_POST_EDITOR]): raise self.PageNotFoundException( Exception('The given user is not a blog post author.')) blog_post_summaries = ( blog_services.get_published_blog_post_summaries_by_user_id( user_settings.user_id, feconf.MAX_NUM_CARDS_TO_DISPLAY_ON_AUTHOR_SPECIFIC_BLOG_POST_PAGE)) #pylint: disable=line-too-long blog_post_summary_dicts = [] if blog_post_summaries: blog_post_summary_dicts = ( _get_blog_card_summary_dicts_for_homepage(blog_post_summaries)) self.values.update({ 'author_name': author_username, 'profile_picture_data_url': (user_settings.profile_picture_data_url), 'author_bio': user_settings.user_bio, 'summary_dicts': blog_post_summary_dicts }) self.render_json(self.values)
def put(self): username = self.normalized_payload.get('username') action = self.normalized_payload.get('action') topic_id = self.normalized_payload.get('topic_id') user_settings = user_services.get_user_settings_from_username(username) if user_settings is None: raise self.InvalidInputException( 'User with given username does not exist.') user_id = user_settings.user_id if action == 'assign': if not feconf.ROLE_ID_TOPIC_MANAGER in user_settings.roles: user_services.add_user_role(user_id, feconf.ROLE_ID_TOPIC_MANAGER) topic_manager = user_services.get_user_actions_info(user_id) topic_services.assign_role(user_services.get_system_user(), topic_manager, topic_domain.ROLE_MANAGER, topic_id) elif action == 'deassign': topic_services.deassign_manager_role_from_topic( user_services.get_system_user(), user_id, topic_id) if not topic_fetchers.get_topic_rights_with_user(user_id): user_services.remove_user_role(user_id, feconf.ROLE_ID_TOPIC_MANAGER) self.render_json({})
def get(self, username: str) -> None: """Validates access to profile page.""" user_settings = user_services.get_user_settings_from_username( # type: ignore[no-untyped-call] username) if not user_settings: raise self.PageNotFoundException
def get(self, username): """Handles GET requests for the publicly-viewable profile page.""" user_settings = user_services.get_user_settings_from_username(username) if not user_settings: raise self.PageNotFoundException self.render_template('profile-page.mainpage.html')
def get(self, username): """Handles GET requests.""" if not username: raise self.PageNotFoundException user_settings = user_services.get_user_settings_from_username(username) if not user_settings: raise self.PageNotFoundException created_exp_summary_dicts = [] edited_exp_summary_dicts = [] subscriber_ids = subscription_services.get_all_subscribers_of_creator( user_settings.user_id) is_already_subscribed = (self.user_id in subscriber_ids) is_user_visiting_own_profile = (self.user_id == user_settings.user_id) user_contributions = user_services.get_user_contributions( user_settings.user_id) if user_contributions: created_exp_summary_dicts = ( summary_services. get_displayable_exp_summary_dicts_matching_ids( user_contributions.created_exploration_ids)) edited_exp_summary_dicts = ( summary_services. get_displayable_exp_summary_dicts_matching_ids( user_contributions.edited_exploration_ids)) profile_is_of_current_user = (self.username == username) self.values.update({ 'profile_is_of_current_user': profile_is_of_current_user, 'profile_username': user_settings.username, 'user_bio': user_settings.user_bio, 'subject_interests': user_settings.subject_interests, 'first_contribution_msec': (user_settings.first_contribution_msec if user_settings.first_contribution_msec else None), 'profile_picture_data_url': user_settings.profile_picture_data_url, 'user_impact_score': user_services.get_user_impact_score(user_settings.user_id), 'created_exp_summary_dicts': created_exp_summary_dicts, 'edited_exp_summary_dicts': edited_exp_summary_dicts, 'is_already_subscribed': is_already_subscribed, 'is_user_visiting_own_profile': is_user_visiting_own_profile }) self.render_json(self.values)
def get(self, username): """Handles GET requests for the publicly-viewable profile page.""" if not username: raise self.PageNotFoundException user_settings = user_services.get_user_settings_from_username(username) if not user_settings: raise self.PageNotFoundException self.values.update({"nav_mode": feconf.NAV_MODE_PROFILE, "PROFILE_USERNAME": username}) self.render_template("profile/profile.html")
def get(self, username): """Handles GET requests for the publicly-viewable profile page.""" user_settings = user_services.get_user_settings_from_username(username) if not user_settings: raise self.PageNotFoundException self.values.update({ 'PROFILE_USERNAME': user_settings.username, }) self.render_template('pages/profile/profile.html')
def get(self, username): """Handles GET requests for the publicly-viewable profile page.""" if not username: raise self.PageNotFoundException user_settings = user_services.get_user_settings_from_username(username) if not user_settings: raise self.PageNotFoundException self.values.update({ 'nav_mode': feconf.NAV_MODE_PROFILE, 'user_bio': user_settings.user_bio, }) self.render_template('profile/profile.html')
def get(self, username): """Handles GET requests for the publicly-viewable profile page.""" if not username: raise self.PageNotFoundException user_settings = user_services.get_user_settings_from_username(username) if not user_settings: raise self.PageNotFoundException self.values.update({ 'nav_mode': feconf.NAV_MODE_PROFILE, 'user_username': username, 'user_bio': user_settings.user_bio, 'user_pic_data_url': user_settings.profile_picture_data_url }) self.render_template('profile/profile.html')
def get(self, username): """Handles GET requests.""" if not username: raise self.PageNotFoundException user_settings = user_services.get_user_settings_from_username(username) if not user_settings: raise self.PageNotFoundException self.values.update({ 'user_bio': user_settings.user_bio, 'first_contribution_datetime': ( utils.get_time_in_millisecs(user_settings.first_contribution_datetime) if user_settings.first_contribution_datetime else None), 'profile_picture_data_url': user_settings.profile_picture_data_url, }) self.render_json(self.values)
def delete(self): if self.email != feconf.ADMIN_EMAIL_ADDRESS: raise self.UnauthorizedUserException( 'Only the default system admin can manage super admins') username = self.normalized_request.get('username') user_settings = user_services.get_user_settings_from_username(username) if user_settings is None: raise self.InvalidInputException('No such user exists') if user_settings.email == feconf.ADMIN_EMAIL_ADDRESS: raise self.InvalidInputException( 'Cannot revoke privileges from the default super admin account') auth_services.revoke_super_admin_privileges(user_settings.user_id) self.render_json(self.values)
def get(self, username): """Handles GET requests.""" if not username: raise self.PageNotFoundException user_settings = user_services.get_user_settings_from_username(username) if not user_settings: raise self.PageNotFoundException created_exp_summary_dicts = [] edited_exp_summary_dicts = [] subscriber_ids = subscription_services.get_all_subscribers_of_creator( user_settings.user_id) is_already_subscribed = (self.user_id in subscriber_ids) is_user_visiting_own_profile = (self.user_id == user_settings.user_id) user_contributions = user_services.get_user_contributions( user_settings.user_id) if user_contributions: created_exp_summary_dicts = ( summary_services.get_displayable_exp_summary_dicts_matching_ids( user_contributions.created_exploration_ids)) edited_exp_summary_dicts = ( summary_services.get_displayable_exp_summary_dicts_matching_ids( user_contributions.edited_exploration_ids)) profile_is_of_current_user = (self.username == username) self.values.update({ 'profile_is_of_current_user': profile_is_of_current_user, 'profile_username': user_settings.username, 'user_bio': user_settings.user_bio, 'subject_interests': user_settings.subject_interests, 'first_contribution_msec': ( user_settings.first_contribution_msec if user_settings.first_contribution_msec else None), 'profile_picture_data_url': user_settings.profile_picture_data_url, 'user_impact_score':user_services.get_user_impact_score( user_settings.user_id), 'created_exp_summary_dicts': created_exp_summary_dicts, 'edited_exp_summary_dicts': edited_exp_summary_dicts, 'is_already_subscribed': is_already_subscribed, 'is_user_visiting_own_profile': is_user_visiting_own_profile }) self.render_json(self.values)
def put(self): username = self.payload.get('username') role = self.payload.get('role') user_settings = user_services.get_user_settings_from_username(username) if user_settings is None: raise self.InvalidInputException( 'User with given username does not exist.') if role == feconf.ROLE_ID_TOPIC_MANAGER: # The Topic manager role assignment is handled via # TopicManagerRoleHandler. raise self.InvalidInputException( 'Unsupported role for this handler.') user_services.add_user_role(user_settings.user_id, role) self.render_json({})
def test_searching_a_valid_user_to_invite(self): learner_group_services.create_learner_group('groupId', 'Group Title', 'Group Description', [self.owner_id], [], ['subtopic1'], []) params = { 'username': self.NEW_USER_USERNAME, 'learner_group_id': 'groupId' } response = self.get_json('/learner_group_search_student_handler', params=params) user_settings = user_services.get_user_settings_from_username( self.NEW_USER_USERNAME) self.assertEqual(response['username'], user_settings.username) self.assertEqual(response['profile_picture_data_url'], user_settings.profile_picture_data_url) self.assertEqual(response['error'], '') self.logout()
def get(self, username): """Handles GET requests.""" if not username: raise self.PageNotFoundException user_settings = user_services.get_user_settings_from_username(username) if not user_settings: raise self.PageNotFoundException created_exploration_summary_dicts = [] edited_exploration_summary_dicts = [] user_contributions = user_services.get_user_contributions( user_settings.user_id) if user_contributions: created_exploration_summary_dicts = ( summary_services. get_displayable_exp_summary_dicts_matching_ids( user_contributions.created_exploration_ids)) edited_exploration_summary_dicts = ( summary_services. get_displayable_exp_summary_dicts_matching_ids( user_contributions.edited_exploration_ids)) self.values.update({ 'user_bio': user_settings.user_bio, 'subject_interests': user_settings.subject_interests, 'first_contribution_msec': (user_settings.first_contribution_msec if user_settings.first_contribution_msec else None), 'profile_picture_data_url': user_settings.profile_picture_data_url, 'user_impact_score': user_services.get_user_impact_score(user_settings.user_id), 'created_exploration_summary_dicts': (created_exploration_summary_dicts), 'edited_exploration_summary_dicts': (edited_exploration_summary_dicts) }) self.render_json(self.values)
def get(self): """Handles GET requests.""" username: str = self.normalized_request.get('username') learner_group_id: str = self.normalized_request.get('learner_group_id') user_settings = user_services.get_user_settings_from_username(username) if user_settings is None: self.render_json({ 'username': username, 'profile_picture_data_url': '', 'error': ('User with username %s does not exist.' % username) }) return if self.username.lower() == username.lower(): self.render_json({ 'username': user_settings.username, 'profile_picture_data_url': '', 'error': 'You cannot invite yourself to the group' }) return (valid_invitation, error) = learner_group_services.can_user_be_invited( user_settings.user_id, user_settings.username, learner_group_id ) if not valid_invitation: self.render_json({ 'username': user_settings.username, 'profile_picture_data_url': '', 'error': error }) return self.render_json({ 'username': user_settings.username, 'profile_picture_data_url': user_settings.profile_picture_data_url, 'error': '' })
def get(self, username): """Handles GET requests.""" if not username: raise self.PageNotFoundException user_settings = user_services.get_user_settings_from_username(username) if not user_settings: raise self.PageNotFoundException self.values.update( { "user_bio": user_settings.user_bio, "first_contribution_datetime": ( utils.get_time_in_millisecs(user_settings.first_contribution_datetime) if user_settings.first_contribution_datetime else None ), "profile_picture_data_url": user_settings.profile_picture_data_url, } ) self.render_json(self.values)
def get(self, username): """Handles GET requests.""" if not username: raise self.PageNotFoundException user_settings = user_services.get_user_settings_from_username(username) if not user_settings: raise self.PageNotFoundException created_exploration_summary_dicts = [] edited_exploration_summary_dicts = [] user_contributions = user_services.get_user_contributions( user_settings.user_id) if user_contributions: created_exploration_summary_dicts = ( exp_services.get_displayable_exp_summary_dicts_matching_ids( user_contributions.created_exploration_ids, user_settings.user_id)) edited_exploration_summary_dicts = ( exp_services.get_displayable_exp_summary_dicts_matching_ids( user_contributions.edited_exploration_ids, user_settings.user_id)) self.values.update({ 'user_bio': user_settings.user_bio, 'subject_interests': user_settings.subject_interests, 'first_contribution_msec': ( user_settings.first_contribution_msec if user_settings.first_contribution_msec else None), 'profile_picture_data_url': user_settings.profile_picture_data_url, 'user_impact_score':user_services.get_user_impact_score( user_settings.user_id), 'created_exploration_summary_dicts': ( created_exploration_summary_dicts), 'edited_exploration_summary_dicts': ( edited_exploration_summary_dicts) }) self.render_json(self.values)