Elexis API documentation
Version 2.1.6 as of December 11 2011

ch.elexis.admin
Class AccessControl

java.lang.Object
  extended by ch.elexis.admin.AccessControl

public class AccessControl
extends java.lang.Object

Diese Klasse realisiert das Zugriffskontroll- und Rechteverwaltungskonzept von Elexis.

Eine Ressource, die ein Zugriffsrecht realisieren will, muss für dieses Recht ein ACE erstellen, Zugriffsrechte können hierarchisch aufgebaut sein. Beispielsweise kann ein Recht foo/bar/baz definiert sein. Wenn keine Regel für baz existiert, dann wird nach einer Regel für bar gesucht und diese Angewandt. Wenn auch die nicht gefunden wird, wird nach einer Regel für foo gesucht. Wenn auch dies fehlschlägt, wird das Recht in jedem Fall verweigert. Das Zugriffsrecht kann dann mit grant(gruppe,recht) oder grant(Anwender,recht) gewährt resp. mit revoke(gruppe,Name) oder revoke(Anwender,name) entzogen werden. Um herauszufinden, ob ein Anwender bw. einer seiner Gruppen das Recht hat, auf eine ressource zuzugreifen, muss man request(anwedner,recht) fragen. Eine Abkürzung ist request(recht). Dies fragt, ob der aktuell eingeloggte Anwender das betreffende Recht hat.

Author:
Gerry
See Also:
ACE

Field Summary
static java.lang.String ADMIN_GROUP
           
static java.lang.String ALL_GROUP
           
static java.lang.String DB_UID
           
static java.lang.String GROUP_FOR_PREFERENCEPAGE
           
static java.lang.String KEY_GROUPS
           
static java.lang.String USER_GROUP
           
 
Constructor Summary
AccessControl()
           
 
Method Summary
 void addToGroup(java.lang.String group, Anwender user)
          Einen Anwender einer Gruppe zufügen
 Settings asSettings()
           
 void deleteGrant(ACE grantACE)
           
 void flush()
          Zugriffsrechte zurücksichern.
 java.lang.String getDBUID(boolean bCreate)
           
 java.util.List<java.lang.String> getGroups()
          Alle Gruppen holen
 void grant(Anwender user, ACE... elements)
          Zugriffsrecht(e) erteilen
 void grant(java.lang.String group, ACE... elements)
          Zugriffsrechte erteilen
 void grantForSelf(ACE... elements)
          Zugriffsrecht für "self" erteilen
 java.util.List<java.lang.String> groupsForGrant(ACE rightACE)
          Eine Liste aller Gruppen holen, die in bestimmtes Recht haben
 void load()
          Die Zugriffsrechte aus den globalen Settings laden.
 void removeFromGroup(java.lang.String group, Anwender user)
          Einen Anwender aus einer Gruppe entfernen
 boolean request(ACE right)
          Zugriffsrecht für den aktuell angemeldeten Anwender erfragen.
 boolean request(Anwender user, ACE rightACE)
          Zugriffsrecht für einen Anwender erfragen
 void reset()
          Alles auf Standard zurücksetzen und dbUID generieren
 void revoke(Anwender user, ACE... elements)
          Zugriffsrechte entziehen
 void revoke(java.lang.String group, ACE... elements)
          Zugriffsrechte entziehem
 void revokeFromSelf(ACE... strings)
           
 java.util.List<Anwender> usersForGrant(ACE rightACE)
          Alle Anwender efragen, die ein bestimmtes Recht haben
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

KEY_GROUPS

public static final java.lang.String KEY_GROUPS
See Also:
Constant Field Values

DB_UID

public static final java.lang.String DB_UID
See Also:
Constant Field Values

ALL_GROUP

public static final java.lang.String ALL_GROUP

USER_GROUP

public static final java.lang.String USER_GROUP

ADMIN_GROUP

public static final java.lang.String ADMIN_GROUP

GROUP_FOR_PREFERENCEPAGE

public static final java.lang.String GROUP_FOR_PREFERENCEPAGE
See Also:
Constant Field Values
Constructor Detail

AccessControl

public AccessControl()
Method Detail

load

public void load()
Die Zugriffsrechte aus den globalen Settings laden.


flush

public void flush()
Zugriffsrechte zurücksichern. Alle Rechte, die seit dem letzten flush geändert wurden, sind nur temporär bis zum nächsten flush()!


request

public boolean request(ACE right)
Zugriffsrecht für den aktuell angemeldeten Anwender erfragen.

Parameters:
right - Das erfragte Recht
Returns:
true, wenn der Anwender (oder eine der Gruppen, zu denen der Anwender gehört) das Recht hat.

request

public boolean request(Anwender user,
                       ACE rightACE)
Zugriffsrecht für einen Anwender erfragen

Parameters:
user - Der Anwender
right - Das Recht, das erfragt werden soll
Returns:
true, wenn der Anwender (oder eine der Gruppen, zu der dieser Anwender gehört) dieses Recht hat. Immer true, wenn der Anwender zur Gruppe "Admin" gehört. Immer false, wenn kein Anwender angemeldet ist

grant

public void grant(Anwender user,
                  ACE... elements)
Zugriffsrecht(e) erteilen

Parameters:
user - Anwender, der diese Rechte erhalten soll
elements - ein oder mehrere Rechte

revoke

public void revoke(Anwender user,
                   ACE... elements)
Zugriffsrechte entziehen

Parameters:
user - Anwender, dem diese Rechte entzogen werden sollen
elements - ein oder mehrere Rechte

grant

public void grant(java.lang.String group,
                  ACE... elements)
Zugriffsrechte erteilen

Parameters:
group - Gruppe, der diese Rechte erteilt werden sollen
elements - ein oder mehrere Rechte

revoke

public void revoke(java.lang.String group,
                   ACE... elements)
Zugriffsrechte entziehem

Parameters:
group - Gruppe
elements - ein oder mehrere Rechte

grantForSelf

public void grantForSelf(ACE... elements)
Zugriffsrecht für "self" erteilen


revokeFromSelf

public void revokeFromSelf(ACE... strings)

addToGroup

public void addToGroup(java.lang.String group,
                       Anwender user)
Einen Anwender einer Gruppe zufügen

Parameters:
group - Die Gruppe, der der Anwender angeschlossen werden soll
user - der Anwender

removeFromGroup

public void removeFromGroup(java.lang.String group,
                            Anwender user)
Einen Anwender aus einer Gruppe entfernen

Parameters:
group - Gruppe, aus der der Anwender austreten soll
user - der Anwender

getGroups

public java.util.List<java.lang.String> getGroups()
Alle Gruppen holen

Returns:
eine Liste aller definierten Gruppen

groupsForGrant

public java.util.List<java.lang.String> groupsForGrant(ACE rightACE)
Eine Liste aller Gruppen holen, die in bestimmtes Recht haben

Parameters:
right - das zu erfragende Recht
Returns:
Alle Gruppen, deren Mitglieder dieses Recht haben

usersForGrant

public java.util.List<Anwender> usersForGrant(ACE rightACE)
Alle Anwender efragen, die ein bestimmtes Recht haben

Parameters:
right - das zu erfragende Recht
Returns:
eine Liste aller Anwender, die das gesuchte Recht direkt (nicht über Gruppenmitgliedschaft) haben.

deleteGrant

public void deleteGrant(ACE grantACE)

asSettings

public Settings asSettings()

reset

public void reset()
Alles auf Standard zurücksetzen und dbUID generieren


getDBUID

public java.lang.String getDBUID(boolean bCreate)

Elexis API documentation
Version 2.1.6 as of December 11 2011

Copyright 2005-2011 by Gerry Weirich, Elexis