/// <summary> /// /// </summary> /// <param name="model"></param> public void UpNavigationMenusProvider(SysMenus model = null) { #region 更新全局模块列表(主要解决运行时模块列表没有更新的情况) _navigationManager.MainMenu.Items.Clear(); _navigationMenusProvider.CreateMenuItemDefinition(_navigationManager.MainMenu); #endregion //新增,编辑 更新基础模块的同时添加新加的授权信息 //删除 此处为null直接更新原有菜单信息 if (model == null) { return; } #region 更新全局授权列表(主要解决运行时授权列表没有更新的情况) //添加授权模块 Permission currentPermission = _permissionManager.GetPermissionOrNull(model.PermissionName.ToLower()); if (currentPermission == null) { IReadOnlyList <Permission> permissionList = _permissionManager.GetAllPermissions(); currentPermission = permissionList[0].CreateChildPermission(model.PermissionName.ToLower(), model.MenuDisplayName.ToLocalizable()); } //添加授权动作 foreach (var action in model.SysMenuActions) { if (!string.IsNullOrEmpty(action.PermissionName) && _permissionManager.GetPermissionOrNull(action.PermissionName.ToLower()) == null) { currentPermission.CreateChildPermission(action.PermissionName.ToLower(), action.ActionDisplayName.ToLocalizable()); } } #endregion }
/// <summary> /// Gets all permissions by names. /// Throws <see cref="AbpValidationException"/> if can not find any of the permission names. /// </summary> public static IEnumerable <Abp.Authorization.Permission> GetPermissionsFromNamesByValidating(this IPermissionManager permissionManager, IEnumerable <string> permissionNames) { var permissions = new List <Abp.Authorization.Permission>(); var undefinedPermissionNames = new List <string>(); foreach (var permissionName in permissionNames) { var permission = permissionManager.GetPermissionOrNull(permissionName); if (permission == null) { undefinedPermissionNames.Add(permissionName); } permissions.Add(permission); } if (undefinedPermissionNames.Count > 0) { throw new AbpValidationException(string.Format("There are {0} undefined permission names.", undefinedPermissionNames.Count)) { ValidationErrors = undefinedPermissionNames.ConvertAll(permissionName => new ValidationResult("Undefined permission: " + permissionName)) }; } return(permissions); }
/// <summary> /// Gets all permissions by names. /// Throws <see cref="AbpValidationException"/> if can not find any of the permission names. /// </summary> public static IEnumerable <Permission> GetPermissionsFromNamesByValidating(this IPermissionManager permissionManager, IEnumerable <string> permissionNames) { var permissions = new List <Permission>(); var undefinedPermissionNames = new List <string>(); foreach (var permissionName in permissionNames) { var permission = permissionManager.GetPermissionOrNull(permissionName); if (permission == null) { undefinedPermissionNames.Add(permissionName); } permissions.Add(permission); } if (undefinedPermissionNames.Count > 0) { throw new AbpValidationException($"There are {undefinedPermissionNames.Count} undefined permission names.") { ValidationErrors = undefinedPermissionNames.Select(permissionName => new ValidationResult("Undefined permission: " + permissionName)).ToList() }; } return(permissions); }
/// <summary> /// 根据名称获取所有权限 /// Throws <see cref="AbpValidationException"/> 没有找到任何权限时 /// </summary> public static IEnumerable <Permission> GetPermissionsFromNamesByValidating(this IPermissionManager permissionManager, IEnumerable <string> permissionNames) { var permissions = new List <Permission>(); var undefinedPermissionNames = new List <string>(); foreach (var permissionName in permissionNames) { var permission = permissionManager.GetPermissionOrNull(permissionName); if (permission == null) { undefinedPermissionNames.Add(permissionName); } permissions.Add(permission); } if (undefinedPermissionNames.Count <= 0) { return(permissions); } var localizationManager = IocManager.Instance.Resolve <ILocalizationManager>(); throw new AbpValidationException(string.Format(L(localizationManager, "Permission.Undefined"), undefinedPermissionNames.Count)) { ValidationErrors = undefinedPermissionNames.Select(permissionName => new ValidationResult(string.Format( L(localizationManager, "Permission.UndefinedName"), permissionName))).ToList() }; }
/// <summary> /// Gets all permissions by names. /// Throws <see cref="AbpValidationException"/> if can not find any of the permission names. /// </summary> public static IEnumerable <Permission> GetPermissionsFromNamesByValidating(this IPermissionManager permissionManager, IEnumerable <string> permissionNames) { var permissions = new List <Permission>(); var undefinedPermissionNames = new List <string>(); foreach (var permissionName in permissionNames) { var permission = permissionManager.GetPermissionOrNull(permissionName); if (permission == null) { undefinedPermissionNames.Add(permissionName); } permissions.Add(permission); } if (undefinedPermissionNames.Count > 0) { throw new AbpValidationException( $"有 {undefinedPermissionNames.Count} 个 权限没有定义") { ValidationErrors = undefinedPermissionNames.ConvertAll(permissionName => new ValidationResult("未定义的权限: " + permissionName)) }; } return(permissions); }
private Permission GetPermission(string permissionName) { var permission = _permissionManager.GetPermissionOrNull(permissionName); if (permission == null) { throw new AbpException("There is no permission with name: " + permissionName); } return(permission); }
private async Task <bool> HasPermissionInternalAsync(TRole role, string permissionName) //TODO: Async { var permission = _permissionManager.GetPermissionOrNull(permissionName); if (permission == null) { throw new AbpException("There is no permission with name: " + permissionName); } return(await HasPermissionInternalAsync(role, permission)); }
private bool HasPermissionInternal(AbpRole role, string permissionName) //TODO: Async { if (!(Store is IRolePermissionStore)) { throw new AbpException("Store is not IRolePermissionStore"); } var permission = _permissionManager.GetPermissionOrNull(permissionName); if (permission == null) { throw new AbpException("There is no permission with name: " + permissionName); } var permissionStore = Store as IRolePermissionStore; return(permission.IsGrantedByDefault ? !permissionStore.HasPermissionAsync(role, new PermissionGrantInfo(permissionName, false)).Result : permissionStore.HasPermissionAsync(role, new PermissionGrantInfo(permissionName, true)).Result); }
public static IEnumerable <Permission> GetPermissionsFromNamesByValidating(this IPermissionManager permissionManager, IEnumerable <string> permissionNames) { List <Permission> permissions = new List <Permission>(); List <string> strs = new List <string>(); foreach (string str in permissionNames) { Permission permissionOrNull = permissionManager.GetPermissionOrNull(str); if (permissionOrNull == null) { strs.Add(str); } permissions.Add(permissionOrNull); } if (strs.Count > 0) { throw new AbpValidationException(string.Format("There are {0} undefined permission names.", strs.Count)) { ValidationErrors = strs.ConvertAll <ValidationResult>((string permissionName) => new ValidationResult(string.Concat("Undefined permission: ", permissionName))) }; } return(permissions); }