Autor Thema: Nutzereinstellungen auslesen  (Gelesen 3290 mal)

Offline dabjoern

  • Junior Mitglied
  • **
  • Beiträge: 95
  • Geschlecht: Männlich
Nutzereinstellungen auslesen
« am: 09.06.05 - 22:00:56 »
Hallo auch,
ich suche nach einer eleganten Lösung für folgendes Problem: Über einen Button kann der Nutzer ein Formular öffnen, in dem er persönliche Einstellungen vornimmt. So soll er bspw. benennen, ob er Anfänger, Fortgeschrittener oder Pro ist. Die getroffenen Einstellungen möchte ich datenbankweit abrufen können. Öffnet der jeweilige Nutzer ein anderes Form, möchte ich gewisse Absätze je nach "User Level" (Anfänger,...) verbergen.

Bisher habe ich das Formular erzeugt, in dem der Nutzer seine Angaben trifft. Wie sollte ich eleganterweise vorgehen? Sollte ich eine View anlegen, in der ich Username und "User Level" abspeichere und dann in den jeweiligen Formularen diese View abfrage und so das Level in einem hidden field bereitstelle?

Bin für jede Hilfe und Anregung dankbar.
Gruß
Björn
« Letzte Änderung: 09.06.05 - 22:02:32 von dabjoern »

Offline RonMat

  • Junior Mitglied
  • **
  • Beiträge: 64
  • Geschlecht: Männlich
  • Immer weiter, immer weiter......
Re: Nutzereinstellungen auslesen
« Antwort #1 am: 09.06.05 - 22:25:54 »
Ein Ansatz wäre die Einträge in der Notes.ini des Users zu speichern und dann gegebenenfalls an dieser Stelle die Werte auslesen.

Offline dabjoern

  • Junior Mitglied
  • **
  • Beiträge: 95
  • Geschlecht: Männlich
Re: Nutzereinstellungen auslesen
« Antwort #2 am: 09.06.05 - 22:30:48 »
Sehe ich das richtig, dass man das mit diesen Environment Variabeln macht? Hatte schonmal hier im Forum rumgesucht und bin auch in der Designer Hilfe auf diese ganze Sache gestoßen.

Kurze Verständnisfrage: Es gibt doch nur pro Client Installation (also pro Workstation) eine notes.ini. D.h. arbeiten 2 oder mehr User an einer Workstation, so greifen sie beide auf die gleiche notes.ini zu. Oder sehe ich das falsch?  ???
Gruß
Björn

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Nutzereinstellungen auslesen
« Antwort #3 am: 09.06.05 - 22:31:24 »
Hmm, notes.ini würde ich vermeiden, ich denke hier kann man mit Profildokumenten arbeiten.

In einem Dokument nutzt Du dann Hide/When-Formeln mit @GetProfileField.

Bezüglich Hide/When: siehe AtNotes Best Practices: Verbergen-Wenn (Hide-When) - Formeln
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Nutzereinstellungen auslesen
« Antwort #4 am: 09.06.05 - 22:36:33 »
Kurze Verständnisfrage: Es gibt doch nur pro Client Installation (also pro Workstation) eine notes.ini. D.h. arbeiten 2 oder mehr User an einer Workstation, so greifen sie beide auf die gleiche notes.ini zu. Oder sehe ich das falsch?  ???

Du kannst auf einem Rechner mit mehreren notes.ini's arbeiten, z.B. indem Du Notes wie folgt startest:
C:\Programme\Notes\nlnotes.exe =X:\USER\notes.ini

Wird während einer Session die user.id gewechselt, so wird auf dieselbe notes.ini zugegriffen. AFAIK ist also nur während des Client-Starts hier eine Beeinflussung möglich.

Ich persönlich vermeide die notes.ini soweit es irgendwie geht.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline dabjoern

  • Junior Mitglied
  • **
  • Beiträge: 95
  • Geschlecht: Männlich
Re: Nutzereinstellungen auslesen
« Antwort #5 am: 09.06.05 - 22:37:04 »
Danke TMC,
deinen Beitrag zu hide-when habe ich mir schon zu Gemüte geführt.  ;) Super, solche Tuts sind unheimlich wertvoll. Handelt es sich bei solchen Profildokumenten um etwas spezielles oder nennen wir die nur so aufgrund ihrer Funktionalität? Ich werde mal die Designer Hilfe bemühen...
Gruß
Björn

Offline RonMat

  • Junior Mitglied
  • **
  • Beiträge: 64
  • Geschlecht: Männlich
  • Immer weiter, immer weiter......
Re: Nutzereinstellungen auslesen
« Antwort #6 am: 09.06.05 - 22:40:53 »
Klar, ProfilDoc ist o.k. Mit Einträgen in der Notes.ini hatte ich bisher auch noch keine Probleme

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Nutzereinstellungen auslesen
« Antwort #7 am: 09.06.05 - 22:42:30 »
Björn, genau, am besten liest Du das mal nach (Designerhilfe oder in einem Buch).

Grundsätzlich sind "Profildokumente" eine Funktionalität, die Notes schon mitliefert (inkl. Formeln mit denen Du diese ausliest). Ich denke für Deinen Zweck sind diese ziemlich ideal. Du kannst diese auch pro User (anhand @Username) anlegen.
Ein Nachteil kann sein, wenn sich dort Inhalte häufig ändern, weil Notes diese cached. Wird aber bei Dir nicht der Fall sein (so oft wird sich der Status "Anfänger, Fortgeschrittener etc." nicht ändern).
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Nutzereinstellungen auslesen
« Antwort #8 am: 09.06.05 - 22:53:13 »
Obicht - das Nutzerprofil soll datenbankübergreifend ausgelesen werden. Profildokumente eignen sich dafür nicht, wenn Formelsprache verwendet werden soll oder muss. Dies würde also auch Spaltenformeln betreffen, insofern dies erforderlich wäre. Hier gilt aber gleiches für Environment-Variablen.

Bernhard

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Nutzereinstellungen auslesen
« Antwort #9 am: 09.06.05 - 22:56:42 »
Obicht - das Nutzerprofil soll datenbankübergreifend ausgelesen werden.

Wo steht das, Bernhard, kann gut sein dass ich da was übersehen habe, aber:
Die getroffenen Einstellungen möchte ich datenbankweit abrufen können.

Wenn übergreifend (also auslesen von DB2 aus DB1): dann hast Du natürlich Recht, dann eignen sich Profildokumente eher nicht.
« Letzte Änderung: 09.06.05 - 22:59:01 von TMC »
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Nutzereinstellungen auslesen
« Antwort #10 am: 09.06.05 - 23:02:16 »
Genau das von Dir gefundene Zitat meinte ich, Matthias.

Bernhard

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Nutzereinstellungen auslesen
« Antwort #11 am: 09.06.05 - 23:06:07 »
Datenbankweit heißt doch "datenbankweit", also nur diese Datenbank betreffend, oder?
Sonst würde es doch "datenbankübergreifend" oder "systemweit" heißen  ???

Matthias
« Letzte Änderung: 09.06.05 - 23:08:06 von TMC »
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Nutzereinstellungen auslesen
« Antwort #12 am: 09.06.05 - 23:19:03 »
Jo, Datenbankweit ist eindeutig innerhalb derselben Datenbank, nicht übergreifend.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Nutzereinstellungen auslesen
« Antwort #13 am: 09.06.05 - 23:26:21 »
Warten wir die Antwort des Fragenden ab, aber mit hoher Wahrscheinlichkeit stimmt Eure Vermutung. Wenn dann auch nur noch Masken betroffen sind, um diese Profile auszuwerten, ist das ProfileDoc erste Wahl und die NOTES.INI (wie oft) ein NoNo.

Bernhard

Offline dabjoern

  • Junior Mitglied
  • **
  • Beiträge: 95
  • Geschlecht: Männlich
Re: Nutzereinstellungen auslesen
« Antwort #14 am: 10.06.05 - 07:55:35 »
Hallo auch,
wow bin überwältigt von der Response Zeit und Beteiligung in diesem Forum. Vielen Dank an Euch.

Die Vermutung stimmt. Ich möchte, dass die Werte nur innerhalb der einen Datenbank zur Verfügung stehen und nicht systemweit. Ich hoffe, dass sind die richtigen Begriffe zur Unterscheidung: datenbankweit (nur in der einen DB) versus datenbankübergreifend. Werde mich jetzt also in diese Profildokumente reinarbeiten. Vielen Dank.
Gruß
Björn

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Nutzereinstellungen auslesen
« Antwort #15 am: 10.06.05 - 08:18:12 »
Björn, die Begriffe hast Du richtig verwendet.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline dabjoern

  • Junior Mitglied
  • **
  • Beiträge: 95
  • Geschlecht: Männlich
Re: Nutzereinstellungen auslesen
« Antwort #16 am: 04.02.06 - 17:07:39 »
Ich habe jetzt gemerkt, dass wenn ich einen neuen Nutzer für die Datenbank zulasse, und er sie öffnet, kein neues Profildokument für ihn automatisch angelegt wird. Drückt der Nutzer auf meinen Button mit der nachfolgenden Formel wird kein neues Profildokument (entgegen der Designer Hilfe) angelegt:

Code
@Command([EditProfileDocument];"UserProfile";@UserName)

Statt dessen kommt die Meldung:

Zitat
You are not authorized to perform that operation.

Der Nutzer hat Autorenrechte für die Datenbank.

In der Designerhilfe steht für obige Formel:

Code
Creates a new or opens an existing profile document in Edit mode. 
Note  This @command is new with Release 6.
Syntax
@Command( [EditProfileDocument] ; formname; uniqueKey )

Sollte ich unter Other | Database Resources ein Skript hinterlegen, welches automatisch ein Profildokument für den jeweiligen Nutzer anlegt? Im persönlichen Adressbuch ist ja so ein ähnliches Skript:

Code
	Set profile=db.GetProfileDocument("UserProfile")
	If profile.Owner(0)="" Then
		Call CreateDefaultUserProfile
	End If
	Exit Sub

Code
Sub CreateDefaultUserProfile	
	On Error Goto ErrorRoutine
	'the global variable "profile" is a profile document already
	'we need to add the fields to it
	
	Call profile.ReplaceItemValue("Owner", session.Username)
	
	Call profile.ReplaceItemValue("Form", "UserProfile")
	Call profile.ComputeWithForm(False, False)
	
	Call profile.Save(True,True,True)
	Exit Sub
	
ErrorRoutine:
	Messagebox "CreateDefaultProf: " & Error$ & " " & Erl
	Exit Sub
End Sub

Was denkt ihr hierzu? Danke für jede Hilfe.

Grüße
Björn

Offline dabjoern

  • Junior Mitglied
  • **
  • Beiträge: 95
  • Geschlecht: Männlich
Re: Nutzereinstellungen auslesen
« Antwort #17 am: 04.02.06 - 17:29:55 »
Also ich hab jetzt noch ein wenig rumprobiert und mal den Code wieder aus Database Resources rausgenommen.

Außerdem habe ich dem User zusätzlich zu seinen Rechten erlaubt neue Dokumente zu erstellen. Also habe ich in der ACL "Create Documents" aktiviert.

Nun geht es. Hat das irgendwelche Nachteile? Gibt es hier Sicherheitsbedenken?

Grüße
Björn

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz