Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Dubidu am 27.11.09 - 12:57:28

Titel: ACL einer DB per LotusScript
Beitrag von: Dubidu am 27.11.09 - 12:57:28
Hallo,
Ist es unter Notes 8.5.1 nun möglich die ACL per LotusScript/Formula einer bestimmten DB zu öffnen (nicht die aktuelle).
Gebe mich auch mit C-API-Lösungen zufrieden.

Danke im Voraus!

Liebe Grüße
Giordano
Titel: Re: ACL einer DB per LotusScript
Beitrag von: ascabg am 27.11.09 - 13:02:59
Hallo,

Verstehe ich das richtig.
Du moechtest auf die ACL einer DB zugreifen mittels Script?

Das geht doch schon eine Weile.
NotesACL-Klasse


Andreas
Titel: Re: ACL einer DB per LotusScript
Beitrag von: Dubidu am 27.11.09 - 13:46:07
Nein, nicht ganz. Ich möchte einen ACL-Dialog einer DB öffnen, sprich der Administrator soll per Knopfdruck einen ACL-Dialog einer bestimmten DB vor sich haben.
Titel: Re: ACL einer DB per LotusScript
Beitrag von: eknori (retired) am 27.11.09 - 13:52:31
Ist zwar "nur" über @formel gelöst, funktioniert aber

Code
REM { Database Information };
_server := @Name([Abbreviate];"COMM1/WITTE/DE");
_database := "mail/ukrause.nsf";

REM { Strings to use for display };
REM { BEGIN OK To Translate };
_sTitle   := "Corrective Action Error";
_sMsgNoDatabase := "Database " + _server + "!!" + _database + " was not found.";
_sMsgNoAccess  := "You do not have sufficient access to modify the Access Control List for " + _server + "!!" + _database + ".  Please contact a database manager.";
_sMsgZeroAccess := "You are not allowed to access " + _server + "!!" + _database + ".  Please contact a database manager. Alternatively, switch to Full Access Administration mode and retry this corrective action.";
REM { END OK To Translate };

REM { @IsError(@DbExists( };
REM { Test for the existence of the database that we don't have access to };
REM { @DbExists returns @Error if the DB exists, but we don't have access };

REM { !@DbExists( };
REM { Test for the existence of the database };

REM { @IsError(@UserAccess };
REM { Test for zero access to the database };

REM { @TextToNumber(@UserAccess };
REM { Test for proper access to the database };

@If(
 @IsError(@DbExists(_server : _database));
 @Do(
  @Prompt([Ok]; _sTitle; _sMsgZeroAccess);
  @Return("")
  );

 @If(
  !@DbExists(_server : _database);
  @Do(
   @Prompt([Ok]; _sTitle; _sMsgNoDatabase);
   @Return("")
   );

  @If(
   @IsError(@UserAccess(_server : _database));
   @Do(
    @Prompt([Ok]; _sTitle; _sMsgZeroAccess);
    @Return("")
    );

   @TextToNumber(@UserAccess(_server : _database)[1]) < 6;
   @Do(
    @Prompt([Ok]; _sTitle; _sMsgNoAccess);
    @Command([FileOpenDatabase]; _server : _database);
    @UpdateFormulaContext;
    @Command([FileDatabaseACL])
    );

    @Do(
    @Command([FileOpenDatabase]; _server : _database);
    @UpdateFormulaContext;
    @Command([FileDatabaseACL])
    )
   )
 )
)

Ist übrigens aus der DDM Datenbank
Titel: Re: ACL einer DB per LotusScript
Beitrag von: Dubidu am 27.11.09 - 16:08:00
Hi eknori,
danke, werde ich bei Gelegenheit ausprobieren! :)

Liebe Grüße
Giordano
Titel: Re: ACL einer DB per LotusScript
Beitrag von: koehlerbv am 27.11.09 - 22:21:53
Irgendwie erschliesst sich mir der Sinn des ganzen nicht. Wenn ich dauernd in einer DB die ACL ändern müsste, stimmt entweder etwas nicht mit der gesamten Organisation / Architektur, oder ich löse das ganz anders.

Ansonsten gibt es doch alle möglichen speziellen Werkzeuge für solche Acts. Der Amin-Client als auch der Notes-Client itself tun ja auch nichts anderes.

Giordano, kannst Du da eine eventuelle Lücke meinerseits schliessen - ich kann mir derzeit eine derartige Situation, die sowas erfordert, einfach nicht vorstellen.

Bernhard
Titel: Re: ACL einer DB per LotusScript
Beitrag von: Dubidu am 09.12.09 - 09:07:21
Hi Bernhard,
ich habe eine DB-Verwaltungs-Applikation geschrieben die alle DBs auf den Servern auflistet. Unter anderem soll man ein Dokument markieren können und per Knopfdruck die ACL der DB öffnen. Geht eben schneller und komfortabler.

MFG
Giordano
Titel: Re: ACL einer DB per LotusScript
Beitrag von: ascabg am 09.12.09 - 09:12:15
Hallo,

Rein interessehalber.

Was verwaltest Du in dieser eigenen Applikation?

Den groessten Teil, denke ich zumindest, ist doch ueber den bereits erwaehnten Admin-Client ebenso komfortabel verwaltbar. Manchmal zwar mit einem oder zwei Klicks mit der Maus mehr, aber.


Andreas
Titel: Re: ACL einer DB per LotusScript
Beitrag von: Dubidu am 09.12.09 - 09:46:49
Du kannst zum Beispiel Regeln festlegen wie:

- Max. erlaubte DB-Größe
- Max. erlaubte Dokumente in DB
- Welche ACL-User/Gruppen du in DBs eines bestimmten Server erwartest und mit welchen Rechten.
- Dass du z. B. Repliken von den DBs von Server1 auf Server2 erwartest.

Werden diese Regeln gebrochen, hast du eine schöne übersichtliche Auflistung der DBs und du kannst mit einem Schlag erforderliche Maßnahmen ergreifen. Bei über 10 000 DBs pro Server ist das aufjedenfall erleichternd.

Du kannst auch auf einen Schlag Optionen wie SoftDeletions, Document Locking etc. an- oder ausschalten.

Du kannst außerdem auf einen Schlag DBs auf mehreren Servern erkennen, die zwar denselben Pfad teilen, aber tatsächlich keine Repliken sind (z. B. wenn eine Replik mal gelöscht und anschließend eine neue DB auf denselben Pfad neu erstellt wurde).

Grob gesagt: Du kannst sehr vieles auf einen Schlag erkennen und gleich auf einen Schlag erforderliche Maßnahmen ergreifen. Du wirst dann ebenfalls per E-Mail eine Übersicht der Wartungen erhalten (nicht so häßlich wie bei Notes).

Liebe Grüße
Giordano
Titel: Re: ACL einer DB per LotusScript
Beitrag von: Klafu am 14.12.09 - 10:52:25
Ich stell auch mal ne Frage hier rein, bezüglich ACL-Entrys:

Ist es bei euch auch so das einen User Gruppe mit ACLEntry.IsPerson behandelt wird ?
Ich wollte die eigentlich im Script per IsGroup abfangen ...

Chris
Titel: Re: ACL einer DB per LotusScript
Beitrag von: ascabg am 14.12.09 - 11:26:39
Also bei mit wird fuer eine Personengruppe
IsGroup und IsPerson mit True angezeigt.

Ist bei Deiner Personengruppe auch der Benutzertyp richtig gesetzt?


Andreas
Titel: Re: ACL einer DB per LotusScript
Beitrag von: LN4ever am 14.12.09 - 12:01:42
Der Ausdruck ISPERSON ist vielleicht etwas unglücklich gewählt, weil er für Personengruppen und Einzelpersonen gleichermaßen TRUE liefert (im Gegensatz zu Servergruppen und Einzelservern).
Dahinter steckt die Berechtigung zum Zugriff mit einem Userinterface. In früheren Versionen konnte man einen Client mit einer (gestohlenen ?) Server-ID starten und dann mit den Rechten und im Namen des Servers agieren.

Da Server-IDs typischerweise kein Passwort haben, ist diese Sicherheitslücke mit der Einführung der UI-Berechtigungseinschränkung geschlossen worden.

Gruß

Norbert
Titel: Re: ACL einer DB per LotusScript
Beitrag von: Klafu am 14.12.09 - 12:13:08
@Andreas
Ja, die passen.

@euch beide:
Danke für die Info. Dann werde ich mal einfach die Abfrage umdrehen. So sollte es dann klappen.

Nochmal danke an euch !

Chris