org.apache.turbine.modules.actions

## Class AccessController

- java.lang.Object
- - org.apache.turbine.modules.Assembler
  - - org.apache.turbine.modules.Action
    - - org.apache.turbine.modules.actions.AccessController

-     public class AccessController
      extends Action

  This action doPerforms an Access Control List and places it into the RunData object, so it is easily available to modules. The ACL is also placed into the session. Modules can null out the ACL to force it to be rebuilt based on more information.

  Turbine uses a User-Role-Permission arrangement for access control. Users are assigned Roles. Roles are assigned Permissions. Turbine modules then check the Permission required for an action or information with the set of Permissions currently associated with the session (which are dependent on the user associated with the session.)

  The criteria for assigning Roles/Permissions is application dependent, in some cases an application may change a User's Roles during the session. To achieve flexibility, the ACL takes an Object parameter, which the application can use to doPerform the ACL.

  This action is special in that it should only be executed by the Turbine servlet.

  Version:
    $Id: AccessController.java 1819127 2017-12-23 09:32:08Z gk $
  Author:
    John D. McNally, Brett McLaughlin, Quinton McCombs, Peter Courcoux

- - ### Field Summary

    - ### Fields inherited from class org.apache.turbine.modules.Action

      `CACHE_SIZE_DEFAULT, CACHE_SIZE_KEY, NAME, PREFIX`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AccessController()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `doPerform(PipelineData pipelineData)` If there is a user and the user is logged in, doPerform will set the RunData ACL.

    - ### Methods inherited from class org.apache.turbine.modules.Action

      `getPrefix, perform`

    - ### Methods inherited from class org.apache.turbine.modules.Assembler

      `getRunData`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### AccessController

          public AccessController()

  - ### Method Detail

    - #### doPerform

          public void doPerform(PipelineData pipelineData)
                         throws org.apache.fulcrum.security.util.FulcrumSecurityException

      If there is a user and the user is logged in, doPerform will set the RunData ACL. The list is first sought from the current session, otherwise it is loaded through `link `SecurityService.getACL(User)`` and added to the current session.
      Specified by:
        `doPerform` in class `Action`
      Parameters:
        `pipelineData` - Turbine information.
      Throws:
        `org.apache.fulcrum.security.util.FulcrumSecurityException` - problem with the security service.

Copyright © 2000–2018 The Apache Software Foundation. All rights reserved.