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); }
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; } }