mirror of https://github.com/jumpserver/jumpserver
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.1 KiB
36 lines
1.1 KiB
from django.shortcuts import redirect, reverse
|
|
from django.http import HttpResponseForbidden
|
|
|
|
from django.views.generic import DetailView, View
|
|
|
|
from .models import Organization
|
|
|
|
|
|
class SwitchOrgView(DetailView):
|
|
model = Organization
|
|
object = None
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
pk = kwargs.get('pk')
|
|
self.object = Organization.get_instance(pk)
|
|
request.session['oid'] = self.object.id.__str__()
|
|
host = request.get_host()
|
|
referer = request.META.get('HTTP_REFERER')
|
|
if referer.find(host) != -1:
|
|
return redirect(referer)
|
|
else:
|
|
return redirect('index')
|
|
|
|
|
|
class SwitchToAOrgView(View):
|
|
def get(self, request, *args, **kwargs):
|
|
admin_orgs = Organization.get_user_admin_orgs(request.user)
|
|
if not admin_orgs:
|
|
return HttpResponseForbidden()
|
|
default_org = Organization.default()
|
|
if default_org in admin_orgs:
|
|
redirect_org = default_org
|
|
else:
|
|
redirect_org = admin_orgs[0]
|
|
return redirect(reverse('orgs:org-switch', kwargs={'pk': redirect_org.id}))
|