SlideShare ist ein Scribd-Unternehmen logo
1 von 81
Downloaden Sie, um offline zu lesen
User Access Levels
for 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 in
  The Netherlands

• Joomla Community Leadership Team (CLT) member

• Company: Sander Potjer Webdevelopment

• E-mail: sander.potjer@community.joomla.org
Joomla! ACL
It took a while...                                          DrupalCon, October 2005
                                                                      Johan Janssens




•   http://www.slideshare.net/JohanJanssens/drupalcon-2005-joomla-drupal-and-you-presentation
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 actions on objects
 – example: create / edit / edit state / delete article
ACL - Groups


• 7 fixed Groups
 – Public, Registered, Author,
   Editor, Publisher, Manager,
   Administrator and Super-
   Administrator


• Hierarchical structure
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
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
 – Registered
 – Special
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          Groups can be assigned
  Levels                     to any Access Level
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
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 /           – 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
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
                                       –   Site Login
                                       –   Admin Login
                                       –   Offline Access (since 1.7)
                                       –   Super Admin / Configure
                                       –   Access Component
                                       –   Create
                                       –   Delete
                                       –   Edit
                                       –   Edit State
                                       –   Edit Own
•   http://community.joomla.org/blogs/community/1252-16-acl.html
Group

        • Users with same permissions

        • Inherited permissions from
          parent groups

        • Unlimited nested groups

        • Keep it simple! Only use
          nested groups if needed
•   http://community.joomla.org/blogs/community/1252-16-acl.html
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
•   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 ‘Allowed’ or ‘Denied’
Permissions - Allowed
• Action for current permission level and lower levels
• Action for current user group and child groups
• Can be overridden by ‘Denied’
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!
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 2: Component Options
 – can override the permissions of Level 1
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...)
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
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
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’!
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
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
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
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
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 ‘Debug Permission Report’ next to the User
  or User Group
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 &
  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
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
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
Some Notes
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)
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 = '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!
Practical ACL Tips
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)
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
Joomla! ACL, what’s next?
Suggestions
• View as action

• END user friendly interface

• Easy overview of your entire website

• Changes directly visible (no page reload)

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

Weitere ähnliche Inhalte

Was ist angesagt?

User access manager presentation web
User access manager presentation webUser access manager presentation web
User access manager presentation web
designfaire
 

Was ist angesagt? (11)

Joomla 2.5 ACL @ Dutch Joomla!Days #jd12nl
Joomla 2.5 ACL @ Dutch Joomla!Days #jd12nlJoomla 2.5 ACL @ Dutch Joomla!Days #jd12nl
Joomla 2.5 ACL @ Dutch Joomla!Days #jd12nl
 
Comparing Joomla CCKs
Comparing Joomla CCKsComparing Joomla CCKs
Comparing Joomla CCKs
 
wcpgh
wcpghwcpgh
wcpgh
 
Make your extension more powerful by implementing Joomla ACL - J and Beyond 2014
Make your extension more powerful by implementing Joomla ACL - J and Beyond 2014Make your extension more powerful by implementing Joomla ACL - J and Beyond 2014
Make your extension more powerful by implementing Joomla ACL - J and Beyond 2014
 
Molajo - Joomla based distributions
Molajo - Joomla based distributionsMolajo - Joomla based distributions
Molajo - Joomla based distributions
 
Joomla 1.6 multilingual - 2Value meeting
Joomla 1.6 multilingual - 2Value meetingJoomla 1.6 multilingual - 2Value meeting
Joomla 1.6 multilingual - 2Value meeting
 
WordPress 3.3 Feature Tour
WordPress 3.3 Feature TourWordPress 3.3 Feature Tour
WordPress 3.3 Feature Tour
 
User access manager presentation web
User access manager presentation webUser access manager presentation web
User access manager presentation web
 
TypePad Platform FOWA London 2009
TypePad Platform FOWA London 2009TypePad Platform FOWA London 2009
TypePad Platform FOWA London 2009
 
ZBSee: UX design process
ZBSee: UX design processZBSee: UX design process
ZBSee: UX design process
 
YouTube App - Pecha Kucha
YouTube App - Pecha KuchaYouTube App - Pecha Kucha
YouTube App - Pecha Kucha
 

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

recordsharingmodelinsalesforce-170519074428.pdf
recordsharingmodelinsalesforce-170519074428.pdfrecordsharingmodelinsalesforce-170519074428.pdf
recordsharingmodelinsalesforce-170519074428.pdf
rohitgupt1
 

Ähnlich wie Joomla Access Control List (ACL) at JoomlaDay London, UK #jduk11 (20)

Joomla ACL introduction, limit site access
Joomla ACL introduction, limit site accessJoomla ACL introduction, limit site access
Joomla ACL introduction, limit site access
 
Necto 16 training 17 - administration
Necto 16 training 17 -  administrationNecto 16 training 17 -  administration
Necto 16 training 17 - administration
 
recordsharingmodelinsalesforce-170519074428.pdf
recordsharingmodelinsalesforce-170519074428.pdfrecordsharingmodelinsalesforce-170519074428.pdf
recordsharingmodelinsalesforce-170519074428.pdf
 
Record sharing model in salesforce
Record sharing model in salesforceRecord sharing model in salesforce
Record sharing model in salesforce
 
Sharing and security in Salesforce
Sharing and security in SalesforceSharing and security in Salesforce
Sharing and security in Salesforce
 
Synapse india reviews on drupal intro
Synapse india reviews on drupal introSynapse india reviews on drupal intro
Synapse india reviews on drupal intro
 
Oracle Enterprise Manager Security A Practitioners Guide
Oracle Enterprise Manager Security A Practitioners GuideOracle Enterprise Manager Security A Practitioners Guide
Oracle Enterprise Manager Security A Practitioners Guide
 
(ATS4-PLAT02) Security Enhancements in Accelrys Enterprise Platform 9.0
(ATS4-PLAT02) Security Enhancements in Accelrys Enterprise Platform 9.0(ATS4-PLAT02) Security Enhancements in Accelrys Enterprise Platform 9.0
(ATS4-PLAT02) Security Enhancements in Accelrys Enterprise Platform 9.0
 
Drupal intro-training-in-mumbai
Drupal intro-training-in-mumbaiDrupal intro-training-in-mumbai
Drupal intro-training-in-mumbai
 
Drupal intro (1)
Drupal intro (1)Drupal intro (1)
Drupal intro (1)
 
MaharaUK12 - What's new in 1.5 and 1.6?
MaharaUK12 - What's new in 1.5 and 1.6?MaharaUK12 - What's new in 1.5 and 1.6?
MaharaUK12 - What's new in 1.5 and 1.6?
 
SFDC Database Security
SFDC Database SecuritySFDC Database Security
SFDC Database Security
 
Dataverse Permissions Demystified - PowerAddicts BE 11-2022.pptx
Dataverse Permissions Demystified - PowerAddicts BE 11-2022.pptxDataverse Permissions Demystified - PowerAddicts BE 11-2022.pptx
Dataverse Permissions Demystified - PowerAddicts BE 11-2022.pptx
 
Fastman Permissions Manager
Fastman Permissions ManagerFastman Permissions Manager
Fastman Permissions Manager
 
Oracle Enterprise Manager Security: A Practitioners Guide
Oracle Enterprise Manager Security: A Practitioners GuideOracle Enterprise Manager Security: A Practitioners Guide
Oracle Enterprise Manager Security: A Practitioners Guide
 
Drupal intro
Drupal introDrupal intro
Drupal intro
 
Drupal -Introduction to Drupal
Drupal -Introduction to DrupalDrupal -Introduction to Drupal
Drupal -Introduction to Drupal
 
Drupal intro
Drupal introDrupal intro
Drupal intro
 
Introduction to Drupal 7 Users and roles management
Introduction to Drupal 7 Users and roles managementIntroduction to Drupal 7 Users and roles management
Introduction to Drupal 7 Users and roles management
 
24 - Panorama Necto 14 administration - visualization & data discovery solution
24  - Panorama Necto 14 administration - visualization & data discovery solution24  - Panorama Necto 14 administration - visualization & data discovery solution
24 - Panorama Necto 14 administration - visualization & data discovery solution
 

Mehr von Sander Potjer

Mehr von Sander Potjer (20)

Daarom Joomla! - Makkelijk content publiceren
Daarom Joomla! - Makkelijk content publicerenDaarom Joomla! - Makkelijk content publiceren
Daarom Joomla! - Makkelijk content publiceren
 
Daarom Joomla! - Inspiratie uit de praktijk
Daarom Joomla! - Inspiratie uit de praktijkDaarom Joomla! - Inspiratie uit de praktijk
Daarom Joomla! - Inspiratie uit de praktijk
 
Daarom Joomla! - Een fantastische basis
Daarom Joomla! - Een fantastische basisDaarom Joomla! - Een fantastische basis
Daarom Joomla! - Een fantastische basis
 
Performance budget @ Joomla! Performance Expert Sessie
Performance budget @ Joomla! Performance Expert SessiePerformance budget @ Joomla! Performance Expert Sessie
Performance budget @ Joomla! Performance Expert Sessie
 
Technieken & tools @ Joomla! Performance Expert Sessie
Technieken & tools @ Joomla! Performance Expert SessieTechnieken & tools @ Joomla! Performance Expert Sessie
Technieken & tools @ Joomla! Performance Expert Sessie
 
CDN @ Joomla! Performance Expert Sessie
CDN @ Joomla! Performance Expert SessieCDN @ Joomla! Performance Expert Sessie
CDN @ Joomla! Performance Expert Sessie
 
Proxy caching @ Joomla! Performance Expert Sessie
Proxy caching @ Joomla! Performance Expert SessieProxy caching @ Joomla! Performance Expert Sessie
Proxy caching @ Joomla! Performance Expert Sessie
 
Server performance @ Joomla! Performance Expert Sessie
Server performance @ Joomla! Performance Expert SessieServer performance @ Joomla! Performance Expert Sessie
Server performance @ Joomla! Performance Expert Sessie
 
.htaccess performance @ Joomla! Performance Expert Sessie
.htaccess performance @ Joomla! Performance Expert Sessie.htaccess performance @ Joomla! Performance Expert Sessie
.htaccess performance @ Joomla! Performance Expert Sessie
 
Google AMP @ Joomla! Performance Expert Sessie
Google AMP @ Joomla! Performance Expert SessieGoogle AMP @ Joomla! Performance Expert Sessie
Google AMP @ Joomla! Performance Expert Sessie
 
Optimaliseer afbeeldingen @ Joomla! Performance Expert Sessie
Optimaliseer afbeeldingen @ Joomla! Performance Expert SessieOptimaliseer afbeeldingen @ Joomla! Performance Expert Sessie
Optimaliseer afbeeldingen @ Joomla! Performance Expert Sessie
 
Optimalisatie plugins @ Joomla! Performance Expert Sessie
Optimalisatie plugins @ Joomla! Performance Expert SessieOptimalisatie plugins @ Joomla! Performance Expert Sessie
Optimalisatie plugins @ Joomla! Performance Expert Sessie
 
Cache handlers @ Joomla! Performance Expert Sessie
Cache handlers @ Joomla! Performance Expert SessieCache handlers @ Joomla! Performance Expert Sessie
Cache handlers @ Joomla! Performance Expert Sessie
 
Performance & Joomla! core @ Joomla! Performance Expert Sessie
Performance & Joomla! core @ Joomla! Performance Expert SessiePerformance & Joomla! core @ Joomla! Performance Expert Sessie
Performance & Joomla! core @ Joomla! Performance Expert Sessie
 
Joomla! First - JoomlaDagen 2017 #jd17nl
Joomla! First - JoomlaDagen 2017 #jd17nlJoomla! First - JoomlaDagen 2017 #jd17nl
Joomla! First - JoomlaDagen 2017 #jd17nl
 
Complexe pagina's gebruiksvriendelijk (Joomla Page Builders)
Complexe pagina's gebruiksvriendelijk (Joomla Page Builders)Complexe pagina's gebruiksvriendelijk (Joomla Page Builders)
Complexe pagina's gebruiksvriendelijk (Joomla Page Builders)
 
Performance & SEO - Joomla SEO Expert Sessie
Performance & SEO - Joomla SEO Expert SessiePerformance & SEO - Joomla SEO Expert Sessie
Performance & SEO - Joomla SEO Expert Sessie
 
Social Media & SEO - Joomla SEO Expert Sessie
Social Media & SEO - Joomla SEO Expert SessieSocial Media & SEO - Joomla SEO Expert Sessie
Social Media & SEO - Joomla SEO Expert Sessie
 
Joomla 3.6: nieuwe router - Joomla SEO Expert Sessie
Joomla 3.6: nieuwe router - Joomla SEO Expert SessieJoomla 3.6: nieuwe router - Joomla SEO Expert Sessie
Joomla 3.6: nieuwe router - Joomla SEO Expert Sessie
 
SEO Audit - Joomla SEO Expert Sessie
SEO Audit - Joomla SEO Expert SessieSEO Audit - Joomla SEO Expert Sessie
SEO Audit - Joomla SEO Expert Sessie
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 

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

  • 1. User Access Levels for Joomla! 1.5 – 1.7 Sander Potjer @sanderpotjer www.sanderpotjer.nl
  • 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
  • 4. It took a while... DrupalCon, October 2005 Johan Janssens • http://www.slideshare.net/JohanJanssens/drupalcon-2005-joomla-drupal-and-you-presentation
  • 5. ACL?!?! • ACL = Access Control List
  • 6. ACL?!?! • ACL = Access Control List • Access to parts of the website – e.g. menu / module visibility – “view” action
  • 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. ACL - Groups • 7 fixed Groups – Public, Registered, Author, Editor, Publisher, Manager, Administrator and Super- Administrator • Hierarchical structure
  • 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. ACL - User in Group • User can be assigned to one group
  • 11. ACL - User in Group • User can be assigned to • User can be assigned to one group multiple groups
  • 12. ACL - Access Levels • 3 fixed Access Levels – Public – Registered – Special
  • 13. ACL - Access Levels • 3 fixed Access Levels • Unlimited Access Levels – Public – user defined – Registered – Special
  • 14. ACL - Access Levels & Groups relation • Fixed relation between Groups and Access Levels
  • 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. 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. ACL in Joomla! 1.5 & 1.6 (Actions) • http://brian.teeman.net/joomla-gps/joomla-15-acl-explained.html
  • 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. Joomla! 1.6/1.7/2.5 ACL Overview
  • 20. http://community.joomla.org/blogs/community/1252-16-acl.html
  • 21. http://community.joomla.org/blogs/community/1252-16-acl.html
  • 22. User • Guest is also a user • Users can be assigned to one or multiple groups
  • 23. http://community.joomla.org/blogs/community/1252-16-acl.html
  • 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. http://community.joomla.org/blogs/community/1252-16-acl.html
  • 26. Group • Users with same permissions • Inherited permissions from parent groups • Unlimited nested groups • Keep it simple! Only use nested groups if needed
  • 27. http://community.joomla.org/blogs/community/1252-16-acl.html
  • 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. http://community.joomla.org/blogs/community/1252-16-acl.html
  • 31. Permissions • 4 possible permission settings – Not Set – Inherited – Allowed – Denied
  • 32. Permissions - Not Set • ‘soft’ deny • can be overridden by ‘Allowed’ or ‘Denied’
  • 33. Permissions - Inherited • Value from a parent Permission level • Value from a parent User Group • Can be overridden by ‘Allowed’ or ‘Denied’
  • 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. 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. Permission Hierarchy (levels) • Level 1: Global configuration – default permissions settings for actions for a group
  • 37.
  • 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
  • 39.
  • 40.
  • 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...)
  • 42.
  • 43.
  • 44. 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
  • 45.
  • 46.
  • 47. 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
  • 48. 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’!
  • 49. 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
  • 50. 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
  • 51. 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
  • 52. 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
  • 53. Available Permissions and Levels for a Group of Users
  • 55.
  • 56. ACL Manager for Joomla! 1.6
  • 57. ACL Manager for Joomla! 1.6
  • 58. ACL Manager for Joomla!
  • 59.
  • 60.
  • 61. ACL Manager for Joomla! 1.6 www.aclmanager.net
  • 63. 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
  • 64.
  • 65. Debug Permissions • Need to turn ‘Debug System’ on...
  • 66. So, what about the database?
  • 68. Plan your ACL implementation
  • 69. 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
  • 70. 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
  • 71. 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
  • 73. 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)
  • 74. What if I locked myself out?
  • 75. 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!
  • 77. 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)
  • 78. 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
  • 80. Suggestions • View as action • END user friendly interface • Easy overview of your entire website • Changes directly visible (no page reload) • ...
  • 81. 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