mirror of
https://github.com/CommunitySolidServer/CommunitySolidServer.git
synced 2024-10-03 14:55:10 +00:00
feat: Remove agent/user permission differentiation
This was only used for the WAC-Allow header and greatly simplifies how we use permissions.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import 'jest-rdf';
|
||||
import { fetch } from 'cross-fetch';
|
||||
import { Parser } from 'n3';
|
||||
import type { AclPermission } from '../../src/authorization/permissions/AclPermission';
|
||||
import type { AclPermissionSet } from '../../src/authorization/permissions/AclPermissionSet';
|
||||
import { BasicRepresentation } from '../../src/http/representation/BasicRepresentation';
|
||||
import type { App } from '../../src/init/App';
|
||||
import type { ResourceStore } from '../../src/storage/ResourceStore';
|
||||
@@ -59,7 +59,7 @@ async function expectPatch(
|
||||
}
|
||||
|
||||
// Creates/updates a resource with the given data and permissions
|
||||
async function setResource(path: string, turtle: string, permissions: AclPermission): Promise<void> {
|
||||
async function setResource(path: string, turtle: string, permissions: AclPermissionSet): Promise<void> {
|
||||
const url = joinUrl(baseUrl, path);
|
||||
await store.setRepresentation({ path: url }, new BasicRepresentation(turtle, 'text/turtle'));
|
||||
await aclHelper.setSimpleAcl(url, { permissions, agentClass: 'agent', accessTo: true });
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import fetch from 'cross-fetch';
|
||||
import { v4 } from 'uuid';
|
||||
import type { AclPermission } from '../../src/authorization/permissions/AclPermission';
|
||||
import type { AclPermissionSet } from '../../src/authorization/permissions/AclPermissionSet';
|
||||
import { AccessMode as AM } from '../../src/authorization/permissions/Permissions';
|
||||
import { BasicRepresentation } from '../../src/http/representation/BasicRepresentation';
|
||||
import type { App } from '../../src/init/App';
|
||||
@@ -120,12 +120,12 @@ const table: [string, string, AM[], AM[] | undefined, string, string, number, nu
|
||||
];
|
||||
/* eslint-enable no-multi-spaces */
|
||||
|
||||
function toPermission(modes: AM[]): AclPermission {
|
||||
function toPermission(modes: AM[]): AclPermissionSet {
|
||||
return Object.fromEntries(modes.map((mode): [AM, boolean] => [ mode, true ]));
|
||||
}
|
||||
|
||||
async function setWebAclPermissions(store: ResourceStore, target: string, permissions: AclPermission,
|
||||
childPermissions: AclPermission): Promise<void> {
|
||||
async function setWebAclPermissions(store: ResourceStore, target: string, permissions: AclPermissionSet,
|
||||
childPermissions: AclPermissionSet): Promise<void> {
|
||||
const aclHelper = new AclHelper(store);
|
||||
await aclHelper.setSimpleAcl(target, [
|
||||
{ permissions, agentClass: 'agent', accessTo: true },
|
||||
@@ -133,8 +133,8 @@ async function setWebAclPermissions(store: ResourceStore, target: string, permis
|
||||
]);
|
||||
}
|
||||
|
||||
async function setAcpPermissions(store: ResourceStore, target: string, permissions: AclPermission,
|
||||
childPermissions: AclPermission): Promise<void> {
|
||||
async function setAcpPermissions(store: ResourceStore, target: string, permissions: AclPermissionSet,
|
||||
childPermissions: AclPermissionSet): Promise<void> {
|
||||
const acpHelper = new AcpHelper(store);
|
||||
const publicMatcher = acpHelper.createMatcher({ publicAgent: true });
|
||||
const policies = [ acpHelper.createPolicy({
|
||||
@@ -157,7 +157,7 @@ const port = getPort('PermissionTable');
|
||||
const baseUrl = `http://localhost:${port}/`;
|
||||
|
||||
type AuthFunctionType = (store: ResourceStore, target: string,
|
||||
permissions: AclPermission, childPermissions: AclPermission) => Promise<void>;
|
||||
permissions: AclPermissionSet, childPermissions: AclPermissionSet) => Promise<void>;
|
||||
|
||||
const rootFilePath = getTestFolder('permissionTable');
|
||||
const stores: [string, string, { configs: string[]; authFunction: AuthFunctionType; teardown: () => Promise<void> }][] =
|
||||
|
||||
Reference in New Issue
Block a user