No description
Find a file
2025-11-15 02:45:24 +00:00
.github chore: Update github actions workflows 2025-08-27 15:34:44 +02:00
appinfo feat: Create shares list report + send it by email + diff 2025-10-27 13:27:21 +01:00
lib refactor(psalm): Bump psalm to level 1 2025-10-27 15:23:43 +01:00
src feat(frontend): Adapt layout to new share tab design 2025-08-21 16:33:30 +02:00
tests fix(psalm): Add stubs for private nextcloud APIs 2025-10-27 14:06:41 +01:00
vendor-bin chore(rector): Apply nextcloud 30 set 2025-08-25 10:31:40 +02:00
.babelrc.js Add subfolder listing to sharing tab 2019-10-11 08:30:17 +02:00
.eslintignore Fix eslint config 2022-06-23 11:58:48 +02:00
.eslintrc.js Fix eslint config 2022-06-23 11:58:48 +02:00
.gitignore chore: Update workflows and use composer-bin 2025-08-21 12:21:19 +02:00
.nextcloudignore Move to nextcloudignore 2021-02-15 09:07:36 +01:00
.php-cs-fixer.dist.php chore: Update workflows and use composer-bin 2025-08-21 12:21:19 +02:00
.stylelintrc.js Add subfolder listing to sharing tab 2019-10-11 08:30:17 +02:00
babel.config.js Fix eslint config 2022-06-23 11:58:48 +02:00
CHANGELOG.md chore: update changelog 2023-11-27 12:39:08 +01:00
composer.json feat: Create shares list report + send it by email + diff 2025-10-27 13:27:21 +01:00
composer.lock feat: Create shares list report + send it by email + diff 2025-10-27 13:27:21 +01:00
krankerl.toml Move to nextcloudignore 2021-02-15 09:07:36 +01:00
LICENSE Initial commit 2018-05-03 14:50:42 +02:00
package-lock.json build(deps): bump @nextcloud/router from 3.0.1 to 3.1.0 2025-11-15 02:03:48 +00:00
package.json build(deps): bump @nextcloud/router from 3.0.1 to 3.1.0 2025-11-15 02:03:48 +00:00
psalm.xml refactor(psalm): Bump psalm to level 1 2025-10-27 15:23:43 +01:00
README.md feat: Create shares list report + send it by email + diff 2025-10-27 13:27:21 +01:00
rector.php chore(rector): Apply nextcloud 30 set 2025-08-25 10:31:40 +02:00
webpack.js Update webpack script 2022-06-23 11:54:33 +02:00

ShareListing

This app allows generating reports of shares on the system.

Usage

Commands

List

./occ sharing:list [-u|--user [USER]] [-p|--path [PATH]] [-t|--token [TOKEN]] [-f|--filter [FILTER]] [-o|--output FORMAT]

Without options, the command yields the unfiltered list of all shares.
With options, the list is narrowed down using the filters set.

Options
  • -u [USER] or --user [USER]
    List only shares of the given user.
  • -p [PATH] or --path [PATH]
    List only shares within the given path.
  • -t [TOKEN] or --token [TOKEN]
    List only shares that use a token that (at least partly) matches the argument.
  • -f [FILTER] or --filter [FILTER]
    List only shares where the TYPE matches the argument.
    Possible values for the filter argument: {owner, initiator, recipient}
  • -o FORMAT or --output FORMAT
    Set the output format (json or csv, default is json).

Send

./occ sharing:send [-u|--user USER] [-p|--path PATH] [-t|--token TOKEN] [-f|--filter FILTER] [-o|--output FORMAT]

Without options, the command yields the unfiltered list of all shares.
With options, the list is narrowed down using the filters set.

Options
  • -r or --recipients
    Recipients users of generated reports.
  • -x or --target-path
    Generated reports will be stored on this path.
  • -d or --diff
    Create a differential report in json format from the last available report.
  • -u [USER] or --user [USER]
    List only shares of the given user.
  • -p [PATH] or --path [PATH]
    List only shares within the given path.
  • -t [TOKEN] or --token [TOKEN]
    List only shares that use a token that (at least partly) matches the argument.
  • -f [FILTER] or --filter [FILTER]
    List only shares where the TYPE matches the argument.
    Possible values for the filter argument: {owner, initiator, recipient}

Examples

To better illustrate how the app work see the examples below:

Example 1

Listing all shares user0 is a participant in (be it owner, initiator or recipient):

./occ sharing:list --user user0

[
    {
        "owner": "admin",
        "initiator": "user0",
        "time": "2018-04-24T08:29:26+00:00",
        "permissions": 31,
        "path": "\/F1",
        "type": "user",
        "recipient": "user1"
    },
    {
        "owner": "admin",
        "initiator": "admin",
        "time": "2018-04-24T07:34:58+00:00",
        "permissions": 31,
        "path": "\/F2",
        "type": "user",
        "recipient": "user0"
    },
    {
        "owner": "admin",
        "initiator": "admin",
        "time": "2018-04-24T07:35:02+00:00",
        "permissions": 31,
        "path": "\/F1",
        "type": "user",
        "recipient": "user0"
    },
    {
        "owner": "admin",
        "initiator": "user0",
        "time": "2018-04-24T08:29:43+00:00",
        "permissions": 1,
        "path": "\/F1\/SF1",
        "type": "link",
        "token": "eoT8kF5B9jtmMda"
    }
]

Example 2

Listing all shares user0 is a participant in (be it owner, initiator or recipient) limited to the path F1

./occ sharing:list --user user0 --path F1

[
    {
        "owner": "admin",
        "initiator": "user0",
        "time": "2018-04-24T08:29:26+00:00",
        "permissions": 31,
        "path": "\/F1",
        "type": "user",
        "recipient": "user1"
    },
    {
        "owner": "admin",
        "initiator": "admin",
        "time": "2018-04-24T07:35:02+00:00",
        "permissions": 31,
        "path": "\/F1",
        "type": "user",
        "recipient": "user0"
    },
    {
        "owner": "admin",
        "initiator": "user0",
        "time": "2018-04-24T08:29:43+00:00",
        "permissions": 1,
        "path": "\/F1\/SF1",
        "type": "link",
        "token": "eoT8kF5B9jtmMda"
    }
]

Example 3

List all info about all shares

./occ sharing:list

[
    {
        "owner": "admin",
        "initiator": "admin",
        "time": "2018-04-24T07:34:58+00:00",
        "permissions": 31,
        "path": "\/F2",
        "type": "user",
        "recipient": "user0"
    },
    {
        "owner": "admin",
        "initiator": "admin",
        "time": "2018-04-24T07:35:02+00:00",
        "permissions": 31,
        "path": "\/F1",
        "type": "user",
        "recipient": "user0"
    },
    {
        "owner": "admin",
        "initiator": "user0",
        "time": "2018-04-24T08:29:26+00:00",
        "permissions": 31,
        "path": "\/F1",
        "type": "user",
        "recipient": "user1"
    },
    {
        "owner": "admin",
        "initiator": "user0",
        "time": "2018-04-24T08:29:43+00:00",
        "permissions": 1,
        "path": "\/F1\/SF1",
        "type": "link",
        "token": "eoT8kF5B9jtmMda"
    },
    {
        "owner": "admin",
        "initiator": "user0",
        "time": "2018-04-24T08:29:26+00:00",
        "permissions": 31,
        "path": "\/F1",
        "type": "user",
        "recipient": "user1"
    },
    {
        "owner": "admin",
        "initiator": "admin",
        "time": "2018-04-24T07:34:58+00:00",
        "permissions": 31,
        "path": "\/F2",
        "type": "user",
        "recipient": "user0"
    },
    {
        "owner": "admin",
        "initiator": "admin",
        "time": "2018-04-24T07:35:02+00:00",
        "permissions": 31,
        "path": "\/F1",
        "type": "user",
        "recipient": "user0"
    },
    {
        "owner": "admin",
        "initiator": "user0",
        "time": "2018-04-24T08:29:43+00:00",
        "permissions": 1,
        "path": "\/F1\/SF1",
        "type": "link",
        "token": "eoT8kF5B9jtmMda"
    }
]

Example 4

List all shares that user0 is the initiator of in the path F1 (of that user).

./occ sharing:list --user user0 --path F1 --filter initiator

[
    {
        "owner": "admin",
        "initiator": "user0",
        "time": "2018-04-24T08:29:26+00:00",
        "permissions": 31,
        "path": "\/F1",
        "type": "user",
        "recipient": "user1"
    },
    {
        "owner": "admin",
        "initiator": "user0",
        "time": "2018-04-24T08:29:43+00:00",
        "permissions": 1,
        "path": "\/F1\/SF1",
        "type": "link",
        "token": "eoT8kF5B9jtmMda"
    }
]