public bool HasPermission(IPermissionApplication permissionApplication, IUserContext userContext) { if (permissionApplication == null) { return(true); } if (userContext == null) { return(false); } var role = _internalRoleRepository.GetById(userContext.RoleId); if (permissionApplication is IPermission) { return(role.HasPermission((IPermission)permissionApplication)); } else if (permissionApplication is CompositePermissionApplication) { foreach (var permission in ((CompositePermissionApplication)permissionApplication).Permissions) { if (role.HasPermission(permission)) { return(true); } } return(false); } else { throw new InvalidOperationException("Unknown implementation of IPermissionApplication"); } }
public virtual void EnforcePermission(IPermissionApplication permission, IUserContext userContext) { if (!HasPermission(permission, userContext)) { throw new PermissionValidationFailedException(permission, userContext); } }
private static string FormatMessage( IPermissionApplication permission, IUserContext userContext ) { return($"Permission Validation Check Failed. Permission Type: { permission?.ToString() }. UserId: { userContext?.UserId }"); }
public PermissionValidationFailedException( IPermissionApplication permission, IUserContext userContext ) : base(FormatMessage(permission, userContext)) { Permission = permission; UserContext = userContext; }
public IndexModel(IRoleApplication roleApplication, IPermissionApplication permissionApplication) { _roleApplication = roleApplication; _permissionApplication = permissionApplication; Permissions = new SelectList(_permissionApplication.GetAllForAdmin(), "Id", "Name"); }
public virtual async Task EnforcePermissionAsync(IPermissionApplication permission) { var userContext = await _userContextService.GetCurrentContextAsync(); EnforcePermission(permission, userContext); }
public virtual async Task <bool> HasPermissionAsync(IPermissionApplication permissionApplication) { var userContext = await _userContextService.GetCurrentContextAsync(); return(HasPermission(permissionApplication, userContext)); }
public PermissionsController(IRequestInfoService info, IPermissionApplication permissionApp) : base(info) => this.permissionApp = permissionApp;
public void EnforcePermission(IPermissionApplication permission) { EnforcePermission(permission, _userContextService.GetCurrentContext()); }
public bool HasPermission(IPermissionApplication permissionApplication) { return(HasPermission(permissionApplication, _userContextService.GetCurrentContext())); }