Пример #1
0
    def test_delete_association_when_it_is_present(self) -> None:
        self.assertFalse(
            auth_services.verify_external_auth_associations_are_deleted(
                self.full_user_id))

        auth_services.delete_external_auth_associations(self.full_user_id)

        self.assertTrue(
            auth_services.verify_external_auth_associations_are_deleted(
                self.full_user_id))
Пример #2
0
 def test_delete_association_when_it_is_missing_does_not_raise(
         self) -> None:
     # Should not raise.
     auth_services.delete_external_auth_associations('does_not_exist')
Пример #3
0
def delete_user(pending_deletion_request):
    """Delete all the models for user specified in pending_deletion_request
    on the basis of the user role specified in the request.

    Args:
        pending_deletion_request: PendingDeletionRequest. The pending deletion
            request object for which to delete or pseudonymize all the models.
    """
    user_id = pending_deletion_request.user_id
    user_role = pending_deletion_request.role

    auth_services.delete_external_auth_associations(user_id)

    _delete_models(user_id, models.NAMES.auth)
    _delete_models(user_id, models.NAMES.user)
    _pseudonymize_config_models(pending_deletion_request)
    _delete_models(user_id, models.NAMES.feedback)
    _delete_models(user_id, models.NAMES.improvements)
    if user_role != feconf.ROLE_ID_LEARNER:
        remove_user_from_activities_with_associated_rights_models(
            pending_deletion_request.user_id)
        _pseudonymize_feedback_models(pending_deletion_request)
        _pseudonymize_suggestion_models(pending_deletion_request)
        _pseudonymize_activity_models_without_associated_rights_models(
            pending_deletion_request, models.NAMES.question,
            question_models.QuestionSnapshotMetadataModel,
            question_models.QuestionCommitLogEntryModel, 'question_id')
        _pseudonymize_activity_models_without_associated_rights_models(
            pending_deletion_request, models.NAMES.skill,
            skill_models.SkillSnapshotMetadataModel,
            skill_models.SkillCommitLogEntryModel, 'skill_id')
        _pseudonymize_activity_models_without_associated_rights_models(
            pending_deletion_request, models.NAMES.story,
            story_models.StorySnapshotMetadataModel,
            story_models.StoryCommitLogEntryModel, 'story_id')
        _pseudonymize_activity_models_without_associated_rights_models(
            pending_deletion_request, models.NAMES.subtopic,
            subtopic_models.SubtopicPageSnapshotMetadataModel,
            subtopic_models.SubtopicPageCommitLogEntryModel,
            'subtopic_page_id')
        _pseudonymize_activity_models_with_associated_rights_models(
            pending_deletion_request, models.NAMES.exploration,
            exp_models.ExplorationSnapshotMetadataModel,
            exp_models.ExplorationRightsSnapshotMetadataModel,
            exp_models.ExplorationRightsSnapshotContentModel,
            exp_models.ExplorationCommitLogEntryModel, 'exploration_id',
            feconf.EXPLORATION_RIGHTS_CHANGE_ALLOWED_COMMANDS,
            ('owner_ids', 'editor_ids', 'voice_artist_ids', 'viewer_ids'))
        _remove_user_id_from_contributors_in_summary_models(
            user_id, exp_models.ExpSummaryModel)
        _pseudonymize_activity_models_with_associated_rights_models(
            pending_deletion_request, models.NAMES.collection,
            collection_models.CollectionSnapshotMetadataModel,
            collection_models.CollectionRightsSnapshotMetadataModel,
            collection_models.CollectionRightsSnapshotContentModel,
            collection_models.CollectionCommitLogEntryModel, 'collection_id',
            feconf.COLLECTION_RIGHTS_CHANGE_ALLOWED_COMMANDS,
            ('owner_ids', 'editor_ids', 'voice_artist_ids', 'viewer_ids'))
        _remove_user_id_from_contributors_in_summary_models(
            user_id, collection_models.CollectionSummaryModel)
        _pseudonymize_activity_models_with_associated_rights_models(
            pending_deletion_request, models.NAMES.topic,
            topic_models.TopicSnapshotMetadataModel,
            topic_models.TopicRightsSnapshotMetadataModel,
            topic_models.TopicRightsSnapshotContentModel,
            topic_models.TopicCommitLogEntryModel, 'topic_id',
            feconf.TOPIC_RIGHTS_CHANGE_ALLOWED_COMMANDS, ('manager_ids', ))
    _delete_models(user_id, models.NAMES.email)