Xuser: Unterschied zwischen den Versionen

Aus bafbal.de
Zur Navigation springen Zur Suche springen
Zeile 87: Zeile 87:
  
 
==Code==
 
==Code==
 +
 +
===xuser===
 +
 +
#rights  n=frm  r_user=r  r_user.admin=w
 +
#rights  n=admin  r_user.admin=w
 +
#frm  y=treepage  c=xuser  flt=xuser_flt  w=300
 +
 +
#btn  y=save  s=#save  se=c
 +
#btn  y=cancel  s=#cancel  se=cp
 +
#btn  y=back  s=#treeback  se=b
 +
#btn  y=backback  s=#treebackback  se=b
 +
#btn  c=$T(Refresh)  se=b  s=#filter  w=100
 +
 +
#var_set  n=link  z=$CP(0)
 +
 +
#filter
 +
 +
xuser ist vor allem die Formulardefinition und als solche ziemlich Standard. User haben Leserechte, Administratoren Schreibrechte. Wenn das Kommando mit Parameter aufgerufen wird, dann enthält dieser die User-ID, um gleich den entsprechenden User aufzurufen (zum Beispiel aus xtodo heraus). Zu diesem Zweck wird die erst mal in der Variablen ''link'' gespeichert.

Version vom 23. April 2021, 21:24 Uhr

xuser - Benutzerverwaltung

Das Kommando xuser dient zur Bearbeitung der Benutzer und der Benutzergruppe. Über die Benutzergruppen erfolgt die Rechtevergabe.

Benutzer

Unter dem Baumeintrag Benutzer werden die einzelnen Benutzer aufgelistet, deren Daten auf der entsprechenden Seite dann bearbeitet werden können.

Die Benutzerseite

In der Kategorie Benutzer werden die Stammdaten zum Benutzer angezeigt. Technisch relevant sind die ID und der Login-Name, während Kurz-, Vor- und Nachname keine technische Bedeutung haben. Üblicherweise wird der Passwort-Hash nicht direkt bearbeitet, sondern eine Neues Passwort im gleichnamigen Feld eingegeben, womit der Passwort-Hash generiert wird. In UseriD können die IDs auf vorherigen oder parallelen System eingegeben werden, in LDAP eine LDAP-ID.

In Explizite Gruppenzugehörigkeiten dieses Benutzers ist eine Liste der Benutzergruppen zu finden, in denen der Benutzer direkt enthalten ist. Der Benutzer ist dann auch implizit in allen diesen Gruppen übergeordneten Gruppen enthalten.

Schließlich können noch zu jedem User ToDos gespeichert werden.

Alphabetische Benutzergruppierung

Bei einer großen Zahl von Benutzern mag der Wunsch aufkommen, diese nach dem Anfangsbuchstaben ihres Login-Namens zu gruppieren.

Benutzer nach Anfangsbuchstaben gruppiert

Dazu wird in xuser_flt das Sub-Kommando xuser_open mit dem Parameter userc statt dem Parameter user aufgerufen.

#tree_add u=root   c=$T(User)   s="#page_fill  d=xuser_page_users"    o=xuser_open(userc)

Benutzergruppen

Benutzrerechte werden über Benutzergruppen zugewiesen. Diese Benutzergruppen sind in BAF hierarchisch organisiert. Hier im Beispiel ist die Gruppe user.admin eine Untergruppe der Gruppe user. Benutzer der Gruppe user.admin sind implizit auch Mitglied der Gruppe user, umgekehrt gilt das jedoch nicht.

Eine Benutzergruppe

Die hierarchische Organisation der Gruppen erfolgt über die Eigenschaft Path, diese stellt auch den Namen der Gruppe dar. In GroupID können die IDs aus vorherigen Systemen gespeichert werden, in LDAP die Gruppen-GUID in einem ActiveDirectory.

Hier im Beispiel ist der Benutzer example direkt, also explizit Mitglied der Gruppe. Dagegen ist der User admin implizit Mitglied der Gruppe, weil er explizit Mitglied einer Untergruppe ist.

Individualgruppen

Benutzerrechte können in BAF nur über Gruppen zugewiesen werden. Damit auch einem einzelnen Benutzer gezielt Rechte eingeräumt werden können, gibt es so genannte Individualgruppen. Diese enthalten im Regelfall nur einen einzigen Benutzer. Es ist aber möglich, weitere Benutzer aufzunehmen, zum Beispiel, um ihnen für eine Urlaubsvertretung entsprechende Rechte einzuräumen.

Individualgruppen anlegen

Um die Individualgruppen anzulegen, gehen Sie auf die entsprechende Seite und klicken auf den Button Individualgruppen aktualisieren. Beachten Sie, dass dabei nur neue Individualgruppen angelegt werden, aber nicht die Pfade von bestehenden geändert werden (weil die im Code referenziert sein könnten).

Tabellen

create table user_user(
  user_user_id varchar(40) not null primary key,
  login varchar(40) not null unique,
  password varchar(140) not null,
  shortname varchar(12),
  firstname varchar(40),
  lastname varchar(40),
  userid varchar(20),
  ldap varchar(40),
  email varchar(80),
  status int,
  datechg date,
  usrchg varchar(40),
  progchg varchar(40)    
);
create table user_group(
  user_group_id varchar(40) not null primary key,
  type char(1) not null,
  path varchar(400) not null unique,
  groupid varchar(20),
  ldap varchar(40),
  user_user_id varchar(40),
  status int,
  datechg date,
  usrchg varchar(40),
  progchg varchar(40)   
);

Die Tabelle user_user2group speichert, welcher Benutzer in welcher Gruppe explizit Mitglied ist.

create table user_user2group(
  user_user2group_id varchar(40) not null primary key,
  user_user_id varchar(40) not null,
  user_group_id varchar(40) not null,
  status int,
  datechg date,
  usrchg varchar(40),
  progchg varchar(40)  
);

Code

xuser

#rights  n=frm   r_user=r  r_user.admin=w
#rights  n=admin   r_user.admin=w
#frm  y=treepage  c=xuser   flt=xuser_flt   w=300 

#btn  y=save   s=#save  se=c
#btn  y=cancel   s=#cancel  se=cp
#btn  y=back   s=#treeback  se=b
#btn  y=backback   s=#treebackback  se=b
#btn   c=$T(Refresh)   se=b   s=#filter   w=100

#var_set   n=link   z=$CP(0)

#filter

xuser ist vor allem die Formulardefinition und als solche ziemlich Standard. User haben Leserechte, Administratoren Schreibrechte. Wenn das Kommando mit Parameter aufgerufen wird, dann enthält dieser die User-ID, um gleich den entsprechenden User aufzurufen (zum Beispiel aus xtodo heraus). Zu diesem Zweck wird die erst mal in der Variablen link gespeichert.