예제 #1
0
파일: researchers.py 프로젝트: szkocka/api
    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.')
예제 #2
0
파일: researchers.py 프로젝트: szkocka/api
    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.')
예제 #3
0
파일: users.py 프로젝트: szkocka/api
    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())
예제 #4
0
파일: password.py 프로젝트: szkocka/api
    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.')
예제 #5
0
파일: req_to_join.py 프로젝트: szkocka/api
    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())