57 lines
1.3 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|