126 lines
5.1 KiB
C#
126 lines
5.1 KiB
C#
//using Microsoft.AspNetCore.Mvc;
|
|
//using Microsoft.AspNetCore.Mvc.Filters;
|
|
|
|
//namespace Complex.EndPoint.Utility
|
|
//{
|
|
// public class BaseController : Controller
|
|
// {
|
|
// public IPortalService _portalService;
|
|
// private ILogger? Logger;
|
|
// public BaseController(IPortalService portalService, ILogger? logger = null)
|
|
// {
|
|
// _portalService = portalService;
|
|
// if (logger != null)
|
|
// Logger = logger;
|
|
// }
|
|
// public long PersonId;
|
|
|
|
|
|
// private PersonInfo _PersonInfo { set; get; }
|
|
// public PersonInfo PersonInfo
|
|
// {
|
|
// get { return _PersonInfo; }
|
|
// }
|
|
// private bool? _IsAccessAction = null;
|
|
// public bool? IsAccessAction
|
|
// {
|
|
// get
|
|
// {
|
|
// return _IsAccessAction;
|
|
// }
|
|
// }
|
|
// //public string temp;
|
|
// public override void OnActionExecuting(ActionExecutingContext context)
|
|
// {
|
|
// //FileIO.Writeln("controller.txt","1");
|
|
// try
|
|
// {
|
|
// var attributes = context.ActionDescriptor.EndpointMetadata.OfType<CheckAccess>();
|
|
// string actionFullName = context.ActionDescriptor.DisplayName.Replace("Controller", "");
|
|
// string ActionNameExecuting = string.Join(".", actionFullName.Substring(0, actionFullName.IndexOf('(')).Split('.').Reverse().Take(2).Reverse()).Trim();
|
|
// //FileIO.Writeln("controller.txt", actionFullName);
|
|
|
|
// if (attributes.Count() > 0 && attributes.First().Disabled)
|
|
// {
|
|
// base.OnActionExecuting(context);
|
|
// return;
|
|
// }
|
|
|
|
// if (ActionNameExecuting == "Portal.Login")// || ActionNameExecuting == "PortalController.ViewPersonInfo")
|
|
// return;
|
|
|
|
// var cookie = context.HttpContext.Request.Cookies.TryGetValue("PortalTC", out string key);
|
|
// /**/
|
|
// //key = "110110110-110110110-0987654321qwerttyggffds".SimpleCodeString();
|
|
// /**/
|
|
|
|
// if (!string.IsNullOrEmpty(key))
|
|
// key = key.SimpleDeCodeString();
|
|
// else
|
|
// {
|
|
// // FileIO.Write("ali.txt", "Key:isEmpty");
|
|
// context.HttpContext.Response.StatusCode = 401;
|
|
// context.Result = Json(new ResultDto
|
|
// {
|
|
// IsSuccess = false,
|
|
// Message = ActionNameExecuting //"دسترسی غیر مجاز"
|
|
// });
|
|
// return;
|
|
// }
|
|
// //FileIO.Write("ali.txt", "Key:" + key);
|
|
// {
|
|
// _PersonInfo = _portalService.Login(key);
|
|
// if (_PersonInfo != null)
|
|
// PersonId = _PersonInfo.PersonId;
|
|
// else
|
|
// {
|
|
// context.HttpContext.Response.StatusCode = 401;
|
|
// context.Result = Json(new ResultDto
|
|
// {
|
|
// IsSuccess = false,
|
|
// Message = "ورود ناموفق" //"دسترسی غیر مجاز"
|
|
// });
|
|
|
|
// }
|
|
// }
|
|
// if (attributes.Count() > 0)
|
|
// {
|
|
// var at = attributes.First();
|
|
// if (at.AccessTitle.IsNullOrEmpty())
|
|
// at.AccessTitle = ActionNameExecuting;
|
|
// _IsAccessAction = _portalService.IsAccess(PersonId, at.AccessTitle);
|
|
// if (at.AvailabilityByAccess && _IsAccessAction == false)
|
|
// {
|
|
// context.HttpContext.Response.StatusCode = 403;
|
|
// context.Result = Json(new ResultDto
|
|
// {
|
|
// IsSuccess = false,
|
|
// Message = "[" + ActionNameExecuting + "]دسترسی غیر مجاز"
|
|
// });//NoContent();
|
|
// }
|
|
// //temp = PersonId + ":" + ActionNameExecuting + ":" + _IsAccessAction;
|
|
// }
|
|
// //FileIO.Writeln("controller.txt","3");
|
|
// base.OnActionExecuting(context);
|
|
// //FileIO.Writeln("controller.txt","4");
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// context.HttpContext.Response.StatusCode = 504;
|
|
// context.Result = Json(new ResultDto
|
|
// {
|
|
// IsSuccess = false,
|
|
// Message = ex.Message
|
|
// });
|
|
// }
|
|
// }
|
|
// internal List<GridCommand> GetAccessCommand(List<GridCommand> commands)
|
|
// {
|
|
// var acCommands = _portalService.GetAccessOfList(4, commands.Where(c => c.AccessTitle.IsNotNullOrEmpty())
|
|
// .Select(c => c.AccessTitle).ToList());
|
|
|
|
|
|
// return commands.Where(c => acCommands.Contains(c.AccessTitle) || c.AccessTitle.IsNullOrEmpty()).ToList();
|
|
// }
|
|
// }
|
|
//} |