Example #1
0
    def setUp(self):
        """
        """
        from lfc.utils.initialize import initialize
        initialize()

        import_module("lfc_page").install()
        try:
            Application.objects.create(name="lfc_page")
        except Application.DoesNotExist:
            pass

        self.p = Portal.objects.create()
        self.p1 = Page.objects.create(title="Page 1", slug="page-1")
        self.p11 = Page.objects.create(title="Page 1-1", slug="page-1-1", parent=self.p1)
        self.p111 = Page.objects.create(title="Page 1-1-1", slug="page-1-1-1", parent=self.p11)
        self.p12 = Page.objects.create(title="Page 1-2", slug="page-1-2", parent=self.p1)

        # for i18n tests
        self.p2en = Page.objects.create(title="Page 2 (en)", slug="page-2",
                                        language='en')
        self.p2de = Page.objects.create(title="Page 2 (de)", slug="page-2",
                                      language='de', canonical=self.p2en)
        self.p2fr = Page.objects.create(title="Page 2 (fr)", slug="page-2",
                                        language='fr', canonical=self.p2en)

        self.anonymous = permissions.utils.register_role("Anonymous")
        self.permission = permissions.utils.register_permission("View", "view")
Example #2
0
    def setUp(self):
        """
        """
        from lfc.utils.initialize import initialize

        initialize()

        import_module("lfc_page").install()
        try:
            Application.objects.create(name="lfc_page")
        except Application.DoesNotExist:
            pass

        self.p = Portal.objects.create()
        self.p1 = Page.objects.create(title="Page 1", slug="page-1")
        self.p11 = Page.objects.create(title="Page 1-1", slug="page-1-1", parent=self.p1)
        self.p111 = Page.objects.create(title="Page 1-1-1", slug="page-1-1-1", parent=self.p11)
        self.p12 = Page.objects.create(title="Page 1-2", slug="page-1-2", parent=self.p1)

        # for i18n tests
        self.p2en = Page.objects.create(title="Page 2 (en)", slug="page-2", language="en")
        self.p2de = Page.objects.create(title="Page 2 (de)", slug="page-2", language="de", canonical=self.p2en)
        self.p2fr = Page.objects.create(title="Page 2 (fr)", slug="page-2", language="fr", canonical=self.p2en)

        self.anonymous = permissions.utils.register_role("Anonymous")
        self.permission = permissions.utils.register_permission("View", "view")
Example #3
0
    def setUp(self):
        """
        """
        from lfc.utils.initialize import initialize
        initialize()

        import_module("lfc_page").install()
        try:
            Application.objects.create(name="lfc_page")
        except Application.DoesNotExist:
            pass

        self.p = Portal.objects.create()
        self.p.notification_emails = "[email protected], [email protected]"
        self.p1 = Page.objects.create(title="Page 1", slug="page-1")
        self.p11 = Page.objects.create(title="Page 1-1",
                                       slug="page-1-1",
                                       parent=self.p1)
        self.p111 = Page.objects.create(title="Page 1-1-1",
                                        slug="page-1-1-1",
                                        parent=self.p11)
        self.p12 = Page.objects.create(title="Page 1-2",
                                       slug="page-1-2",
                                       parent=self.p1)
        self.p12 = Page.objects.create(title="Page 2", slug="page-2")

        self.anonymous = permissions.utils.register_role("Anonymous")
        self.permission = permissions.utils.register_permission("View", "view")
Example #4
0
    def setUp(self):
        """
        """
        from lfc.utils.initialize import initialize
        initialize()

        import_module("lfc_page").install()
        try:
            Application.objects.create(name="lfc_page")
        except Application.DoesNotExist:
            pass
    def setUp(self):
        """
        """
        from lfc.utils.initialize import initialize
        initialize()

        import_module("lfc_page").install()
        try:
            Application.objects.create(name="lfc_page")
        except Application.DoesNotExist:
            pass
Example #6
0
    def setUp(self):
        """
        """
        from lfc.utils.initialize import initialize
        initialize(create_resources=False)

        import_module("lfc_page").install()
        try:
            Application.objects.create(name="lfc_page")
        except Application.DoesNotExist:
            pass

        self.p = Portal.objects.create()
        self.p.notification_emails = "[email protected], [email protected]"
        self.p1 = Page.objects.create(title="Page 1", slug="page-1")
Example #7
0
    def setUp(self):
        """
        """
        from lfc.utils.initialize import initialize
        initialize()

        import_module("lfc_page").install()
        try:
            Application.objects.create(name="lfc_page")
        except Application.DoesNotExist:
            pass

        Portal.objects.create()
        self.p1 = Page.objects.create(title="Page 1", slug="page-1")
        self.p2 = Page.objects.create(title="Page 2", slug="page-2")
Example #8
0
    def setUp(self):
        """
        """
        from lfc.utils.initialize import initialize
        initialize()

        import_module("lfc_page").install()
        try:
            Application.objects.create(name="lfc_page")
        except Application.DoesNotExist:
            pass

        self.p = Portal.objects.create()
        self.p.notification_emails = "[email protected], [email protected]"
        self.p1 = Page.objects.create(title="Page 1", slug="page-1")
Example #9
0
    def setUp(self):
        from lfc.utils.initialize import initialize
        initialize()

        import_module("lfc_page").install()
        try:
            Application.objects.create(name="lfc_page")
        except Application.DoesNotExist:
            pass

        Portal.objects.create(id=1)
        self.p1 = Page.objects.create(id=1, title="Page 1", slug="page-1")
        self.p11 = Page.objects.create(id=11, title="Page 1-1", slug="page-1-1", parent=self.p1)
        self.p2 = Page.objects.create(id=2, title="Page 2", slug="page-2")

        self.client = Client()
        self.client.login(username="******", password="******")
Example #10
0
    def setUp(self):
        """
        """
        from lfc.utils.initialize import initialize
        initialize()

        import_module("lfc_page").install()
        try:
            Application.objects.create(name="lfc_page")
        except Application.DoesNotExist:
            pass

        self.p = Portal.objects.create()
        self.p.notification_emails = "[email protected], [email protected]"
        self.p1 = Page.objects.create(title="Page 1", slug="page-1")
        self.p11 = Page.objects.create(title="Page 1-1", slug="page-1-1", parent=self.p1)
        self.p111 = Page.objects.create(title="Page 1-1-1", slug="page-1-1-1", parent=self.p11)
        self.p12 = Page.objects.create(title="Page 1-2", slug="page-1-2", parent=self.p1)
        self.p12 = Page.objects.create(title="Page 2", slug="page-2")

        self.anonymous = permissions.utils.register_role("Anonymous")
        self.permission = permissions.utils.register_permission("View", "view")
Example #11
0
    def handle(self, *args, **options):
        # Register default portlets, templates and content types.
        initialize()

        # Register site
        site = Site.objects.all()[0]
        site.name = site.domain = "www.example.com"
        site.save()

        # Create portal
        portal = Portal.objects.create(id=1, title="LFC")

        # Register roles
        anonymous = permissions.utils.register_role("Anonymous")
        author = permissions.utils.register_role("Author")
        owner = permissions.utils.register_role("Owner")
        editor = permissions.utils.register_role("Editor")
        reviewer = permissions.utils.register_role("Reviewer")
        manager = permissions.utils.register_role("Manager")

        # Registers permissions
        add = permissions.utils.register_permission("Add", "add")
        delete = permissions.utils.register_permission("Delete", "delete")
        edit = permissions.utils.register_permission("Edit", "edit")
        view = permissions.utils.register_permission("View", "view")
        manage_local_roles = permissions.utils.register_permission(
            "Manage local roles", "manage_local_roles")
        manage_permissions = permissions.utils.register_permission(
            "Manage permissions", "manage_permissions")
        view_management = permissions.utils.register_permission(
            "View management", "view_management")

        publish = permissions.utils.register_permission("Publish", "publish")
        submit = permissions.utils.register_permission("Submit", "submit")
        reject = permissions.utils.register_permission("Reject", "reject")
        retract = permissions.utils.register_permission("Retract", "retract")

        ctype = ContentType.objects.get_for_model(Portal)
        manage_portal = permissions.utils.register_permission(
            "Manage portal", "manage_portal", [ctype])
        review = permissions.utils.register_permission("Review", "review",
                                                       [ctype])

        # Create slots
        left_slot, created = Slot.objects.get_or_create(name="Left")
        right_slot, created = Slot.objects.get_or_create(name="Right")

        # Set permissions for portal
        permissions.utils.grant_permission(portal, anonymous, "view")

        permissions.utils.grant_permission(portal, author, "view_management")
        permissions.utils.grant_permission(portal, author, "add")

        permissions.utils.grant_permission(portal, editor, "view_management")
        permissions.utils.grant_permission(portal, editor, "delete")
        permissions.utils.grant_permission(portal, editor, "view")
        permissions.utils.grant_permission(portal, editor, "edit")
        permissions.utils.grant_permission(portal, editor, "retract")
        permissions.utils.grant_permission(portal, editor, "submit")

        permissions.utils.grant_permission(portal, manager, "view_management")
        permissions.utils.grant_permission(
            portal,
            manager,
            "add",
        )
        permissions.utils.grant_permission(portal, manager, "delete")
        permissions.utils.grant_permission(portal, manager, "edit")
        permissions.utils.grant_permission(portal, manager,
                                           "manage_local_roles")
        permissions.utils.grant_permission(portal, manager,
                                           "manage_permissions")
        permissions.utils.grant_permission(portal, manager, "manage_portal")
        permissions.utils.grant_permission(portal, manager, "view")
        permissions.utils.grant_permission(portal, manager, "submit")
        permissions.utils.grant_permission(portal, manager, "reject")
        permissions.utils.grant_permission(portal, manager, "review")
        permissions.utils.grant_permission(portal, manager, "publish")

        permissions.utils.grant_permission(portal, owner, "add")
        permissions.utils.grant_permission(portal, owner, "delete")
        permissions.utils.grant_permission(portal, owner, "edit")
        permissions.utils.grant_permission(portal, owner, "manage_local_roles")
        permissions.utils.grant_permission(portal, owner, "retract")
        permissions.utils.grant_permission(portal, owner, "submit")
        permissions.utils.grant_permission(portal, owner, "view")

        permissions.utils.grant_permission(portal, reviewer, "view_management")
        permissions.utils.grant_permission(portal, reviewer, "view")
        permissions.utils.grant_permission(portal, reviewer, "publish")
        permissions.utils.grant_permission(portal, reviewer, "reject")
        permissions.utils.grant_permission(portal, reviewer, "review")

        # Simple Workflow
        ##########################################################################

        # Add workflow
        workflow, created = Workflow.objects.get_or_create(name="Simple")

        # Add states
        private = State.objects.create(name="Private", workflow=workflow)
        public = State.objects.create(name="Public", workflow=workflow)

        # Create transitions
        make_public = Transition.objects.create(name="Make public",
                                                workflow=workflow,
                                                destination=public)
        make_private = Transition.objects.create(name="Make private",
                                                 workflow=workflow,
                                                 destination=private)

        # Add transitions
        private.transitions.add(make_public)
        public.transitions.add(make_private)

        # Add all permissions which are managed by the workflow
        WorkflowPermissionRelation.objects.create(workflow=workflow,
                                                  permission=add)
        WorkflowPermissionRelation.objects.create(workflow=workflow,
                                                  permission=delete)
        WorkflowPermissionRelation.objects.create(workflow=workflow,
                                                  permission=edit)
        WorkflowPermissionRelation.objects.create(workflow=workflow,
                                                  permission=view)

        # Add permissions for single states

        # Private
        StatePermissionRelation.objects.create(state=private,
                                               permission=add,
                                               role=owner)
        StatePermissionRelation.objects.create(state=private,
                                               permission=delete,
                                               role=owner)
        StatePermissionRelation.objects.create(state=private,
                                               permission=edit,
                                               role=owner)
        StatePermissionRelation.objects.create(state=private,
                                               permission=view,
                                               role=owner)

        StatePermissionRelation.objects.create(state=private,
                                               permission=add,
                                               role=manager)
        StatePermissionRelation.objects.create(state=private,
                                               permission=delete,
                                               role=manager)
        StatePermissionRelation.objects.create(state=private,
                                               permission=edit,
                                               role=manager)
        StatePermissionRelation.objects.create(state=private,
                                               permission=view,
                                               role=manager)

        # Public
        StatePermissionRelation.objects.create(state=public,
                                               permission=view,
                                               role=anonymous)

        StatePermissionRelation.objects.create(state=public,
                                               permission=view,
                                               role=editor)

        StatePermissionRelation.objects.create(state=public,
                                               permission=view,
                                               role=reviewer)

        StatePermissionRelation.objects.create(state=public,
                                               permission=add,
                                               role=owner)
        StatePermissionRelation.objects.create(state=public,
                                               permission=delete,
                                               role=owner)
        StatePermissionRelation.objects.create(state=public,
                                               permission=edit,
                                               role=owner)
        StatePermissionRelation.objects.create(state=public,
                                               permission=view,
                                               role=owner)

        StatePermissionRelation.objects.create(state=public,
                                               permission=add,
                                               role=manager)
        StatePermissionRelation.objects.create(state=public,
                                               permission=delete,
                                               role=manager)
        StatePermissionRelation.objects.create(state=public,
                                               permission=edit,
                                               role=manager)
        StatePermissionRelation.objects.create(state=public,
                                               permission=view,
                                               role=manager)

        # Add inheritance block for single states
        StateInheritanceBlock.objects.create(state=private, permission=add)
        StateInheritanceBlock.objects.create(state=private, permission=delete)
        StateInheritanceBlock.objects.create(state=private, permission=edit)
        StateInheritanceBlock.objects.create(state=private, permission=view)

        StateInheritanceBlock.objects.create(state=public, permission=add)
        StateInheritanceBlock.objects.create(state=public, permission=delete)
        StateInheritanceBlock.objects.create(state=public, permission=edit)
        StateInheritanceBlock.objects.create(state=public, permission=view)

        # Define public state
        WorkflowStatesInformation.objects.create(state=public, public=True)

        # Define initial state
        workflow.initial_state = private
        workflow.save()

        # Portal Workflow
        ##########################################################################

        # Add workflow
        portal_workflow, created = Workflow.objects.get_or_create(
            name="Portal")

        # Add states
        private = State.objects.create(name="Private",
                                       workflow=portal_workflow)
        submitted = State.objects.create(name="Submitted",
                                         workflow=portal_workflow)
        public = State.objects.create(name="Public", workflow=portal_workflow)

        # Create transitions
        submit_t = Transition.objects.create(name="Submit",
                                             workflow=portal_workflow,
                                             destination=submitted,
                                             permission=submit)
        make_public = Transition.objects.create(name="Make public",
                                                workflow=portal_workflow,
                                                destination=public,
                                                permission=publish)
        make_private = Transition.objects.create(name="Make private",
                                                 workflow=portal_workflow,
                                                 destination=private,
                                                 permission=review)
        reject_t = Transition.objects.create(name="Reject",
                                             workflow=portal_workflow,
                                             destination=private,
                                             permission=reject)
        retract = Transition.objects.create(name="Retract",
                                            workflow=portal_workflow,
                                            destination=private,
                                            permission=retract)

        # Add transitions
        private.transitions.add(submit_t)
        private.transitions.add(make_public)
        submitted.transitions.add(make_public)
        submitted.transitions.add(reject_t)
        submitted.transitions.add(retract)
        public.transitions.add(make_private)
        public.transitions.add(retract)

        # Add all permissions which are managed by the workflow
        WorkflowPermissionRelation.objects.create(workflow=portal_workflow,
                                                  permission=add)
        WorkflowPermissionRelation.objects.create(workflow=portal_workflow,
                                                  permission=delete)
        WorkflowPermissionRelation.objects.create(workflow=portal_workflow,
                                                  permission=edit)
        WorkflowPermissionRelation.objects.create(workflow=portal_workflow,
                                                  permission=view)

        # Add permissions for single states

        # Private
        StatePermissionRelation.objects.create(state=private,
                                               permission=add,
                                               role=author)
        StatePermissionRelation.objects.create(state=private,
                                               permission=delete,
                                               role=editor)
        StatePermissionRelation.objects.create(state=private,
                                               permission=edit,
                                               role=editor)
        StatePermissionRelation.objects.create(state=private,
                                               permission=view,
                                               role=editor)
        StatePermissionRelation.objects.create(state=private,
                                               permission=add,
                                               role=manager)
        StatePermissionRelation.objects.create(state=private,
                                               permission=delete,
                                               role=manager)
        StatePermissionRelation.objects.create(state=private,
                                               permission=edit,
                                               role=manager)
        StatePermissionRelation.objects.create(state=private,
                                               permission=view,
                                               role=manager)
        StatePermissionRelation.objects.create(state=private,
                                               permission=delete,
                                               role=owner)
        StatePermissionRelation.objects.create(state=private,
                                               permission=edit,
                                               role=owner)
        StatePermissionRelation.objects.create(state=private,
                                               permission=view,
                                               role=owner)

        StateInheritanceBlock.objects.create(state=private, permission=add)
        StateInheritanceBlock.objects.create(state=private, permission=delete)
        StateInheritanceBlock.objects.create(state=private, permission=edit)
        StateInheritanceBlock.objects.create(state=private, permission=view)

        # Submitted
        StatePermissionRelation.objects.create(state=submitted,
                                               permission=add,
                                               role=author)
        StatePermissionRelation.objects.create(state=submitted,
                                               permission=view,
                                               role=owner)
        StatePermissionRelation.objects.create(state=submitted,
                                               permission=add,
                                               role=manager)
        StatePermissionRelation.objects.create(state=submitted,
                                               permission=delete,
                                               role=manager)
        StatePermissionRelation.objects.create(state=submitted,
                                               permission=edit,
                                               role=manager)
        StatePermissionRelation.objects.create(state=submitted,
                                               permission=view,
                                               role=manager)
        StatePermissionRelation.objects.create(state=submitted,
                                               permission=delete,
                                               role=editor)
        StatePermissionRelation.objects.create(state=submitted,
                                               permission=edit,
                                               role=editor)
        StatePermissionRelation.objects.create(state=submitted,
                                               permission=view,
                                               role=editor)
        StatePermissionRelation.objects.create(state=submitted,
                                               permission=view,
                                               role=reviewer)

        StateInheritanceBlock.objects.create(state=submitted, permission=add)
        StateInheritanceBlock.objects.create(state=submitted,
                                             permission=delete)
        StateInheritanceBlock.objects.create(state=submitted, permission=edit)
        StateInheritanceBlock.objects.create(state=submitted, permission=view)

        # Public
        StatePermissionRelation.objects.create(state=public,
                                               permission=add,
                                               role=author)
        StatePermissionRelation.objects.create(state=public,
                                               permission=delete,
                                               role=editor)
        StatePermissionRelation.objects.create(state=public,
                                               permission=edit,
                                               role=editor)
        StatePermissionRelation.objects.create(state=public,
                                               permission=view,
                                               role=editor)
        StatePermissionRelation.objects.create(state=public,
                                               permission=add,
                                               role=manager)
        StatePermissionRelation.objects.create(state=public,
                                               permission=delete,
                                               role=manager)
        StatePermissionRelation.objects.create(state=public,
                                               permission=edit,
                                               role=manager)
        StatePermissionRelation.objects.create(state=public,
                                               permission=view,
                                               role=anonymous)
        StatePermissionRelation.objects.create(state=public,
                                               permission=view,
                                               role=manager)
        StatePermissionRelation.objects.create(state=public,
                                               permission=view,
                                               role=owner)
        StatePermissionRelation.objects.create(state=public,
                                               permission=view,
                                               role=reviewer)

        StateInheritanceBlock.objects.create(state=public, permission=add)
        StateInheritanceBlock.objects.create(state=public, permission=delete)
        StateInheritanceBlock.objects.create(state=public, permission=edit)
        StateInheritanceBlock.objects.create(state=public, permission=view)

        # Define public state
        WorkflowStatesInformation.objects.create(state=public, public=True)

        # Define review state
        WorkflowStatesInformation.objects.create(state=submitted, review=True)

        # Define initial state
        portal_workflow.initial_state = private
        portal_workflow.save()

        # Set workflow for Page
        ctype = ContentType.objects.get_for_model(Page)
        workflows.utils.set_workflow_for_model(ctype, portal_workflow)

        # Welcome Page
        creator = User.objects.filter()[0]
        page = Page.objects.create(title="Welcome to LFC",
                                   slug="welcome-to-lfc",
                                   text=WELCOME_DESCRIPTION,
                                   creator=creator)
        workflows.utils.set_state(page, public)

        portal.standard = page
        portal.save()

        import_module("lfc_page").install()
        try:
            Application.objects.create(name="lfc_page")
        except Application.DoesNotExist:
            pass
Example #12
0
    def handle(self, *args, **options):

        initialize()

        # Register site
        site = Site.objects.all()[0]
        site.name = site.domain = "www.example.com"
        site.save()

        # Create portal
        portal = Portal.objects.create()

        # Register roles
        anonymous = permissions.utils.register_role("Anonymous")

        # Registers permissions
        view = permissions.utils.register_permission("View", "view")

        # Create slots
        left_slot, created = Slot.objects.get_or_create(name="Left")
        right_slot, created = Slot.objects.get_or_create(name="Right")

        # Set permissions for portal
        permissions.utils.grant_permission(portal, anonymous, "view")

        # Simple Workflow
        ##########################################################################

        # Add workflow
        workflow, created = Workflow.objects.get_or_create(name="Simple")

        # Add states
        private = State.objects.create(name="Private", workflow=workflow)
        public = State.objects.create(name="Public", workflow=workflow)

        # Create transitions
        make_public = Transition.objects.create(name="Make public", workflow=workflow, destination=public)
        make_private = Transition.objects.create(name="Make private", workflow=workflow, destination=private)

        # Add transitions
        private.transitions.add(make_public)
        public.transitions.add(make_private)

        # Add all permissions which are managed by the workflow
        WorkflowPermissionRelation.objects.create(workflow=workflow, permission=view)

        # Add permissions for single states
        # Private
        StateInheritanceBlock.objects.create(state=private, permission=view)

        # Define public state
        WorkflowStatesInformation.objects.create(state=public, public=True)

        # Define initial state
        workflow.initial_state = private
        workflow.save()

        # Set workflow for Page
        ctype = ContentType.objects.get_for_model(Page)
        workflows.utils.set_workflow_for_model(ctype, workflow)

        # Welcome Page
        page = Page.objects.create(title="Welcome to LFC", slug="welcome-to-lfc", text=WELCOME_DESCRIPTION)
        workflows.utils.set_state(page, public)

        portal.standard = page
        portal.save()

        import_module("lfc_page").install()
        try:
            Application.objects.create(name="lfc_page")
        except Application.DoesNotExist:
            pass
Example #13
0
    def handle(self, *args, **options):
        # Register default portlets, templates and content types.
        initialize()

        # Register site
        site = Site.objects.all()[0]
        site.name = site.domain = "www.example.com"
        site.save()

        # Create portal
        portal = Portal.objects.create(id=1, title="LFC")

        # Register roles
        anonymous = permissions.utils.register_role("Anonymous")
        author = permissions.utils.register_role("Author")
        owner = permissions.utils.register_role("Owner")
        editor = permissions.utils.register_role("Editor")
        reviewer = permissions.utils.register_role("Reviewer")
        manager = permissions.utils.register_role("Manager")

        # Registers permissions
        add = permissions.utils.register_permission("Add", "add")
        delete = permissions.utils.register_permission("Delete", "delete")
        edit = permissions.utils.register_permission("Edit", "edit")
        view = permissions.utils.register_permission("View", "view")
        manage_local_roles = permissions.utils.register_permission("Manage local roles", "manage_local_roles")
        manage_permissions = permissions.utils.register_permission("Manage permissions", "manage_permissions")
        view_management = permissions.utils.register_permission("View management", "view_management")
        checkin = permissions.utils.register_permission("Check in", "checkin")
        checkin = permissions.utils.register_permission("Check out", "checkout")

        publish = permissions.utils.register_permission("Publish", "publish")
        submit = permissions.utils.register_permission("Submit", "submit")
        reject = permissions.utils.register_permission("Reject", "reject")
        retract = permissions.utils.register_permission("Retract", "retract")

        ctype = ContentType.objects.get_for_model(Portal)
        manage_portal = permissions.utils.register_permission("Manage portal", "manage_portal", [ctype])
        review = permissions.utils.register_permission("Review", "review", [ctype])

        # Create slots
        left_slot, created = Slot.objects.get_or_create(name="Left")
        right_slot, created = Slot.objects.get_or_create(name="Right")

        # Set permissions for the portal (all permissions for the portal and
        # which are independent of the workflow state)
        permissions.utils.grant_permission(portal, author, "add")
        permissions.utils.grant_permission(portal, author, "checkout")
        permissions.utils.grant_permission(portal, author, "view")
        permissions.utils.grant_permission(portal, author, "view_management")

        permissions.utils.grant_permission(portal, editor, "checkout")
        permissions.utils.grant_permission(portal, editor, "delete")
        permissions.utils.grant_permission(portal, editor, "edit")
        permissions.utils.grant_permission(portal, editor, "submit")
        permissions.utils.grant_permission(portal, editor, "view")
        permissions.utils.grant_permission(portal, editor, "view_management")

        permissions.utils.grant_permission(portal, manager, "add", )
        permissions.utils.grant_permission(portal, manager, "checkin")
        permissions.utils.grant_permission(portal, manager, "checkout")
        permissions.utils.grant_permission(portal, manager, "delete")
        permissions.utils.grant_permission(portal, manager, "edit")
        permissions.utils.grant_permission(portal, manager, "manage_local_roles")
        permissions.utils.grant_permission(portal, manager, "manage_permissions")
        permissions.utils.grant_permission(portal, manager, "manage_portal")
        permissions.utils.grant_permission(portal, manager, "publish")
        permissions.utils.grant_permission(portal, manager, "reject")
        permissions.utils.grant_permission(portal, manager, "retract")
        permissions.utils.grant_permission(portal, manager, "submit")
        permissions.utils.grant_permission(portal, manager, "review")
        permissions.utils.grant_permission(portal, manager, "view")
        permissions.utils.grant_permission(portal, manager, "view_management")

        permissions.utils.grant_permission(portal, owner, "checkout")
        permissions.utils.grant_permission(portal, owner, "delete")
        permissions.utils.grant_permission(portal, owner, "edit")
        permissions.utils.grant_permission(portal, owner, "manage_local_roles")
        permissions.utils.grant_permission(portal, owner, "submit")
        permissions.utils.grant_permission(portal, owner, "view")

        permissions.utils.grant_permission(portal, reviewer, "checkin")
        permissions.utils.grant_permission(portal, reviewer, "checkout")
        permissions.utils.grant_permission(portal, reviewer, "publish")
        permissions.utils.grant_permission(portal, reviewer, "reject")
        permissions.utils.grant_permission(portal, reviewer, "review")
        permissions.utils.grant_permission(portal, reviewer, "view")
        permissions.utils.grant_permission(portal, reviewer, "view_management")

        # Simple Workflow
        ##########################################################################

        # Add workflow
        workflow, created = Workflow.objects.get_or_create(name="Simple")

        # Add states
        private = State.objects.create(name="Private", workflow=workflow)
        public = State.objects.create(name="Public", workflow=workflow)

        # Create transitions
        make_public = Transition.objects.create(name="Make public", workflow=workflow, destination=public)
        make_private = Transition.objects.create(name="Make private", workflow=workflow, destination=private)

        # Add transitions
        private.transitions.add(make_public)
        public.transitions.add(make_private)

        # Add all permissions which are managed by the workflow
        WorkflowPermissionRelation.objects.create(workflow=workflow, permission=add)
        WorkflowPermissionRelation.objects.create(workflow=workflow, permission=delete)
        WorkflowPermissionRelation.objects.create(workflow=workflow, permission=edit)
        WorkflowPermissionRelation.objects.create(workflow=workflow, permission=view)

        # Add permissions for single states

        # Private
        StatePermissionRelation.objects.create(state=private, permission=add, role=owner)
        StatePermissionRelation.objects.create(state=private, permission=delete, role=owner)
        StatePermissionRelation.objects.create(state=private, permission=edit, role=owner)
        StatePermissionRelation.objects.create(state=private, permission=view, role=owner)

        StatePermissionRelation.objects.create(state=private, permission=add, role=manager)
        StatePermissionRelation.objects.create(state=private, permission=delete, role=manager)
        StatePermissionRelation.objects.create(state=private, permission=edit, role=manager)
        StatePermissionRelation.objects.create(state=private, permission=view, role=manager)

        # Public
        StatePermissionRelation.objects.create(state=public, permission=view, role=anonymous)

        StatePermissionRelation.objects.create(state=public, permission=view, role=editor)

        StatePermissionRelation.objects.create(state=public, permission=view, role=reviewer)

        StatePermissionRelation.objects.create(state=public, permission=add, role=owner)
        StatePermissionRelation.objects.create(state=public, permission=delete, role=owner)
        StatePermissionRelation.objects.create(state=public, permission=edit, role=owner)
        StatePermissionRelation.objects.create(state=public, permission=view, role=owner)

        StatePermissionRelation.objects.create(state=public, permission=add, role=manager)
        StatePermissionRelation.objects.create(state=public, permission=delete, role=manager)
        StatePermissionRelation.objects.create(state=public, permission=edit, role=manager)
        StatePermissionRelation.objects.create(state=public, permission=view, role=manager)

        # Add inheritance block for single states
        StateInheritanceBlock.objects.create(state=private, permission=add)
        StateInheritanceBlock.objects.create(state=private, permission=delete)
        StateInheritanceBlock.objects.create(state=private, permission=edit)
        StateInheritanceBlock.objects.create(state=private, permission=view)

        StateInheritanceBlock.objects.create(state=public, permission=add)
        StateInheritanceBlock.objects.create(state=public, permission=delete)
        StateInheritanceBlock.objects.create(state=public, permission=edit)
        StateInheritanceBlock.objects.create(state=public, permission=view)

        # Define public state
        WorkflowStatesInformation.objects.create(state=public, public=True)

        # Define initial state
        workflow.initial_state = private
        workflow.save()

        # Portal Workflow
        ##########################################################################

        # Add workflow
        portal_workflow, created = Workflow.objects.get_or_create(name="Portal")

        # Add states
        private = State.objects.create(name="Private", workflow=portal_workflow)
        submitted = State.objects.create(name="Submitted", workflow=portal_workflow)
        public = State.objects.create(name="Public", workflow=portal_workflow)

        # Create transitions
        submit_t = Transition.objects.create(name="Submit", workflow=portal_workflow, destination=submitted, permission=submit)
        make_public = Transition.objects.create(name="Make public", workflow=portal_workflow, destination=public, permission=publish)
        make_private = Transition.objects.create(name="Make private", workflow=portal_workflow, destination=private, permission=review)
        reject_t = Transition.objects.create(name="Reject", workflow=portal_workflow, destination=private, permission=reject)
        retract_t = Transition.objects.create(name="Retract", workflow=portal_workflow, destination=private, permission=retract)

        # Add transitions
        private.transitions.add(submit_t)
        private.transitions.add(make_public)
        submitted.transitions.add(make_public)
        submitted.transitions.add(reject_t)
        submitted.transitions.add(retract_t)
        public.transitions.add(make_private)
        public.transitions.add(retract_t)

        # Add all permissions which are managed by the workflow
        WorkflowPermissionRelation.objects.create(workflow=portal_workflow, permission=add)
        WorkflowPermissionRelation.objects.create(workflow=portal_workflow, permission=delete)
        WorkflowPermissionRelation.objects.create(workflow=portal_workflow, permission=edit)
        WorkflowPermissionRelation.objects.create(workflow=portal_workflow, permission=retract)
        WorkflowPermissionRelation.objects.create(workflow=portal_workflow, permission=view)

        # Add permissions for single states

        # Private
        StatePermissionRelation.objects.create(state=private, permission=add, role=author)

        StatePermissionRelation.objects.create(state=private, permission=delete, role=editor)
        StatePermissionRelation.objects.create(state=private, permission=edit, role=editor)
        StatePermissionRelation.objects.create(state=private, permission=view, role=editor)

        StatePermissionRelation.objects.create(state=private, permission=add, role=manager)
        StatePermissionRelation.objects.create(state=private, permission=delete, role=manager)
        StatePermissionRelation.objects.create(state=private, permission=edit, role=manager)
        StatePermissionRelation.objects.create(state=private, permission=view, role=manager)

        StatePermissionRelation.objects.create(state=private, permission=delete, role=owner)
        StatePermissionRelation.objects.create(state=private, permission=edit, role=owner)
        StatePermissionRelation.objects.create(state=private, permission=view, role=owner)

        StateInheritanceBlock.objects.create(state=private, permission=add)
        StateInheritanceBlock.objects.create(state=private, permission=delete)
        StateInheritanceBlock.objects.create(state=private, permission=edit)
        StateInheritanceBlock.objects.create(state=private, permission=retract)
        StateInheritanceBlock.objects.create(state=private, permission=view)

        # Submitted
        StatePermissionRelation.objects.create(state=submitted, permission=add, role=author)

        StatePermissionRelation.objects.create(state=submitted, permission=view, role=owner)
        StatePermissionRelation.objects.create(state=submitted, permission=retract, role=owner)

        StatePermissionRelation.objects.create(state=submitted, permission=add, role=manager)
        StatePermissionRelation.objects.create(state=submitted, permission=delete, role=manager)
        StatePermissionRelation.objects.create(state=submitted, permission=edit, role=manager)
        StatePermissionRelation.objects.create(state=submitted, permission=view, role=manager)
        StatePermissionRelation.objects.create(state=submitted, permission=retract, role=manager)

        StatePermissionRelation.objects.create(state=submitted, permission=delete, role=editor)
        StatePermissionRelation.objects.create(state=submitted, permission=edit, role=editor)
        StatePermissionRelation.objects.create(state=submitted, permission=view, role=editor)

        StatePermissionRelation.objects.create(state=submitted, permission=view, role=reviewer)

        StateInheritanceBlock.objects.create(state=submitted, permission=add)
        StateInheritanceBlock.objects.create(state=submitted, permission=delete)
        StateInheritanceBlock.objects.create(state=submitted, permission=edit)
        StateInheritanceBlock.objects.create(state=submitted, permission=retract)
        StateInheritanceBlock.objects.create(state=submitted, permission=view)

        # Public
        StatePermissionRelation.objects.create(state=public, permission=view, role=anonymous)

        StatePermissionRelation.objects.create(state=public, permission=add, role=author)

        StatePermissionRelation.objects.create(state=public, permission=delete, role=editor)
        StatePermissionRelation.objects.create(state=public, permission=edit, role=editor)
        StatePermissionRelation.objects.create(state=public, permission=retract, role=editor)
        StatePermissionRelation.objects.create(state=public, permission=view, role=editor)

        StatePermissionRelation.objects.create(state=public, permission=add, role=manager)
        StatePermissionRelation.objects.create(state=public, permission=delete, role=manager)
        StatePermissionRelation.objects.create(state=public, permission=edit, role=manager)
        StatePermissionRelation.objects.create(state=public, permission=view, role=manager)

        StatePermissionRelation.objects.create(state=public, permission=view, role=owner)

        StatePermissionRelation.objects.create(state=public, permission=view, role=reviewer)

        StateInheritanceBlock.objects.create(state=public, permission=add)
        StateInheritanceBlock.objects.create(state=public, permission=delete)
        StateInheritanceBlock.objects.create(state=public, permission=edit)
        StateInheritanceBlock.objects.create(state=public, permission=retract)
        StateInheritanceBlock.objects.create(state=public, permission=view)

        # Define public state
        WorkflowStatesInformation.objects.create(state=public, public=True)

        # Define review state
        WorkflowStatesInformation.objects.create(state=submitted, review=True)

        # Define initial state
        portal_workflow.initial_state = private
        portal_workflow.save()

        # Set workflow for Page
        ctype = ContentType.objects.get_for_model(Page)
        workflows.utils.set_workflow_for_model(ctype, portal_workflow)

        # Welcome Page
        creator = User.objects.filter()[0]
        page = Page.objects.create(title="Welcome to LFC", slug="welcome-to-lfc", text=WELCOME_DESCRIPTION, creator=creator)
        workflows.utils.set_state(page, public)

        portal.standard = page
        portal.save()

        import_module("lfc_page").install()
        try:
            Application.objects.create(name="lfc_page")
        except Application.DoesNotExist:
            pass
Example #14
0
    def handle(self, *args, **options):

        initialize()

        # Register site
        site = Site.objects.all()[0]
        site.name = site.domain = "www.example.com"
        site.save()

        # Create portal
        portal = Portal.objects.create()

        # Register roles
        anonymous = permissions.utils.register_role("Anonymous")

        # Registers permissions
        view = permissions.utils.register_permission("View", "view")

        # Create slots
        left_slot, created = Slot.objects.get_or_create(name="Left")
        right_slot, created = Slot.objects.get_or_create(name="Right")

        # Set permissions for portal
        permissions.utils.grant_permission(portal, anonymous, "view")

        # Simple Workflow
        ##########################################################################

        # Add workflow
        workflow, created = Workflow.objects.get_or_create(name="Simple")

        # Add states
        private = State.objects.create(name="Private", workflow=workflow)
        public = State.objects.create(name="Public", workflow=workflow)

        # Create transitions
        make_public = Transition.objects.create(name="Make public", workflow=workflow, destination=public)
        make_private = Transition.objects.create(name="Make private", workflow=workflow, destination=private)

        # Add transitions
        private.transitions.add(make_public)
        public.transitions.add(make_private)

        # Add all permissions which are managed by the workflow
        WorkflowPermissionRelation.objects.create(workflow=workflow, permission=view)

        # Add permissions for single states
        # Private
        StateInheritanceBlock.objects.create(state=private, permission=view)

        # Define public state
        WorkflowStatesInformation.objects.create(state=public, public=True)

        # Define initial state
        workflow.initial_state = private
        workflow.save()

        # Set workflow for Page
        ctype = ContentType.objects.get_for_model(Page)
        workflows.utils.set_workflow_for_model(ctype, workflow)

        # Welcome Page
        page = Page.objects.create(title="Welcome to LFC", slug="welcome-to-lfc", text=WELCOME_DESCRIPTION)
        workflows.utils.set_state(page, public)

        portal.standard = page
        portal.save()

        import_module("lfc_page").install()
        try:
            Application.objects.create(name="lfc_page")
        except Application.DoesNotExist:
            pass