Files
BeWoPlaner/Data/Security/UserRightHelper.cs

57 lines
1.3 KiB
C#

using BeWo.Data.Entities;
using BS.Shared;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Data.Security
{
public class UserRightHelper
{
public static ApplicationUser GetLoggedInUser()
{
if (LoggedInUserOperationContextExt.Current != null &&
LoggedInUserOperationContextExt.Current.User != null)
{
return LoggedInUserOperationContextExt.Current.User;
}
else
{
return SessionFacade.LoggedInUser;
}
return null;
}
public static bool LoggedInUserHasRight(UserRightType right)
{
return GetGrantedRights(GetLoggedInUser()).Contains(right);
}
public static bool UserHasRight(ApplicationUser user, UserRightType right)
{
return GetGrantedRights(user).Contains(right);
}
public static List<UserRightType> GetGrantedRights(ApplicationUser user)
{
var rights = new List<UserRightType>();
foreach (var ug in user.UserGroups)
{
foreach (var rr in ug.Rights)
{
rights.Add(rr.RightType);
}
}
return rights;
}
}
}