def update_moderator_ids(): """Refresh the list of moderator user_ids based on the emails entered.""" moderator_emails_config = Registry.get_config_property('moderator_emails') if not moderator_emails_config: return [] moderator_ids = [] for email in moderator_emails_config.value: user_id = user_services.get_user_id_from_email(email) if user_id is not None: moderator_ids.append(user_id) else: raise Exception('Bad moderator email: %s' % email) return moderator_ids
def update_admin_ids(): """Refresh the list of admin user_ids based on the emails entered.""" admin_emails_config = Registry.get_config_property('admin_emails') if not admin_emails_config: return [] admin_ids = [] for email in admin_emails_config.value: user_id = user_services.get_user_id_from_email(email) if user_id is not None: admin_ids.append(user_id) else: raise Exception('Bad admin email: %s' % email) return admin_ids
def update_moderator_ids(): moderator_emails_config = Registry.get_config_property( 'moderator_emails') if not moderator_emails_config: return [] moderator_ids = [] for email in moderator_emails_config.value: user_id = user_services.get_user_id_from_email(email) if user_id is not None: moderator_ids.append(user_id) else: raise Exception('Bad moderator email: %s' % email) return moderator_ids
def update_admin_ids(): admin_emails_config = Registry.get_config_property( 'admin_emails') if not admin_emails_config: return [] admin_ids = [] for email in admin_emails_config.value: user_id = user_services.get_user_id_from_email(email) if user_id is not None: admin_ids.append(user_id) else: raise Exception('Bad admin email: %s' % email) return admin_ids
def put(self, exploration_id): """Updates the editing rights for the given exploration.""" exploration = exp_services.get_exploration_by_id(exploration_id) version = self.payload.get('version') _require_valid_version(version, exploration.version) is_public = self.payload.get('is_public') is_publicized = self.payload.get('is_publicized') is_community_owned = self.payload.get('is_community_owned') new_member_email = self.payload.get('new_member_email') new_member_role = self.payload.get('new_member_role') if new_member_email: if not rights_manager.Actor(self.user_id).can_modify_roles( exploration_id): raise self.UnauthorizedUserException( 'Only an owner of this exploration can add or change ' 'roles.') new_member_id = user_services.get_user_id_from_email( new_member_email) if new_member_id is None: raise Exception( 'Sorry, we could not find a user with this email address.') user_services.get_or_create_user(new_member_id, new_member_email) rights_manager.assign_role( self.user_id, exploration_id, new_member_id, new_member_role) elif is_public is not None: exploration = exp_services.get_exploration_by_id(exploration_id) if is_public: try: exploration.validate(strict=True) except utils.ValidationError as e: raise self.InvalidInputException(e) rights_manager.publish_exploration( self.user_id, exploration_id) else: rights_manager.unpublish_exploration( self.user_id, exploration_id) elif is_publicized is not None: exploration = exp_services.get_exploration_by_id(exploration_id) if is_publicized: try: exploration.validate(strict=True) except utils.ValidationError as e: raise self.InvalidInputException(e) rights_manager.publicize_exploration( self.user_id, exploration_id) else: rights_manager.unpublicize_exploration( self.user_id, exploration_id) elif is_community_owned: exploration = exp_services.get_exploration_by_id(exploration_id) try: exploration.validate(strict=True) except utils.ValidationError as e: raise self.InvalidInputException(e) rights_manager.release_ownership(self.user_id, exploration_id) else: raise self.InvalidInputException( 'No change was made to this exploration.') self.render_json({ 'rights': rights_manager.get_exploration_rights( exploration_id).to_dict() })