Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

Customising the CMS /

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

Can Silverstripe do that/Criticize my implementation


Go to End


1532 Views

Avatar
jsaade

Community Member, 18 Posts

28 March 2011 at 10:32am

Edited: 28/03/2011 10:38am

In my first Silverstripe project, the client had a list of requirements, and I had to tweak silverstripe in order to fulfill them all.

Requirements:
- Website is for Cars and Real Estates.
- Cars are divided into 4 categories: Used, New, Classified Used, Classified New
- Real Estates: Sale, Rent, Classified Sale, Classified Rent.

- Admin Can create users that belong to one of the top categories and those users can only edit/add pages they manage (they cannot see other users pages).

- When a user edits a page, a publication request is emailed to the admin who must approve in order to publish anything.

- Other Requirements:
- Site Banners with also group of users restrictions.
- Ability to add/edit Regions for real estates.
- Ability to add/edit Car Brands and Models.

Implementation:
1- Security:


  • - Admins
    - Content Authors

    • - Cars
      - Used

      • - Car Agent A
        - Car Agent B

      - New
      - Classified Used
      - Classified New

    ...

As you see from the above Tree, the admin creates new agents groups under their specific Category.
and being Tree based, I can add restricitions on pages, The SiteTree "Pages" looks like the following:

  • - Home -> only admin can edit
    - Cars -> only Content Author can edit

    • - Used -> only Used Group can edit

      • - Car Agent A Page -> only Car agent A can edit
        - Car Agent B Page -> Only car agent B can edit


    ...

Now this imposed a restriction on the admin, as an admin has to first go to "Security", add the new group then go back to "Pages"
create a page for that specific group and set the permission for that group.
I setup most of the permissions, so the admin only has to put the permissions for the new group only.

I also used Simplify Module to hide pages users cannot see, I also made it Hide a lot of Tabs (almost all the tabs except content related stuff) for Content Authors.

- I used cmsworkflow module to make a small workflow system (Admin published, Content Authors request).

I have just delivered the solution to the client, and hopefully he will find it easy and robust enough to add agents.
But I am thinking, was there a better way to do the above? How would someone with more experience in SilverStripe implement the same requirements?

Thanks.