Autor Thema: Gruppen-Mitgliedschaft als Bedingung  (Gelesen 2859 mal)

Offline DaJoker

  • Frischling
  • *
  • Beiträge: 9
  • Ich liebe dieses Forum!
Gruppen-Mitgliedschaft als Bedingung
« am: 29.06.05 - 13:22:50 »
Hallo zusammen!

Folgendes System:
Server: 5.0.8
Designer: 5.0.12
Clients: 98% 4.5.7g, 2% 5.0.12

Ich habe einen Navigator mit einigen Rechtechten, onklick soll sich unterschiedliche Datenbank öffnen. Bisher habe ich das so gelöst, dass sich die Replik auf dem Server des eignen mail-files öffnet:
Code
_server := @Subset(@MailDbName;1);
@Command([FileOpenDatabase];_server:"anwend\\tmsust.nsf")

Nun sollen aber Mitglieder einer bestimmten Gruppe, die auch in der ACL eingetragen ist, immer genau eine bestimmt Replik öffnen. Wie kann ich dazu die Gruppen-Mitgliedschaft als Bedingung heranziehen? Über Rollen würde ich nur ungern gehen, weil uns vom Hersteller zwar die Änderung des Navigators erlaubt wurde, nicht jedoch die Anpassung der ACL.

Weiss jemand Rat?
6 Server 5.0.8 OS/2 Warp 4
125 Clients 4.5.7g OS/2 Warp 4
5 Clients 5.0.12 XP Prof.
2 Clients OneBridge Sync

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Gruppen-Mitgliedschaft als Bedingung
« Antwort #1 am: 29.06.05 - 13:46:24 »
Hi,

es gibt ab der Version 5 die Formelfunktion @UserNameList. In deinem Navigator könnte das dann so aussehen:

_server := @Subset(@MailDbName;1);
@If(@IsMember("Marketing-Team"; @UserNamesList);
    @Command([FileOpenDatabase];_server:"anwend\\db1.nsf"); @Command([FileOpenDatabase];_server:"anwend\\db2.nsf"))

Das Problem was ich dabei sehe, sind die 4.5.7er Clients. Daran wird's wohl scheitern. In der Version 4 gab's noch keine Befehl, mit dem du die Gruppenmitgliedschaft abfragen kannst. Ich sehe da im Moment wenig Chancen.


Axel


PS: Bitte erstelle in Zukunkt keine doppelten Threads.
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline DaJoker

  • Frischling
  • *
  • Beiträge: 9
  • Ich liebe dieses Forum!
Re: Gruppen-Mitgliedschaft als Bedingung
« Antwort #2 am: 29.06.05 - 13:56:13 »
Hallo Axel!

Mit dem doppelten thread war es keine Absicht. Ich hab nicht mal hinbekommen eine Entschuldigung zu schreiben, ich bekomme immer einen read timeout. Sorry!

Das @UserNamesList erst ab R5 funktioniert, habe ich bereits aus der Hilfe entnommen. Gibt es keine andere Möglichkeit? Ginge es denn über einen Umweg, wenn ich die Gruppe in irgendeine Liste oder ähnliches eintragen würde?

6 Server 5.0.8 OS/2 Warp 4
125 Clients 4.5.7g OS/2 Warp 4
5 Clients 5.0.12 XP Prof.
2 Clients OneBridge Sync

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Gruppen-Mitgliedschaft als Bedingung
« Antwort #3 am: 29.06.05 - 14:03:19 »
Was würde Dir eine derartige Liste nützen ? Pflegeleicht ist das auch nicht.

Nur mal so ins Blaue gedacht: Im PostOpen oder Initialize der Datenbank könnte man die ACL durchgehen und für den aktuellen User die Gruppen ermitteln, denen er angehört (schön rekursiv über das NAB). Mit den gewonnenen Angaben kann mein ein personengebundenes ProfileDoc füllen / vergleichen (ob noch alles stimmt). Darauf kann man dann wieder im Navigator zugreifen.
Ist zwar von hinten durch die Brust ins linke Auge, aber es ist ja auch R4  ;D

Bernhard

Driri

  • Gast
Re: Gruppen-Mitgliedschaft als Bedingung
« Antwort #4 am: 29.06.05 - 14:06:06 »
Hallo,

was Du machen könntest, wäre für die User in der DB Konfigurationsdokumente anlegen und dort einen Schlüssel zu vergeben, z.B. den Datenbankpfad.
Dann erstellst Du eine versteckte View und ziehst per DBLookup den Datenbankpfad für den User.
Gibt der DBLookup Null zurück, nimmst Du einen Standardpfad (oder verfährst wie bisher), ansonsten benutzt Du den Pfad, den DBLookup zurückliefert.

Ist natürlich mit Pflegeaufwand verbunden.

Offline DaJoker

  • Frischling
  • *
  • Beiträge: 9
  • Ich liebe dieses Forum!
Re: Gruppen-Mitgliedschaft als Bedingung
« Antwort #5 am: 29.06.05 - 14:53:38 »
Hm, die Lösung von Driri gefällt mir bisher am besten. Aber nun bitte noch ein bischen background für mich:
Müssen für alle Benutzer diese Dokumente (130) angelegt werden oder nur für die Handvoll (6), die von der Standard-Konfig abweichen sollen?
Wäre das dann so:
Code
_server := @DBLookup( Notes : "NoCache" ; "" : "" ; XYZView ; @UserName ; SpalteNr );
_server2 := @Subset(@MailDbName;1);
@If( _server = ""; 
      @Command([FileOpenDatabase]; _server2:"anwend\\tms.nsf");
      @Command([FileOpenDatabase]; _server:"anwend\\tms.nsf"))

Wobei, wenn ich mir das jetzt so recht überlege, für 6 User kann ich doch fast schon eine If-Abfrage direkt in das Rechteck einbauen...
6 Server 5.0.8 OS/2 Warp 4
125 Clients 4.5.7g OS/2 Warp 4
5 Clients 5.0.12 XP Prof.
2 Clients OneBridge Sync

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Gruppen-Mitgliedschaft als Bedingung
« Antwort #6 am: 29.06.05 - 15:01:06 »
Hard coding ist immer ganz schlecht.
Wenn die Anzahl Deiner betroffenen User aber derart gering ist, dann kannst Du Dir hierfür Setup-Dokumente erstellen mit dem Usernamen der betreffenden User. Wenn Du den aktuellen User per @dbLookup findest, öffnest Du View speziell, sonst View normal. Setup-Dokumente kannst Du dann auch noch schnell hinzufügen oder löschen. Und wie bei Gruppen melden sich die User von selbst, wenn Du sie vergessen hast einzutragen  ;D

Wäre es allerdings um die 130 User gegangen, wäre mein Vorschlag der flexiblere, dynamischere Ansatz.

Bernhard

Offline DaJoker

  • Frischling
  • *
  • Beiträge: 9
  • Ich liebe dieses Forum!
Re: Gruppen-Mitgliedschaft als Bedingung
« Antwort #7 am: 29.06.05 - 15:20:53 »
Und wie bei Gruppen melden sich die User von selbst, wenn Du sie vergessen hast einzutragen  ;D

Bernhard
Das glaube ich eher nicht. Bei 99% DAUs merkt das keiner, weil sich ja irgendeine Datenbank öffnet. Das stellt die User hier zufrieden... :D
Sonst würde es ja reichen, zwei Rechtecke zu platzieren, jeweils mit der Überschrift "Für User-Gruppe A...".

Ist mein beschriebener Code denn korrekt?
6 Server 5.0.8 OS/2 Warp 4
125 Clients 4.5.7g OS/2 Warp 4
5 Clients 5.0.12 XP Prof.
2 Clients OneBridge Sync

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Gruppen-Mitgliedschaft als Bedingung
« Antwort #8 am: 29.06.05 - 15:29:00 »
Der Code sieht schon in Ordnung aus.

Was das "die User melden sich schon angeht": Okay, melden sie sich eben nicht - kenne ich auch zur Genüge. Aber für mich macht es keinen Unterschied, ob Du vergisst, einen User in eine Gruppe einzutragen (oder auch auszutragen) oder in Deiner DB zu verewigen. Für beides gilt: Sie melden sich - oder eben nicht. Dein Aufwand oder Dein "Zwang", an die Eintragungen zu denken, bleibt der gleiche. Anders ist es natürlich, wenn die Gruppe auch für andere Zwecke gebraucht wird, dann hast Du Mehraufwand.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz