private void SetIndexViewControlPermission() { GenericAccessPermission permssion = new GenericAccessPermission(); if (User.UserTypeID == DBEnums.UserType.Admin) { foreach (var prop in typeof(GenericAccessPermission).GetProperties()) { Utilities.Utility.SetPropertyValue(ref permssion, prop.Name, true); } } else { //get user permission var UserPermissions = new UserRoleServiceAccessModel <UserRoleServiceAccessViewModel>().GetUserPermissiom(User.UserId, true).ToList(); permssion.ViewPermission = UserPermissions.Any(x => x.ServiceId == ServiceId && x.AccessTypeId == DBEnums.AccessType.View); permssion.AddPermission = UserPermissions.Any(x => x.ServiceId == ServiceId && x.AccessTypeId == DBEnums.AccessType.Add); permssion.EditPermission = UserPermissions.Any(x => x.ServiceId == ServiceId && x.AccessTypeId == DBEnums.AccessType.Edit); permssion.DetailsPermission = UserPermissions.Any(x => x.ServiceId == ServiceId && x.AccessTypeId == DBEnums.AccessType.Details); permssion.DeletePermission = UserPermissions.Any(x => x.ServiceId == ServiceId && x.AccessTypeId == DBEnums.AccessType.Delete); permssion.ExportPermission = UserPermissions.Any(x => x.ServiceId == ServiceId && x.AccessTypeId == DBEnums.AccessType.Export); permssion.ImportPermission = UserPermissions.Any(x => x.ServiceId == ServiceId && x.AccessTypeId == DBEnums.AccessType.Import); } ViewBag.Permission = permssion; }
public override bool IsVisible(ISiteMapNode node, IDictionary <string, object> sourceMetadata) { //get current user UserViewModel CurrentUser = new UserViewModel().GetUserFromSession(); List <UserRoleServiceAccessViewModel> UserPermissions = new UserRoleServiceAccessModel <UserRoleServiceAccessViewModel>().GetSavedUserPermission(); string nodeServiceTag = null; if (node.Attributes.Keys.Contains("serivceTag")) { nodeServiceTag = node.Attributes["serivceTag"].ToString(); } bool isVisible = false; Guid userId = new Guid(sourceMetadata["UserId"].ToString()); if (CurrentUser == null || (userId != null && CurrentUser.UserId != userId)) { CurrentUser = new UserViewModel().GetUserFromSession(); } if (CurrentUser != null) //&& user.EmployeeId != null { if (UserModel <User> .IsAdmin(CurrentUser)) { isVisible = true; } else { if (node.Title == "Dashboard") { return(true); } if (UserPermissions == null || (userId != null && CurrentUser.UserId != userId)) { UserPermissions = new UserRoleServiceAccessModel <UserRoleServiceAccessViewModel>().GetData(userId: CurrentUser.UserId, fromView: true).ToList(); } if (node.HasChildNodes) { //isVisible = true; isVisible = node.ChildNodes.Where(x => x.HasChildNodes == false).Any(x => UserPermissions.Any(y => y.ServiceName == x.Title && y.AccessTypeId == DBEnums.AccessType.View)); } else { isVisible = UserPermissions.Any(x => x.ServiceTag == nodeServiceTag && x.AccessTypeId == DBEnums.AccessType.View); } } } return(isVisible); }
public bool UserHasPermission(Guid accessType) { if (UserPermission == null) { UserPermission = new UserRoleServiceAccessModel <UserRoleServiceAccessViewModel>().GetSavedUserPermission(); } bool grantPermission = false; if (User.UserTypeID == DBEnums.UserType.Admin) { grantPermission = true; } else { grantPermission = UserPermission.Any(x => x.ServiceId == ServiceId && x.AccessTypeId == accessType); } return(grantPermission); }