Beispiel #1
0
def set_owners(project_key, emails):
  project = Project.get(project_key)
  project.removeIndex("owners_bin")
  for email in emails:
    user_queries = User.indexLookup("email_bin", email)
    if len(user_queries) == 0:
      add_unregistered_to_project(project, email, "owners")
    else:
      project.addIndex("owners_bin", user_queries.all()[0].key)

  project.save()
  return True
Beispiel #2
0
def set_participants(project_key, emails):
  project = Project.get(project_key)
  project.removeIndex("participants_bin", silent=True)
  if len(emails) == 1 and emails[0] == "":
    project.save()
    return True

  for email in emails:
    user_queries = User.indexLookup("email_bin", email)
    if len(user_queries) == 0:
      add_unregistered_to_project(project, email, "participants")
    else:
      project.addIndex("participants_bin", user_queries.all()[0].key)

  project.save()
  return True
Beispiel #3
0
def do_login(assertion):
  data = {"assertion" : assertion, "audience" : SERVER_URL}
  resp = requests.post("https://verifier.login.persona.org/verify", data=data, verify=True)

  if resp.status_code == 200:
    verification_data = json.loads(resp.content)

    if verification_data["status"] == "okay":

      users = User.indexLookup("email_bin", verification_data["email"])
      if len(users) == 0:
        key = do_registration(verification_data["email"])
      else: # There <rage>BETTER BE</rage> only 1 users in this list. lawl. DD2. lawl.
        for user in users.run():
          key = user.key
          break

      verification_data["key"] = key
      return verification_data
    elif verification_data["status"] == "failure":
      return verification_data