Ejemplo n.º 1
0
        /// <summary>
        /// 处理权限
        /// </summary>
        /// <param name="topNode"></param>
        private void SetPermission(ActionExecutingContext filterContext, MenuNode <Actions> topNode)
        {
            var controller = filterContext.Controller as IManageController;

            if (controller == null)
            {
                return;
            }

            if (controller.LoginRole == Role.SuperAdmin)
            {
                topNode.SetPermission(true);
            }
            else
            {
                using (var db = new SqlDb())
                {
                    var pNodes = db.OrganizePermission
                                 .Where(item => item.OrganizeID == controller.UserInfo.OR_ID)
                                 .Select(item => new { item.AllowedAction, item.HashMd5 })
                                 .ToArray()
                                 .Select(item => new PermissionNode <Actions> {
                        AllowedAction = (Actions)item.AllowedAction, HashMd5 = item.HashMd5
                    })
                                 .ToArray();

                    topNode.SetPermission(pNodes);
                }
            }
        }