Ejemplo n.º 1
0
def run_user_deletion_completion(pending_deletion_request):
    """Run the user deletion verification.

    Args:
        pending_deletion_request: PendingDeletionRequest. The domain object for
            the user being verified.

    Returns:
        str. The outcome of the verification.
    """
    # If deletion_complete is False the UserDeletionOneOffJob wasn't yet run
    # for the user. The verification will be done in the next run of
    # FullyCompleteUserDeletionOneOffJob.
    if not pending_deletion_request.deletion_complete:
        return wipeout_domain.USER_VERIFICATION_NOT_DELETED
    elif verify_user_deleted(pending_deletion_request.user_id):
        _delete_user_models_with_delete_at_end_policy(
            pending_deletion_request.user_id)
        user_models.DeletedUserModel(
            id=pending_deletion_request.user_id
        ).put()
        if pending_deletion_request.normalized_long_term_username is not None:
            user_services.save_deleted_username(
                pending_deletion_request.normalized_long_term_username)
        email_manager.send_account_deleted_email(
            pending_deletion_request.user_id, pending_deletion_request.email)
        return wipeout_domain.USER_VERIFICATION_SUCCESS
    else:
        pending_deletion_request.deletion_complete = False
        save_pending_deletion_requests([pending_deletion_request])
        return wipeout_domain.USER_VERIFICATION_FAILURE
Ejemplo n.º 2
0
def run_user_deletion_completion(pending_deletion_request):
    """Run the user deletion verification.

    Args:
        pending_deletion_request: PendingDeletionRequest. The domain object for
            the user being verified.

    Returns:
        str. The outcome of the verification.
    """

    if not pending_deletion_request.deletion_complete:
        return wipeout_domain.USER_VERIFICATION_NOT_DELETED
    elif verify_user_deleted(pending_deletion_request.user_id):
        _delete_user_models_with_delete_after_verification_policy(
            pending_deletion_request.user_id)
        user_models.DeletedUserModel(
            id=pending_deletion_request.user_id
        ).put()
        email_manager.send_account_deleted_email(
            pending_deletion_request.user_id, pending_deletion_request.email)
        return wipeout_domain.USER_VERIFICATION_SUCCESS
    else:
        pending_deletion_request.deletion_complete = False
        save_pending_deletion_requests([pending_deletion_request])
        return wipeout_domain.USER_VERIFICATION_FAILURE
Ejemplo n.º 3
0
def verify_user_deleted(pending_deletion_model):
    """Verify that all the models for user specified in pending_deletion_model
    are deleted.

    Args:
        pending_deletion_model: PendingDeletionRequestModel.

    Returns:
        bool. True if all the models were correctly deleted, False otherwise.
    """
    if _verify_user_models_deleted(pending_deletion_model.id):
        pending_deletion_model.delete()
        email_manager.send_account_deleted_email(pending_deletion_model.id,
                                                 pending_deletion_model.email)
        return True
    else:
        pending_deletion_model.deletion_complete = False
        pending_deletion_model.put()
        return False
Ejemplo n.º 4
0
 def map(pending_deletion_request_model):
     """Implements the map function for this job."""
     # If deletion_complete is False the UserDeletionOneOffJob wasn't yet run
     # for the user. The verification will be done in the next run of
     # FullyCompleteUserDeletionOneOffJob.
     pending_deletion_request = wipeout_service.get_pending_deletion_request(
         pending_deletion_request_model.id)
     if not pending_deletion_request.deletion_complete:
         yield ('NOT DELETED', pending_deletion_request.user_id)
     elif wipeout_service.verify_user_deleted(pending_deletion_request):
         wipeout_service.delete_pending_deletion_request(
             pending_deletion_request.user_id)
         email_manager.send_account_deleted_email(
             pending_deletion_request.user_id,
             pending_deletion_request.email)
         yield ('SUCCESS', pending_deletion_request.user_id)
     else:
         pending_deletion_request.deletion_complete = False
         wipeout_service.save_pending_deletion_requests(
             [pending_deletion_request])
         yield ('FAILURE', pending_deletion_request.user_id)