41
Joomla! 1.6 ACL Joomla! 1.6 ACL Sander Potjer Joomla!Days UK - 30th & 31st October 2010

Joomla! 1.6 ACL at #jd10uk

Embed Size (px)

DESCRIPTION

The most wanted new feature of Joomla 1.6, the new ACL system explained. Including the ACL Manager extension that is in development by Sander Potjer. Given at Joomla Days United Kingdom, 2010.

Citation preview

Page 1: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

Joomla! 1.6 ACLSander Potjer

Joomla!Days UK - 30th & 31st October 2010

Page 2: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

Sander Potjer

• Co-founder of Dutch community: JoomlaCommunity.eu

• Organizer Joomla!Day Netherlands

• Organizer Joomla! User Groups in The Netherlands

• Company: Sander Potjer Webdesign

• Yireo team member

• Student Architecture

Page 3: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

Joomla! 1.6 ACL

Page 4: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

It took a while...

• http://www.slideshare.net/JohanJanssens/drupalcon-2005-joomla-drupal-and-you-presentation

DrupalCon, October 2005Johan Janssens

Page 5: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

• ACL = Access Control List

• Access to parts of the website– e.g. menu / module visibility– “view” action

• User actions on objects– e.g. create / edit / delete article

ACL?!

Page 6: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

ACL in Joomla! 1.5 & 1.6 (Access)

• 7 fixed Groups– Public, Registered, Author, Editor,

Publisher, Manager, Administrator and Super-Administrator

– Hierarchical structure

• User can be assigned to one group

• 3 fixed Access Levels– Public, Registered and Special

• Fixed relation between Groups and Access Levels

Page 7: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

• 7 fixed Groups– Public, Registered, Author, Editor,

Publisher, Manager, Administrator and Super-Administrator

– Hierarchical structure

• User can be assigned to one group

• 3 fixed Access Levels– Public, Registered and Special

• Fixed relation between Groups and Access Levels

• Unlimited Groups– user-defined– not hierarchical

• User can be assigned to multiple groups

• Unlimited Access Levels– user-defined

• Any combination of Groups can be assigned to any Access Level

ACL in Joomla! 1.5 & 1.6 (Access)

Page 8: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

ACL in Joomla! 1.5 & 1.6 (Actions)

• Fixed Actions per group– Create / edit / delete /

admin access / etc.

• Permission scope for entire site– Same permission for all objects

• Permission inheritance not applicable

• http://brian.teeman.net/joomla-gps/joomla-15-acl-explained.html

Page 9: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

• Fixed Actions per group– Create / edit / delete /

admin access / etc.

• Permission scope for entire site– Same permission for all objects

• Permission inheritance not applicable

• User defined Actions per group

– Create / edit / delete / admin access / etc.

• Permission scope at multiple levels

– Site, Component, Category, Object

• Permission can be inherited

– from parent Groups and parent Categories

ACL in Joomla! 1.5 & 1.6 (Actions)

Page 10: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

Joomla! 1.6 ACL Overview(r19286, 29-10-2010)

Page 12: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

Joomla 1.6 ACL: User

• Guest is also a user

• Users can be assigned to one or several groups

Page 13: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

Joomla 1.6 ACL: Permissions

• Assigned to group (not user!)

• 9 Actions– Site Login– Admin Login– Configure– Access Comp.– Create– Delete– Edit– Edit State– Edit Own

Page 14: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

Joomla 1.6 ACL: Action Permission Groups

• Users with same permissions

• User can be in multiple groups

• Permissions are inherited between groups

• Unlimited (sub-)groups

Page 15: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

Joomla 1.6 ACL: Access Level

• Which group can view what (article, menu, module, etc.)

• Permissions are not inherited between Access Levels

• Even Super Users can not view

Page 16: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

Permissions

Page 17: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

How Action Permissions work

• Not set– ‘soft’ deny– can be overridden by ‘allow’

• Inherited– value from a higher permission level– value from a higher user group

• Allowed– action for this permission level and lower levels– action for this user group and child groups

• Denied & Locked– action for this permission level and lower levels– action for this user group and child groups– always win!

Page 18: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

Permission Hierarchy Levels

• Global configuration (Level 1)– default permissions for each action and group

• Component Options (Level 2)– can override the default permissions for a component

• Category (Level 3)– can override the default permissions and component options– applies to components with categories (Articles, Banners, etc...)

• Item (Level 4)– can override all permissions above for an object– only applies to articles in Joomla 1.6 core

• Override permissions only works if higher level is not denied & locked!

Page 19: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

Permissions: Global Configuration (Level 1)

Page 20: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

Permissions: Component Options (Level 2)

Page 21: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

Permissions: Category (Level 3)

Page 22: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

Permissions: Item (Level 4)

Page 23: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

Inheriting example for action ‘Create’

• http://www.theartofjoomla.com/home/5-commentary/84-introducing-the-new-permissions-in-joomla-16.html

Level 1

Level 2

Level 3

Level 4

Page 24: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

Inheriting example for action ‘Create’

• http://www.theartofjoomla.com/home/5-commentary/84-introducing-the-new-permissions-in-joomla-16.html

Level 1

Level 2

Level 3

Level 4

Page 25: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

Available Joomla 1.6Permissions and Levels

for a Group

Page 26: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

Action: Edit State

Page 27: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

ACL Manager by Sander Potjer

Page 28: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

ACL Manager for Joomla! 1.6

Page 29: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

ACL Manager for Joomla! 1.6

Page 30: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

ACL Manager for Joomla! 1.6

Page 31: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

ACL Manager for Joomla! 1.6

www.aclmanager.net

Page 32: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

Joomla! 1.6 ACL live demo

Page 33: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

Some Notes

Page 34: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

User in multiple groups

• USA group– Allow on edit ‘USA’ category– Deny on edit ‘Europe’ category

• Europe group– Allow on edit ‘Europe’ category– Deny on edit ‘USA’ category

• User in USA & Europe group– Deny on edit ‘Europe’ category– Deny on edit ‘USA’ category– Deny always win

Page 35: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

What if I locked myself out? :-)

Page 36: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

What if I locked myself out? :-)

• No need to access your database

• Open your configuration.php and add:– public $root_user = 'username';

• You can login again and perform all actions

• Great for playing around with the new ACL

• Don’t forget to remove the $root_user line!

Page 37: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

Debug Permissions

• Turn on the ‘Debug System’ in the Global Configuration

• Go to ‘User Manager’ or ‘Groups’

• Click on ‘Debug Permission Report’ below User or Group name

Page 38: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

Practical ACL Tips

Page 39: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

ACL Tips

• Write down your ACL requirements for a website before implementing

• Joomla 1.5 User Groups are for backward compatibility in Joomla 1.6, you may remove them

• Use multi-nested Groups only if needed / know what you are doing (so inheriting value only between levels, not also groups)

Page 40: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

ACL Tips

• Structure your content properly to handle the permissions (don’t set permissions per article/make a parent category with nested categories with same permissions)

• Keep flexible for lower permission levels/groups: try to avoid the ‘Denied & Locked’ as long as possible

• Idea: Make a Group for each Action so you can assign actions directly to a user

Page 41: Joomla! 1.6 ACL at #jd10uk

Joomla! 1.6 ACL

Resources

• http://www.yireo.com/tutorials/joomla/joomla-administration/402-joomla-16-acls-1-marketing-group

• http://community.joomla.org/blogs/community/1252-16-acl.html• http://docs.joomla.org/ACL_Tutorial_for_Joomla_1.6• http://docs.joomla.org/Access_Control_System_In_Joomla_1.6• http://www.theartofjoomla.com/home/5-commentary/84-introducing-the-new-

permissions-in-joomla-16.html• http://www.theartofjoomla.com/home/38-talks/101-the-joomla-16-video-

access-controls.html• http://www.aclmanager.net