#2618 - add backward compatibility for permissions optimizations
This commit is contained in:
		| @ -1,4 +1,5 @@ | ||||
| @namespace Oqtane.Modules.Controls | ||||
| @using System.Text.Json | ||||
| @inherits LocalizableComponent | ||||
|  | ||||
| @if (_visible) | ||||
| @ -61,7 +62,10 @@ | ||||
|     public SecurityAccessLevel? Security { get; set; } // optional - can be used to explicitly specify SecurityAccessLevel | ||||
|  | ||||
| 	[Parameter] | ||||
| 	public List<Permission> Permissions { get; set; } // optional - can be used to specify permissions | ||||
| 	public string Permissions { get; set; } // optional - can be used to specify permissions (deprecated - use PermissionList) | ||||
|  | ||||
| 	[Parameter] | ||||
| 	public List<Permission> PermissionList { get; set; } // optional - can be used to specify permissions | ||||
|  | ||||
|     [Parameter] | ||||
|     public string Class { get; set; } // optional | ||||
| @ -78,7 +82,15 @@ | ||||
|     [Parameter] | ||||
|     public string IconName { get; set; } // optional - specifies an icon for the link - default is no icon | ||||
|  | ||||
|     protected override void OnParametersSet() | ||||
| 	protected override void OnInitialized() | ||||
| 	{ | ||||
| 		if (!string.IsNullOrEmpty(Permissions)) | ||||
| 		{ | ||||
| 			PermissionList = JsonSerializer.Deserialize<List<Permission>>(Permissions); | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| 	protected override void OnParametersSet() | ||||
|     { | ||||
|         base.OnParametersSet(); | ||||
|  | ||||
| @ -109,7 +121,7 @@ | ||||
|         Header = Localize(nameof(Header), Header); | ||||
|         Message = Localize(nameof(Message), Message); | ||||
|  | ||||
| 		_permissions = (Permissions == null) ? ModuleState.Permissions : Permissions; | ||||
| 		_permissions = (PermissionList == null) ? ModuleState.PermissionList : PermissionList; | ||||
|         _authorized = IsAuthorized(); | ||||
|     } | ||||
|  | ||||
|  | ||||
| @ -1,5 +1,6 @@ | ||||
| @namespace Oqtane.Modules.Controls | ||||
| @using System.Net | ||||
| @using System.Text.Json | ||||
| @inherits LocalizableComponent | ||||
| @inject IUserService UserService | ||||
|  | ||||
| @ -52,7 +53,10 @@ | ||||
| 	public SecurityAccessLevel? Security { get; set; } // optional - can be used to explicitly specify SecurityAccessLevel | ||||
|  | ||||
| 	[Parameter] | ||||
| 	public List<Permission> Permissions { get; set; } // optional - can be used to specify permissions | ||||
| 	public string Permissions { get; set; } // optional - can be used to specify permissions (deprecated - use PermissionList) | ||||
|  | ||||
| 	[Parameter] | ||||
| 	public List<Permission> PermissionList { get; set; } // optional - can be used to specify permissions | ||||
|  | ||||
| 	[Parameter] | ||||
| 	public bool Disabled { get; set; } // optional | ||||
| @ -75,6 +79,14 @@ | ||||
| 	[Parameter] | ||||
| 	public string ReturnUrl { get; set; } // optional - used to set a url to redirect to | ||||
|  | ||||
| 	protected override void OnInitialized() | ||||
| 	{ | ||||
| 		if (!string.IsNullOrEmpty(Permissions)) | ||||
| 		{ | ||||
| 			PermissionList = JsonSerializer.Deserialize<List<Permission>>(Permissions); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	protected override void OnParametersSet() | ||||
| 	{ | ||||
| 		base.OnParametersSet(); | ||||
| @ -119,7 +131,7 @@ | ||||
| 			_iconSpan = $"<span class=\"{IconName}\"></span>{(IconOnly ? "" : " ")}"; | ||||
| 		} | ||||
|  | ||||
| 		_permissions = (Permissions == null) ? ModuleState.Permissions : Permissions; | ||||
| 		_permissions = (PermissionList == null) ? ModuleState.PermissionList : PermissionList; | ||||
| 		_text = Localize(nameof(Text), _text); | ||||
| 		_url = (ModuleId == -1) ? EditUrl(Action, _parameters) : EditUrl(ModuleId, Action, _parameters); | ||||
| 		if (!string.IsNullOrEmpty(ReturnUrl)) | ||||
|  | ||||
| @ -223,7 +223,7 @@ | ||||
| 			Folder folder = _folders.FirstOrDefault(item => item.FolderId == FolderId); | ||||
| 			if (folder != null) | ||||
| 			{ | ||||
| 				_haseditpermission = UserSecurity.IsAuthorized(PageState.User, PermissionNames.Edit, folder.Permissions); | ||||
| 				_haseditpermission = UserSecurity.IsAuthorized(PageState.User, PermissionNames.Edit, folder.PermissionList); | ||||
| 				_files = await FileService.GetFilesAsync(FolderId); | ||||
| 			} | ||||
| 			else | ||||
|  | ||||
| @ -1,4 +1,5 @@ | ||||
| @namespace Oqtane.Modules.Controls | ||||
| @using System.Text.Json | ||||
| @inherits ModuleControlBase | ||||
| @inject IRoleService RoleService | ||||
| @inject IUserService UserService | ||||
| @ -105,10 +106,18 @@ | ||||
| 	public string PermissionNames { get; set; } | ||||
|  | ||||
| 	[Parameter] | ||||
| 	public List<Permission> Permissions { get; set; } | ||||
| 	public string Permissions { get; set; } | ||||
|  | ||||
| 	[Parameter] | ||||
| 	public List<Permission> PermissionList { get; set; } | ||||
|  | ||||
| 	protected override async Task OnInitializedAsync() | ||||
| 	{ | ||||
| 		if (!string.IsNullOrEmpty(Permissions)) | ||||
| 		{ | ||||
| 			PermissionList = JsonSerializer.Deserialize<List<Permission>>(Permissions);			 | ||||
| 		} | ||||
|  | ||||
| 		_roles = await RoleService.GetRolesAsync(ModuleState.SiteId, true); | ||||
| 		if (!UserSecurity.IsAuthorized(PageState.User, RoleNames.Host)) | ||||
| 		{ | ||||
| @ -155,9 +164,9 @@ | ||||
| 		} | ||||
|  | ||||
| 		// populate permissions and users | ||||
| 		if (Permissions.Any()) | ||||
| 		if (PermissionList.Any()) | ||||
| 		{ | ||||
| 			foreach (var permission in Permissions) | ||||
| 			foreach (var permission in PermissionList) | ||||
| 			{ | ||||
| 				if (!_permissions.Any(item => item.EntityName == permission.EntityName && item.PermissionName == permission.PermissionName && item.Role.Name == permission.Role.Name)) | ||||
| 				{ | ||||
| @ -284,7 +293,13 @@ | ||||
| 		_user.Clear(); | ||||
| 	} | ||||
|  | ||||
| 	public List<Permission> GetPermissions() | ||||
| 	public string GetPermissions() | ||||
| 	{ | ||||
| 		ValidatePermissions(); | ||||
| 		return JsonSerializer.Serialize(_permissions); | ||||
| 	} | ||||
|  | ||||
| 	public List<Permission> GetPermissionList() | ||||
| 	{ | ||||
| 		ValidatePermissions(); | ||||
| 		return _permissions; | ||||
|  | ||||
| @ -93,10 +93,10 @@ | ||||
|                 authorized = true; | ||||
|                 break; | ||||
|             case SecurityAccessLevel.View: | ||||
|                 authorized = UserSecurity.IsAuthorized(PageState.User, PermissionNames.View, ModuleState.Permissions); | ||||
|                 authorized = UserSecurity.IsAuthorized(PageState.User, PermissionNames.View, ModuleState.PermissionList); | ||||
|                 break; | ||||
|             case SecurityAccessLevel.Edit: | ||||
|                 authorized = UserSecurity.IsAuthorized(PageState.User, PermissionNames.Edit, ModuleState.Permissions); | ||||
|                 authorized = UserSecurity.IsAuthorized(PageState.User, PermissionNames.Edit, ModuleState.PermissionList); | ||||
|                 break; | ||||
|             case SecurityAccessLevel.Admin: | ||||
|                 authorized = UserSecurity.IsAuthorized(PageState.User, RoleNames.Admin); | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Shaun Walker
					Shaun Walker