Altering Orchard Core through Modules

Topics: Core, Customizing Orchard
Jan 22, 2015 at 6:45 PM
Is it feasible to alter core parts of the Orchard application through modules? To clarify, would I be able to alter the way permissions work to no longer allow users with the permission to publish to publish their own content? Also, would it be possible, through a module, to add new version definitions to content items such as "approved" or "ready for publish"? I would like to extend this even further to create a new system for publishing content as follows:
  • Option to either allow people to publish their own content or force content to be published by a user other than the creator (needs to be an option chosen by the site superuser in case the site will not have more than one publisher)
  • Customizable content approval systems in which certain users or groups of users must approve content before it can finally be published - this would need to be something the superuser or possibly an admin can create/set up
  • System of notifying users to take action on a content item when needed (may be able to accomplish this solely through workflows but would be better if it were built in so each site doesn't have to set up a new series of workflows
  • Views/lists of content in categories of last action taken, actions remaining, etc
  • Way of ensuring no content is published without first going through the required steps
Instead of setting up new version definitions for content items it might be possible to add a new set of flags to determine the last action taken on a content item and the remaining actions needed before it can be published.

Thank you.
Developer
Jan 24, 2015 at 7:32 PM
"Is it feasible to alter core parts of the Orchard application through modules?" The primary objective of modules is to alter what the core of Orchard does (and to add new functionality) and you shouldn't alter the Core besides doing it from modules :-).

It seems all this is possible with Workflows, because you can build such a publishing pipeline. I think Sipke's Workflows demo on the last Harvest also included a lot of this stuff.

And BTW if you want to modify how authorization works you can hook into it by implementing IAuthorizationServiceEventHandler.