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
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
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