none
Ausblenden eines Registers in Abhängigkeit von Gruppenberechtigung

    Frage

  • Hallo zusammen,

    in einem Formular habe ich ein Registersteuerelement mit mehreren Registern. Eines davon enthält sensible Daten, die nur einem bestimmten Benutzerkreis zugänglich sein sollen. Daher gibt es eine Gruppenberechtigung, welche den Zugriff auf die Unterformulare in dem Register steuert.

    Das funktioniert soweit gut, allerdings werden die UFOs als weiße Fläche auf dem grauen Register dargestellt. Kann man vielleicht das ganze Register in Abhängigkeit von der Benutzergruppe ausblenden, so nach dem Motto:

    If currentusergroup = Benutzergruppe Then
        Me.RegisterSteuerelement.Pages(Seitennummer).Visible = False

    ?

    Leider gibt's ja currentusergroup nicht...

    Die DB ist im Format 2003, Entwicklungsoberfläche ist Acc 2010.

    Vielen Dank vorab und viele Grüße

    Julia

    Mittwoch, 20. April 2011 10:53

Antworten

Alle Antworten

  • Hallo JH_OL,

    JH_OL schrieb folgendes:

    in einem Formular habe ich ein Registersteuerelement mit mehreren
    Registern. Eines davon enthält sensible Daten, die nur einem
    bestimmten Benutzerkreis zugänglich sein sollen. Daher gibt es eine
    Gruppenberechtigung, welche den Zugriff auf die Unterformulare in
    dem Register steuert.

    Das funktioniert soweit gut, allerdings werden die UFOs als weiße
    Fläche auf dem grauen Register dargestellt. Kann man vielleicht das
    ganze Register in Abhängigkeit von der Benutzergruppe ausblenden,
    so nach dem Motto:

    If currentusergroup = Benutzergruppe Then    
    Me.RegisterSteuerelement.Pages(Seitennummer).Visible = False Leider
    gibt's ja currentusergroup nicht...

    Die kannst du aber auslesen:
    http://bytes.com/topic/access/answers/899895-get-current-users-group-name

    Google hilft auch noch weiter:
    http://www.google.de/webhp#hl=de&source=hp&q=access+group+currentuser

    Gruß
    Gunter


    Access FAQ: http://www.donkarl.com

          http://www.avenius.de - http://www.AccessRibbon.de
    http://www.ribboncreator.de - http://www.ribboncreator2010.de

    • Als Antwort markiert JH_OL Donnerstag, 21. April 2011 08:14
    Mittwoch, 20. April 2011 17:02
    Moderator
  • Hallo Gunter,

    vielen herzlichen Dank!

    Bei meinen Recherchen hatte ich nur einen Hinweis gefunden, dass der User zum Auslesen der Berechtigung Admin-Rechte haben müsste (das bezog sich sicherlich auf eine andere Funktion) und habe diesen Ansatz deswegen gleich wieder verworfen, ohne ihn auszuprobieren.

    Folgende Funktion von Dirk Goldgar habe ich nun erfolgreich verwendet, sie prüft, ob der angemeldete Benutzer in einer Gruppe ist:

    Function fncUserIsInGroup(GroupName As String) As Boolean

    ' Returns True if the current user is a member of the specified
    ' security group; False if not, or if the group does not exist, or
    ' if an error occurs reading the groups.

    Dim ws As Workspace

    Set ws = DBEngine.Workspaces(0)

    On Error Resume Next
    fncUserIsInGroup = _
    (ws.Users(CurrentUser).Groups(GroupName).Name = GroupName)

    Set ws = Nothing

    End Function

    Nochmals vielen Dank und viele Grüße,

    Julia

    Donnerstag, 21. April 2011 07:45