Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Bruce Willis am 09.08.04 - 23:41:23
-
Hallo,
es gibt eine Datenbank...
Domino-Gruppe "Alle" ist "Autor" in ACL...
Jeder Abteilung entspricht eine Gruppe im Domino-Adressbuch...
Ich möchte folgendes tun:
sobald ein User ein Dokument erstellt, kriegt jeder von der gleichen Abteilung den Autor-Zugriff darauf.
1. Ich kann z.B. für jede Abteilung (d.h. Domino-Gruppe) eine Rolle in der DB erstellen. Wie soll ich dann die u.g. Formel modifizieren, damit die richtige Rolle berechnet wird?
2. Gibt es eine Lösung ohne die zusätzlichen DB Rollen für jede Abteilung?
Danke
Bruce
-----
1. Rolle "[Alle]"
2. Feld "CanWrite" - Kontrollkästchen, bearbeitbar, "Alle"
3. Feld "Writer" - Autorenfeld, berechnet, mit Formel:
@If(CanWrite = "Alle"; "[Alle]"; @UserName)
-
Leo,
das wird imho deshalb nicht ganz einfach, weil ja mehrere Gruppen im NAB stehen können.
Wir nehmen den User "Reiner Unsinn". Er steht z.B. in der Gruppe "Einkauf". Außerdem steht er noch in der Gruppe "Lager", weil er mitbekommen will, was denn da so für Probleme auftauchen mit den von ihm eingekauften Produkten. Dann steht er vielleicht noch in der Gruppe "Frankfurt", weil er eben beim Standort Frankfurt arbeitet.
Somit wird es schwierig für eine programmatische Lösung, welche Gruppenmitglieder denn noch Autor werden sollen (Einkauf / Lager / Frankfurt).
Wie auch immer:
Ich würde via QuerySave entsprechend per Script das Autoren-Feld füllen.
Es sollte es sich nicht schwierig gestalten, die Rollen, die aktuell der User hat, via QuerySave in ein Autorenfeld zu setzen.
-
Hallo Matthias,
ja-a-a-a-a... Mit den Gruppen hast du natürlich recht... Ich habe nicht daran gedacht...
Es bleiben also nur Rollen. Und LotusScript... :o
Kannst du bitte für einen Moment von deiner Wolke zu dem Fußvolk kommen, um einen Formel-Tipp zu geben?..
;D
Du bist doch ein netter Kerl, oder?
-
Kannst du bitte für einen Moment von deiner Wolke zu dem Fußvolk kommen, um einen Formel-Tipp zu geben?..
;D
Du bist doch ein netter Kerl, oder?
Leo, was denkst Du auf welcher Wolke ich bin?
Formelsprache ist nicht für "Fußvolk", sondern ist in manchen Fällen sehr viel eleganter und auch performance-seitig besser als Script. Siehe auch die vielen Evaluate-Dinge, wo in LotusScript eben auf @Formel ausgewichen wird.
Bevor man hier helfen kann:
Wo definierst Du nun, welche Abteilungskollegen der User "Reiner Unsinn" hat?
Trotzalledem sehe ich hier eine saubere Lösung nur in LS.
-
Es bleiben also nur Rollen. Und LotusScript... :o
Der Aussage entnehme ich, dass Du LS nicht wirklich beherrschst. Um ernsthaft Notes-Applikationen zu entwickeln, solltest Du Dich damit aber gründlich auseinandersetzen.
Sehr gut hilft Dir da die Bible:
http://www.atnotes.de/index.php?board=26;action=display;threadid=16569
Welche allerdings ein gewisses Grundverständnis von Basic-Dialekten erwartet (aber nicht zwingend voraussetzt). Mit gesundem Menschenverstand und in Verbindung mit der Designerhilfe lässt sich das easy lernen.
-
Bevor man hier helfen kann:
Wo definierst Du nun, welche Abteilungskollegen der User "Reiner Unsinn" hat?
Ich würde die Rolle "Alle" weg schmeißen und durch mehrere Abteilungsrollen ersetzen:
z.B. "Geschäftsführung", "Wolke", "Support", "Fußvolk" etc.
Jede Abteilung hat eine eindeutige Domino-Gruppe. Jede dieser eindeutigen Domino-Gruppen kriegt in ACL eine entsprechende Rolle.
Falls Reiner Unsinn also die Rolle "Support" hat und ein Dokument erstellt, dann wird diese Rolle in das Autorenfeld geschrieben, und dadurch kriegen alle anderen Mitglieder der Abteilung/Gruppe/Rolle auch das Autor-Recht.
Stimmt's?
Jetzt ist nur die Frage, wie ich diese Rolle beim Dokument-Anlegen ermittle und reinschreibe...
Oder mindestens in einem Feld "Berechnet zur Anzeige" angezeigt bekomme...
P.S. Es gibt natürlich auch gemischte Domino-Gruppen, wie in deinem Beispiel vorher, aber es macht hier nichts (hoffe ich).
-
Wo wäre denn das Problem, wenn einer in mehreren Gruppen ist?
Dann bekommt er eben auch mehrere Rollen über seine Gruppenmitgliedschaft.
Und noch was:
Es bleiben also nur Rollen. Und LotusScript...
Was haben denn Rollen mit der Verwendung von LotusScript zu tun?
Die Rollen des aktuellen Benutzers bekommst Du mit @Userroles und kannst die auch per Formula beliebig weiterverwenden. Ich sehe da nicht die Notwendigkeit da irgendwas mit Skript zu machen...
-
So würde ich das machen:
Man nehme ein Autorenfeld, das mit einer Dialogliste ausgestattet ist und Multi-Values zulässt.
Befüllt wird diese Liste mit den Rollen des Users (mit ein paar weiteren Tricks sind dann auch die eckigen Klammern weg).
Da kann der dann aus der Liste auswählen, welcher Gruppe er Zugriff gewähren will.
Und dafür brauche ich nicht mal Skript....und höchstens 3 Minuten....
Nevertheless: Skript zu können schadet nie.
-
... man denke in diesem Zusammenhang aber daran, dass es max. 70 Rollen geben kann. Danach ist Sense.....
-
Richtig. Aber 70 Abteilungen sind doch eine ganze Menge...
-
@Gandhi
... du hast noch nie bei einer städt. Verwaltung gearbeitet..... ;D ??? ;D
-
Da hast Du Recht ;D
-
Man nehme ein Autorenfeld, das mit einer Dialogliste ausgestattet ist und Multi-Values zulässt.
Befüllt wird diese Liste mit den Rollen des Users...
Da kann der dann aus der Liste auswählen, welcher Gruppe er Zugriff gewähren will.
Und dafür brauche ich nicht mal Skript....und höchstens 3 Minuten....
Danke!
Bestünde die Möglichkeit, die Einträge so einer Dialogliste dynamisch zu berechnen, damit jeder User nur seine eigenen Rollen auswählen oder sehen könnte (ohne restliche 69 oder 68 anderer Abteilungen)?
Mit welcher Formel würdest du denn das realisieren?
-
.. aus der Designer-Hilfe:
Beispiel
Gibt eine Liste von Rollen des aktuellen Benutzers für eine Datenbank auf einem Server oder für eine lokale Datenbank zurück, falls "Konsistente ACL über alle Repliken dieser Datenbank erzwingen" aktiviert ist. Rollen sind in der Zugriffskontrollliste einer Datenbank definiert.
Syntax
@UserRoles
Rückgabewert
Rollen
Textliste. Jedes Element in der Liste ist der Name einer Rolle, die der aktuelle Benutzer in der aktuellen Datenbank übernimmt. Die Rollennamen sind zwischen eckigen Klammern eingeschlossen. Die Funktion gibt eine leere Zeichenfolge ("") zurück, wenn es sich bei der aktuellen Datenbank um eine lokale Datenbank handelt un.....
-
@userRoles gibt genau die Rollen (als Liste) zurück, die der User besitzt. Somit: Ja!
-
Hallo,
noch eine Frage...
Es kann natürlich sein, dass der Datenbank-Manager überprüfen will, welche Rollen ein User in der DB hat...
Ich stelle mir eine Maske mit zwei Feldern vor:
1. Feld "User" - bearbeitbar, um den Name eines Users aus dem Domino-Adressbuch auszuwählen
2. Feld "Rollen" - berechnet (z.B. zur Anzeige), wo alle Rollen des Users angezeigt werden.
Geht es?
Mit welcher Formel?
Gruß
Bruce
-
Vielen Dank!
Ich probiere es aus...
-
... dann schaut der Admin in der ACL nach und "gut iss".
-
Gebe Klaus da recht: Ein Admin weiß (hoffentlich) wie er herausfindet welcher User welche Rolle hat.
-
d.h. die Entwickler können die Admins dabei nicht unterstützen...
:'(
-
Die Entwickler brauchen die Admins dabei gar nicht zu unterstützen trifft es besser.
Eine Funktion, wie Du sie vorhattest benötigte viel Script und brächte fast keinen Vorteil. Wenn sie einen Vorteil brächte, wäre Euer System schlecht administriert. Somit sollten die Admins entweder ohne Tool keine Probleme haben oder ihrer Administrations-policies ändern (oder einfach durchziehen).
-
Vielleicht verstehe ich was falsch...
Bleiben wir bei deinem Beispiel: es gibt 70 Abteilungen, d.h. mindestens 70 eindeutige Domino-Gruppen und 70 DB-Rollen.
Der Admin will wissen, welche Rolle der User Reiner Unsinn hat.
Er muss also das Domino-Addressbuch öffnen, Groups > by Organization, nach dem Reiner Unsinn suchen, insgesamt evtl. 10 verschiedene Gruppen vorfinden, eindeutige Abteilungsgruppe auswählen, dann mit den vorhandenen DB-Rollen vergleichen.
Richtig?
-
Falsch, ich rufe den user an und der soll dann unten rechts am BS auf den kleinen Schlüssel drücken (Sicherheit) und dann weiss ich, welche Rollen + Rechte der hat.
Ich kann mir aber auch einen Knopf an die Backe .......
klaus
-
Na gut, der Vorschlag, den User anzurufen, ist bestimmt die einfachste Lösung... :D
Was ist mit der Backe? Ist es ein Spruch oder Humor? Kannst du bitte mich einweihen, da das Deutsch nicht meine Muttersprache ist?
-
... das ist Humor :)