def put(self, current_user, research): new_supervisor_email = request.json['new_supervisor'] supervisor = User.by_email(new_supervisor_email) if not supervisor: return not_found('User with email not found.') self.__delete_relationship(research, research.supervisor_key.get()) research.supervisor_key = supervisor.key research.put() self.__add_relationship(research.key, supervisor) return ok_msg('Supervisor is updated.')
def post(self, current_user, research): researcher_email = request.json['new_researcher'] researcher = User.by_email(researcher_email) if not researcher: return not_found('User with email not found.') if researcher.key in research.researchers_keys \ or research.supervisor_key == researcher.key: return bad_request('User already is researcher.') research.researchers_keys.append(researcher.key) research.put() self.__add_relationship(research.key, researcher_email) return ok_msg('Researcher is added.')
def post(self): json_request = request.json email = json_request['email'] name = json_request['name'] password = json_request['password'] cv = json_request.get('cv', '') user = User.by_email(email) if user: return bad_request('User with email {0} already exists'.format(email)) user = User(name=name, email=email, cv=cv, is_admin=False, status=StatusType.ACTIVE, hashed_password=hash_password(password)) user_key = user.put() return created(Token(user_key.id()).json())
def post(self): json_request = request.json email = json_request['email'] user = User.by_email(email) if user: token = str(uuid.uuid4()) base_url = os.environ['BASE_UI_URL'] url = base_url + '/forgot-password/' + token user_name = user.name ChangePasswordRequest(user_key=user.key, token=token).put() subj = ResetPasswordSubj(user_name) body = ResetPasswordBody(user_name, url) sender.send_email(subj, body, email) return ok_msg('Emails with instructions is sent.') else: return not_found('User not found in system.')
def get(self, research, current_user): relationships = ResearchRelationship.by_research_and_type(research.key, RelationshipType.WANTS_TO_JOIN) users = map(lambda r: User.by_email(r.user_email), relationships) return ok(ListReqToJoin(users).js())