Received: from mail.netlandish.com (mail.netlandish.com [174.136.98.166]) by code.netlandish.com (Postfix) with ESMTP id 5F03F81241 for <~petersanchez/public-inbox@lists.code.netlandish.com>; Tue, 22 Dec 2020 09:53:54 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=209.85.167.46; helo=mail-lf1-f46.google.com; envelope-from=mortas.11@gmail.com; receiver= Authentication-Results: mail.netlandish.com; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=qEVHn0sG Received: from mail-lf1-f46.google.com (mail-lf1-f46.google.com [209.85.167.46]) by mail.netlandish.com (Postfix) with ESMTP id 2C444152FB1 for <~petersanchez/public-inbox@lists.code.netlandish.com>; Tue, 22 Dec 2020 09:53:52 +0000 (UTC) Received: by mail-lf1-f46.google.com with SMTP id o17so30592385lfg.4 for <~petersanchez/public-inbox@lists.code.netlandish.com>; Tue, 22 Dec 2020 01:53:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to:cc; bh=TYMoI4o8asEU7+aDno6HqCOf0Q9fc3Rc9U9N5G1F36E=; b=qEVHn0sGJUhKzYX2pHs5UcvyNmqW73fhryRZ7QRBng8aC0WRebru9zi1lnodqiXFPR kZsvdmwWBWWZvyuNJUgqnGqgoXajjpGcA0lgPMgrtQPJD9E8n1p/1Sdwa4DuglQsyp3F CxhxWmlL0Svewx90iGEnsbT6NvMhVcGwhAjGDm0gp2OuowmRp/8vCTAnO9ZgGWVN++aB QKkrWJ/Z9uywIG24K2qIYHM0CJoYNIJ2eqaxKLtVqR3q6K9GOb9WNSXrSobeMIDEeftf g5ZHQ06ah6A9OuFzjUsxiYouZuHdhN1ZPiqQYMFf0az4yNl+J88B5I3Yds1gWIs+iXQ0 GfMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=TYMoI4o8asEU7+aDno6HqCOf0Q9fc3Rc9U9N5G1F36E=; b=hn+V2hxHYbXw2qauy8ZMBqnK9cCvRNozBUZSE3kCwhnqcRlnEPYl6jv4QR1wnEBJow xz7mzmeZnATSfrGdpmD4A+wES8qx0gl5FiXAVnJ3FBh7d3Y0a9aFxTNrvK5aq+zl6Cn2 TFdWBnACFzfxChHFdqR6g0Kn8xpMPzJTVdHA2ZKXZCkvw/SJ0d7ECaGhKRcnSPDN9Uut 7O3daBG/dJnUpyu1ag4QLc/sFUuTtxBPcacOHeIQc/25uGOzVFeGCoxqyJ7y5HwBHrXL f6f5/BbBYveH++PnrzSFv/RH0JU/gGGI714T+AM5LiVdC2IN9aTtVxu3omPE7B6Z8lLs /LEQ== X-Gm-Message-State: AOAM533gUugGlC8H/IZh9jbZx1qtzytd14i3VuUu0IhPOpKNdlbau1jU 7ZuZTRm2xrVzwD/+s0/1M/iP3PgYYhSkyFNWXcPc68rltMk= X-Google-Smtp-Source: ABdhPJxnURyVcPpBsjadeUUPQRg9acQH71M5UWQlWXCpXaBhcIYKOX3TNPhrDKeX4nj2kGJQgSUF6ld7NsPx3w1ZAcw= X-Received: by 2002:a05:651c:1390:: with SMTP id k16mr9177523ljb.138.1608630831638; Tue, 22 Dec 2020 01:53:51 -0800 (PST) MIME-Version: 1.0 From: =?UTF-8?B?0JjQu9GM0Y8=?= Date: Tue, 22 Dec 2020 12:53:41 +0300 Message-ID: Subject: [PATCH django-impersonate] optimization | preserve request.user laziness To: ~petersanchez/public-inbox@lists.code.netlandish.com Cc: Peter Sanchez Content-Type: text/plain; charset="UTF-8" (I've used "reply in thread" link but it created separate topic, sorry) In our case that means 100k+ requests every day =) What do you think about this workaround? I've tested it locally. 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: ....