コード例 #1
0
ファイル: views.py プロジェクト: mikepanfilov/djmathcrib
    def post(self, request, *args, **kwargs):
        """
        Проверяем, что запись с переданным ключом существует в базе, и что по
        нему еще не было регистраций.
        Создаем пользователя, а затем отмечаем, что регистрация по данному
        ключу состоялась.
        """

        form = CreationForm(request.POST)

        if form.is_valid():
            key = form.cleaned_data.get('invite_key', None)
            invite = get_object_or_404(
                InvitedUser,
                invite_key=key,
                invited=None,
            )

            user = form.save()
            invite.invited = user
            invite.save()

            data = (settings.DEFAULT_FROM_EMAIL, user.email,
                    'Добро пожаловать!', '''<h1>Привет!</h1>
                    <p>Добро пожаловать в команду <a href="https://mathcrib.space/">mathcrib.space</a>!</p>'''
                    )
            send_email(*data)
            return redirect('login')
        return render(request, 'users/signup.html', {'form': form})
コード例 #2
0
ファイル: researchers.py プロジェクト: szkocka/api
    def post(self, research, current_user):
        recipient = request.json['email']
        name = request.json['name']
        text = request.json.get('text', '')

        if self.__relationship_exists(research, recipient):
            return bad_request('Already invited.')
        self.__add_relationship(research, recipient)

        supervisor = current_user.name
        title = research.title
        description = research.brief_desc

        subj_view = InviteToJoinSubj(supervisor, title)
        body_view = InviteToJoin(supervisor, title, description, name, text)
        sender.send_email(subj_view, body_view, recipient)

        return ok_msg("Invitation send to {0}".format(recipient))
コード例 #3
0
ファイル: req_to_join.py プロジェクト: szkocka/api
    def post(self, research, current_user):
        if self.__relationship_exists(research, current_user.email):
            return bad_request('Already requested.')
        self.__add_relationship(research, current_user.email)

        supervisor = research.supervisor_key.get()
        user_name = current_user.name

        recipient = supervisor.email
        supervisor_name = supervisor.name

        title = research.title
        text = request.json.get('text', '')

        subj_view = ReqToJoinSubj(user_name, title)
        body_view = ReqToJoin(user_name, title, supervisor_name, text)
        sender.send_email(subj_view, body_view, recipient)

        return ok_msg('Request was send to research supervisor.')
コード例 #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
ファイル: tasks.py プロジェクト: szkocka/api
    def post(self):
        message_id = int(request.json['message_id'])
        message = Message.get(message_id)

        message_creator_key = message.creator_key
        message_creator = message_creator_key.get()
        forum = message.forum_key.get()
        research = forum.research_key.get()

        for researcher_key in research.researchers_keys:
            if researcher_key != message_creator_key:
                researcher = researcher_key.get()

                subj = NewMessageSubj(forum.subject, research.title)
                body = NewMessage(researcher.name, message_creator.name,
                                  forum.subject, message.text,
                                  research.key.id(), forum.key.id())

                send_email(subj, body, researcher.email)

        return ok_msg('Notification sent.')