Fix naming conventions for private fields
This commit is contained in:
@ -12,42 +12,42 @@ namespace Oqtane.Security
|
||||
{
|
||||
public class ClaimsPrincipalFactory<TUser> : UserClaimsPrincipalFactory<TUser> where TUser : IdentityUser
|
||||
{
|
||||
private readonly IdentityOptions options;
|
||||
private readonly ITenantResolver Tenants;
|
||||
private readonly IUserRepository Users;
|
||||
private readonly IUserRoleRepository UserRoles;
|
||||
private readonly IdentityOptions _options;
|
||||
private readonly ITenantResolver _tenants;
|
||||
private readonly IUserRepository _users;
|
||||
private readonly IUserRoleRepository _userRoles;
|
||||
|
||||
public ClaimsPrincipalFactory(UserManager<TUser> userManager, IOptions<IdentityOptions> optionsAccessor, ITenantResolver tenants, IUserRepository users, IUserRoleRepository userroles) : base(userManager, optionsAccessor)
|
||||
{
|
||||
options = optionsAccessor.Value;
|
||||
Tenants = tenants;
|
||||
Users = users;
|
||||
UserRoles = userroles;
|
||||
_options = optionsAccessor.Value;
|
||||
_tenants = tenants;
|
||||
_users = users;
|
||||
_userRoles = userroles;
|
||||
}
|
||||
|
||||
protected override async Task<ClaimsIdentity> GenerateClaimsAsync(TUser identityuser)
|
||||
{
|
||||
var id = await base.GenerateClaimsAsync(identityuser);
|
||||
|
||||
User user = Users.GetUser(identityuser.UserName);
|
||||
User user = _users.GetUser(identityuser.UserName);
|
||||
if (user != null)
|
||||
{
|
||||
id.AddClaim(new Claim(ClaimTypes.PrimarySid, user.UserId.ToString()));
|
||||
Alias alias = Tenants.GetAlias();
|
||||
List<UserRole> userroles = UserRoles.GetUserRoles(user.UserId, alias.SiteId).ToList();
|
||||
Alias alias = _tenants.GetAlias();
|
||||
List<UserRole> userroles = _userRoles.GetUserRoles(user.UserId, alias.SiteId).ToList();
|
||||
foreach (UserRole userrole in userroles)
|
||||
{
|
||||
id.AddClaim(new Claim(options.ClaimsIdentity.RoleClaimType, userrole.Role.Name));
|
||||
id.AddClaim(new Claim(_options.ClaimsIdentity.RoleClaimType, userrole.Role.Name));
|
||||
// host users are members of every site
|
||||
if (userrole.Role.Name == Constants.HostRole)
|
||||
{
|
||||
if (userroles.Where(item => item.Role.Name == Constants.RegisteredRole).FirstOrDefault() == null)
|
||||
{
|
||||
id.AddClaim(new Claim(options.ClaimsIdentity.RoleClaimType, Constants.RegisteredRole));
|
||||
id.AddClaim(new Claim(_options.ClaimsIdentity.RoleClaimType, Constants.RegisteredRole));
|
||||
}
|
||||
if (userroles.Where(item => item.Role.Name == Constants.AdminRole).FirstOrDefault() == null)
|
||||
{
|
||||
id.AddClaim(new Claim(options.ClaimsIdentity.RoleClaimType, Constants.AdminRole));
|
||||
id.AddClaim(new Claim(_options.ClaimsIdentity.RoleClaimType, Constants.AdminRole));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -8,31 +8,31 @@ namespace Oqtane.Security
|
||||
{
|
||||
public class PermissionHandler : AuthorizationHandler<PermissionRequirement>
|
||||
{
|
||||
private readonly IHttpContextAccessor HttpContextAccessor;
|
||||
private readonly IUserPermissions UserPermissions;
|
||||
private readonly ILogManager logger;
|
||||
private readonly IHttpContextAccessor _httpContextAccessor;
|
||||
private readonly IUserPermissions _userPermissions;
|
||||
private readonly ILogManager _logger;
|
||||
|
||||
public PermissionHandler(IHttpContextAccessor HttpContextAccessor, IUserPermissions UserPermissions, ILogManager logger)
|
||||
{
|
||||
this.HttpContextAccessor = HttpContextAccessor;
|
||||
this.UserPermissions = UserPermissions;
|
||||
this.logger = logger;
|
||||
this._httpContextAccessor = HttpContextAccessor;
|
||||
this._userPermissions = UserPermissions;
|
||||
this._logger = logger;
|
||||
}
|
||||
|
||||
protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, PermissionRequirement requirement)
|
||||
{
|
||||
// permission is scoped based on EntityId which must be passed as a querystring parameter
|
||||
var ctx = HttpContextAccessor.HttpContext;
|
||||
var ctx = _httpContextAccessor.HttpContext;
|
||||
if (ctx != null && ctx.Request.Query.ContainsKey("entityid"))
|
||||
{
|
||||
int EntityId = int.Parse(ctx.Request.Query["entityid"]);
|
||||
if (UserPermissions.IsAuthorized(context.User, requirement.EntityName, EntityId, requirement.PermissionName))
|
||||
if (_userPermissions.IsAuthorized(context.User, requirement.EntityName, EntityId, requirement.PermissionName))
|
||||
{
|
||||
context.Succeed(requirement);
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.Log(LogLevel.Error, this, LogFunction.Security, "User {User} Does Not Have {PermissionName} Permission For {EntityName}:{EntityId}", context.User, requirement.PermissionName, requirement.EntityName, EntityId);
|
||||
_logger.Log(LogLevel.Error, this, LogFunction.Security, "User {User} Does Not Have {PermissionName} Permission For {EntityName}:{EntityId}", context.User, requirement.PermissionName, requirement.EntityName, EntityId);
|
||||
}
|
||||
}
|
||||
return Task.CompletedTask;
|
||||
|
@ -8,18 +8,18 @@ namespace Oqtane.Security
|
||||
{
|
||||
public class UserPermissions : IUserPermissions
|
||||
{
|
||||
private readonly IPermissionRepository Permissions;
|
||||
private readonly IHttpContextAccessor Accessor;
|
||||
private readonly IPermissionRepository _permissions;
|
||||
private readonly IHttpContextAccessor _accessor;
|
||||
|
||||
public UserPermissions(IPermissionRepository Permissions, IHttpContextAccessor Accessor)
|
||||
{
|
||||
this.Permissions = Permissions;
|
||||
this.Accessor = Accessor;
|
||||
this._permissions = Permissions;
|
||||
this._accessor = Accessor;
|
||||
}
|
||||
|
||||
public bool IsAuthorized(ClaimsPrincipal User, string EntityName, int EntityId, string PermissionName)
|
||||
{
|
||||
return IsAuthorized(User, PermissionName, Permissions.EncodePermissions(EntityId, Permissions.GetPermissions(EntityName, EntityId, PermissionName).ToList()));
|
||||
return IsAuthorized(User, PermissionName, _permissions.EncodePermissions(EntityId, _permissions.GetPermissions(EntityName, EntityId, PermissionName).ToList()));
|
||||
}
|
||||
|
||||
public bool IsAuthorized(ClaimsPrincipal User, string PermissionName, string Permissions)
|
||||
@ -56,7 +56,7 @@ namespace Oqtane.Security
|
||||
|
||||
public User GetUser()
|
||||
{
|
||||
return GetUser(Accessor.HttpContext.User);
|
||||
return GetUser(_accessor.HttpContext.User);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user