Exemple #1
0
        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;
 }