| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- // ======================================
- // Author: Ebenezer Monney
- // Email: info@ebenmonney.com
- // Copyright (c) 2017 www.ebenmonney.com
- //
- // ==> Gun4Hire: contact@ebenmonney.com
- // ======================================
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Collections.ObjectModel;
- namespace DAL.Core
- {
- public static class ApplicationPermissions
- {
- public static ReadOnlyCollection<ApplicationPermission> AllPermissions;
- public const string UsersPermissionGroupName = "User Permissions";
- public static ApplicationPermission ViewUsers = new ApplicationPermission("View Users", "users.view", UsersPermissionGroupName, "Permission to view other users account details");
- public static ApplicationPermission ManageUsers = new ApplicationPermission("Manage Users", "users.manage", UsersPermissionGroupName, "Permission to create, delete and modify other users account details");
- public const string RolesPermissionGroupName = "Role Permissions";
- public static ApplicationPermission ViewRoles = new ApplicationPermission("View Roles", "roles.view", RolesPermissionGroupName, "Permission to view available roles");
- public static ApplicationPermission ManageRoles = new ApplicationPermission("Manage Roles", "roles.manage", RolesPermissionGroupName, "Permission to create, delete and modify roles");
- public static ApplicationPermission AssignRoles = new ApplicationPermission("Assign Roles", "roles.assign", RolesPermissionGroupName, "Permission to assign roles to users");
- static ApplicationPermissions()
- {
- List<ApplicationPermission> allPermissions = new List<ApplicationPermission>()
- {
- ViewUsers,
- ManageUsers,
- ViewRoles,
- ManageRoles,
- AssignRoles
- };
- AllPermissions = allPermissions.AsReadOnly();
- }
- public static ApplicationPermission GetPermissionByName(string permissionName)
- {
- return AllPermissions.Where(p => p.Name == permissionName).FirstOrDefault();
- }
- public static ApplicationPermission GetPermissionByValue(string permissionValue)
- {
- return AllPermissions.Where(p => p.Value == permissionValue).FirstOrDefault();
- }
- public static string[] GetAllPermissionValues()
- {
- return AllPermissions.Select(p => p.Value).ToArray();
- }
- public static string[] GetAdministrativePermissionValues()
- {
- return new string[] { ManageUsers, ManageRoles, AssignRoles };
- }
- }
- public class ApplicationPermission
- {
- public ApplicationPermission()
- { }
- public ApplicationPermission(string name, string value, string groupName, string description = null)
- {
- Name = name;
- Value = value;
- GroupName = groupName;
- Description = description;
- }
- public string Name { get; set; }
- public string Value { get; set; }
- public string GroupName { get; set; }
- public string Description { get; set; }
- public override string ToString()
- {
- return Value;
- }
- public static implicit operator string(ApplicationPermission permission)
- {
- return permission.Value;
- }
- }
- }
|