Пример #1
0
 def add_admin_menu(self):
     admin_menu = self.toolbar.get_or_create_menu(ADMIN_MENU_IDENTIFIER,
                                                  self.current_site.name)
     if self.request.user.has_perm(
             'user.change_user') and User in admin.site._registry:
         admin_menu.add_sideframe_item(
             _('Users'),
             url=reverse("admin:" +
                         user_model_label.replace('.', '_').lower() +
                         "_changelist"))
         # sites menu
     if get_cms_setting('PERMISSION'):
         sites_queryset = get_user_sites_queryset(self.request.user)
     else:
         sites_queryset = Site.objects.all()
     if len(sites_queryset) > 1:
         sites_menu = admin_menu.get_or_create_menu('sites', _('Sites'))
         sites_menu.add_sideframe_item(
             _('Admin Sites'), url=reverse('admin:sites_site_changelist'))
         sites_menu.add_break(ADMIN_SITES_BREAK)
         for site in sites_queryset:
             sites_menu.add_link_item(
                 site.name,
                 url='http://%s' % site.domain,
                 active=site.pk == self.current_site.pk)
             # admin
     admin_menu.add_sideframe_item(_('Administration'),
                                   url=reverse('admin:index'))
     admin_menu.add_break(ADMINISTRATION_BREAK)
     # cms users
     admin_menu.add_sideframe_item(
         _('User settings'), url=reverse('admin:cms_usersettings_change'))
     admin_menu.add_break(USER_SETTINGS_BREAK)
     # logout
     # If current page is not published or has view restrictions user is
     # redirected to the home page:
     # * published page: no redirect
     # * unpublished page: redirect to the home page
     # * published page with login_required: redirect to the home page
     # * published page with view permissions: redirect to the home page
     if self.request.current_page:
         if not self.request.current_page.is_published(self.current_lang):
             page = self.request.current_page
         else:
             page = self.request.current_page.get_public_object()
     else:
         page = None
     redirect_url = '/'
     if (page and
         (not page.is_published(self.current_lang) or page.login_required
          or not page.has_view_permission(self.request, AnonymousUser()))):
         admin_menu.add_ajax_item(_('Logout'),
                                  action=reverse('admin:logout'),
                                  active=True,
                                  on_success=redirect_url)
     else:
         admin_menu.add_ajax_item(_('Logout'),
                                  action=reverse('admin:logout'),
                                  active=True)
Пример #2
0
 def add_admin_menu(self):
     admin_menu = self.toolbar.get_or_create_menu(ADMIN_MENU_IDENTIFIER, self.current_site.name)
     if self.request.user.has_perm('user.change_user') and User in admin.site._registry:
         admin_menu.add_sideframe_item(_('Users'), url=reverse(
             "admin:" + user_model_label.replace('.', '_').lower() + "_changelist"))
         # sites menu
     if get_cms_setting('PERMISSION'):
         sites_queryset = get_user_sites_queryset(self.request.user)
     else:
         sites_queryset = Site.objects.all()
     if len(sites_queryset) > 1:
         sites_menu = admin_menu.get_or_create_menu('sites', _('Sites'))
         sites_menu.add_sideframe_item(_('Admin Sites'), url=reverse('admin:sites_site_changelist'))
         sites_menu.add_break(ADMIN_SITES_BREAK)
         for site in sites_queryset:
             sites_menu.add_link_item(site.name, url='http://%s' % site.domain,
                                      active=site.pk == self.current_site.pk)
             # admin
     admin_menu.add_sideframe_item(_('Administration'), url=reverse('admin:index'))
     admin_menu.add_break(ADMINISTRATION_BREAK)
     # cms users
     admin_menu.add_sideframe_item(_('User settings'), url=reverse('admin:cms_usersettings_change'))
     admin_menu.add_break(USER_SETTINGS_BREAK)
     # logout
     # If current page is not published or has view restrictions user is
     # redirected to the home page:
     # * published page: no redirect
     # * unpublished page: redirect to the home page
     # * published page with login_required: redirect to the home page
     # * published page with view permissions: redirect to the home page
     if self.request.current_page:
         if not self.request.current_page.is_published(self.current_lang):
             page = self.request.current_page
         else:
             page = self.request.current_page.get_public_object()
     else:
         page = None
     redirect_url = '/'
     if (page and
         (not page.is_published(self.current_lang) or page.login_required
             or not page.has_view_permission(self.request, AnonymousUser()))):
         admin_menu.add_ajax_item(_('Logout'), action=reverse('admin:logout'),
                                  active=True, on_success=redirect_url)
     else:
         admin_menu.add_ajax_item(_('Logout'), action=reverse('admin:logout'),
                                  active=True)
Пример #3
0
    def add_admin_menu(self):
        admin_menu = self.toolbar.get_or_create_menu(ADMIN_MENU_IDENTIFIER, self.current_site.name)
        if self.request.user.has_perm('user.change_user') and User in admin.site._registry:
            admin_menu.add_sideframe_item(_('Users'), url=reverse(
                "admin:" + user_model_label.replace('.', '_').lower() + "_changelist"))
            # sites menu
        if get_cms_setting('PERMISSION'):
            sites_queryset = get_user_sites_queryset(self.request.user)
        else:
            sites_queryset = Site.objects.all()
        if len(sites_queryset) > 1:
            sites_menu = admin_menu.get_or_create_menu('sites', _('Sites'))
            sites_menu.add_sideframe_item(_('Admin Sites'), url=reverse('admin:sites_site_changelist'))
            sites_menu.add_break(ADMIN_SITES_BREAK)
            for site in sites_queryset:
                sites_menu.add_link_item(site.name, url='http://%s' % site.domain,
                                         active=site.pk == self.current_site.pk)
                # admin
        admin_menu.add_sideframe_item(_('Administration'), url=reverse('admin:index'))
        admin_menu.add_break(ADMINISTRATION_BREAK)
        # cms users
        admin_menu.add_sideframe_item(_('User settings'), url=reverse('admin:cms_usersettings_change'))
        admin_menu.add_break(USER_SETTINGS_BREAK)
        # logout
        # If current page is not published or has view restrictions user is
        # redirected to the home page:
        # * published page: no redirect
        # * unpublished page: redirect to the home page
        # * published page with login_required: redirect to the home page
        # * published page with view permissions: redirect to the home page
        if self.request.current_page:
            if not self.request.current_page.is_published(self.current_lang):
                page = self.request.current_page
            else:
                page = self.request.current_page.get_public_object()
        else:
            page = None
        redirect_url = '/'

        #
        # We'll show "Logout Joe Bloggs" if the name fields in auth.User are
        # completed, else "Logout jbloggs". If anything goes wrong, it'll just
        # be "Logout".
        #
        try:
            if self.request.user.get_full_name():
                user_name = self.request.user.get_full_name()
            else:
                if DJANGO_1_4:
                    user_name = self.request.user.username
                else:
                    user_name = self.request.user.get_username()
        except:
            user_name = ''

        if user_name:
            logout_menu_text = _('Logout %s') % user_name
        else:
            logout_menu_text = _('Logout')

        if (page and
            (not page.is_published(self.current_lang) or page.login_required
                or not page.has_view_permission(self.request, AnonymousUser()))):
            on_success=redirect_url
        else:
            on_success=self.toolbar.REFRESH_PAGE

        admin_menu.add_ajax_item(
            logout_menu_text,
            action=reverse('admin:logout'),
            active=True,
            on_success=on_success
        )