def gdrive()

in gatekeeper.py [0:0]


def gdrive():
  try:
    cookie = request.elfowl_cookie
    user = cookie.user
  except AttributeError:
    user = "demo"
  log.info("Accessed by: %s" % user)

  form = FilesOwnershipTransferForm()
  user_info = None
  files = None

  if request.method == "POST":
    user_id = form.data["USER_ID"]
    user_is_valid = ldap_client.is_valid_user(user_id)

    if user_is_valid:
      user_info = ldap_client.get_user_info(user_id)
      file_search = form.data["FILE_SEARCH"]
      new_owner = form.data["NEW_OWNER"]
      files = []
      runner = Runner(user=user_id)

      if new_owner:
        new_owner_is_valid_user = ldap_client.is_valid_user(new_owner)
        if new_owner_is_valid_user:
          files = runner.drive_api.search_files_list(drive_query=file_search)
          runner_new_owner = Runner(user=new_owner)
          runner.suspend_user(False)
          runner_new_owner.suspend_user(False)
          for file in files:
            if file["id"] in request.form.keys():
              result = str(runner
                           .drive_api
                           .transfer_file_owner(file["id"], runner_new_owner.user_email))
              file["chown"] = result
              log.info("File Transfer: %s" % (file["chown"]))
          runner.suspend_user(True)

        else:
          flash("WARNING: %s is not a valid LDAP user." % user_id)
          return redirect(url_for('gdrive'))

      elif file_search:
        files = runner.drive_api.search_files_list(drive_query=file_search)

    else:
      flash("WARNING: %s is not a valid LDAP user." % user_id)
      return redirect(url_for('gdrive'))

  return render_template("gdrive.html",
                         form=form,
                         users=json.dumps(ldap_users),
                         user=user,
                         user_info=user_info,
                         ldap_fields=config["ldap"]["fields"],
                         files=files)