Exemple #1
0
def get_published_status_name():
    """
    Gets the value stored for a status of "published".
    Always assumes the final status choice is the one that means 'published'.
    """
    from pagemanager.util import get_pagemanager_model
    page_model = get_pagemanager_model()
    return page_model._meta.get_field('status').choices[-1][0]
Exemple #2
0
    def render(self, context):
        permission_names = get_permissions()
        permissions = dict([(k, False) for k in permission_names.keys()])

        # Adding shortcut permission that combines ``view_private_pages`` and
        # `` view_draft_pages`` permissions.
        permissions['view_page'] = False
        try:
            user = self.user_var.resolve(context)
        except template.VariableDoesNotExist:
            # If user variable can't be resolved, all permissions are False.
            permissions = self._rename_permissions(permissions, "page")
            for permission_name, permission in permissions.items():
                context[permission_name] = permission
            return ''
        # If node variable can't be resolved, some permissions can still
        # be useful.
        try:
            node = self.node_var.resolve(context)
        except template.VariableDoesNotExist:
            node = None
            opts = get_pagemanager_model()._meta
        else:
            opts = node.__class__._meta

        lookup_perm = get_lookup_function(user,permission_names)

        # Shortcut: if the user is a superuser we can just set all permissions
        # to True and be done with it.
        if user.is_superuser:
            permissions = self._rename_permissions(
                permissions, opts.module_name
            )
            for permission_name, permission in permissions.items():
                context[permission_name] = True
            return ''

        # Determine visibility permissions.
        if node:
            if not node.is_visible() and lookup_perm('view_private_pages'):
                permissions['view_private_pages'] = True
            if not node.is_published() and lookup_perm('view_draft_pages'):
                permissions['view_draft_pages'] = True
            if (node.is_visible() or permissions['view_private_pages']) and \
                (node.is_published() or permissions['view_draft_pages']):
                permissions['view_page'] = True

        # Determine standard model permissions.
        for verb in ('add', 'change', 'delete'):
            permission_name = "%s_%s" % (verb, opts.module_name)
            if lookup_perm(permission_name):
                permissions[permission_name] = True
        # Commit all permissions to context:
        permissions = self._rename_permissions(permissions, opts.module_name)
        for permission_name, permission in permissions.items():
            context[permission_name] = permission
        return ''
Exemple #3
0
def get_public_visibility_name():
    """
    Gets the value stored for a visibility of "public".
    Always assumes the first visibility choice is the one that means
    'public'.
    """
    from pagemanager.util import get_pagemanager_model
    page_model = get_pagemanager_model()
    return page_model._meta.get_field('visibility').choices[0][0]
Exemple #4
0
def get_unpublished_status_name():
    """
    Gets an unpublished status.
    Always assumes the first status choice is the one that means
    'not published'.
    """
    from pagemanager.util import get_pagemanager_model
    page_model = get_pagemanager_model()
    return page_model._meta.get_field('status').choices[0][0]
Exemple #5
0
def get_permissions():
    """
    Returns a dictionary of all permissions for the pagemanager
    model. Keys are short names, values are full names.
    """
    from pagemanager.util import get_pagemanager_model
    page_model = get_pagemanager_model()
    # Create a list of permissions defined in the model...
    perms = [k for k, v in page_model._meta.permissions]
    # ... and add the standard Django permissions to it.
    perms.append(page_model._meta.get_add_permission())
    perms.append(page_model._meta.get_change_permission())
    perms.append(page_model._meta.get_delete_permission())
    app_label = page_model._meta.app_label
    return dict(
        [(key, "%s.%s" % (app_label, key)) for key in perms]
    )
Exemple #6
0
from django.conf import settings
from django.db.models import get_model

from pagemanager.util import get_pagemanager_model, get_pagemanager_modeladmin

PAGEMANAGER_DEFAULT_TEMPLATE = getattr(settings,
                                       'PAGEMANAGER_DEFAULT_TEMPLATE',
                                       'base.html')
PAGEMANAGER_PAGE_MODEL = get_pagemanager_model()
PAGEMANAGER_PAGE_MODELADMIN = get_pagemanager_modeladmin()
from django.conf import settings
from django.db.models import get_model

from pagemanager.util import get_pagemanager_model, get_pagemanager_modeladmin

PAGEMANAGER_DEFAULT_TEMPLATE = getattr(settings,
    'PAGEMANAGER_DEFAULT_TEMPLATE',
    'base.html'
)
PAGEMANAGER_PAGE_MODEL = get_pagemanager_model()
PAGEMANAGER_PAGE_MODELADMIN = get_pagemanager_modeladmin()