Source code for openstack_dashboard.views

# Copyright 2012 Nebula, Inc.
#
#    Licensed under the Apache License, Version 2.0 (the "License"); you may
#    not use this file except in compliance with the License. You may obtain
#    a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
#    License for the specific language governing permissions and limitations
#    under the License.
import urllib

from django.core import urlresolvers
from django import shortcuts
import django.views.decorators.vary

import horizon
from horizon import base
from horizon import exceptions


[docs]def get_user_home(user): dashboard = None if user.is_superuser: try: dashboard = horizon.get_dashboard('admin') except base.NotRegistered: pass if dashboard is None: dashboard = horizon.get_default_dashboard() return dashboard.get_absolute_url()
@django.views.decorators.vary.vary_on_cookie
[docs]def splash(request): if not request.user.is_authenticated(): raise exceptions.NotAuthenticated() response = shortcuts.redirect(horizon.get_user_home(request.user)) if 'logout_reason' in request.COOKIES: response.delete_cookie('logout_reason') return response
[docs]def get_url_with_pagination(request, marker_name, prev_marker_name, url_string, object_id=None): if object_id: url = urlresolvers.reverse(url_string, args=(object_id,)) else: url = urlresolvers.reverse(url_string) marker = request.GET.get(marker_name, None) if marker: return "{}?{}".format(url, urllib.urlencode({marker_name: marker})) prev_marker = request.GET.get(prev_marker_name, None) if prev_marker: return "{}?{}".format(url, urllib.urlencode({prev_marker_name: prev_marker})) return url