[gelöst] Mandant gefiltert auswählen?

25. September 2007 14:49

Hi zusammen,

ein Kunde würde gerne benutzerspezifisch Mandanten anzeigen können. Sprich, bei Strg+O sollen nur die Mandanten angezeigt werden die für diesen User "gültig" sind. Ich weiss, dass das geht wenn man sämtliche Rollen auf einen Mandant filtert, dies kommt hier allerdings nicht in Frage (viele Changecompany-Funktionen etc.), auch eine Dopplung der Rollen o.ä. nicht. Ich dachte zuerst ich könnte hier über die CU 1 irgendwas deichseln aber das geht offensichtlich nicht. Gibts sonst noch eine Lösung? Einen kleinen Trick quasi? :-).

Viele Grüße
Jan
Zuletzt geändert von Jan am 26. September 2007 17:14, insgesamt 1-mal geändert.

25. September 2007 18:53

Hallo Jan,

eine Lösung, dass in der Mandantenübersicht (Mandant öffnen) die Einträge entsprechend irgendeiner Einrichtung gefiltert werden, kenne ich nicht. Jedoch könnte eventuell ein anderer Weg auch helfen:

Erstelle zunächst eine Tabelle mit den beiden Feldern User ID und Company Name. Setze die Feld-Eigenschaft TableRelation der beiden Felder auf den Wert User bzw. Company. Beide Felder sind Teil des Primärschlüssels.

Über diese neue Tabelle (ich nenne sie jetzt UserCompanyAccess) kannst du nun hinterlegen, welcher Benutzer Zugriff auf welchen Mandanten hat.

In der Codeunit 1 in der Funktion CompanyOpen könntest du folgendes hinterlegen:

Code:
IF NOT UserCompanyAccess.GET(USERID, COMPANYNAME) THEN
  ERROR('');


Gruß, Marc

26. September 2007 08:44

setz mal nur die Rolle "Alle" mit Mandantenfilter. Das verhindert das einloggen in diesen Mandant. (weil keine Rechte auf Forms etc.).
Die Rechte auf die Tabellen bleiben davon unberührt.

26. September 2007 11:51

tba hat geschrieben:setz mal nur die Rolle "Alle" mit Mandantenfilter. Das verhindert das einloggen in diesen Mandant. (weil keine Rechte auf Forms etc.).
Die Rechte auf die Tabellen bleiben davon unberührt.

Das ist natürlich die eleganteste Variante und die würde ich auch favorisieren. Jedoch - zumindest schreibt er das oben - ist das für ihn keine akzeptable Lösung, weshalb ich denke, dass er ohne eine Programmierung nicht weiterkommt.

Viele Grüße,
Marc

26. September 2007 12:16

@marc
nicht ganz, er schreibt er mag es nicht, weil er nachwievor zugriffe auf die Tabellen braucht (changecompany) . Die hat er bei der Variante. Evtl. noch ein Recht zum lesen der Tabellendef 0 die ja auch in "alle" steht in eine sep. Rolle verschieben.
Die Rollen bleiben sonst wie gehabt, Bur die Rolle "Alle" wird jeden "gültigen" Mandanten zugeordnet.

26. September 2007 17:13

Hallo zusammen,

zuerst mal danke für die vielen Rückmeldungen. Ich hatte das dann irgendwann gestern abend so gelöst, dass ich eine neue Rolle in der die Menu-Suites liegen kreiert habe.
Diese Rolle habe ich dann mandenspezifisch hinterlegt und die Menu-Suite mit ID = 0 aus der ALLE-Rolle entfernt. Sonst ging gar nix, auch eine Fehlermeldung in CU 1 bringt nichts, da die Menu-Suites trotzdem geöffnet werden.

Den Tipp mit der mandantenspezifishcen Rolle "Alle" habe ich eben nochmal versucht. Das bringt auch nix, es kommt zwar eine Fehlermeldung, aber auhc hier öffnet sich die Menu-Suite und ab hier kann man "normal" weiter arbeiten.

Wichtig war im übrigen auch die Menu-Suites "named" zu vergeben, sprich, es hat nicht ausgereicht einfach die Menu-Suite mit ID=0 in die neue Rolle zu schreiben.

War alles sehr seltsam gestern abend, ohne meinen Chef wär ich auhc nie drauf gekommen :-).

Sorry auhc, dass ich nicht früher hier gepostet habe aber heut wars recht hektisch und ich hatte auch keine E-Mails bekommen dass hier antworten eingegangen sind.

Viele Grüße
Jan

26. September 2007 18:08

<OffTopic>
Jan hat geschrieben:ich hatte auch keine E-Mails bekommen dass hier antworten eingegangen sind.

Damit du über Antworten benachrichtigt wirst, muss du entweder in dem jeweiligen Thema die Option "Benachrichtigt mich, wenn eine Antwort geschrieben wurde" aktivieren oder allgemein in deinem Profil "Bei Antworten immer benachrichtigen" auf 'Ja' setzen.
</OffTopic>