python类activate()的实例源码

middleware.py 文件源码 项目:mes 作者: osess 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def process_request(self, request):
        translation.activate(self.get_language_for_user(request))
        request.LANGUAGE_CODE = translation.get_language()
middleware.py 文件源码 项目:mes 作者: osess 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def process_request(self, request):
        account = getattr(request.user, "account", None)
        if account:
            tz = settings.TIME_ZONE if not account.timezone else account.timezone
            timezone.activate(tz)
middleware.py 文件源码 项目:a4-opin 作者: liqd 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def process_request(self, request):
        if request.user.is_authenticated() and request.user.timezone:
            timezone.activate(pytz.timezone(request.user.timezone))
        else:
            timezone.deactivate()
timezone_middleware.py 文件源码 项目:iguana 作者: iguana-project 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def process_request(self, request):
        if request.user.is_authenticated:
            if request.user.timezone is not None:
                timezone.activate(pytz.timezone(request.user.timezone))
            else:
                timezone.activate(pytz.timezone('UTC'))
        else:
            timezone.deactivate()
middleware.py 文件源码 项目:mos-horizon 作者: Mirantis 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def process_request(self, request):
        """Adds data necessary for Horizon to function to the request."""

        request.horizon = {'dashboard': None,
                           'panel': None,
                           'async_messages': []}
        if not hasattr(request, "user") or not request.user.is_authenticated():
            # proceed no further if the current request is already known
            # not to be authenticated
            # it is CRITICAL to perform this check as early as possible
            # to avoid creating too many sessions
            return None

        if request.is_ajax():
            # if the request is Ajax we do not want to proceed, as clients can
            #  1) create pages with constant polling, which can create race
            #     conditions when a page navigation occurs
            #  2) might leave a user seemingly left logged in forever
            #  3) thrashes db backed session engines with tons of changes
            return None
        # If we use cookie-based sessions, check that the cookie size does not
        # reach the max size accepted by common web browsers.
        if (
            settings.SESSION_ENGINE ==
            'django.contrib.sessions.backends.signed_cookies'
        ):
            max_cookie_size = getattr(
                settings, 'SESSION_COOKIE_MAX_SIZE', None)
            session_cookie_name = getattr(
                settings, 'SESSION_COOKIE_NAME', None)
            session_key = request.COOKIES.get(session_cookie_name)
            if max_cookie_size is not None and session_key is not None:
                cookie_size = sum((
                    len(key) + len(value)
                    for key, value in six.iteritems(request.COOKIES)
                ))
                if cookie_size >= max_cookie_size:
                    LOG.error(
                        'Total Cookie size for user_id: %(user_id)s is '
                        '%(cookie_size)sB >= %(max_cookie_size)sB. '
                        'You need to configure file-based or database-backed '
                        'sessions instead of cookie-based sessions: '
                        'http://docs.openstack.org/developer/horizon/topics/'
                        'deployment.html#session-storage'
                        % {
                            'user_id': request.session.get(
                                'user_id', 'Unknown'),
                            'cookie_size': cookie_size,
                            'max_cookie_size': max_cookie_size,
                        }
                    )

        tz = request.session.get('django_timezone')
        if tz:
            timezone.activate(tz)
user.py 文件源码 项目:studentsdb2 作者: trivvet 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def user_preference(request):

    current_user = User.objects.get(username=request.user.username)

    if request.method == 'POST':

        if request.POST.get('cancel_button'):
            messages.warning(request, _(u"Changing user settings canceled"))
            return HttpResponseRedirect(reverse('home'))

        else:
            errors = {}
            stprofile = StProfile.objects.get_or_create(user=current_user)[0]

            form_first_name=request.POST.get('first_name', '').strip()
            current_user.first_name = form_first_name

            form_last_name=request.POST.get('last_name', '').strip()
            current_user.last_name = form_last_name

            form_email=request.POST.get('email', '').strip()
            users_same_email = User.objects.filter(email=form_email)
            if len(users_same_email) > 0 and current_user.email != form_email:
                current_user.email = form_email
                errors['email'] = _(u"This email address is already in use." +
                    " Please enter a different email address.")
            elif len(form_email) > 0:
                try:
                    validate_email(form_email)
                except ValidationError:
                    errors['email'] = _(u"Enter a valid email address")
                else:
                    current_user.email = form_email

            form_language=request.POST.get('lang')
            if stprofile.language != form_language:
                stprofile.language = form_language
                translation.activate(form_language)
                request.session[translation.LANGUAGE_SESSION_KEY] = form_language

            form_time_zone=request.POST.get('time_zone')
            if stprofile.time_zone != form_time_zone:
                stprofile.time_zone = form_time_zone
                timezone.activate(form_time_zone)
                request.session['django_timezone'] = form_time_zone

            if errors:
                messages.error(request, _(u'Please, correct the following errors'))
                return render(request, 'students/user_preference.html',
                    {'current_user': current_user, 'timezones': pytz.common_timezones, 'errors': errors})

            current_user.save()
            stprofile.save()

            messages.success(request, _(u"User settings changed successfully"))
            return HttpResponseRedirect(reverse('home'))

    else:
        return render(request, 'students/user_preference.html',
            {'current_user': current_user, 'timezones': pytz.common_timezones})
tests.py 文件源码 项目:lenuage 作者: laboiteproject 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def test_all(boite, mocker):
    timezone.activate('Africa/Niamey')
    now = timezone.now()
    now = now.replace(year=2000, month=1, day=13, hour=13, minute=35, second=1)
    mocker.patch('laboite.apps.time.models.timezone.now', return_value=now)

    translation.activate('fr')

    with mocker.patch('laboite.apps.time.models.AppTime.should_update',
                      return_value=True):  # Force update
        app = AppTime.objects.create(boite=boite,
                                     enabled=True,
                                     tz='Africa/Niamey')
        result = app.get_app_dictionary()
        assert len(result) == 3
        assert result['data'] == [{'type': 'text',
                                   'width': 25,
                                   'height': 8,
                                   'x': 4,
                                   'y': 1,
                                   'content': '14:35'}]
        assert result['height'] == 8
        assert result['width'] == 32

        app.tz = 'Pacific/Pitcairn'
        app.save()
        result = app.get_app_dictionary()
        assert len(result) == 3
        assert result['data'] == [{'type': 'text',
                                   'width': 25,
                                   'height': 8,
                                   'x': 4,
                                   'y': 1,
                                   'content': '05:35'}]
        assert result['height'] == 8
        assert result['width'] == 32

        translation.activate('en-us')
        result = app.get_app_dictionary()
        assert len(result) == 3
        assert result['data'] == [{'type': 'text',
                                   'width': 25,
                                   'height': 8,
                                   'x': 4,
                                   'y': 1,
                                   'content': '5:35 a.m.'}]
        assert result['height'] == 8
        assert result['width'] == 32
jwt_utils.py 文件源码 项目:wiggum 作者: qdqmedia 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def create_jwt_payload(user, expiration_delta, issuer, version=None, **kwargs):
    timezone.activate(settings.TIME_ZONE)
    now = timezone.now()
    expiration_date = now + datetime.timedelta(seconds=expiration_delta)
    version = settings.JWT_VERSION if not version else version
    not_before = now - datetime.timedelta(
        seconds=settings.JWT_NBF_LEEWAY_SECONDS)

    payload = {
        "user": {
            "id": user.id,
            "username": user.username,
            "email": user.email,
            "first_name": user.first_name,
            "last_name": user.last_name,
        },
        # used jwt RFC claims
        # JWT expiration
        "exp": int(expiration_date.strftime("%s")),
        # Issuer of the token
        "iss": issuer,
        # Issued at
        "iat": int(now.strftime("%s")),
        # # Not before (dont use before)
        "nbf": int(not_before.strftime("%s")),
        # # Subject of the token
        # "sub":
        # # Audience of the token
        # "aud":
        # # JWT token id
        # "jti":
        # Version of the token
        "version": version,
    }

    # Only set the permissions on the jwt token if forcen on settings
    if settings.JWT_SET_PERMISSION_ON_TOKEN:
        payload["permission"] = list(
            user.project_permissions.values_list('key', flat=True))

    # Set extra args
    for k, v in kwargs.items():
        payload[k] = v

    return payload


问题


面经


文章

微信
公众号

扫码关注公众号