Benutzerverwaltung mit Topdown-Lib
Moderator: Moderatoren
- Christof
- Rekursionen-Architekt
- Beiträge: 265
- Registriert: Mo, 01. Okt 2007 17:14
- Wohnort: Bedburg
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Benutzerverwaltung mit Topdown-Lib
Hi Leute,
bestimmt gibt's jemanden, der sich schon mal mit dem Thema "Benutzerverwaltung" auseinandergesetzt hat.
Ich nutze die Topdown-Lib von Clayton Jones und möchte, wenn möglich/nötig auch die Funktionen daraus nutzen.
Aufgrund einer Anmeldung (evtl. Benutzername, auf jeden Fall Kennwort) sollen für den Anwender nur bestimmte Menüpunkte sichtbar sein. Das Menüsystem habe ich schon stehen (ist in einer dbf abgelegt). Vielleicht gibt's ja schon was (fast) Fertiges.
Freue mich über jede Antwort.
Gruß
Christof
--------------------------------------------------------
Hallo Rolf Ramacher: Ja, das sind wir nicht weit voneinander entfernt. Vielleicht sind wir uns ja schon mal über den Weg gelaufen, ohne es zu wissen...
bestimmt gibt's jemanden, der sich schon mal mit dem Thema "Benutzerverwaltung" auseinandergesetzt hat.
Ich nutze die Topdown-Lib von Clayton Jones und möchte, wenn möglich/nötig auch die Funktionen daraus nutzen.
Aufgrund einer Anmeldung (evtl. Benutzername, auf jeden Fall Kennwort) sollen für den Anwender nur bestimmte Menüpunkte sichtbar sein. Das Menüsystem habe ich schon stehen (ist in einer dbf abgelegt). Vielleicht gibt's ja schon was (fast) Fertiges.
Freue mich über jede Antwort.
Gruß
Christof
--------------------------------------------------------
Hallo Rolf Ramacher: Ja, das sind wir nicht weit voneinander entfernt. Vielleicht sind wir uns ja schon mal über den Weg gelaufen, ohne es zu wissen...
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Benutzerverwaltung mit Topdown-Lib
hi,
das Clayton API Funktionen benutzt die nicht original Xbase++ sind
(Roger macht das mit express++). Wenn du also den Windows (?)
Benutzernamen und Kennwort haben willst kommst du mit Topdown
da nicht ran.
Was das Menu angeht gibt es 2 Möglichkeiten : Nur das anzeigen was
der User darf oder die Menupunkte "disablen" wobei ein "disable" beim
XbpMenu() so nicht vorhanden ist sondern man über Ownerdraw gehen
müsste. Dem User nur das anzuzeigen was er darf wäre also der
einfachere Weg wo du dir nur überlegen muss wie du es machen willst
wenn zwischendruch der User wechselt denn wie man Menues dynamisch
wechselt hab ich auch noch nicht raus.
gruss by OHR
Jimmy
Ich kenne zwar die "lates" Topdown nicht mehr, aber ich denke nichtChristof hat geschrieben: Ich nutze die Topdown-Lib von Clayton Jones und möchte, wenn möglich/nötig auch die Funktionen daraus nutzen.
Aufgrund einer Anmeldung (evtl. Benutzername, auf jeden Fall Kennwort) sollen für den Anwender nur bestimmte Menüpunkte sichtbar sein. Das Menüsystem habe ich schon stehen (ist in einer dbf abgelegt). Vielleicht gibt's ja schon was (fast) Fertiges.
das Clayton API Funktionen benutzt die nicht original Xbase++ sind
(Roger macht das mit express++). Wenn du also den Windows (?)
Benutzernamen und Kennwort haben willst kommst du mit Topdown
da nicht ran.
Was das Menu angeht gibt es 2 Möglichkeiten : Nur das anzeigen was
der User darf oder die Menupunkte "disablen" wobei ein "disable" beim
XbpMenu() so nicht vorhanden ist sondern man über Ownerdraw gehen
müsste. Dem User nur das anzuzeigen was er darf wäre also der
einfachere Weg wo du dir nur überlegen muss wie du es machen willst
wenn zwischendruch der User wechselt denn wie man Menues dynamisch
wechselt hab ich auch noch nicht raus.
gruss by OHR
Jimmy
- Martin Altmann
- Foren-Administrator
- Beiträge: 16515
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Jimmy,
Menüs dynamisch wechseln geht recht einfach: Einträge löschen, neue hinzufügen, refreshen - zumindest unter XClass++
Zu Deinen anderen Einwürfen:
Natürlich kann man Menüs disablen - jedoch nur "echte" Menüeinträge - also nicht den "Namen" eines Untermenüs und auch nicht den Eintrag in der Menüleiste selber - aber vielleicht reicht Christof das ja schon?
Und zum Thema Username - das geht auch ohne API! Einfach die Umgebungsvariable USERNAME abfragen - das ist der Name des unter Windows angemeldeten Users, und er muss sich ja auch mit seinem Passwort authentifiziert haben (sofern er eines hat), sonst wäre er ja nicht angemeldet
Ansonsten hatten wir zu dem Thema (Paßwortabgleich gegen Windows) doch erst vor wenigen Tagen ein entsprechendes Posting, oder?
Viele Grüße,
Martin
Menüs dynamisch wechseln geht recht einfach: Einträge löschen, neue hinzufügen, refreshen - zumindest unter XClass++
Zu Deinen anderen Einwürfen:
Natürlich kann man Menüs disablen - jedoch nur "echte" Menüeinträge - also nicht den "Namen" eines Untermenüs und auch nicht den Eintrag in der Menüleiste selber - aber vielleicht reicht Christof das ja schon?
Und zum Thema Username - das geht auch ohne API! Einfach die Umgebungsvariable USERNAME abfragen - das ist der Name des unter Windows angemeldeten Users, und er muss sich ja auch mit seinem Passwort authentifiziert haben (sofern er eines hat), sonst wäre er ja nicht angemeldet
Ansonsten hatten wir zu dem Thema (Paßwortabgleich gegen Windows) doch erst vor wenigen Tagen ein entsprechendes Posting, oder?
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Martin Altmann
- Foren-Administrator
- Beiträge: 16515
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hier isser, der Thread: http://www.xbaseforum.de/viewtopic.php?t=154
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
hi,
aber wie lösche ich es den da es doch kein DELItem gibt oder soll ich
es :destroy() ?
hab ich doch beim original nicht ?
Nur die "Namen" ( :GetTitle() ) zu wechseln wird es wohl auch nicht
bringen da man ja gewöhlich noch einen Codeblock dran hat.
auch in der DOS/CMD Box zur laufzeit ändern ... das könnte zu Problemen
führen.
Eine andere Möglichkeit wäre das volle Menu anzuzeigen und die Prüfung
nach dem Menu zu machen dann müsste man nichts am Menu rummachen
btw. Ein "disable" in einem Menu kann man ganz leicht mit einen Tool
aushebeln (hab es hier irgendwo auf der HD rumliegen) sodas "disable"
keinen "Schutz" darstellt.
gruss by OHR
Jimmy
hm ... mit ADDItem kann ich zwar in XbpMenu() ein Element zufügenMartin Altmann hat geschrieben: Menüs dynamisch wechseln geht recht einfach: Einträge löschen, neue hinzufügen, refreshen - zumindest unter XClass++
aber wie lösche ich es den da es doch kein DELItem gibt oder soll ich
es :destroy() ?
auch da die Frage wie es unter XbpMenu() geht den ein DISABLEItemMartin Altmann hat geschrieben: Zu Deinen anderen Einwürfen:
Natürlich kann man Menüs disablen - jedoch nur "echte" Menüeinträge - also nicht den "Namen" eines Untermenüs und auch nicht den Eintrag in der Menüleiste selber - aber vielleicht reicht Christof das ja schon?
hab ich doch beim original nicht ?
Nur die "Namen" ( :GetTitle() ) zu wechseln wird es wohl auch nicht
bringen da man ja gewöhlich noch einen Codeblock dran hat.
ok %USERNAME% könnte man verwenden aber den könnte jeder UserMartin Altmann hat geschrieben: Und zum Thema Username - das geht auch ohne API! Einfach die Umgebungsvariable USERNAME abfragen - das ist der Name des unter Windows angemeldeten Users, und er muss sich ja auch mit seinem Passwort authentifiziert haben (sofern er eines hat), sonst wäre er ja nicht angemeldet
Ansonsten hatten wir zu dem Thema (Paßwortabgleich gegen Windows) doch erst vor wenigen Tagen ein entsprechendes Posting, oder?
auch in der DOS/CMD Box zur laufzeit ändern ... das könnte zu Problemen
führen.
Eine andere Möglichkeit wäre das volle Menu anzuzeigen und die Prüfung
nach dem Menu zu machen dann müsste man nichts am Menu rummachen
btw. Ein "disable" in einem Menu kann man ganz leicht mit einen Tool
aushebeln (hab es hier irgendwo auf der HD rumliegen) sodas "disable"
keinen "Schutz" darstellt.
gruss by OHR
Jimmy
- Martin Altmann
- Foren-Administrator
- Beiträge: 16515
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Jimmy,
bei XClass++ gibt es DelBarItem, damit wird ein komplettes Menü entfernt.
Und mit InsBarItem kann man ein Menü hinzufügen.
Danach kommt ein :Refresh und das war's.
Schau mal bei plain Xbase++ unter dem Eintrag XbpMenuBar:DelItem()...
Vielleicht hilft Dir das weiter?
Viele Grüße,
Martin
bei XClass++ gibt es DelBarItem, damit wird ein komplettes Menü entfernt.
Und mit InsBarItem kann man ein Menü hinzufügen.
Danach kommt ein :Refresh und das war's.
Schau mal bei plain Xbase++ unter dem Eintrag XbpMenuBar:DelItem()...
Vielleicht hilft Dir das weiter?
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Martin Altmann
- Foren-Administrator
- Beiträge: 16515
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Ach - und zu Deinem Einwand mit dem Setzen der Umgebungsvariable: da hast Du latürnich Recht! Und darum auch der Verweis von mir auf den anderen Thread - da hat Andreas nämlich die Lösung gepostet.
Viele Grüße,
Martin
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Martin Altmann
- Foren-Administrator
- Beiträge: 16515
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Ach - zum Thema disable beim Menü ist kein Schutz:
Richtig, darum habe ich nicht nur ein disable(), sondern auch in dem Falle einen leeren Codeblock!
Beispiel:
Viele Grüße,
Martin
Richtig, darum habe ich nicht nur ein disable(), sondern auch in dem Falle einen leeren Codeblock!
Beispiel:
Code: Alles auswählen
oApp:Menu:AddItem(100, ID_MNU_BRIEF_1, "~Dachorganisationen", { || IF ( .not. easyspecial, briefe( "E" ), ) }, "Briefe an Dachorganisationen (Ausland)", , IF ( easyspecial, XBPMENUBAR_MIA_DISABLED, ) )
...
oApp:Menu:AddItem(300, ID_MNU_HUNDE_8, "unbestätigte ~Titel", { || IF ( eversion >= 5, unbesttitel(), ) }, "Hunde mit unbestätigten Titeln überarbeiten", , IF ( eversion < 5, XBPMENUBAR_MIA_DISABLED, ) )
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Christof
- Rekursionen-Architekt
- Beiträge: 265
- Registriert: Mo, 01. Okt 2007 17:14
- Wohnort: Bedburg
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Ok, ok Leute!
Vielen Dank für die Hinweise und die z.T. "heiße" Diskussion.
Auch wenn ich im Bankenbereich unterwegs bin, geht es hier nicht um eine Anwendung mit hypersensiblen und dreifach zu sichernden Daten. Eigentlich wollte ich nur etwas Benutzerfreundlichkeit reinbringen und einige Funktionen im Menü auslassen, wenn der entsprechende Anwender diese nicht braucht. Das geht am Anfang der Anwendung ja ganz einfach, da man dann die Einträge einfach nicht einträgt
Ihr habt mir aber trotzdem sehr weitergeholfen. Ich werde die Möglichkeit mit der Abfrage des Usernamens weiter verfolgen. Evtl. brauche ich dann gar keine umfassende Benutzerverwaltung.
Werd' mich mal melden, wenn ich's fertig habe, ok? Vielleicht kann's ja jemand brauchen...
Nochmals DANKE und Grüssle (wie die Kollegen aus Stuttgart immer in meiner Firma schreiben)
Christof
Vielen Dank für die Hinweise und die z.T. "heiße" Diskussion.
Auch wenn ich im Bankenbereich unterwegs bin, geht es hier nicht um eine Anwendung mit hypersensiblen und dreifach zu sichernden Daten. Eigentlich wollte ich nur etwas Benutzerfreundlichkeit reinbringen und einige Funktionen im Menü auslassen, wenn der entsprechende Anwender diese nicht braucht. Das geht am Anfang der Anwendung ja ganz einfach, da man dann die Einträge einfach nicht einträgt
Ihr habt mir aber trotzdem sehr weitergeholfen. Ich werde die Möglichkeit mit der Abfrage des Usernamens weiter verfolgen. Evtl. brauche ich dann gar keine umfassende Benutzerverwaltung.
Werd' mich mal melden, wenn ich's fertig habe, ok? Vielleicht kann's ja jemand brauchen...
Nochmals DANKE und Grüssle (wie die Kollegen aus Stuttgart immer in meiner Firma schreiben)
Christof
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
hi,
entfernt, aber eine ebarbeitung eines einzelnen XbpMenu() Item geht
wohl nicht (das war das was ich meinte)
gruss by OHR
Jimmy
aha ja, es wird also das komplette XbpMenu() aus dem XbpMenuBar()Martin Altmann hat geschrieben: bei XClass++ gibt es DelBarItem, damit wird ein komplettes Menü entfernt.
Und mit InsBarItem kann man ein Menü hinzufügen.
Danach kommt ein :Refresh und das war's.
Schau mal bei plain Xbase++ unter dem Eintrag XbpMenuBar:DelItem()...
entfernt, aber eine ebarbeitung eines einzelnen XbpMenu() Item geht
wohl nicht (das war das was ich meinte)
... darauf bin ich noch nicht gekommen. danke für den Tip.Martin Altmann hat geschrieben: darum habe ich nicht nur ein disable(), sondern auch in dem Falle einen leeren Codeblock!
gruss by OHR
Jimmy
- Martin Altmann
- Foren-Administrator
- Beiträge: 16515
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Jimmy,
Viele Grüße,
Martin
funktioniert das Tool nur bei disableten Menüeinträgen oder auch bei Buttons, Statics, SLEs, .... in einem Fenster?AUGE_OHR hat geschrieben:Ein "disable" in einem Menu kann man ganz leicht mit einen Tool aushebeln (hab es hier irgendwo auf der HD rumliegen) sodas "disable" keinen "Schutz" darstellt.
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
hi,
gruss by OHR
Jimmy
Ich denke es geht bei allem was "disable(d)" wurde.Martin Altmann hat geschrieben:funktioniert das Tool nur bei disableten Menüeinträgen oder auch bei Buttons, Statics, SLEs, .... in einem Fenster?AUGE_OHR hat geschrieben:Ein "disable" in einem Menu kann man ganz leicht mit einen Tool aushebeln (hab es hier irgendwo auf der HD rumliegen) sodas "disable" keinen "Schutz" darstellt.
gruss by OHR
Jimmy
- Martin Altmann
- Foren-Administrator
- Beiträge: 16515
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Jimmy,
hmmm - die Ergebnisse sind sehr unterschiedlich:
Martin
hmmm - die Ergebnisse sind sehr unterschiedlich:
- Menü: geht, aber kein Problem, da bei mir ja dann auch der Codeblock leer ist, passiert nichts.
- PushButton: Ist disabled. Erst nach einigen Malen raufklicken wird er enabled und danach kann man ihn anklicken - da müßte ich nacharbeiten.
- Checkbox: genau wie Pushbutton.
- Static: Passiert nichts, bleibt alles disabled.
- Sle: Passiert nichts, bleibt alles disabled.
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.