[Gelöst] Navigationsbereich - User zuordnen

27. Juli 2009 10:28

Hallo zusammen,

ich habe eine Frage zum Navigationsbereich.

Wenn ich neue User erstelle, haben diese zunächst Zugriff auf ALLE Menüs im Navigationsbereich. Das ist ziemlich lästig da ich vor der Aufgabe stehe 50 Außendienstmitarbeiter mit Zugriff auf genau EIN Menü anzulegen und mit diesen Häckchen verklickt man sich schnell mal.

Gibt es einen Weg neue Nutzer erstmal gar kein Menü zu erlauben und dann im Nachhinein freizuschalten? Oder über Dataport eine Liste der neuen User mit den entsprechenden Menü Berechtigungen einzulesen?

Vielen Dank!
Zuletzt geändert von Will_SV am 4. August 2009 10:47, insgesamt 3-mal geändert.

Re: Navigationsbereich - User zuordnen

27. Juli 2009 10:36

Willkommen im Forum!
Hattest du dich vor der Erstellung deiner Frage im Forum schon umgesehen?
Wenn die Forensuche keine Ergebnisse liefert, lohnt sich oft ein Blick in unsere Rubrik NAV Tipps & Tricks.
Dort findest du auch dieses Thema, das dein Problem behandelt: Benutzereinstellungen MenuSuites kopieren

Außerdem habe ich das hier noch für dich gefunden: [gelöst] Standardisierte Benutzerzugriffsrechte in Menüs ändern

Re: Navigationsbereich - User zuordnen

27. Juli 2009 10:41

Hallo Wilhelm,

zuerst möchte ich dich ganz herzlich in unserer Community Willkommen heißen.

Deine Frage wurde hier schonmal durchgesprochen: Standardisierte Benutzerzugriffsrechte in Menüs ändern?
Des Weiteren hilft dir auch dieses Thema: Navigationpane - Benutzerzuordnung

Re: [Gelöst] Navigationsbereich - User zuordnen

27. Juli 2009 10:57

Hallo Timo und Natalie,

vielen Dank für die schnelle prompte Beantwortung. Ich hatte unter Trick´s mit Navigationsbereich gesucht, werde das nächste mal genauer schauen.

Grüße

Willi

Re: Navigationsbereich - User zuordnen

27. Juli 2009 17:05

Hallo Timo,

klappt leider noch nicht.

Ich habe den OnInsert Code probiert Table Windows Login


Code:
UserMenuL.SETRANGE(UserMenuL.ID,'SHEDULENEU');
IF UserMenuL.FINDFIRST THEN BEGIN
  UserMenuL2.INIT;
  UserMenuL2.ID := ID;
  UserMenuL2."ID Type" := UserMenuL."ID Type";
  UserMenuL2.Level := UserMenuL.Level;
  UserMenuL2.Object := UserMenuL.Object;
  UserMenuL2.Modified := CREATEDATETIME(TODAY,TIME);
  UserMenuL2.INSERT;
END;


Sheudelneu ist mein Default User dessen Zugriffe ich übertragen will. Das Feld Object ist nach hinzufügen des Windows User leer und mit der ID gibt es auch noch Probleme ???
Zuletzt geändert von Will_SV am 28. Juli 2009 08:54, insgesamt 2-mal geändert.

Re: Navigationsbereich - User zuordnen

27. Juli 2009 19:48

Da das Feld Object vom Typ BLOB ist, darfst du nicht einfach x.Object := y.Object setzen.
Arbeite z.B. mit Record1 := Record2 und tausche nur noch die ID aus. ID muss dabei natürlich dem Benutzernamen entsprechen; bei deinem Windowslogin also nach dem Schma Domäne\Name - wie im Original auch.

Bedenke, dass das Kopieren nur von Windowslogin zu Windowslogin und von DB-Login zu DB-Login funktioniert, nicht gemischt -> Feld ID Type filtern.

Re: Navigationsbereich - User zuordnen

4. August 2009 10:46

Hallo zusammen,

habe das Problem lößen können:

Code:
  UserMenuL.SETRANGE(UserMenuL.ID,'DEFAULT');  // Das ist der Default User von dem Rechte übertragen werden
  IF UserMenuL.FINDFIRST THEN BEGIN
    UserMenuL.CALCFIELDS(Object);
    NewUserMenuLevel := UserMenuL;
    NewUserMenuLevel.ID := NewUserMenuLevelID;
    NewUserMenuLevel.INSERT;
  END;


Vielen Dank nochmal und Grüße

Re: [Gelöst] Navigationsbereich - User zuordnen

8. September 2009 12:35

Hallo,

ich habe leider das gleiche Problem, doch bei mir funktioniert die Lösung meines Vorredners nicht so ganz... :-(

Mein Code:


Code:
IF rUserMenuLevel2.GET('Domäne\NAVTEMPLATE01',
                       rUserMenuLevel2."ID Type"::Windows,
                       rUserMenuLevel2.Level::"User Changes") THEN BEGIN
  rUserMenuLevel2.CALCFIELDS(Object);
  rUserMenuLevel := rUserMenuLevel2;
  rUserMenuLevel.ID := tID;
  rUserMenuLevel.INSERT;
end;


Er fügt den Datensatz zwar hinzu, aber die Objektzuweisungen in dem Navigationsbereich werden nicht übernommen...

Wäre super, wenn man mir kurz helfen könnte!

Re: [Gelöst] Navigationsbereich - User zuordnen

8. September 2009 13:25

doRi hat geschrieben:Er fügt den Datensatz zwar hinzu, aber die Objektzuweisungen in dem Navigationsbereich werden nicht übernommen...

Die Objektzuweisungen stehen auch nicht in dem Level::"User Changes", sondern in dem Level::"User Restrictions"

Re: [Gelöst] Navigationsbereich - User zuordnen

8. September 2009 14:05

Habe den Code auch zwei mal geschrieben, also einmal für die Änderungen und einmal für die Einschränkungen.
Also erst lösche ich 2 Datensätze, die ich per TextBox eingebe und dann "soll" er die Datensätze des DummyUsers kopieren und nur die ID ändern.
Komischerweise habe ich dann auch 2 neu eingefügte Datensätze, doch anscheinend übernimmt er das BLOB-Feld nicht...
Ratlosigkeit...

Code:
IF rUserMenuLevel.GET(tID,rUserMenuLevel2."ID Type"::Windows,rUserMenuLevel2.Level::"User Restrictions") THEN BEGIN
  rUserMenuLevel.DELETE;
  IF rUserMenuLevel2.GET(''DOMÄNE\NAVTEMPLATE01',
                         rUserMenuLevel2."ID Type"::Windows,
                         rUserMenuLevel2.Level::"User Restrictions") THEN BEGIN
    rUserMenuLevel2.CALCFIELDS(Object);
    rUserMenuLevel := rUserMenuLevel2;
    rUserMenuLevel.ID := tID;
    rUserMenuLevel.INSERT;
  end;
END;
IF rUserMenuLevel.GET(tID,rUserMenuLevel2."ID Type"::Windows,rUserMenuLevel2.Level::"User Changes") THEN BEGIN
  rUserMenuLevel.DELETE;
  IF rUserMenuLevel2.GET('DOMÄNE\NAVTEMPLATE01',
                         rUserMenuLevel2."ID Type"::Windows,
                         rUserMenuLevel2.Level::"User Changes") THEN BEGIN
    rUserMenuLevel2.CALCFIELDS(Object);
    rUserMenuLevel := rUserMenuLevel2;
    rUserMenuLevel.ID := tID;
    rUserMenuLevel.INSERT;
  end;
END;


Schon mal vielen Dank für die schnelle Antwort!

Re: [Gelöst] Navigationsbereich - User zuordnen

8. September 2009 16:24

Okay, habe den Fehler gefunden. Hatte einen falschen DataType genommen und dann hat er den GET nicht hinbekommen.
Habe den Code jetzt nochmal im END ELSE Zweig eingefügt und den DataType geändert und nun funktioniert es.

Trotzdem nochmal Danke! :wink: