Aplikacja desktopowa - wielu użytkowników

0

Hej,
powiedzmy że mam taki problem tworze aplikacje w której powinny być 3 różne dostępy do menu lub innych kontrolek i jak to ugryźć?
np: zapisać w bazie kto do jakiej grupy należy, a potem podczas logowania sprawdza z której grupy jest użytkownik i odpowiednio wyświetla menu lub formularze, zmieniając właściwość Visible różnych kontrolek???

pozdrawiam

0

No mniej więcej tak bym to rozwiązał.
Ostatnio robiłem tak, że miałem w bazie zapisany poziom uprawnień. Na jego podstawie tworzyłem obiekt klasy User, który w konstruktorze przyjmował poziom uprawnień z bazy i ustawiał właściwości określające które pozycje menu miały być dostępne. Następnie obiekt ten był przekazywany do konstruktora formatki, który na podstawie zapisanych właściwości włączał i wyłączał elementy interfejsu.

0

hym jeśli dobrze rozumiem to w klasie USER przypisywałeś użytkownika do grupy, a grupy powiązane miałeś ze spisem kontrolek i wrzucałeś je do konstruktora formatki, gdzie dla tej"tablicy" kontrolek zmieniałeś Visible?? teraz jedno pytanie mi sie nasuwa co robić jak jest dość dużo form.

pozdrawiam

0

Na przykład w klasie User miałem pole canEdit udostępniane przez właściwość. Konstruktor formatki sprawdzał ją i w razie wartości false wyłączał menu "Edycja". Nie poprzez Visible, lecz Enabled, bo tak wolałem.
Co do większej ilości form można chyba do każdej w konstruktorze podawać obiekt User, albo zrobić jeden globalny dla wszystkich formatek.

0

ok za pomocą canEdit sprawdzałeś czy może być kontrolka włączona czy nie OK, ale jak sprawdzałeś większą ilość kontrolerek, jak możesz zarzuć skrawek kodu, bo troszkę nie czaje sposobu o którym mówisz..

pozdrawiam.

0

W klasie User było dużo różnych właściwości przypisywanych do właściwości Enabled wielu rożnych elementów formatki.
Kod formatki wyglądał mniej więcej tak:

Uzytkownik myUser;

public frmProjekt(Uzytkownik uzytkownik)
{
    InitializeComponent();
    myUser = uzytkownik;
    btnOtworz.Enabled = myUser.MozeOtwierac;
    btnEdytuj.Enabled = myUser.MozeEdytowac;
    //i tak dalej
}
0

a git, wielkie dzięki:) [browar]

pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1