add user impersonation
This commit is contained in:
@ -72,6 +72,11 @@ namespace Oqtane.Security
|
||||
return isAuthorized;
|
||||
}
|
||||
|
||||
public static bool ContainsRole(string roles, string roleName)
|
||||
{
|
||||
return roles.Split(';', StringSplitOptions.RemoveEmptyEntries).Contains(roleName);
|
||||
}
|
||||
|
||||
public static bool ContainsRole(List<Permission> permissions, string permissionName, string roleName)
|
||||
{
|
||||
return permissions.Any(item => item.PermissionName == permissionName && item.RoleName == roleName);
|
||||
@ -101,7 +106,7 @@ namespace Oqtane.Security
|
||||
identity.AddClaim(new Claim(ClaimTypes.Name, user.Username));
|
||||
identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, user.UserId.ToString()));
|
||||
identity.AddClaim(new Claim(Constants.SiteKeyClaimType, alias.SiteKey));
|
||||
if (user.Roles.Contains(RoleNames.Host))
|
||||
if (ContainsRole(user.Roles, RoleNames.Host))
|
||||
{
|
||||
// host users are site admins by default
|
||||
identity.AddClaim(new Claim(ClaimTypes.Role, RoleNames.Host));
|
||||
|
Reference in New Issue
Block a user