/// <summary> /// Prepare permission mapping model /// </summary> /// <param name="model">Permission mapping model</param> /// <returns>Permission mapping model</returns> public virtual PermissionMappingModel PreparePermissionMappingModel(PermissionMappingModel model) { if (model == null) { throw new ArgumentNullException(nameof(model)); } var customerRoles = _customerService.GetAllCustomerRoles(true); model.AvailableCustomerRoles = customerRoles.Select(role => role.ToModel <CustomerRoleModel>()).ToList(); foreach (var permissionRecord in _permissionService.GetAllPermissionRecords()) { model.AvailablePermissions.Add(new PermissionRecordModel { Name = _localizationService.GetLocalizedPermissionName(permissionRecord), SystemName = permissionRecord.SystemName }); foreach (var role in customerRoles) { if (!model.Allowed.ContainsKey(permissionRecord.SystemName)) { model.Allowed[permissionRecord.SystemName] = new Dictionary <int, bool>(); } model.Allowed[permissionRecord.SystemName][role.Id] = permissionRecord.PermissionRecordCustomerRoleMappings .Any(mapping => mapping.CustomerRoleId == role.Id); } } return(model); }
/// <summary> /// Prepare permission mapping model /// </summary> /// <param name="model">Permission mapping model</param> /// <returns>Permission mapping model</returns> public virtual PermissionMappingModel PreparePermissionMappingModel(PermissionMappingModel model) { if (model == null) { throw new ArgumentNullException(nameof(model)); } var userRoles = _userService.GetAllUserRoles(true); model.AvailableUserRoles = userRoles.Select(role => role.ToModel <UserRoleModel>()).OrderBy(x => x.Id).ToList(); foreach (var permissionRecord in _permissionService.GetAllPermissionRecords()) { model.AvailablePermissions.Add(new PermissionRecordModel { Name = permissionRecord.Name, SystemName = permissionRecord.SystemName }); foreach (var role in userRoles) { if (!model.Allowed.ContainsKey(permissionRecord.SystemName)) { model.Allowed[permissionRecord.SystemName] = new Dictionary <int, bool>(); } model.Allowed[permissionRecord.SystemName][role.Id] = permissionRecord.PermissionRecordUserRoleMappings .Any(mapping => mapping.UserRoleId == role.Id); } } return(model); }
public virtual IActionResult Permissions() {//PageSize //var report = SharedData.PermissionReport; //if (report != null) //{ // SharedData.RowCount = report.RowCount; // SharedData.ReportName = "Permission"; //} //else //{ // SharedData.RowCount = 10; // SharedData.ReportName = "Permission"; //} //Form Name ViewBag.FormName = "Permissions"; //if (SharedData.isManageAclMenuAccessible == false) // return AccessDeniedView(); var model = new PermissionMappingModel(); var permissionRecords = _permissionService.GetAllPermissionRecords(); var customerRoles = _customerService.GetAllCustomerRoles(true); foreach (var pr in permissionRecords) { model.AvailablePermissions.Add(new PermissionRecordModel { //Name = pr.Name, Name = pr.Name, SystemName = pr.SystemName }); } foreach (var cr in customerRoles) { model.AvailableCustomerRoles.Add(new CustomerRoleModel { Id = cr.Id, Name = cr.Name }); } foreach (var pr in permissionRecords) { foreach (var cr in customerRoles) { var allowed = pr.PermissionRecord_Role_Mapping.Count(x => x.CustomerRole.Id == cr.Id) > 0; if (!model.Allowed.ContainsKey(pr.SystemName)) { model.Allowed[pr.SystemName] = new Dictionary <int, bool>(); } model.Allowed[pr.SystemName][cr.Id] = allowed; } } return(View(model)); }
public virtual IActionResult PermissionsSave(PermissionMappingModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageAcl)) { return(AccessDeniedView()); } var permissionRecords = _permissionService.GetAllPermissionRecords(); var customerRoles = _customerService.GetAllCustomerRoles(true); foreach (var cr in customerRoles) { var formKey = "allow_" + cr.Id; var permissionRecordSystemNamesToRestrict = !StringValues.IsNullOrEmpty(model.Form[formKey]) ? model.Form[formKey].ToString().Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList() : new List <string>(); foreach (var pr in permissionRecords) { var allow = permissionRecordSystemNamesToRestrict.Contains(pr.SystemName); if (allow) { if (pr.PermissionRecordCustomerRoleMappings.FirstOrDefault(x => x.CustomerRoleId == cr.Id) != null) { continue; } pr.PermissionRecordCustomerRoleMappings.Add(new PermissionRecordCustomerRoleMapping { CustomerRole = cr }); _permissionService.UpdatePermissionRecord(pr); } else { if (pr.PermissionRecordCustomerRoleMappings.FirstOrDefault(x => x.CustomerRoleId == cr.Id) == null) { continue; } pr.PermissionRecordCustomerRoleMappings .Remove(pr.PermissionRecordCustomerRoleMappings.FirstOrDefault(mapping => mapping.CustomerRoleId == cr.Id)); _permissionService.UpdatePermissionRecord(pr); } } } _notificationService.SuccessNotification(_localizationService.GetResource("Admin.Configuration.ACL.Updated")); return(RedirectToAction("Permissions")); }
public virtual IActionResult PermissionsSave(PermissionMappingModel model, IFormCollection form) { #if RELEASE var user = _userService.GetUserBySystemName(User.Identity.Name); if (!_permissionService.Authorize(StandardPermissionProvider.ManageAcl, user)) { return(AccessDeniedView()); } #endif var permissionRecords = _permissionService.GetAllPermissionRecords(); var userRoles = _userService.GetAllUserRoles(true); foreach (var cr in userRoles) { var formKey = "allow_" + cr.Id; var permissionRecordSystemNamesToRestrict = !StringValues.IsNullOrEmpty(form[formKey]) ? form[formKey].ToString().Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList() : new List <string>(); foreach (var pr in permissionRecords) { var allow = permissionRecordSystemNamesToRestrict.Contains(pr.SystemName); //если права уже есть if (allow == _permissionService.Authorize(pr.SystemName, cr.Id)) { continue; } if (allow) { _permissionService.InsertPermissionRecordUserRoleMapping(new PermissionRecordUserRoleMapping { PermissionRecordId = pr.Id, UserRoleId = cr.Id }); } else { _permissionService.DeletePermissionRecordUserRoleMapping(pr.Id, cr.Id); } _permissionService.UpdatePermissionRecord(pr); } } // _notificationService.SuccessNotification( "Admin.Configuration.ACL.Updated"); return(RedirectToAction("Permissions")); }
public ActionResult Permissions() { if (!_permissionService.Authorize(StandardPermissionProvider.ManageAcl)) { return(AccessDeniedView()); } var model = new PermissionMappingModel(); var permissionRecords = _permissionService.GetAllPermissionRecords(); var customerRoles = _customerService.GetAllCustomerRoles(true); foreach (var pr in permissionRecords) { model.AvailablePermissions.Add(new PermissionRecordModel { Name = pr.Name, SystemName = pr.SystemName, Category = pr.Category }); } foreach (var cr in customerRoles) { model.AvailableCustomerRoles.Add(new CustomerRoleModel { Id = cr.Id, Name = cr.Name }); } foreach (var pr in permissionRecords) { foreach (var cr in customerRoles) { var allowed = pr.CustomerRoles.Any(x => x.Id == cr.Id); if (!model.Allowed.ContainsKey(pr.SystemName)) { model.Allowed[pr.SystemName] = new Dictionary <int, bool>(); } model.Allowed[pr.SystemName][cr.Id] = allowed; } } return(View(model)); }
public virtual ActionResult Permissions() { if (!_permissionService.Authorize(StandardPermissionProvider.ManageAcl)) { return(AccessDeniedView()); } var model = new PermissionMappingModel(); var permissionRecords = _permissionService.GetAllPermissionRecords(); var customerRoles = _customerService.GetAllCustomerRoles(true); // 填充所有权限记录项 foreach (var pr in permissionRecords) { model.AvailablePermissions.Add(new PermissionRecordModel { //Name = pr.Name, Name = pr.GetLocalizedPermissionName(_localizationService, _workContext), SystemName = pr.SystemName }); } // 填充所有权限角色项 foreach (var cr in customerRoles) { model.AvailableCustomerRoles.Add(new CustomerRoleModel { Id = cr.Id, Name = cr.Name }); } // 填充权限记录和权限角色匹配项 foreach (var pr in permissionRecords) { foreach (var cr in customerRoles) { bool allowed = pr.CustomerRoles.Count(x => x.Id == cr.Id) > 0; if (!model.Allowed.ContainsKey(pr.SystemName)) { model.Allowed[pr.SystemName] = new Dictionary <long, bool>(); } model.Allowed[pr.SystemName][cr.Id] = allowed; } } return(View(model)); }
public ActionResult Permissions() { if (!_permissionService.Authorize(StandardPermissionProvider.ManageAcl)) { return(AccessDeniedView()); } var model = new PermissionMappingModel(); var permissionRecords = _permissionService.GetAllPermissionRecords(); var customerRoles = _customerService.GetAllCustomerRoles(true).Where(o => o.SystemName != "ForumModerators" && o.SystemName != "Guests"); foreach (var pr in permissionRecords) { model.AvailablePermissions.Add(new PermissionRecordModel() { //Name = pr.Name, Name = pr.GetLocalizedPermissionName(_localizationService, _workContext), SystemName = pr.SystemName }); } foreach (var cr in customerRoles) { model.AvailableCustomerRoles.Add(new CustomerRoleModel() { Id = cr.Id, Name = cr.Name }); } foreach (var pr in permissionRecords) { foreach (var cr in customerRoles) { bool allowed = pr.CustomerRoles.Count(x => x.Id == cr.Id) > 0; if (!model.Allowed.ContainsKey(pr.SystemName)) { model.Allowed[pr.SystemName] = new Dictionary <int, bool>(); } model.Allowed[pr.SystemName][cr.Id] = allowed; } } return(View(model)); }
public ActionResult Permissions() { if (!m_PermissionService.Authorize(StandardPermissionProvider.AclManage)) { return(AccessDeniedView()); } var model = new PermissionMappingModel(); var permissionRecords = m_PermissionService.GetAllPermissionRecords(); var roles = m_CustomerService.GetAllRoles(true); foreach (var pr in permissionRecords) { model.AvailablePermissions.Add(new PermissionRecordModel { Name = pr.Name, SystemName = pr.SystemName }); } foreach (var cr in roles) { model.AvailableRoles.Add(new RoleModel { Id = cr.Id, Name = cr.Name }); } foreach (var pr in permissionRecords) { foreach (var cr in roles) { var cr1 = cr; var allowed = pr.RolePermissionRecords.Where(x => x.RoleId == cr1.Id).ToList().Count() > 0; if (!model.Allowed.ContainsKey(pr.SystemName)) { model.Allowed[pr.SystemName] = new Dictionary <Guid, bool>(); } model.Allowed[pr.SystemName][cr.Id] = allowed; } } return(View(model)); }
// // GET: /Permission/ public async Task <ActionResult> Index() { if (!_permissionService.Authorize(PermissionProvider.Management)) { return(AccessDeniedView()); } var model = new PermissionMappingModel(); var permissionRecords = await _permissionService.GetAllAsync(); var roles = await _userService.GetAllUserRolesAsync(); foreach (var pr in permissionRecords.OrderBy(p => p.Order)) { model.AvailablePermissions.Add(new PermissionRecordModel { Category = pr.Category, Name = pr.Name, SystemName = pr.SystemName }); } foreach (var cr in roles) { model.AvailableRoles.Add(new RoleModel { Id = cr.Id, Name = cr.Name }); } foreach (var pr in permissionRecords) { foreach (var cr in roles) { if (!model.Allowed.ContainsKey(pr.SystemName)) { model.Allowed[pr.SystemName] = new Dictionary <int, bool>(); } model.Allowed[pr.SystemName][cr.Id] = pr.UserRoles.Any(r => r.Id == cr.Id); } } return(View(model)); }
public async Task <IActionResult> Permissions() { if (!await _permissionService.Authorize(StandardPermissionProvider.ManageAcl)) { return(AccessDeniedView()); } var model = new PermissionMappingModel(); var permissionRecords = await _permissionService.GetAllPermissionRecords(); var customerRoles = await _customerService.GetAllCustomerRoles(showHidden : true); foreach (var pr in permissionRecords) { model.AvailablePermissions.Add(new PermissionRecordModel { //Name = pr.Name, Name = pr.GetLocalizedPermissionName(_localizationService, _workContext), SystemName = pr.SystemName }); } foreach (var cr in customerRoles) { model.AvailableCustomerRoles.Add(new CustomerRoleModel() { Id = cr.Id, Name = cr.Name }); } foreach (var pr in permissionRecords) { foreach (var cr in customerRoles) { bool allowed = pr.CustomerRoles.Count(x => x == cr.Id) > 0; if (!model.Allowed.ContainsKey(pr.SystemName)) { model.Allowed[pr.SystemName] = new Dictionary <string, bool>(); } model.Allowed[pr.SystemName][cr.Id] = allowed; } } return(View(model)); }
public virtual async Task <IActionResult> PermissionsSave(PermissionMappingModel model, IFormCollection form) { if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageAcl)) { return(AccessDeniedView()); } var permissionRecords = await _permissionService.GetAllPermissionRecordsAsync(); var customerRoles = await _customerService.GetAllCustomerRolesAsync(true); foreach (var cr in customerRoles) { var formKey = "allow_" + cr.Id; var permissionRecordSystemNamesToRestrict = !StringValues.IsNullOrEmpty(form[formKey]) ? form[formKey].ToString().Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList() : new List <string>(); foreach (var pr in permissionRecords) { var allow = permissionRecordSystemNamesToRestrict.Contains(pr.SystemName); if (allow == await _permissionService.AuthorizeAsync(pr.SystemName, cr.Id)) { continue; } if (allow) { await _permissionService.InsertPermissionRecordCustomerRoleMappingAsync(new PermissionRecordCustomerRoleMapping { PermissionRecordId = pr.Id, CustomerRoleId = cr.Id }); } else { await _permissionService.DeletePermissionRecordCustomerRoleMappingAsync(pr.Id, cr.Id); } await _permissionService.UpdatePermissionRecordAsync(pr); } } _notificationService.SuccessNotification(await _localizationService.GetResourceAsync("Admin.Configuration.ACL.Updated")); return(RedirectToAction("Permissions")); }
public ActionResult PermissionList() { var permissionRecords = _permissionService.GetAllPermissionRecords(); var customerRoles = _customerService.GetAllCustomerRoles(true); var permissionRecordModel = new PermissionMappingModel(); foreach (var customerRole in customerRoles) { permissionRecordModel.AvailableCustomerRoles.Add(new CustomerRoleModel { Id = customerRole.Id, Name = customerRole.Name }); } foreach (var permissionRecord in permissionRecords) { permissionRecordModel.AvailablePermissions.Add(new PermissionRecordModel { Id = permissionRecord.Id, Name = permissionRecord.Name, SystemName = permissionRecord.SystemName }); } foreach (var permissionRecord in permissionRecords) { Dictionary <int, bool> dir = new Dictionary <int, bool>(); foreach (var customerRole in customerRoles) { //if (customerRole.PermissionRecords.Contains(permissionRecord)) //{ bool allowed = permissionRecord.CustomerRoles.Count(x => x.Id == customerRole.Id) > 0; if (!permissionRecordModel.Allowed.ContainsKey(permissionRecord.SystemName)) { permissionRecordModel.Allowed[permissionRecord.SystemName] = new Dictionary <int, bool>(); } permissionRecordModel.Allowed[permissionRecord.SystemName][customerRole.Id] = allowed; //} } } return(View(permissionRecordModel)); }
public ActionResult Permissions() { if (!_permissionService.Authorize(StandardPermissionProvider.ManageAcl)) { return(AccessDeniedView()); } var model = new PermissionMappingModel(); var permissionRecords = _permissionService.GetAllPermissionRecords(); var userRoles = _userService.GetAllUserRoles(true); foreach (var pr in permissionRecords) { model.AvailablePermissions.Add(new PermissionRecordModel() { Name = pr.Name, SystemName = pr.SystemName }); } foreach (var cr in userRoles) { model.AvailableUserRoles.Add(new UserRoleModel() { Id = cr.Id, Name = cr.Name }); } foreach (var pr in permissionRecords) { foreach (var cr in userRoles) { bool allowed = pr.UserRoles.Where(x => x.Id == cr.Id).ToList().Count() > 0; if (!model.Allowed.ContainsKey(pr.SystemName)) { model.Allowed[pr.SystemName] = new Dictionary <int, bool>(); } model.Allowed[pr.SystemName][cr.Id] = allowed; } } return(View(model)); }
public async Task <IActionResult> Index() { var model = new PermissionMappingModel(); var permissionRecords = await _permissionService.GetAllPermissions(); var customerGroups = await _groupService.GetAllCustomerGroups(showHidden : true); foreach (var pr in permissionRecords.OrderBy(x => x.Category)) { model.AvailablePermissions.Add(new PermissionRecordModel { Name = pr.GetTranslationPermissionName(_translationService, _workContext), SystemName = pr.SystemName, Area = pr.Area, Category = pr.Category, Actions = pr.Actions.Any() }); } foreach (var cr in customerGroups) { model.AvailableCustomerGroups.Add(new CustomerGroupModel() { Id = cr.Id, Name = cr.Name }); } foreach (var pr in permissionRecords) { foreach (var cr in customerGroups) { bool allowed = pr.CustomerGroups.Count(x => x == cr.Id) > 0; if (!model.Allowed.ContainsKey(pr.SystemName)) { model.Allowed[pr.SystemName] = new Dictionary <string, bool>(); } model.Allowed[pr.SystemName][cr.Id] = allowed; } } return(View(model)); }
/// <summary> /// Prepare permission mapping model /// </summary> /// <param name="model">Permission mapping model</param> /// <returns>Permission mapping model</returns> public virtual PermissionMappingModel PreparePermissionMappingModel(PermissionMappingModel model, string[] roles) { if (model == null) { throw new ArgumentNullException(nameof(model)); } var userRoles = _userService.GetAllUserRoles(true).Where(r => roles.Contains(r.Id)); model.AvailableUserRoles = userRoles.Select(role => new UserRoleModel { Id = role.Id, Name = role.Name, Active = role.Active, IsSystemRole = role.IsSystemRole, SystemName = role.SystemName }).ToList(); // role.ToModel<UserRoleModel>()).ToList(); foreach (var permissionRecord in _permissionService.GetAllPermissionRecords()) { model.AvailablePermissions.Add(new PermissionRecordModel { Name = permissionRecord.Name, SystemName = permissionRecord.SystemName }); foreach (var role in userRoles) { if (!model.Allowed.ContainsKey(permissionRecord.SystemName)) { model.Allowed[permissionRecord.SystemName] = new Dictionary <string, bool>(); } model.Allowed[permissionRecord.SystemName][role.Id] = _permissionService.GetMappingByPermissionRecordId(permissionRecord.Id).Any(mapping => mapping.UserRoleId == role.Id); } } return(model); }
// // GET: /Sys_GroupPermission/ public ActionResult Index(string id) { Guid id1 = Guid.Empty; Guid.TryParse(id, out id1); var model = new PermissionMappingModel(); List <RolesNameModel> listRolesName = new List <RolesNameModel> { new RolesNameModel() { Id = 1, Name = ConstantDisplay.HRM_System_Resource_Sys_View.TranslateString() }, new RolesNameModel() { Id = 2, Name = ConstantDisplay.HRM_System_Resource_Sys_Create.TranslateString() }, new RolesNameModel() { Id = 3, Name = ConstantDisplay.HRM_System_Resource_Sys_Edit.TranslateString() }, new RolesNameModel() { Id = 4, Name = ConstantDisplay.HRM_System_Resource_Sys_Delete.TranslateString() }, new RolesNameModel() { Id = 5, Name = ConstantDisplay.HRM_System_Resource_Sys_Export.TranslateString() }, new RolesNameModel() { Id = 6, Name = ConstantDisplay.HRM_System_Resource_Sys_Import.TranslateString() } }; model.AvailableRolesName.AddRange(listRolesName); var service = new RestServiceClient <IEnumerable <Sys_GroupPermissionModel> >(UserLogin); service.SetCookies(Request.Cookies, hrm_Sys_Service); var listAvailablePermissions = service.Get(hrm_Sys_Service, "api/Sys_GroupPermission/", id1); model.AvailablePermissions.AddRange(listAvailablePermissions); var roles = new Dictionary <string, IDictionary <int, bool> >(); foreach (var pr in listAvailablePermissions) { var role = new Dictionary <int, bool> { { 1, PrivilegeType.View.CheckPrivilege(pr.PrivilegeNumber.GetInteger()) }, { 2, PrivilegeType.Create.CheckPrivilege(pr.PrivilegeNumber.GetInteger()) }, { 3, PrivilegeType.Modify.CheckPrivilege(pr.PrivilegeNumber.GetInteger()) }, { 4, PrivilegeType.Delete.CheckPrivilege(pr.PrivilegeNumber.GetInteger()) }, { 5, PrivilegeType.Export.CheckPrivilege(pr.PrivilegeNumber.GetInteger()) }, { 6, PrivilegeType.Import.CheckPrivilege(pr.PrivilegeNumber.GetInteger()) } }; if (!string.IsNullOrEmpty(pr.ResourceName) && !roles.ContainsKey(pr.ResourceName)) { roles.Add(pr.ResourceName, role); } // pr.ResourceNameTranslate = pr.ResourceName; pr.ResourceNameTranslate = ("HRM_System_Resource_" + pr.ResourceName).TranslateString(); if (!string.IsNullOrEmpty(pr.ResourceType)) { pr.ResourceTypeTranslate = ("HRM_System_Resource_" + pr.ResourceType).TranslateString(); } // pr.ResourceNameTranslate = (pr.ResourceName).TranslateString(); } model.Allowed = roles; #region Dictionary resource //Lay danh sach resource để load lên list (bao gồm cả module cha) đã group theo module var dictionary = new Dictionary <string, List <Sys_GroupPermissionModel> >(); string[] listModuleName = typeof(HRM.Infrastructure.Utilities.ModuleName).GetEnumNames(); if (listModuleName != null && listModuleName.Any()) { foreach (var moduleName in listModuleName) { var moduleResource = listAvailablePermissions.Where(p => p.Category == moduleName).OrderBy(p => p.ResourceType).ToList(); #region bản 7 xử lý category salary là Payroll => nên sẽ add thêm những resource (category = "Payroll") vào category là Salary (mà không cần sửa lại bản 7) if (moduleName == HRM.Infrastructure.Utilities.ModuleName.Salary.ToString()) { var modulePayrollResource = listAvailablePermissions.Where(p => p.Category == "Payroll" && (p.ModuleName != null || p.ResourceType != null)).OrderBy(p => p.ResourceType).ToList(); moduleResource.AddRange(modulePayrollResource); } #endregion var firstModule = listAvailablePermissions.Where(p => p.ResourceName == moduleName).FirstOrDefault(); moduleResource.Insert(0, firstModule); if (!string.IsNullOrEmpty(moduleName) && !dictionary.ContainsKey(moduleName)) { dictionary.Add(moduleName, moduleResource); } } } ViewBag.listResource = dictionary; var groupId = Guid.Empty; if (listAvailablePermissions.Any()) { groupId = listAvailablePermissions.FirstOrDefault().GroupID; if (groupId != Guid.Empty) { var groupService = new RestServiceClient <Sys_GroupModel>(UserLogin); groupService.SetCookies(Request.Cookies, hrm_Sys_Service); var modelGroup = groupService.Get(hrm_Sys_Service, "api/Sys_Group/", groupId); if (modelGroup != null) { model.Code = modelGroup.Code; model.Notes = modelGroup.Notes; model.GroupName = modelGroup.GroupName; model.IsActivate = modelGroup.IsActivate; } } } ViewBag.groupId = groupId; #endregion return(View(model)); }