User Access Levelsfor Joomla! 1.5 – 1.7    Sander Potjer     @sanderpotjer   www.sanderpotjer.nl
Who is Sander Potjer?• Co-founder of JoomlaCommunity.eu• Organizer Joomla!Days Netherlands• Organizer Joomla! User Groups ...
Joomla! ACL
It took a while...                                          DrupalCon, October 2005                                       ...
ACL?!?!• ACL = Access Control List
ACL?!?!• ACL = Access Control List• Access to parts of the website – e.g. menu / module visibility – “view” action
ACL?!?!• ACL = Access Control List• Access to parts of the website – e.g. menu / module visibility – “view” action• User a...
ACL - Groups• 7 fixed Groups – Public, Registered, Author,   Editor, Publisher, Manager,   Administrator and Super-   Admi...
ACL - Groups• 7 fixed Groups                 • Unlimited Groups – Public, Registered, Author,    – user defined   Editor, ...
ACL - User in Group• User can be assigned to  one group
ACL - User in Group• User can be assigned to   • User can be assigned to  one group                   multiple groups
ACL - Access Levels• 3 fixed Access Levels – Public – Registered – Special
ACL - Access Levels• 3 fixed Access Levels   • Unlimited Access Levels – Public                  – user defined – Register...
ACL - Access Levels & Groups relation• Fixed relation between  Groups and Access  Levels
ACL - Access Levels & Groups relation• Fixed relation between   • Any combination of User  Groups and Access          Grou...
ACL - Actions• Fixed Actions per group – Create / edit / delete /   admin access / etc.• Permission scope for  entire site...
ACL in Joomla! 1.5 & 1.6 (Actions)•   http://brian.teeman.net/joomla-gps/joomla-15-acl-explained.html
ACL - Actions• Fixed Actions per group            • Defined Actions per group – Create / edit / delete /           – Creat...
Joomla! 1.6/1.7/2.5  ACL Overview
•   http://community.joomla.org/blogs/community/1252-16-acl.html
•   http://community.joomla.org/blogs/community/1252-16-acl.html
User       • Guest is also a         user       • Users can be         assigned to one or         multiple groups
•   http://community.joomla.org/blogs/community/1252-16-acl.html
Permissions• Assigned to group (not to a user!)                                       • 10 Actions                        ...
•   http://community.joomla.org/blogs/community/1252-16-acl.html
Group        • Users with same permissions        • Inherited permissions from          parent groups        • Unlimited n...
•   http://community.joomla.org/blogs/community/1252-16-acl.html
Access Level               • What is visible for the group                 (article, menu, module, etc.)               • P...
•   http://community.joomla.org/blogs/community/1252-16-acl.html
Permissions
Permissions• 4 possible permission settings – Not Set – Inherited – Allowed – Denied
Permissions - Not Set• ‘soft’ deny• can be overridden by ‘Allowed’ or ‘Denied’
Permissions - Inherited• Value from a parent Permission level• Value from a parent User Group• Can be overridden by ‘Allow...
Permissions - Allowed• Action for current permission level and lower levels• Action for current user group and child group...
Permissions - Denied•   Action for current Permission level and lower levels•   Action for current User Group and child Gr...
Permission Hierarchy (levels)• Level 1: Global configuration – default permissions settings for actions for a group
Permission Hierarchy (levels)• Level 1: Global configuration – default permissions settings for actions for a group• Level...
Permission Hierarchy (levels)• Level 1: Global configuration – default permissions settings for actions for a group• Level...
Permission Hierarchy (levels)• Level 1: Global configuration – default permissions settings for actions for a group• Level...
Permission Hierarchy (levels)• Level 1: Global configuration – default permissions settings for actions for a group• Level...
Permission Hierarchy (levels)• Level 1: Global configuration – default permissions settings for actions for a group• Level...
Inheriting example for ‘Create’ Action    Level 1    Level 2    Level 3    Level 4•   http://www.theartofjoomla.com/home/5...
Inheriting example for ‘Create’ Action    Level 1    Level 2    Level 3    Level 4•   http://www.theartofjoomla.com/home/5...
Inheriting example for ‘Create’ Action    Level 1    Level 2    Level 3    Level 4•   http://www.theartofjoomla.com/home/5...
Inheriting example for ‘Create’ Action    Level 1    Level 2    Level 3    Level 4•   http://www.theartofjoomla.com/home/5...
Available Permissions and Levels        for a Group of Users
Action: Edit State
ACL Manager for Joomla! 1.6
ACL Manager for Joomla! 1.6
ACL Manager for Joomla!
ACL Manager for Joomla! 1.6        www.aclmanager.net
Debug Permissions
Debug Permissions• Turn on the ‘Debug System’ in the  Global Configuration• Go to ‘User Manager’ or ‘Groups’• Click on ‘De...
Debug Permissions• Need to turn ‘Debug System’ on...
So, what about the database?
Database: #__assets
Plan your ACL implementation
Describe the problem• Most of the website is public available, specific  content only for a group of users (e.g. teachers ...
Viewing or Action problem• Define the problem, is it a viewing problem or action  problem (create/delete/edit/etc..)? Or b...
Think ahead! Maintenance?• Structure your content properly to handle the  permissions• Make usage of parent categories wit...
Some Notes
User in multiple User Groups• The Netherlands – Allowed on edit ‘The Netherlands’ category – Denied on edit ‘Belgium’ cate...
What if I locked myself out?
What if I locked myself out?• No need to access your database• Open your configuration.php and add: – public $root_user = ...
Practical ACL Tips
ACL Tips• Write down your ACL requirements for a website  before implementing• Joomla 1.5 User Groups are for backward  co...
ACL Tips• Assign User Group with backend access to a Viewing  Access Level• Keep flexible for lower permission levels/grou...
Joomla! ACL, what’s next?
Suggestions• View as action• END user friendly interface• Easy overview of your entire website• Changes directly visible (...
Resources•   http://community.joomla.org/blogs/community/1252-16-acl.html•   http://docs.joomla.org/ACL_Tutorial_for_Jooml...
Joomla Access Control List (ACL) at JoomlaDay London, UK #jduk11
Joomla Access Control List (ACL) at JoomlaDay London, UK #jduk11
Joomla Access Control List (ACL) at JoomlaDay London, UK #jduk11
Joomla Access Control List (ACL) at JoomlaDay London, UK #jduk11
Joomla Access Control List (ACL) at JoomlaDay London, UK #jduk11
Joomla Access Control List (ACL) at JoomlaDay London, UK #jduk11
Joomla Access Control List (ACL) at JoomlaDay London, UK #jduk11
Joomla Access Control List (ACL) at JoomlaDay London, UK #jduk11
Joomla Access Control List (ACL) at JoomlaDay London, UK #jduk11
Joomla Access Control List (ACL) at JoomlaDay London, UK #jduk11
Joomla Access Control List (ACL) at JoomlaDay London, UK #jduk11
Upcoming SlideShare
Loading in...5
×

Joomla Access Control List (ACL) at JoomlaDay London, UK #jduk11

2,670

Published on

Published in: Technology, Business
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,670
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
56
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Joomla Access Control List (ACL) at JoomlaDay London, UK #jduk11

  1. 1. User Access Levelsfor Joomla! 1.5 – 1.7 Sander Potjer @sanderpotjer www.sanderpotjer.nl
  2. 2. Who is Sander Potjer?• Co-founder of JoomlaCommunity.eu• Organizer Joomla!Days Netherlands• Organizer Joomla! User Groups in The Netherlands• Joomla Community Leadership Team (CLT) member• Company: Sander Potjer Webdevelopment• E-mail: sander.potjer@community.joomla.org
  3. 3. Joomla! ACL
  4. 4. It took a while... DrupalCon, October 2005 Johan Janssens• http://www.slideshare.net/JohanJanssens/drupalcon-2005-joomla-drupal-and-you-presentation
  5. 5. ACL?!?!• ACL = Access Control List
  6. 6. ACL?!?!• ACL = Access Control List• Access to parts of the website – e.g. menu / module visibility – “view” action
  7. 7. ACL?!?!• ACL = Access Control List• Access to parts of the website – e.g. menu / module visibility – “view” action• User actions on objects – example: create / edit / edit state / delete article
  8. 8. ACL - Groups• 7 fixed Groups – Public, Registered, Author, Editor, Publisher, Manager, Administrator and Super- Administrator• Hierarchical structure
  9. 9. ACL - Groups• 7 fixed Groups • Unlimited Groups – Public, Registered, Author, – user defined Editor, Publisher, Manager, Administrator and Super- • No Hierarchical Structure Administrator required• Hierarchical structure
  10. 10. ACL - User in Group• User can be assigned to one group
  11. 11. ACL - User in Group• User can be assigned to • User can be assigned to one group multiple groups
  12. 12. ACL - Access Levels• 3 fixed Access Levels – Public – Registered – Special
  13. 13. ACL - Access Levels• 3 fixed Access Levels • Unlimited Access Levels – Public – user defined – Registered – Special
  14. 14. ACL - Access Levels & Groups relation• Fixed relation between Groups and Access Levels
  15. 15. ACL - Access Levels & Groups relation• Fixed relation between • Any combination of User Groups and Access Groups can be assigned Levels to any Access Level
  16. 16. ACL - 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
  17. 17. ACL in Joomla! 1.5 & 1.6 (Actions)• http://brian.teeman.net/joomla-gps/joomla-15-acl-explained.html
  18. 18. ACL - Actions• Fixed Actions per group • Defined Actions per group – Create / edit / delete / – Create / edit / delete / admin access / etc. admin access / etc.• Permission scope for • Permission scope at entire site multiple levels – Same permission for all objects – Site/Component/Category/Item• Permission inheritance • Permission can be not applicable inherited – Parent Groups / Categories
  19. 19. Joomla! 1.6/1.7/2.5 ACL Overview
  20. 20. • http://community.joomla.org/blogs/community/1252-16-acl.html
  21. 21. • http://community.joomla.org/blogs/community/1252-16-acl.html
  22. 22. User • Guest is also a user • Users can be assigned to one or multiple groups
  23. 23. • http://community.joomla.org/blogs/community/1252-16-acl.html
  24. 24. Permissions• Assigned to group (not to a user!) • 10 Actions – Site Login – Admin Login – Offline Access (since 1.7) – Super Admin / Configure – Access Component – Create – Delete – Edit – Edit State – Edit Own
  25. 25. • http://community.joomla.org/blogs/community/1252-16-acl.html
  26. 26. Group • Users with same permissions • Inherited permissions from parent groups • Unlimited nested groups • Keep it simple! Only use nested groups if needed
  27. 27. • http://community.joomla.org/blogs/community/1252-16-acl.html
  28. 28. Access Level • What is visible for the group (article, menu, module, etc.) • Permissions are not inherited between Access Levels • Even Super Users can not view content on frontend if not assigned
  29. 29. • http://community.joomla.org/blogs/community/1252-16-acl.html
  30. 30. Permissions
  31. 31. Permissions• 4 possible permission settings – Not Set – Inherited – Allowed – Denied
  32. 32. Permissions - Not Set• ‘soft’ deny• can be overridden by ‘Allowed’ or ‘Denied’
  33. 33. Permissions - Inherited• Value from a parent Permission level• Value from a parent User Group• Can be overridden by ‘Allowed’ or ‘Denied’
  34. 34. Permissions - Allowed• Action for current permission level and lower levels• Action for current user group and child groups• Can be overridden by ‘Denied’
  35. 35. Permissions - Denied• Action for current Permission level and lower levels• Action for current User Group and child Groups• Can not be overridden at all• Always win!
  36. 36. Permission Hierarchy (levels)• Level 1: Global configuration – default permissions settings for actions for a group
  37. 37. Permission Hierarchy (levels)• Level 1: Global configuration – default permissions settings for actions for a group• Level 2: Component Options – can override the permissions of Level 1
  38. 38. Permission Hierarchy (levels)• Level 1: Global configuration – default permissions settings for actions for a group• Level 2: Component Options – can override the permissions of Level 1• Level 3: Category – can override the permissions of Level 1 & Level 2 – available for components with categories (Articles, Banners, etc...)
  39. 39. Permission Hierarchy (levels)• Level 1: Global configuration – default permissions settings for actions for a group• Level 2: Component Options – can override the permissions of Level 1• Level 3: Category – can override the permissions of Level 1 & Level 2 – available for components with categories (Articles, Banners, etc...)• Level 4: Item – can override the permissions of Level 1 & Level 2 & Level 3 – only available for articles in Joomla 1.6 core
  40. 40. Permission Hierarchy (levels)• Level 1: Global configuration – default permissions settings for actions for a group• Level 2: Component Options – can override the permissions of Level 1• Level 3: Category – can override the permissions of Level 1 & Level 2 – available for components with categories (Articles, Banners, etc...)• Level 4: Item – can override the permissions of Level 1 & Level 2 & Level 3 – only available for articles in Joomla 1.6 core
  41. 41. Permission Hierarchy (levels)• Level 1: Global configuration – default permissions settings for actions for a group• Level 2: Component Options – can override the permissions of Level 1• Level 3: Category – can override the permissions of Level 1 & Level 2 – available for components with categories (Articles, Banners, etc...)• Level 4: Item – can override the permissions of Level 1 & Level 2 & Level 3 – only available for articles in Joomla 1.6 core• Override permissions of higher levels only works if permission setting is not ‘Denied’!
  42. 42. Inheriting example for ‘Create’ Action Level 1 Level 2 Level 3 Level 4• http://www.theartofjoomla.com/home/5-commentary/84-introducing-the-new-permissions-in-joomla-16.html
  43. 43. Inheriting example for ‘Create’ Action Level 1 Level 2 Level 3 Level 4• http://www.theartofjoomla.com/home/5-commentary/84-introducing-the-new-permissions-in-joomla-16.html
  44. 44. Inheriting example for ‘Create’ Action Level 1 Level 2 Level 3 Level 4• http://www.theartofjoomla.com/home/5-commentary/84-introducing-the-new-permissions-in-joomla-16.html
  45. 45. Inheriting example for ‘Create’ Action Level 1 Level 2 Level 3 Level 4• http://www.theartofjoomla.com/home/5-commentary/84-introducing-the-new-permissions-in-joomla-16.html
  46. 46. Available Permissions and Levels for a Group of Users
  47. 47. Action: Edit State
  48. 48. ACL Manager for Joomla! 1.6
  49. 49. ACL Manager for Joomla! 1.6
  50. 50. ACL Manager for Joomla!
  51. 51. ACL Manager for Joomla! 1.6 www.aclmanager.net
  52. 52. Debug Permissions
  53. 53. Debug Permissions• Turn on the ‘Debug System’ in the Global Configuration• Go to ‘User Manager’ or ‘Groups’• Click on ‘Debug Permission Report’ next to the User or User Group
  54. 54. Debug Permissions• Need to turn ‘Debug System’ on...
  55. 55. So, what about the database?
  56. 56. Database: #__assets
  57. 57. Plan your ACL implementation
  58. 58. Describe the problem• Most of the website is public available, specific content only for a group of users (e.g. teachers & students)• A teacher can see content specifically for teachers, all student content and all public content• Students can see content specifically for students and all public content
  59. 59. Viewing or Action problem• Define the problem, is it a viewing problem or action problem (create/delete/edit/etc..)? Or both?• Viewing: define the Viewing Access Levels• Action: define the permissions for all actions
  60. 60. Think ahead! Maintenance?• Structure your content properly to handle the permissions• Make usage of parent categories with nested categories with same permissions• No need to set permissions per article
  61. 61. Some Notes
  62. 62. User in multiple User Groups• The Netherlands – Allowed on edit ‘The Netherlands’ category – Denied on edit ‘Belgium’ category• Belgium – Allowed on edit ‘Belgium’ category – Denied on edit ‘The Netherlands’ category• User in The Netherlands & Belgium group – Denied on edit ‘The Netherlands’ category – Denied on edit ‘Belgium’ category – Denied always win (again) – Solution: don’t use denied but not set/inherited (=soft deny)
  63. 63. What if I locked myself out?
  64. 64. 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!
  65. 65. Practical ACL Tips
  66. 66. 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 groups as well)
  67. 67. ACL Tips• Assign User Group with backend access to a Viewing Access Level• Keep flexible for lower permission levels/groups: Avoid the ‘Denied’ permission setting as long as possible• Idea: Make a Group for each Action so you can assign actions directly to a user
  68. 68. Joomla! ACL, what’s next?
  69. 69. Suggestions• View as action• END user friendly interface• Easy overview of your entire website• Changes directly visible (no page reload)• ...
  70. 70. Resources• 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• http://www.aclmanager.net/news/general/28-is-your-extension-really- joomla-17-ready• http://www.aclmanager.net/news/general/31-how-to-add-basic-acl-support-to- your-extension
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×