@solid/community-server
Version:
Community Solid Server: an open and modular implementation of the Solid specifications
42 lines • 1.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseAuthorizationManager = void 0;
const ContentTypes_1 = require("../util/ContentTypes");
const NotFoundHttpError_1 = require("../util/errors/NotFoundHttpError");
const StreamUtil_1 = require("../util/StreamUtil");
/**
* An {@link AuthorizationManager} that gets parent identifiers from an {@link IdentifierStrategy}
* and authorization data by using an {@link AuxiliaryIdentifierStrategy} and a {@link ResourceStore}.
*/
class BaseAuthorizationManager {
identifierStrategy;
authStrategy;
store;
constructor(identifierStrategy, authStrategy, store) {
this.identifierStrategy = identifierStrategy;
this.authStrategy = authStrategy;
this.store = store;
}
getParent(id) {
const identifier = { path: id };
if (this.identifierStrategy.isRootContainer(identifier)) {
return;
}
return this.identifierStrategy.getParentContainer(identifier).path;
}
async getAuthorizationData(id) {
try {
const identifier = this.authStrategy.getAuxiliaryIdentifier({ path: id });
const representation = await this.store.getRepresentation(identifier, { type: { [ContentTypes_1.INTERNAL_QUADS]: 1 } });
return await (0, StreamUtil_1.arrayifyStream)(representation.data);
}
catch (err) {
if (NotFoundHttpError_1.NotFoundHttpError.isInstance(err)) {
return;
}
throw err;
}
}
}
exports.BaseAuthorizationManager = BaseAuthorizationManager;
//# sourceMappingURL=BaseAuthorizationManager.js.map