Skip to content

Commit

Permalink
Fix loading/editing users that do not have a role assignment (#8590)
Browse files Browse the repository at this point in the history
  • Loading branch information
JammingBen committed Mar 10, 2023
1 parent 9548cd1 commit 1237bb4
Show file tree
Hide file tree
Showing 15 changed files with 1,294 additions and 0 deletions.
12 changes: 12 additions & 0 deletions docs/_index.md
@@ -0,0 +1,12 @@
---
title: "ownCloud Web"
date: 2018-05-02T00:00:00+00:00
weight: -15
geekdocRepo: https://github.com/owncloud/web
geekdocEditPath: edit/master/docs
geekdocFilePath: _index.md
geekdocCollapseSection: true
---

This is the next generation ownCloud frontend.
If you're new here, head over to the the [getting started guide]({{< ref "getting-started.md" >}}) for a quick introduction.
70 changes: 70 additions & 0 deletions docs/backend-oc10.md
@@ -0,0 +1,70 @@
---
title: "Setup with ownCloud 10"
date: 2020-04-15T00:00:00+00:00
weight: 40
geekdocRepo: https://github.com/owncloud/web
geekdocEditPath: edit/master/docs
geekdocFilePath: backend-oc10.md
---

{{< toc >}}

## Prerequisites

Decide on which host and port Web will be served, for example `https://web-host:9100/web-path/`.
In this document, we will refer to the following:
- `<web-url>` as the full URL, for example `https://web-host:9100/web-path/`
- `<web-domain>` as the protocol, domain and port, for example: `https://web-host:9100`

## Setting up the ownCloud Server

Make sure you have an [ownCloud Server](https://owncloud.org/download/#owncloud-server) already installed.

### Adjusting config.php

Add the following entries to config/config.php:

- tell ownCloud where Web is located:
```
'web.baseUrl' => '<web-url>',
```

- add a CORS domain entry for Web in config.php:
```
'cors.allowed-domains' => ['<web-domain>'],
```

### Setting up OAuth2

To connect to the ownCloud server, it is necessary to set it up with OAuth2.

Install and enable the [oauth2 app](https://marketplace.owncloud.com/apps/oauth2):
```bash
% occ market:install oauth2
% occ app:enable oauth2
```

Login as administrator in the ownCloud Server web interface and go to the "User Authentication" section in the admin settings and add an entry for Web as follows:

- pick an arbitrary name for the client
- set the redirection URI to `<web-url>/oidc-callback.html`
- make sure to take note of the **client identifier** value as it will be needed in the Web configuration later on

### Setting up Web

In the local Web checkout, copy the `config/config.json.sample-oc10` file to `config/config.json` and adjust it accordingly:

- Set the "server" key to the URL of the ownCloud server including path. If the URL contains a path, please also add a **trailing slash** there.
- Set the "clientId" key to the **client identifier** as copied from the "User Authentication" section before.
- Adjust "url" and "authUrl" using the ownCloud server URL as prefix for both
- Optionally adjust "apps" for the list of apps to be loaded. These match the app names inside the "apps" folder.

## Running Web

- if running from source, make sure to [build Web]({{< ref "./building.md" >}}) first
- run by launching a rollup dev server `pnpm serve`
- when working on the Web code, rollup will recompile the code automatically

## Running acceptance tests

For testing, please refer to the [testing docs]({{< ref "testing/_index.md" >}})
36 changes: 36 additions & 0 deletions docs/backend-ocis.md
@@ -0,0 +1,36 @@
---
title: "Setup with oCIS"
date: 2020-04-15T00:00:00+00:00
weight: 50
geekdocRepo: https://github.com/owncloud/web
geekdocEditPath: edit/master/docs
geekdocFilePath: backend-ocis.md
---

{{< toc >}}

## Setting up Web

- Clone the [repository](https://github.com/owncloud/web/)
- Initally install all dependencies by running `pnpm install`
- Copy `./config/config.json.sample-ocis` to `./config/config.json` and adjust values if required

## Running Web

- Start bundling web with a watcher by running `pnpm build:w`

## Setting up oCIS

- Setup oCIS by following the [setup instructions](https://owncloud.dev/ocis/getting-started/)
- Start oCIS with local links to your bundled web frontend and config by running `WEB_ASSET_PATH=../../web/dist WEB_UI_CONFIG=../../web/dist/config.json OCIS_INSECURE=true IDM_CREATE_DEMO_USERS=true ./bin/ocis server` (and make sure to adjust paths as necessary)

## Start oCIS

- open [https://localhost:9200](https://localhost:9200) and accept the certificate
- when signing in, use one of the [available demo users](https://owncloud.dev/ocis/getting-started/demo-users/)
- whenever code changes are made, you need to manually reload the browser page (no hot reload)

## Running tests

For testing, please refer to the [testing docs]({{< ref "testing/_index.md" >}})

43 changes: 43 additions & 0 deletions docs/building.md
@@ -0,0 +1,43 @@
---
title: "Building from source"
date: 2018-05-02T00:00:00+00:00
weight: 20
geekdocRepo: https://github.com/owncloud/web
geekdocEditPath: edit/master/docs
geekdocFilePath: building.md
---

{{< toc >}}

## Building ownCloud Web

- Run `pnpm install` to install dependencies
- Run `pnpm build` to build Web and all apps included in the `packages` folder

## Updating dependencies

- Run `pnpm upgrade` to update dependencies

## Building the documentation

### Setting up

- Install [hugo](https://gohugo.io/getting-started/installing/)
- Run `make docs`

### Viewing the documentation

To view the rendered docs in the browser run:
```bash
cd hugo
hugo -D server
```

Then open "http://localhost:1313/"

When making changes to the docs, run `make docs` again and the server will pick up the changes and reload the page automatically

### Deploying the documentation

The documentation is automatically deployed from the master branch to https://owncloud.dev/clients/web/

86 changes: 86 additions & 0 deletions docs/custom-apps/_index.md
@@ -0,0 +1,86 @@
---
title: "Custom Apps"
date: 2021-08-26T00:00:00+00:00
weight: 55
geekdocRepo: https://github.com/owncloud/web
geekdocEditPath: edit/master/docs/custom-apps
geekdocFilePath: _index.md
geekdocCollapseSection: true
---

{{< toc >}}

## Introduction

In the new `web` frontend, the way custom/external apps are handled has fundamentally changed from the approach of PHP-based ownCloud X stack.
Now, all you have to do is provide a bundled Vue app and reference it in your configuration! Please note that any existing apps you may be used to can not simply be ported from the old to the new frontend.

This page documents how you can set up an example app within your frontend repo and play around with different kinds of apps and extensions. This way, you can explore how to provide users of your ownCloud with more functionality.

## Setting up the example "skeleton app"

{{< hint info >}}
This guide assumes you have either an oCIS or ownCloud 10 backend running and followed the [getting started guide]({{< ref "../getting-started.md" >}}) for setting up a development environment with the `web` frontend, having it running via either `pnpm serve` or `pnpm build:w`. You should be able to use the web UI on localhost using the respective port you've assigned (defaults are `:8080` for OC10 and `:9200` for oCIS) and see changes to your .
{{< /hint >}}

From the root of the [web repository](https://github.com/owncloud/web), change into the example skeleton app by running

```sh
cd packages/web-app-skeleton/
```

Then, you can install the necessary dependencies, bundle the code and start a development server by running

```sh
pnpm install && pnpm serve
```

In your terminal, you should see a success message and rollup (our bundler of choice) serving the content under `localhost:3000`. However, there's nothing to find under this address.


In your `config/config.json`, add the skeleton example app to the `"external_apps"` array like below:


```json
{
"id": "skeleton",
"path": "http://localhost:3000/app.js"
}
```

After saving the config file (make sure it's still a valid `JSON` format), your running `web` app should be updated automatically. Open your browser's development tools, reload the page and watch for `(SKELETON)` messages in the browser console.

## Configuration options

```
To be defined/documented
- Name, ID, logo
- Nav items, appswitcher items, quick actions
- ...
```

## Ways of providing an app

```
To be defined/documented (Bundling, CDN, app store, ...)
```

## Types of apps

```
To be defined/documented
- Application (renderable), e.g. iFrame
- Extension, e.g. preview
- Quick action, e.g. based on WOPI/Appserver
- ...
```

## Accessing existing functionality

```
To be defined/documented
- Styles, Theming
- Notifications
- Authentication, SDK
- ...
```
11 changes: 11 additions & 0 deletions docs/deployments/_index.md
@@ -0,0 +1,11 @@
---
title: "Deployments"
date: 2018-05-02T00:00:00+00:00
weight: 55
geekdocRepo: https://github.com/owncloud/web
geekdocEditPath: edit/master/docs/deployments
geekdocFilePath: _index.md
geekdocCollapseSection: true
---

Showcases of different scenarios of deploying ownCloud Web.

0 comments on commit 1237bb4

Please sign in to comment.