From 7f8ed7e752777a584fe53451f1d34d3fd28696f5 Mon Sep 17 00:00:00 2001 From: Gary Sharp Date: Tue, 17 Jun 2014 14:31:11 +1000 Subject: [PATCH] Feature #52: UserExt Auth methods for expressions Extension methods can be used to test for user authorization (against claims) within Expressions --- Disco.BI/BI/Expressions/Extensions/UserExt.cs | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/Disco.BI/BI/Expressions/Extensions/UserExt.cs b/Disco.BI/BI/Expressions/Extensions/UserExt.cs index e8ece94b..7602d1da 100644 --- a/Disco.BI/BI/Expressions/Extensions/UserExt.cs +++ b/Disco.BI/BI/Expressions/Extensions/UserExt.cs @@ -1,5 +1,6 @@ using Disco.BI.Extensions; using Disco.Models.Repository; +using Disco.Services.Users; using System; using System.Linq; @@ -7,6 +8,7 @@ namespace Disco.BI.Expressions.Extensions { public static class UserExt { + #region Active Directory Extensions public static object GetActiveDirectoryObjectValue(User User, string PropertyName, int Index = 0) { var adUserAccount = User.ActiveDirectoryAccount(PropertyName); @@ -44,5 +46,29 @@ namespace Disco.BI.Expressions.Extensions return intValue; } } + #endregion + + #region Authorization Testing Extensions + public static bool HasAuthorization(User User, string Claim) + { + var authorization = UserService.GetAuthorization(User.UserId); + + return authorization.Has(Claim); + } + + public static bool HasAuthorizationAll(User User, params string[] Claims) + { + var authorization = UserService.GetAuthorization(User.UserId); + + return authorization.HasAll(Claims); + } + + public static bool HasAuthorizationAny(User User, params string[] Claims) + { + var authorization = UserService.GetAuthorization(User.UserId); + + return authorization.HasAny(Claims); + } + #endregion } }