Skip to content
Snippets Groups Projects
  • Andreas Gohr's avatar
    64cdf779
    add event to check access to admin plugins · 64cdf779
    Andreas Gohr authored
    This adds a new method that capsulates the access check that has to be
    done to decide if an admin plugin's page should be shown to the user.
    The default implementation is the same as before, relying only on the
    forAdminOnly() method and the users' isadmin or ismanager status.
    
    Admin plugins themselves can override the method to do additional
    checks. In this patch, I added that to the usermanager plugin which will
    only return true if the current auth backend can list users.
    
    However the real idea behind this change is that the new method emits a
    new event called ADMINPLUGIN_ACCESS_CHECK which would allow plugins to
    overwrite it. This way it could be possible to give certain user groups
    access to certain admin plugins without giving them admin or manager
    permissions.
    
    Note: this does not change how the "Admin" link is shown, it still
    depends on ismanager or isadmin. A plugin as mentioned above would need
    to influence the display via the MENU_ITEMS_ASSEMBLY event.
    
    Note: this only covers the basic access check. Admin plugins may need
    further adjustments for access to other parts of the plugin (like AJAX
    components). An additional commit will update this for the bundled
    plugins.
    64cdf779
    History
    add event to check access to admin plugins
    Andreas Gohr authored
    This adds a new method that capsulates the access check that has to be
    done to decide if an admin plugin's page should be shown to the user.
    The default implementation is the same as before, relying only on the
    forAdminOnly() method and the users' isadmin or ismanager status.
    
    Admin plugins themselves can override the method to do additional
    checks. In this patch, I added that to the usermanager plugin which will
    only return true if the current auth backend can list users.
    
    However the real idea behind this change is that the new method emits a
    new event called ADMINPLUGIN_ACCESS_CHECK which would allow plugins to
    overwrite it. This way it could be possible to give certain user groups
    access to certain admin plugins without giving them admin or manager
    permissions.
    
    Note: this does not change how the "Admin" link is shown, it still
    depends on ismanager or isadmin. A plugin as mentioned above would need
    to influence the display via the MENU_ITEMS_ASSEMBLY event.
    
    Note: this only covers the basic access check. Admin plugins may need
    further adjustments for access to other parts of the plugin (like AJAX
    components). An additional commit will update this for the bundled
    plugins.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
admin.php 39.31 KiB