SlideShare uma empresa Scribd logo
1 de 88
Baixar para ler offline
Joomla! ACL        tekst



      Sander Potjer
      @sanderpotjer
    www.aclmanager.net


Joomla!Day Denmark - 26 October 2012
Sander Potjer
• Involved in the local Dutch Joomla
  community

• Joomla Community Leadership Team
  (CLT) member

• Company: Sander Potjer Webdevelopment

• ACL Manager developer

• E-mail: sander.potjer@community.joomla.org
Sander Potjer
• Involved in the local Dutch Joomla
  community

• Joomla Community Leadership Team
  (CLT) member

• Company: Sander Potjer Webdevelopment

• ACL Manager developer

• E-mail: sander.potjer@community.joomla.org

• Slides: http://www.slideshare.net/sanderpotjer
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
Example
• Allow backend access to just one specific component
ACL - Groups
                            2.5/3.0


7 Groups, fixed structure
–   Public
–   Registered
–   Author
–   Editor
–   Publisher
–   Manager
–   Administrator
–   Super-Administrator
ACL - Groups
                                                   2.5/3.0


7 Groups, fixed structure   Unlimited Groups, flexible
–   Public                  structure
–   Registered               –   user
–   Author                   –   group
–   Editor                   –   names
–   Publisher                –   up
–   Manager                  –   to
–   Administrator            –   you
–   Super-Administrator
ACL - User in Group
                          2.5/3.0


User can be assigned to
one group
ACL - User in Group
                                               2.5/3.0


User can be assigned to   User can be assigned to
one group                 multiple groups
ACL - Access Levels
                        2.5/3.0


3 fixed Access Levels
– Public
– Registered
– Special
ACL - Access Levels
                                                  2.5/3.0


3 fixed Access Levels   Unlimited Access Levels
– Public                – default access levels
– Registered            – user defined
– Special
ACL - Access Levels & Groups relation
                                   2.5/3.0


Fixed relation between
Groups and Access Levels
ACL - Access Levels & Groups relation
                                               2.5/3.0


Fixed relation between     Any combination of User
Groups and Access Levels   Groups can be assigned to
                           any Access Level
ACL - Actions
                                  2.5/3.0


Fixed Actions per group
Create / edit / delete / admin
access / etc.
Permission scope for
entire site
Same permission for all objects
ACL in Joomla! 1.5 & 1.6 (Actions)




•   http://brian.teeman.net/joomla-gps/joomla-15-acl-explained.html
ACL - Actions
                                                                   2.5/3.0


Fixed Actions per group           Custom Actions per group
Create / edit / delete / admin    Create / edit / delete / admin
access / etc.                     access / etc.
Permission scope for              Permission scope at
entire site                       multiple levels
Same permission for all objects   Site/Component/Category/Item
Joomla! 2.5
  ACL Overview
(but the same for Joomla 3.0)
•   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
Core 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

        • New: Guest group in Joomla
          3.0
•   http://community.joomla.org/blogs/community/1252-16-acl.html
Access Level

               • What is visible for the
                 group (article, menu,
                 module, etc.)

               • Permissions are 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 article manager in Joomla 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 article manager in Joomla 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 article manager in Joomla 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! 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
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 ‘Germany’ category
User in multiple User Groups
• The Netherlands
 – Allowed on edit ‘The Netherlands’ category
 – Denied on edit ‘Denmark’ category
• Denmark
 – Allowed on edit ‘Denmark’ category
 – Denied on edit ‘The Netherlands’ category
User in multiple User Groups
• The Netherlands
 – Allowed on edit ‘The Netherlands’ category
 – Denied on edit ‘Denmark’ category
• Denmark
 – Allowed on edit ‘Denmark’ category
 – Denied on edit ‘The Netherlands’ category
• User in The Netherlands & Denmark group
 –   Denied on edit ‘The Netherlands’ category
 –   Denied on edit ‘Denmark’ 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 2.5, 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 (often ‘Special’)

• Keep flexible for lower permission levels/groups:
 Avoid the ‘Denied’ permission setting as long as possible

• Use role-based groups
Quick ACL example
  (do we have time?)
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
•   http://magazine.joomla.org/issues/issue-sept-2012/item/856-Implementing-
    Role-Based-ACL

Mais conteúdo relacionado

Mais de Sander Potjer

Server performance @ Joomla! Performance Expert Sessie
Server performance @ Joomla! Performance Expert SessieServer performance @ Joomla! Performance Expert Sessie
Server performance @ Joomla! Performance Expert SessieSander Potjer
 
.htaccess performance @ Joomla! Performance Expert Sessie
.htaccess performance @ Joomla! Performance Expert Sessie.htaccess performance @ Joomla! Performance Expert Sessie
.htaccess performance @ Joomla! Performance Expert SessieSander Potjer
 
Google AMP @ Joomla! Performance Expert Sessie
Google AMP @ Joomla! Performance Expert SessieGoogle AMP @ Joomla! Performance Expert Sessie
Google AMP @ Joomla! Performance Expert SessieSander Potjer
 
Optimaliseer afbeeldingen @ Joomla! Performance Expert Sessie
Optimaliseer afbeeldingen @ Joomla! Performance Expert SessieOptimaliseer afbeeldingen @ Joomla! Performance Expert Sessie
Optimaliseer afbeeldingen @ Joomla! Performance Expert SessieSander Potjer
 
Optimalisatie plugins @ Joomla! Performance Expert Sessie
Optimalisatie plugins @ Joomla! Performance Expert SessieOptimalisatie plugins @ Joomla! Performance Expert Sessie
Optimalisatie plugins @ Joomla! Performance Expert SessieSander Potjer
 
Cache handlers @ Joomla! Performance Expert Sessie
Cache handlers @ Joomla! Performance Expert SessieCache handlers @ Joomla! Performance Expert Sessie
Cache handlers @ Joomla! Performance Expert SessieSander Potjer
 
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 SessieSander Potjer
 
Joomla! First - JoomlaDagen 2017 #jd17nl
Joomla! First - JoomlaDagen 2017 #jd17nlJoomla! First - JoomlaDagen 2017 #jd17nl
Joomla! First - JoomlaDagen 2017 #jd17nlSander Potjer
 
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)Sander Potjer
 
Performance & SEO - Joomla SEO Expert Sessie
Performance & SEO - Joomla SEO Expert SessiePerformance & SEO - Joomla SEO Expert Sessie
Performance & SEO - Joomla SEO Expert SessieSander Potjer
 
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 SessieSander Potjer
 
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 SessieSander Potjer
 
SEO Audit - Joomla SEO Expert Sessie
SEO Audit - Joomla SEO Expert SessieSEO Audit - Joomla SEO Expert Sessie
SEO Audit - Joomla SEO Expert SessieSander Potjer
 
SSL & SEO - Joomla SEO Expert Sessie
SSL & SEO - Joomla SEO Expert SessieSSL & SEO - Joomla SEO Expert Sessie
SSL & SEO - Joomla SEO Expert SessieSander Potjer
 
Meertaligheid & SEO - Joomla SEO Expert Sessie
Meertaligheid & SEO - Joomla SEO Expert SessieMeertaligheid & SEO - Joomla SEO Expert Sessie
Meertaligheid & SEO - Joomla SEO Expert SessieSander Potjer
 
Joomla SEO Extensies - Joomla SEO Expert Sessie
Joomla SEO Extensies - Joomla SEO Expert SessieJoomla SEO Extensies - Joomla SEO Expert Sessie
Joomla SEO Extensies - Joomla SEO Expert SessieSander Potjer
 
Joomla core SEO - Joomla SEO Expert Sessie
Joomla core SEO - Joomla SEO Expert SessieJoomla core SEO - Joomla SEO Expert Sessie
Joomla core SEO - Joomla SEO Expert SessieSander Potjer
 
Top 10 Joomla SEO Bloopers - Joomla SEO Expert Sessie
Top 10 Joomla SEO Bloopers - Joomla SEO Expert SessieTop 10 Joomla SEO Bloopers - Joomla SEO Expert Sessie
Top 10 Joomla SEO Bloopers - Joomla SEO Expert SessieSander Potjer
 
How to become a Joomler - Joomla World Conference 2015
How to become a Joomler - Joomla World Conference 2015How to become a Joomler - Joomla World Conference 2015
How to become a Joomler - Joomla World Conference 2015Sander Potjer
 
Joomla ACL introduction, limit site access
Joomla ACL introduction, limit site accessJoomla ACL introduction, limit site access
Joomla ACL introduction, limit site accessSander Potjer
 

Mais de Sander Potjer (20)

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
 
SSL & SEO - Joomla SEO Expert Sessie
SSL & SEO - Joomla SEO Expert SessieSSL & SEO - Joomla SEO Expert Sessie
SSL & SEO - Joomla SEO Expert Sessie
 
Meertaligheid & SEO - Joomla SEO Expert Sessie
Meertaligheid & SEO - Joomla SEO Expert SessieMeertaligheid & SEO - Joomla SEO Expert Sessie
Meertaligheid & SEO - Joomla SEO Expert Sessie
 
Joomla SEO Extensies - Joomla SEO Expert Sessie
Joomla SEO Extensies - Joomla SEO Expert SessieJoomla SEO Extensies - Joomla SEO Expert Sessie
Joomla SEO Extensies - Joomla SEO Expert Sessie
 
Joomla core SEO - Joomla SEO Expert Sessie
Joomla core SEO - Joomla SEO Expert SessieJoomla core SEO - Joomla SEO Expert Sessie
Joomla core SEO - Joomla SEO Expert Sessie
 
Top 10 Joomla SEO Bloopers - Joomla SEO Expert Sessie
Top 10 Joomla SEO Bloopers - Joomla SEO Expert SessieTop 10 Joomla SEO Bloopers - Joomla SEO Expert Sessie
Top 10 Joomla SEO Bloopers - Joomla SEO Expert Sessie
 
How to become a Joomler - Joomla World Conference 2015
How to become a Joomler - Joomla World Conference 2015How to become a Joomler - Joomla World Conference 2015
How to become a Joomler - Joomla World Conference 2015
 
Joomla ACL introduction, limit site access
Joomla ACL introduction, limit site accessJoomla ACL introduction, limit site access
Joomla ACL introduction, limit site access
 

Último

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 

Último (20)

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 

Joomla 2.5 & 3.0 ACL - JoomlaDay Denmark 2012

  • 1. Joomla! ACL tekst Sander Potjer @sanderpotjer www.aclmanager.net Joomla!Day Denmark - 26 October 2012
  • 2. Sander Potjer • Involved in the local Dutch Joomla community • Joomla Community Leadership Team (CLT) member • Company: Sander Potjer Webdevelopment • ACL Manager developer • E-mail: sander.potjer@community.joomla.org
  • 3. Sander Potjer • Involved in the local Dutch Joomla community • Joomla Community Leadership Team (CLT) member • Company: Sander Potjer Webdevelopment • ACL Manager developer • E-mail: sander.potjer@community.joomla.org • Slides: http://www.slideshare.net/sanderpotjer
  • 5. It took a while... DrupalCon, October 2005 Johan Janssens • http://www.slideshare.net/JohanJanssens/drupalcon-2005-joomla-drupal-and-you-presentation
  • 6. ACL?!?! • ACL = Access Control List
  • 7. ACL?!?! • ACL = Access Control List • Access to parts of the website – e.g. menu / module visibility – “view” action
  • 8. 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
  • 9. Example • Allow backend access to just one specific component
  • 10. ACL - Groups 2.5/3.0 7 Groups, fixed structure – Public – Registered – Author – Editor – Publisher – Manager – Administrator – Super-Administrator
  • 11. ACL - Groups 2.5/3.0 7 Groups, fixed structure Unlimited Groups, flexible – Public structure – Registered – user – Author – group – Editor – names – Publisher – up – Manager – to – Administrator – you – Super-Administrator
  • 12. ACL - User in Group 2.5/3.0 User can be assigned to one group
  • 13. ACL - User in Group 2.5/3.0 User can be assigned to User can be assigned to one group multiple groups
  • 14. ACL - Access Levels 2.5/3.0 3 fixed Access Levels – Public – Registered – Special
  • 15. ACL - Access Levels 2.5/3.0 3 fixed Access Levels Unlimited Access Levels – Public – default access levels – Registered – user defined – Special
  • 16. ACL - Access Levels & Groups relation 2.5/3.0 Fixed relation between Groups and Access Levels
  • 17. ACL - Access Levels & Groups relation 2.5/3.0 Fixed relation between Any combination of User Groups and Access Levels Groups can be assigned to any Access Level
  • 18. ACL - Actions 2.5/3.0 Fixed Actions per group Create / edit / delete / admin access / etc. Permission scope for entire site Same permission for all objects
  • 19. ACL in Joomla! 1.5 & 1.6 (Actions) • http://brian.teeman.net/joomla-gps/joomla-15-acl-explained.html
  • 20. ACL - Actions 2.5/3.0 Fixed Actions per group Custom Actions per group Create / edit / delete / admin Create / edit / delete / admin access / etc. access / etc. Permission scope for Permission scope at entire site multiple levels Same permission for all objects Site/Component/Category/Item
  • 21. Joomla! 2.5 ACL Overview (but the same for Joomla 3.0)
  • 22. http://community.joomla.org/blogs/community/1252-16-acl.html
  • 23. http://community.joomla.org/blogs/community/1252-16-acl.html
  • 24. User • Guest is also a user • Users can be assigned to one or multiple groups
  • 25. http://community.joomla.org/blogs/community/1252-16-acl.html
  • 26. Core 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
  • 27. http://community.joomla.org/blogs/community/1252-16-acl.html
  • 28. Group • Users with same permissions • Inherited permissions from parent groups • Unlimited nested groups • Keep it simple! Only use nested groups if needed • New: Guest group in Joomla 3.0
  • 29. http://community.joomla.org/blogs/community/1252-16-acl.html
  • 30. Access Level • What is visible for the group (article, menu, module, etc.) • Permissions are inherited between Access Levels • Even Super Users can not view content on frontend if not assigned
  • 31. http://community.joomla.org/blogs/community/1252-16-acl.html
  • 33. Permissions • 4 possible permission settings – Not Set – Inherited – Allowed – Denied
  • 34. Permissions - Not Set • ‘soft’ deny • can be overridden by ‘Allowed’ or ‘Denied’
  • 35. Permissions - Inherited • Value from a parent Permission level • Value from a parent User Group • Can be overridden by ‘Allowed’ or ‘Denied’
  • 36. Permissions - Allowed • Action for current permission level and lower levels • Action for current user group and child groups • Can be overridden by ‘Denied’
  • 37. 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!
  • 38. Permission Hierarchy (levels) • Level 1: Global configuration – default permissions settings for actions for a group
  • 39.
  • 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
  • 41.
  • 42.
  • 43. 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...)
  • 44.
  • 45.
  • 46. 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 article manager in Joomla core
  • 47.
  • 48.
  • 49. 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 article manager in Joomla core
  • 50. 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 article manager in Joomla core • Override permissions of higher levels only works if permission setting is not ‘Denied’!
  • 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. 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
  • 54. 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
  • 55. Available Permissions and Levels for a Group of Users
  • 57.
  • 58.
  • 59.
  • 60.
  • 61. ACL Manager for Joomla! 1.6
  • 62. ACL Manager for Joomla! 1.6
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68. ACL Manager for Joomla! 1.6 www.aclmanager.net
  • 70. 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
  • 71.
  • 72. Debug Permissions • Need to turn ‘Debug System’ on...
  • 73. So, what about the database?
  • 75. Plan your ACL implementation
  • 76. 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
  • 77. 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
  • 79. User in multiple User Groups • The Netherlands – Allowed on edit ‘The Netherlands’ category – Denied on edit ‘Germany’ category
  • 80. User in multiple User Groups • The Netherlands – Allowed on edit ‘The Netherlands’ category – Denied on edit ‘Denmark’ category • Denmark – Allowed on edit ‘Denmark’ category – Denied on edit ‘The Netherlands’ category
  • 81. User in multiple User Groups • The Netherlands – Allowed on edit ‘The Netherlands’ category – Denied on edit ‘Denmark’ category • Denmark – Allowed on edit ‘Denmark’ category – Denied on edit ‘The Netherlands’ category • User in The Netherlands & Denmark group – Denied on edit ‘The Netherlands’ category – Denied on edit ‘Denmark’ category – Denied always win (again) – Solution: don’t use denied but not set/inherited (=soft deny)
  • 82. What if I locked myself out?
  • 83. 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!
  • 85. ACL Tips • Write down your ACL requirements for a website before implementing • Joomla 1.5 User Groups are for backward compatibility in Joomla 2.5, 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)
  • 86. ACL Tips • Assign User Group with backend access to a Viewing Access Level (often ‘Special’) • Keep flexible for lower permission levels/groups: Avoid the ‘Denied’ permission setting as long as possible • Use role-based groups
  • 87. Quick ACL example (do we have time?)
  • 88. 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 • http://magazine.joomla.org/issues/issue-sept-2012/item/856-Implementing- Role-Based-ACL