using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Diagnostics.CodeAnalysis; using System.Reflection; namespace gehGassi.Permissions { /// /// Auflistung aller verfügbaren Rechte für die Applikation /// public enum Permission { /// /// Darf die Identität von Entitäten inkl. Mandanten annehmen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Special", Name = "Permission_ImpersionateAdmin", Description = "Permission_ImpersionateAdmin_Desc")] ImpersionateAdmin = 0xF0, /// /// Zugriff auf den Shop /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_Special", Name = "Permission_Shop", Description = "Permission_Shop_Desc")] ShopAccess = 0xF1, /// /// Zugriff auf Bestellungen /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_Special", Name = "Permission_Orders", Description = "Permission_Orders_Desc")] OrdersAccess = 0xF2, /// /// Zugriff auf Appversionen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Special", Name = "Permission_AppVersions", Description = "Permission_AppVersions_Desc")] AppVersionsAccess = 0xF3, /// /// Vollzugriff Benutzerverwaltung /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_User", Name = "Permission_Manage", Description = "Permission_Manage_Desc")] UserManage = 0x10, /// /// Benutzer auflisten /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_User", Name = "Permission_Read", Description = "Permission_Read_Desc")] UserRead = 0x11, /// /// Benutzer anlegen /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_User", Name = "Permission_Create", Description = "Permission_Create_Desc")] UserCreate = 0x12, /// /// Benutzer bearbeiten /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_User", Name = "Permission_Edit", Description = "Permission_Edit_Desc")] UserEdit = 0x13, /// /// Benutzer löschen /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_User", Name = "Permission_Delete", Description = "Permission_Delete_Desc")] UserDelete = 0x14, /// /// Vollzugriff Einstellungen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Settings", Name = "Permission_Manage", Description = "Permission_Manage_Desc")] SettingsManage = 0x20, /// /// Zugriff Dateimanager /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Settings", Name = "Permission_Settings_FileManager", Description = "Permission_Settings_FileManager_Desc")] SettingsFileManager = 0x21, /// /// Zugriff Kunden-Typen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Settings", Name = "Permission_Customer_Types", Description = "Permission_Customer_Types_Desc")] SettingsCustomerTypes = 0x22, /// /// Zugriff Werbung Rubriken /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Settings", Name = "Permission_Advertisement_Categories", Description = "Permission_Advertisement_Categories_Desc")] SettingsAdvertisementCategories = 0x23, /// /// Zugriff Branchen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Settings", Name = "Permission_Customer_Branches", Description = "Permission_Customer_Branches_Desc")] SettingsCustomerBranches = 0x24, /// /// Zugriff Steuern /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Settings", Name = "Permission_TaxRates", Description = "Permission_TaxRates_Desc")] SettingsTaxRates = 0x25, /// /// Zugriff Produktkategorien /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Settings", Name = "Permission_Product_Categories", Description = "Permission_Product_Categories_Desc")] SettingsProductCategories = 0x26, /// /// Zugriff Produkte /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Settings", Name = "Permission_Product", Description = "Permission_Product_Desc")] SettingsProducts = 0x27, /// /// Zugriff Versandkosten /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Settings", Name = "Permission_Shipment", Description = "Permission_Shipment_Desc")] SettingsShipment = 0x28, /// /// Zugriff Shopeinstellungen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Settings", Name = "Permission_ShopSettings", Description = "Permission_ShopSettings_Desc")] SettingsShop = 0x29, /// /// Zugriff Shopeinstellungen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Settings", Name = "Permission_SettingsDogRaces", Description = "Permission_SettingsDogRaces_Desc")] SettingsDogRaces = 0x2A, /// /// Zugriff Newskategorien /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Settings", Name = "Permission_SettingsNewsCategories", Description = "Permission_SettingsNewsCategories_Desc")] SettingsNewsCategories = 0x2B, /// /// Zugriff Text-Seiten /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Settings", Name = "Permission_SettingsPages", Description = "Permission_SettingsPages_Desc")] SettingsPages = 0x2C, /// /// Zugriff Feedback /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Settings", Name = "Permission_SettingsFeedback", Description = "Permission_SettingsFeedback_Desc")] SettingsFeedback = 0x2D, /// /// Zugriff Transaktionsgebühren /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Settings", Name = "Permission_SettingsTransactionFees", Description = "Permission_SettingsTransactionFees_Desc")] SettingsTransactionFees = 0x2E, /// /// Zugriff Reklamationen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Settings", Name = "Permission_SettingsComplaints", Description = "Permission_SettingsComplaints_Desc")] SettingsComplaints = 0x2F, /// /// Kunden Vollzugriff /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Customer", Name = "Permission_Manage", Description = "Permission_Manage_Desc")] CustomersManage = 0x30, /// /// Kunden auflisten /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Customer", Name = "Permission_Read", Description = "Permission_Read_Desc")] CustomersRead = 0x31, /// /// Kunden anlegen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Customer", Name = "Permission_Create", Description = "Permission_Create_Desc")] CustomersCreate = 0x32, /// /// Kunden bearbeiten /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Customer", Name = "Permission_Edit", Description = "Permission_Edit_Desc")] CustomersEdit = 0x33, /// /// Kunden löschen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Customer", Name = "Permission_Delete", Description = "Permission_Delete_Desc")] CustomersDelete = 0x34, /// /// App-User Vollzugriff /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_AppUsers", Name = "Permission_Manage", Description = "Permission_Manage_Desc")] AppUsersManage = 0x40, /// /// App-User auflisten /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_AppUsers", Name = "Permission_Read", Description = "Permission_Read_Desc")] AppUsersRead = 0x41, /// /// App-User anlegen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_AppUsers", Name = "Permission_Create", Description = "Permission_Create_Desc")] AppUsersCreate = 0x42, /// /// App-User bearbeiten /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_AppUsers", Name = "Permission_Edit", Description = "Permission_Edit_Desc")] AppUsersEdit = 0x43, /// /// App-User löschen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_AppUsers", Name = "Permission_Delete", Description = "Permission_Delete_Desc")] AppUsersDelete = 0x44, /// /// App-User löschen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_AppUsers", Name = "Permission_SystemMessages", Description = "Permission_SystemMessages_Desc")] AppUsersSystemMessages = 0x45, /// /// App-User Reports /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_AppUsers", Name = "Permission_AppUserReports", Description = "Permission_AppUserReports_Desc")] AppUserReports = 0x46, /// /// Gutscheine Vollzugriff /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_Voucher", Name = "Permission_Manage", Description = "Permission_Manage_Desc")] VouchersManage = 0x50, /// /// Gutscheine auflisten /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_Voucher", Name = "Permission_Read", Description = "Permission_Read_Desc")] VouchersRead = 0x51, /// /// Gutscheine anlegen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Voucher", Name = "Permission_Create", Description = "Permission_Create_Desc")] VouchersCreate = 0x52, /// /// Gutscheine bearbeiten /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_Voucher", Name = "Permission_Edit", Description = "Permission_Edit_Desc")] VouchersEdit = 0x53, /// /// Gutscheine löschen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Voucher", Name = "Permission_Delete", Description = "Permission_Delete_Desc")] VouchersDelete = 0x54, /// /// Gutscheine stornieren /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_Voucher", Name = "Permission_Cancel", Description = "Permission_Cancel_Desc")] VouchersCancel = 0x56, /// /// Listungen Vollzugriff /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_Listing", Name = "Permission_Manage", Description = "Permission_Manage_Desc")] ListingsManage = 0x60, /// /// Listungen auflisten /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_Listing", Name = "Permission_Read", Description = "Permission_Read_Desc")] ListingsRead = 0x61, /// /// Listungen anlegen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Listing", Name = "Permission_Create", Description = "Permission_Create_Desc")] ListingsCreate = 0x62, /// /// Listungen bearbeiten /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_Listing", Name = "Permission_Edit", Description = "Permission_Edit_Desc")] ListingsEdit = 0x63, /// /// Listungen löschen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Listing", Name = "Permission_Delete", Description = "Permission_Delete_Desc")] ListingsDelete = 0x64, /// /// Listungen buchen /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_Listing", Name = "Permission_Book", Description = "Permission_Book_Desc")] ListingsBook = 0x65, /// /// Listungen stornieren /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_Listing", Name = "Permission_Cancel", Description = "Permission_Cancel_Desc")] ListingsCancel = 0x66, /// /// Werbungen Vollzugriff /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_Advertisement", Name = "Permission_Manage", Description = "Permission_Manage_Desc")] AdvertisementsManage = 0x70, /// /// Werbungen auflisten /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_Advertisement", Name = "Permission_Read", Description = "Permission_Read_Desc")] AdvertisementsRead = 0x71, /// /// Werbungen anlegen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Advertisement", Name = "Permission_Create", Description = "Permission_Create_Desc")] AdvertisementsCreate = 0x72, /// /// Werbungen bearbeiten /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_Advertisement", Name = "Permission_Edit", Description = "Permission_Edit_Desc")] AdvertisementsEdit = 0x73, /// /// Werbungen löschen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Advertisement", Name = "Permission_Delete", Description = "Permission_Delete_Desc")] AdvertisementsDelete = 0x74, /// /// Werbungen stornieren /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_Advertisement", Name = "Permission_Cancel", Description = "Permission_Cancel_Desc")] AdvertisementsCancel = 0x76, /// /// Banner Vollzugriff /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_Banner", Name = "Permission_Manage", Description = "Permission_Manage_Desc")] BannersManage = 0x80, /// /// Banner auflisten /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_Banner", Name = "Permission_Read", Description = "Permission_Read_Desc")] BannersRead = 0x81, /// /// Banner anlegen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Banner", Name = "Permission_Create", Description = "Permission_Create_Desc")] BannersCreate = 0x82, /// /// Banner bearbeiten /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_Banner", Name = "Permission_Edit", Description = "Permission_Edit_Desc")] BannersEdit = 0x83, /// /// Banner löschen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Banner", Name = "Permission_Delete", Description = "Permission_Delete_Desc")] BannersDelete = 0x84, /// /// Banner stornieren /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_Banner", Name = "Permission_Cancel", Description = "Permission_Cancel_Desc")] BannersCancel = 0x86, /// /// Pin Vollzugriff /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_Pin", Name = "Permission_Manage", Description = "Permission_Manage_Desc")] PinsManage = 0x90, /// /// Pin auflisten /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_Pin", Name = "Permission_Read", Description = "Permission_Read_Desc")] PinsRead = 0x91, /// /// Pin anlegen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Pin", Name = "Permission_Create", Description = "Permission_Create_Desc")] PinsCreate = 0x92, /// /// Pin bearbeiten /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_Pin", Name = "Permission_Edit", Description = "Permission_Edit_Desc")] PinsEdit = 0x93, /// /// Pin löschen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Pin", Name = "Permission_Delete", Description = "Permission_Delete_Desc")] PinsDelete = 0x94, /// /// Pin stornieren /// [PermissionRoles("Administrator,PowerUser,Customer")] [Display(GroupName = "Permission_Group_Pin", Name = "Permission_Cancel", Description = "Permission_Cancel_Desc")] PinsCancel = 0x96, /// /// Hunde Vollzugriff /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Dog", Name = "Permission_Manage", Description = "Permission_Manage_Desc")] DogsManage = 0xA0, /// /// Hunde auflisten /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Dog", Name = "Permission_Read", Description = "Permission_Read_Desc")] DogsRead = 0xA1, /// /// Hunde anlegen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Dog", Name = "Permission_Create", Description = "Permission_Create_Desc")] DogsCreate = 0xA2, /// /// Hunde bearbeiten /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Dog", Name = "Permission_Edit", Description = "Permission_Edit_Desc")] DogsEdit = 0xA3, /// /// Hunde löschen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Dog", Name = "Permission_Delete", Description = "Permission_Delete_Desc")] DogsDelete = 0xA4, /// /// News Vollzugriff /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_News", Name = "Permission_Manage", Description = "Permission_Manage_Desc")] NewsManage = 0xB0, /// /// News auflisten /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_News", Name = "Permission_Read", Description = "Permission_Read_Desc")] NewsRead = 0xB1, /// /// News anlegen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_News", Name = "Permission_Create", Description = "Permission_Create_Desc")] NewsCreate = 0xB2, /// /// News bearbeiten /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_News", Name = "Permission_Edit", Description = "Permission_Edit_Desc")] NewsEdit = 0xB3, /// /// News löschen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_News", Name = "Permission_Delete", Description = "Permission_Delete_Desc")] NewsDelete = 0xB4, /// /// News Freigabe /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_News", Name = "Permission_Approval", Description = "Permission_Approval_Desc")] NewsApproval = 0xB5, /// /// Statistiken Vollzugriff /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Statistics", Name = "Permission_Manage", Description = "Permission_Manage_Desc")] StatisticsManage = 0xC0, /// /// Abos Vollzugriff /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Subscriptions", Name = "Permission_Manage", Description = "Permission_Manage_Desc")] SubscriptionsManage = 0xD0, /// /// Abos auflisten /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Subscriptions", Name = "Permission_Read", Description = "Permission_Read_Desc")] SubscriptionsRead = 0xD1, /// /// Abos anlegen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Subscriptions", Name = "Permission_Create", Description = "Permission_Create_Desc")] SubscriptionsCreate = 0xD2, /// /// Abos bearbeiten /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Subscriptions", Name = "Permission_Edit", Description = "Permission_Edit_Desc")] SubscriptionsEdit = 0xD3, /// /// Abos löschen /// [PermissionRoles("Administrator,PowerUser")] [Display(GroupName = "Permission_Group_Subscriptions", Name = "Permission_Delete", Description = "Permission_Delete_Desc")] SubscriptionsDelete = 0xD4, } /// /// Hilfsattribut für die Zuordnung von Rollen zu Permissions /// public class PermissionRolesAttribute : Attribute { public string Roles { get; set; } /// /// Erstellt eine Instanz /// /// Rollen für welche die Permission verfügbar ist public PermissionRolesAttribute(string roles) { Roles = roles; } } [ExcludeFromCodeCoverage] public static class PermissionHelper { public static List GetForRole(string role) { var permissionType = typeof(Permission); List permissions = new List(); foreach (var permissionName in Enum.GetNames(typeof(Permission))) { var member = permissionType.GetMember(permissionName); var permissionRolesAttribute = member[0].GetCustomAttribute(); if (permissionRolesAttribute == null) continue; if (permissionRolesAttribute.Roles.Contains(role)) { var permissionItem = (Permission)Enum.Parse(permissionType, permissionName, false); permissions.Add(permissionItem); } } return permissions; } } }