I’m struggling to make fibery have the following very common team content access requirements, based on team and user specific memberships.
For example: In a FinanceTeam, the financial officer needs editor access to Pages with ‘Editors’ access set, but the secretary needs only viewing access to Pages that have ‘Viewers’ access set. A similar scenario would be a Product development team where the Developers need full editing access to code tagged ‘In Dev’ and the Visitors need only access to code ‘Published’.
Goal:
To allow a team member to have specific level of access to a team page, based on the settings in their Membership entity.
For example:
John has membership entity ‘TeamA Page Editor’, giving him access to all team pages that have AccessLevel set to ‘Editors’
John should not have access to Editors team pages of team B.
Thus, the access propagation should restrict to one Team and one AccessLevel.
Schema
In an attempt to accomplish this, I have set up the following databases:
- Database: Team
- Field: Memberships (1:M)
- Field: Users (M:M)
- Field: Pages (1:M)
- Database: Membership
- Field: Team (M:1)
- Field: User (M:1)
- Field: AccessLevel (to db AccessLevel) (M:1)
- Field: StartDate
- Database: AccessLevel
- Field: Viewers (to db Page) (1:M)
- Field: Editors (to db Page) (1:M)
- Database: Page
- Field: AccessLevel (M:1)
- Field: Team (M:1)
Question: how to solve this?
Likely one or more Custom Access Template (CAT) will need to be created, and user fields in the Team database and/or the Membership database need to be set to automatically assign users to these CATs.
I have to been able to accomplish this, since a Membership CAT can allow by AccessLevel to Pages, but cannot restrict by Team also?
Also, a Team CAT can allow by Accesslevel to Pages, but cannot restrict by Membership?