コード例 #1
0
        public static bool HasAccess(IPermissionDependent permissionDependent)
        {
            if (!EnablePermissions)
            {
                return(true);
            }

            if (permissionDependent == null)
            {
                throw new ArgumentNullException("permissionDependent");
            }

            if (!String.IsNullOrWhiteSpace(permissionDependent.PermissionKey))
            {
                return(UmUtil.Instance.HasAccess(permissionDependent.PermissionKey));
            }

            if (ResourcePathAutoGeneration && DefaultRuleValue != null)
            {
                var control = permissionDependent as Control;
                if (control != null)
                {
                    var fullName = GetControlFullName(control);
                    if (!String.IsNullOrWhiteSpace(fullName))
                    {
                        var hasAccess = UmUtil.Instance.HasAccess(fullName, DefaultRuleValue.Value);
                        return(hasAccess);
                    }
                }
            }

            return(true);
        }
コード例 #2
0
        public static void ApplyPermission(IPermissionDependent permissionDependent)
        {
            if (!EnablePermissions)
            {
                return;
            }

            if (permissionDependent == null)
            {
                return;
            }

            if (String.IsNullOrWhiteSpace(permissionDependent.PermissionKey))
            {
                if (DefaultRuleValue == null || !ResourcePathAutoGeneration)
                {
                    return;
                }
            }

            if (permissionDependent.DisableIfNoAccess)
            {
                if (!permissionDependent.Enabled)
                {
                    return;
                }
            }
            else
            {
                if (!permissionDependent.Visible)
                {
                    return;
                }
            }

            var hasAccess = HasAccess(permissionDependent);

            if (permissionDependent.DisableIfNoAccess)
            {
                permissionDependent.Enabled = hasAccess;
            }
            else
            {
                permissionDependent.Visible = hasAccess;
            }
        }