Пример #1
0
    def process_request(self, request):
        if hasattr(request, 'session'):
            server_list = request.session.get('server_list', None)
        else:
            server_list = None
            
        if not server_list or len(server_list) == 0:
            server_list = Server.objects.all()
            count = Server.objects.count()
            if count == 0:
                return None
            if hasattr(request, 'session'):
                if count > 0:
                    request.session['server_list'] = server_list
        
        request.__class__.server_list = server_list

        server = None
        if request.GET.has_key('server'):
            server = request.GET.get('server')
        else:
            if request.POST.has_key('server'):
                server = request.POST.get('server')
        if not server:
            if request.COOKIES.has_key(self.SERVER_KEY_NAME):
                value = request.COOKIES[self.SERVER_KEY_NAME]
                if value != 'None' and has_server(request.user,value):
                    server = value
            if not server and request.user.is_authenticated() and request.user.server_permissions.all():
                server = request.user.server_permissions.all()[0].server.uuid
            if not server:
                for s in server_list:
                    if s.default:
                        server = s.uuid
                        break
            if not server and len(server_list) > 0:
                server = server_list[0].uuid
        
        server_obj = None
        for s in server_list:
            if s.uuid == server:
                server_obj = s
                break
                
        if not server or not server_obj:                
            raise Http404        
        
        request.__class__.server = server
        request.__class__.server_obj = server_obj
Пример #2
0
 def __nonzero__(self):
     return has_server(self.user, self.server)