Skip to content

Commit

Permalink
docs: Add pod README.
Browse files Browse the repository at this point in the history
  • Loading branch information
RubenVerborgh committed Jul 23, 2021
1 parent 705a066 commit defdb32
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,11 @@ export class RegistrationHandler extends HttpHandler {
if (result.createPod) {
podBaseUrl = podBaseUrl ?? this.identifierGenerator.generate(result.podName!);
try {
await this.podManager.createPod(podBaseUrl, { ...result.data, webId: result.webId! });
await this.podManager.createPod(podBaseUrl, {
...result.data,
podBaseUrl: podBaseUrl.path,
webId: result.webId!,
});
} catch (error: unknown) {
// In case pod creation errors we don't want to keep the account
if (result.register) {
Expand Down
22 changes: 22 additions & 0 deletions templates/pod/README$.md.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Welcome to your pod

## A place to store your data
Your pod is a **secure storage space** for your documents and data.
<br>
You can choose to share those with other people and apps.

As the owner of this pod,
identified by <a href="{{webId}}">{{webId}}</a>,
you have access to all of your documents.

## Working with your pod
The easiest way to interact with pods
is through Solid apps.
<br>
For example,
you can open your pod in [Databrowser](https://solid.github.io/mashlib/dist/browse.html?uri={{podBaseUrl}}).

## Learn more
The [Solid website](https://solidproject.org/)
and the people on its [forum](https://forum.solidproject.org/)
will be glad to help you on your journey.
12 changes: 12 additions & 0 deletions templates/pod/README.acl.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
@prefix acl: <http://www.w3.org/ns/auth/acl#>.
@prefix foaf: <http://xmlns.com/foaf/0.1/>.

<#public>
acl:accessTo <./README>;
acl:agentClass foaf:Agent;
acl:mode acl:Read.

<#owner>
acl:accessTo <./README>;
acl:agent <{{webId}}>;
acl:mode acl:Read, acl:Write, acl:Control.
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ describe('A RegistrationHandler', (): void => {
const password = 'superSecretPassword';
const confirmPassword = password;
const podName = 'alice';
const podBaseUrl = 'http://test.com/alice/';
// Strings instead of booleans because this is form data
const createWebId = 'true';
const register = 'true';
Expand Down Expand Up @@ -178,7 +179,9 @@ describe('A RegistrationHandler', (): void => {
expect(identifierGenerator.generate).toHaveBeenCalledTimes(1);
expect(identifierGenerator.generate).toHaveBeenLastCalledWith(podName);
expect(podManager.createPod).toHaveBeenCalledTimes(1);
expect(podManager.createPod).toHaveBeenLastCalledWith({ path: `${baseUrl}${podName}/` }, params);
expect(podManager.createPod).toHaveBeenLastCalledWith(
{ path: `${baseUrl}${podName}/` }, { podBaseUrl, ...params },
);

expect(accountStore.create).toHaveBeenCalledTimes(0);
expect(accountStore.verify).toHaveBeenCalledTimes(0);
Expand All @@ -198,7 +201,9 @@ describe('A RegistrationHandler', (): void => {
expect(identifierGenerator.generate).toHaveBeenLastCalledWith(podName);
(params as any).oidcIssuer = baseUrl;
expect(podManager.createPod).toHaveBeenCalledTimes(1);
expect(podManager.createPod).toHaveBeenLastCalledWith({ path: `${baseUrl}${podName}/` }, params);
expect(podManager.createPod).toHaveBeenLastCalledWith(
{ path: `${baseUrl}${podName}/` }, { podBaseUrl, ...params },
);
expect(accountStore.verify).toHaveBeenCalledTimes(1);
expect(accountStore.verify).toHaveBeenLastCalledWith(email);

Expand All @@ -219,7 +224,9 @@ describe('A RegistrationHandler', (): void => {
expect(identifierGenerator.generate).toHaveBeenLastCalledWith(podName);
(params as any).oidcIssuer = baseUrl;
expect(podManager.createPod).toHaveBeenCalledTimes(1);
expect(podManager.createPod).toHaveBeenLastCalledWith({ path: `${baseUrl}${podName}/` }, params);
expect(podManager.createPod).toHaveBeenLastCalledWith(
{ path: `${baseUrl}${podName}/` }, { podBaseUrl, ...params },
);
expect(accountStore.deleteAccount).toHaveBeenCalledTimes(1);
expect(accountStore.deleteAccount).toHaveBeenLastCalledWith(email);

Expand All @@ -239,9 +246,10 @@ describe('A RegistrationHandler', (): void => {
expect(accountStore.create).toHaveBeenLastCalledWith(email, generatedWebID, password);
expect(accountStore.verify).toHaveBeenCalledTimes(1);
expect(accountStore.verify).toHaveBeenLastCalledWith(email);
const podParams = { ...params, oidcIssuer: baseUrl, webId: generatedWebID };
expect(podManager.createPod).toHaveBeenCalledTimes(1);
expect(podManager.createPod).toHaveBeenLastCalledWith({ path: `${baseUrl}${podName}/` }, podParams);
expect(podManager.createPod).toHaveBeenLastCalledWith(
{ path: `${baseUrl}${podName}/` }, { ...params, podBaseUrl, oidcIssuer: baseUrl, webId: generatedWebID },
);

expect(ownershipValidator.handleSafe).toHaveBeenCalledTimes(0);
expect(accountStore.deleteAccount).toHaveBeenCalledTimes(0);
Expand Down

0 comments on commit defdb32

Please sign in to comment.