示例#1
0
    def handle_registration(self, request):

        if not request.user.is_anonymous():
            return HANDLE_REGISTRATION_RESULT.NOT_ANONYMOUS

        if accounts_settings.SESSION_REGISTRATION_TASK_ID_KEY not in request.session:
            return HANDLE_REGISTRATION_RESULT.NO_TASK_ID

        task_id = request.session[accounts_settings.SESSION_REGISTRATION_TASK_ID_KEY]
        task = PostponedTaskPrototype.get_by_id(task_id)

        if task is None:
            return HANDLE_REGISTRATION_RESULT.TASK_NOT_FOUND

        if not task.state.is_processed:
            return HANDLE_REGISTRATION_RESULT.TASK_NOT_PROCESSED

        login_user(request, nick=task.internal_logic.account.nick, password=accounts_settings.FAST_REGISTRATION_USER_PASSWORD)
        return HANDLE_REGISTRATION_RESULT.USER_LOGINED
示例#2
0
    def handle_registration(self, request):

        if not request.user.is_anonymous():
            return HANDLE_REGISTRATION_RESULT.NOT_ANONYMOUS

        if accounts_settings.SESSION_REGISTRATION_TASK_ID_KEY not in request.session:
            return HANDLE_REGISTRATION_RESULT.NO_TASK_ID

        task_id = request.session[
            accounts_settings.SESSION_REGISTRATION_TASK_ID_KEY]
        task = PostponedTaskPrototype.get_by_id(task_id)

        if task is None:
            return HANDLE_REGISTRATION_RESULT.TASK_NOT_FOUND

        if not task.state.is_processed:
            return HANDLE_REGISTRATION_RESULT.TASK_NOT_PROCESSED

        login_user(request,
                   nick=task.internal_logic.account.nick,
                   password=accounts_settings.FAST_REGISTRATION_USER_PASSWORD)
        return HANDLE_REGISTRATION_RESULT.USER_LOGINED
示例#3
0
    def fast(self):

        if self.account.is_authenticated():
            return self.json_error('accounts.registration.fast.already_registered', u'Вы уже зарегистрированы')

        if conf.accounts_settings.SESSION_REGISTRATION_TASK_ID_KEY in self.request.session:

            task_id = self.request.session[conf.accounts_settings.SESSION_REGISTRATION_TASK_ID_KEY]
            task = PostponedTaskPrototype.get_by_id(task_id)

            if task is not None:
                if task.state.is_processed:
                    return self.json_error('accounts.registration.fast.already_processed', u'Вы уже зарегистрированы, обновите страницу')
                if task.state.is_waiting:
                    return self.json_processing(task.status_url)
                # in other case create new task

        referer = None
        if conf.accounts_settings.SESSION_REGISTRATION_REFERER_KEY in self.request.session:
            referer = self.request.session[conf.accounts_settings.SESSION_REGISTRATION_REFERER_KEY]

        referral_of_id = None
        if conf.accounts_settings.SESSION_REGISTRATION_REFERRAL_KEY in self.request.session:
            referral_of_id = self.request.session[conf.accounts_settings.SESSION_REGISTRATION_REFERRAL_KEY]

        action_id = None
        if conf.accounts_settings.SESSION_REGISTRATION_ACTION_KEY in self.request.session:
            action_id = self.request.session[conf.accounts_settings.SESSION_REGISTRATION_ACTION_KEY]

        registration_task = postponed_tasks.RegistrationTask(account_id=None, referer=referer, referral_of_id=referral_of_id, action_id=action_id)

        task = PostponedTaskPrototype.create(registration_task,
                                             live_time=conf.accounts_settings.REGISTRATION_TIMEOUT)

        self.request.session[conf.accounts_settings.SESSION_REGISTRATION_TASK_ID_KEY] = task.id

        environment.workers.registration.cmd_task(task.id)

        return self.json_processing(task.status_url)