"Schwarz, Marcus" wrote:
> 
> Jetspeed Proposal: role-based authorization concept
> LAST MODIFIED: $Date: 2000/08/21 01:00:21 $
> AUTHOR:  [EMAIL PROTECTED]
> STATUS:  pending
> 
> ****************************************************************************
> ****
> * WARNING:  THIS DOCUMENT WAS INITIALLY A PROPOSAL.  PLEASE CHECK THE DATE
> AS  *
> * THIS MAY HAVE BECOME OLD.
> *
> ****************************************************************************
> ****
> 
> The initial idea of this proposal is to integrate an authorization mechanism
> into
> JetSpeed. 

<snip>
> <registry>
> ...
>         <portlet ...>
>                 ...
>                 <security>
>                         <access mode="view">
>                                 <all/>
>                         </access>
>                         <access mode="maximize">
>                                 <all/>
>                         </access>

Hm...  I don't think I like the <all/>.  An element is date is bad :(.

I would rather have a boolean attribute... everyone="true"

>                         <access mode="edit">
>                                 <role>seller</role>
>                                 <role>buyer</role>
>                         </access>

IMO.  There is a problem here.  role doesn't specify allow|deny.  I
would propose the following:

<access operation="edit">
        <role mode="access">seller</role>
</access>
 
>                 </security>
>                 ...
>         </portlet>
> ...
> </registry>
> 

<snip> 
> ****************************************************************************
> ****
> 3. API to access this information
> ****************************************************************************
> ****
> 
> To allow other parts of JetSpeed to retrieve this information we should add
> new methods to the portlet's API:
> 
> public boolean accessAllowed(Role theRole, String mode);
> public RoleSet allowedRoles(String mode);
> 
> Both methods need the input parameter 'mode' to know, which access
> permissions
> are requested (view, edit, maximize, ...)


-1.  This should be in org.apache.jetspeed.registry.peer.PortletEntry:


/**
  Return all access information for this PortletEntry
*/
public Access[] getAccess();



public Access {

        public boolean allowsEveryone();

        public Role[] getRole();        
}
 

... of course all the above would be dependent on the Turbine role
information and not our own classes.  I just didn't lookup the correct
classname.

Also.  PortletFactory should check this stuff and throw a
SecurityException

> ****************************************************************************
> ****
> 4. Roles inside of JetSpeed
> ****************************************************************************
> ****
> 
> In some scenarios we will not be able to use just the user management to
> provide
> the roles. In example in our case each application (and JetSpeed is "just"
> an
> application) will have it's own role and permission concept. Each
> application
> can push this information (maybe using the below structure) to the user
> management.
> There the user administrator can group these application roles to user roles
> 
> (which are including one or several app roles). In this case we need the
> roles
> inside of JetSpeed.
> Another advantage is, that we would have no dependencies to the user
> management.
> And of course it's not possible to move the whole permission concept to the
> user
> management. At least the area, where one can define the position and
> visibility
> of portlets, must be in JetSpeed to ensure it's independencies. As a result
> we
> must also be able to store JetSpeed roles there.
> 
> For such purposes we need a list of all in JetSpeed existing roles. In
> example if we want to show a list of all existing roles in the customisation
> UI for the administrator.
> 
> I would suggest a simple XML-based file:
> 
> <roles>
>         <role>
>                 <name>[name_of_the_role]</name>
>                 <description>[description_of_the_role]</description>
>         </role>
>         ...
> </roles>

huh?  I am -1 on this.  I would assume this meant putting users within
the jetspeed-config?  This should stay within Turbine.
 
> ****************************************************************************
> ****
> 5. Additions in administration UI
> ****************************************************************************
> ****
> 
> The new capabilities must be reflected in the administration UI. We need the
> 
> following functionality:
> 
>    - Define access permissions on role-base for the portlets
>      We have to provide a matrix-based screens the administrator can use to
>      define which access-option (view, edit, maximize) of a portlet a role
>      should have. A button on the left hand should enable to set the above
>      mentioned <all/>-tag --> every role (also new roles) will have access
> to this
>      functionality.
>      The screen should look similar to this:
> 
>      all  | Portlet               | Role1 | Role2 | Role3
>      ----------------------------------------------------
>           | News Feed             |       |       |
>        O  | - view                |   X   |   X   |   O
>        O  | - edit                |   X   |   O   |   O
>        O  | - maximize            |   X   |   X   |   O
>      ----------------------------------------------------
>           | Bulletin Board        |       |       |
>        X  | - view                |   X   |   X   |   X
> 
>     ....
> 
>     If "all" is selected automatically the whole row is selected.
>     If "view" for a role is disabled all the other functions (edit,
> maximize) are
>        automatically disabled.
> 
>   - Create, modify, delete JetSpeed role
>     Will come soon....
> 

+1 on this.

-- 
** Should SUN Open Source Java? Please Vote: 
http://relativity.yi.org/java **

Kevin A Burton (e-mail: [EMAIL PROTECTED], UIN: 73488596, ZKey:
burtonator)
http://relativity.yi.org
Message to SUN Microsystems:  "Please Open Source Java!"
To fight and conquer in all your battles is not supreme excellence;
supreme 
excellence consists in breaking the enemy's resistance without fighting.
    - Sun Tzu, 300 B.C.


--
--------------------------------------------------------------
Please read the FAQ! <http://java.apache.org/faq/>
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
Archives and Other:  <http://java.apache.org/main/mail.html>
Problems?:           [EMAIL PROTECTED]

Reply via email to