public override void OnActionExecuting(ActionExecutingContext context) { var descriptor = context.ActionDescriptor as ControllerActionDescriptor; if (descriptor != null) { var parameters = descriptor.MethodInfo.GetCustomAttributes(typeof(Permission), false).FirstOrDefault() as Permission; RequiredPermissionOption RequiredPermission = parameters.RequiredPermission; string type = string.Empty; switch (RequiredPermission) { case RequiredPermissionOption.Create: type = "create"; eventUserLog = EventUserLog.EVENT_CREATE; break; case RequiredPermissionOption.Delete: type = "delete"; eventUserLog = EventUserLog.EVENT_DELETE; break; case RequiredPermissionOption.Update: type = "update"; eventUserLog = EventUserLog.EVENT_UPDATE; break; case RequiredPermissionOption.Read: type = "read"; eventUserLog = EventUserLog.EVENT_READ; break; case RequiredPermissionOption.None: type = "none"; break; default: break; } string controllerName = descriptor.ControllerName; try { MenuName menuName = descriptor.ControllerTypeInfo.GetCustomAttributes(typeof(MenuName), false).FirstOrDefault() as MenuName; if (menuName != null) { controllerName = menuName.menu; } this.menuName = controllerName; } catch (Exception ex) { } User currentUser = _userService.CheckUseRole(_httpContextAccessor.HttpContext.User, controllerName, type); if (currentUser == null) { string message = $"You don`t have {type} permision."; context.Result = new BadRequestObjectResult(message); } else { GeneralData generalData = new GeneralData { BranchId = currentUser.Branch_Id, CreatedBy = currentUser.Created_by, EmpId = currentUser.Emp_Id, Password = currentUser.Password, RollId = currentUser.Roll_Id, Status = currentUser.Status, Token = currentUser.Token, Useremail = currentUser.Useremail, UserId = currentUser.User_Id, Username = currentUser.Username }; this.userId = currentUser.User_Id; context.ActionArguments.Add("data", generalData); } } }
public Permission(RequiredPermissionOption requiredPermission) { RequiredPermission = requiredPermission; }