[gelöst] Benutzerrechte im C/AL prüfen.

Bild Microsoft Dynamics NAV 3.xx
(ehem. Navision Attain)

[gelöst] Benutzerrechte im C/AL prüfen.

Beitragvon mstromberg » 20. September 2006 07:10

Guten Morgen,

wir wollen eine Routine in der Codeunit 1 einbinden, welche Daten in Tabellen modifiziert, für die der angemeldete Benutzer eventuell keine Berechtigung hat. Diese Routine wird nur einmal pro Tag aufgerufen. Allerding wollen wir als Super-User nicht jeden morgen erst alle Mandanten öffnen müssen, so dass niemand anderes diese Routine mehr auslöst.

Gibt es eine Möglichkeit, zu prüfen, ob die Berechtigung vorhanden ist, so dass sie im Falle fehlender Rechte nicht aufgerufen wird?

GruĂź,
Martin
Zuletzt geändert von mstromberg am 21. September 2006 09:50, insgesamt 1-mal geändert.
mstromberg
 
Beiträge: 6
Registriert: 20. Juni 2006 08:10
Wohnort: Hamm (Westf.)

Beitragvon mikka » 20. September 2006 07:24

Hallo,
in der Navi 2.6 gibt es die Tabelle Nr. "Mitglied von", ĂĽber diese kannst du die Rechte eines Users ausmachen.

Ich habe auch eine PrĂĽffunktion in der CU 1, diese PrĂĽft, ob der User SUPER Rechte hat. Evtl. hilft es dir weiter.
Code: Alles auswählen
  IF NOT Mitgliedvon.GET(USERID,'SUPER','') OR Mitgliedvon.GET(USERID,'SUPER',COMPANYNAME)  THEN BEGIN


Ich bin mir nicht sicher, es gibt in den z.B.Reports in den Properties die Permissions, evtl kommst du damit weiter.
Du kannst damit dem User eine Form oder Report bereitstellen, die fĂĽr dieses Zwecke die entsprechenden Rechte hat.
GruĂź Mikka
Benutzeravatar
mikka
Microsoft Partner
Microsoft Partner
 
Beiträge: 1832
Registriert: 26. September 2005 11:54
Wohnort: Bremen
Realer Name: Michael
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2.6, 3.7, 4, 5, 2009/13/15

Beitragvon martinst » 20. September 2006 09:17

Du kannst auch deiner CodeUnit mit Permissions die Rechte geben und bei der enstprechenden UserRolle die Berechtigung auf diese Tabellen auf indirekt stellen.
Dann kann der Benutzer Tabellen mit dieser Codeunit ändern, obwohl er eigentlich keine Berechtigung hat.

Gruss
martinst
 
Beiträge: 621
Registriert: 24. August 2005 18:27
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2.x, 3.x, 4.x, 5.x, 2009

Beitragvon Timo Lässer » 20. September 2006 20:11

Alternativ kannst du auch mit IF MyRecord.WRITEPERMISSION THEN ... prĂĽfen, ob der jeweilige Benutzer die notwendige Schreibberechtigung besitzt.
So ist es egal, aus welcher Rolle er diese Rechte erlangt hat.

(Ebenso gibt es auch die Funktion OK := MyRecord.READPERMISSION, um zu prĂĽfen, ob er Lesezugriff hat.)
Gruß, Timo Lässer

Frage beantwortet? Schreibe bitte "[Gelöst]" vor den Titel deines ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, E-Mail, Instant Messanger, Soziale Netzwerke, Telefon oder Fax! DafĂĽr ist dieses Forum da.
Hier kannst du fĂĽr MSDynamics.de spenden.
Benutzeravatar
Timo Lässer
Administrator
Administrator
 
Beiträge: 5279
Registriert: 14. November 2004 22:18
Wohnort: DE 49716 Meppen
Arbeitsort: DE 49733 Haren (Ems)
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 1.10a - 2018, BC14, BC21

Beitragvon mstromberg » 21. September 2006 09:48

Wunderbar!

Vielen Dank Euch!

Ich habe jetzt die dritte Alternative dafĂĽr verwendet.

GruĂź,
Martin
mstromberg
 
Beiträge: 6
Registriert: 20. Juni 2006 08:10
Wohnort: Hamm (Westf.)


ZurĂĽck zu NAV 3.xx

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast