~petersanchez

Los Angeles, CA

https://www.petersanchez.com

LA, CA USA - Managua, Nicaragua

~petersanchez/public-inbox

Last active 18 days ago

~petersanchez/blog-discussion

Last active 2 years ago
View more

Recent activity

django-impersonate 1.9.1 released a month ago

From Peter Sanchez to ~petersanchez/public-inbox

Hey all. Just an FYI that django-impersonate 1.9.1 was just released
with much appreciated contributions from:

- Sarah Boyce
- Oscar Cortez
- Arne Brodowski

Covers the following issues:

https://todo.code.netlandish.com/~petersanchez/django-impersonate/67

https://todo.code.netlandish.com/~petersanchez/django-impersonate/69

https://todo.code.netlandish.com/~petersanchez/django-impersonate/70

Re: [PATCH django-impersonate] Record the impersonator on the user object 2 years ago

From Peter Sanchez to ~petersanchez/public-inbox

On 02/04, Jordi Gutiérrez Hermoso wrote:
># HG changeset patch
># User Jordi Gutiérrez Hermoso <jordigh@gnu.org>
># Date 1612473215 18000
>#      Thu Feb 04 16:13:35 2021 -0500
># Node ID 02c4ab3442b2f9c2df491b0663fae5caa8129418
># Parent  ccefd024a3fbf62b698bf38d750b7d03d1d74a65

Thanks! Applied here:

https://hg.code.netlandish.com/~petersanchez/django-impersonate/rev/c400cc81c4f6ff9bb0e94fb8485919ae283e08b0

I'll push a minor update to pypi shortly.

Re: [PATCH django-impersonate] optimization | preserve request.user laziness 2 years ago

From Peter Sanchez to ~petersanchez/public-inbox

On 12/22, Илья wrote:
>class ImpersonateMiddleware(MiddlewareMixin):
>    def process_request(self, request):
>        _usr = request.user  # save as local var to prevent infinite recursion
>        def _get_usr():
>            _usr.is_impersonate = False
>            return _usr
>
>        request.user = SimpleLazyObject(_get_usr)
>        request.impersonator = None
>
>        if '_impersonate' in request.session and request.user.is_authenticated:
>            ....

Re: [PATCH django-impersonate] optimization | preserve request.user laziness 2 years ago

From Peter Sanchez to ~petersanchez/public-inbox

Interesting catch. I have some thoughts below.

On 12/21, Илья wrote:
>class ImpersonateMiddleware(MiddlewareMixin):
>    def process_request(self, request):
>        request.user.is_impersonate = False  # <----- this one
>        request.impersonator = None
>
>        if is_authenticated(request.user) and \  # <----- and this one
>           '_impersonate' in request.session:
>            new_user_id = request.session['_impersonate']
>            .....
>
>As a quick-and-dirty fix we can just remove the first line - but in

Re: [PATCH django-impersonate] Downgrade signals logging from warning to debug 2 years ago

From Peter Sanchez to ~petersanchez/public-inbox

Thanks! This was applied.

On 12/10, Hugo Rodger-Brown wrote:
># HG changeset patch
># User Hugo Rodger-Brown <hugo@yunojuno.com>
># Date 1607608487 0
>#      Thu Dec 10 13:54:47 2020 +0000
># Branch downgrade-logging
># Node ID bd1429321fb4a7f4627448681d369d07875c5edf
># Parent  a174b1c67a73699e1ea51d1433db7d0f22c4e6ef
>Downgrade signals logging from warning to debug

Re: [PATCH django-impersonate] add option for auto-expiring impersonate sesions, implements #45 2 years ago

From Peter Sanchez to ~petersanchez/public-inbox

Thank you! I applied this. I did some slight cleanup for formatting
(black) but otherwise left it untouched.

On 11/24, Leonhard Kuboschek wrote:
># HG changeset patch
># User Leonhard Kuboschek <leo@jacobs-alumni.de>
># Date 1606156336 -3600
>#      Mon Nov 23 19:32:16 2020 +0100

Re: [PATCH django-impersonate] add option for auto-expiring impersonate sesions, implements #45 2 years ago

From Peter Sanchez to ~petersanchez/public-inbox

On 11/23, Leonhard Kuboschek wrote:
>+from datetime import datetime, timedelta

I wonder if it's not better to use the `django.utils.timezone` module
here? Also use UTC aware timestamps.

>+                start_time = datetime.fromtimestamp(request.session['_impersonate_start'])
>+                if datetime.now() - start_time > timedelta(seconds=settings.MAX_DURATION):

Use `datetime.utcfromtimestamp()` and `timezone.now()` which returns a
UTC aware copy of datetime.now(). We'd have to also use
`timezone.make_aware()` on the `start_time` variable when subtracting.

`if timezone.now() - timezone.make_aware(start_time) > ...`