管理员对Django用户的模拟

管理员对Django用户的模拟,第1张

管理员对Django用户的模拟

我用一个简单的中间件解决了这个问题。它还处理重定向(即,在重定向过程中保留GET参数)。这里是:

class ImpersonateMiddleware(object):    def process_request(self, request):        if request.user.is_superuser and "__impersonate" in request.GET: request.user = models.User.objects.get(id=int(request.GET["__impersonate"]))    def process_response(self, request, response):        if request.user.is_superuser and "__impersonate" in request.GET: if isinstance(response, http.HttpResponseRedirect):     location = response["Location"]     if "?" in location:         location += "&"     else:         location += "?"     location += "__impersonate=%s" % request.GET["__impersonate"]     response["Location"] = location        return response


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5651054.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存