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.

Customising the CMS /

Can Silverstripe do that/Criticize my implementation


Reply


1085 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.