{"id":191,"date":"2026-04-03T13:02:08","date_gmt":"2026-04-03T18:02:08","guid":{"rendered":"https:\/\/www2.dataunfold.com\/?post_type=docs&#038;p=191"},"modified":"2026-04-03T13:02:21","modified_gmt":"2026-04-03T18:02:21","password":"","slug":"sharing-and-permissions","status":"publish","type":"docs","link":"https:\/\/www2.dataunfold.com\/?docs=sharing-and-permissions","title":{"rendered":"Sharing and Permissions"},"content":{"rendered":"\n<p><strong># Sharing &amp; Permissions<\/strong><\/p>\n\n\n\n<p>This guide explains how to collaborate and manage access in DataUnfold.<\/p>\n\n\n\n<p><strong>## Roles &amp; access<\/strong><\/p>\n\n\n\n<p>&#8211; Common roles: Viewer, Editor, Owner, Admin (names may vary by deployment).<\/p>\n\n\n\n<p>&#8211; Admins can manage users and assign scoped project or collection access.<\/p>\n\n\n\n<p>&#8211; Editors and Admins already have global project access.<\/p>\n\n\n\n<p><strong>## Share a project<\/strong><\/p>\n\n\n\n<p>1. Open the project dashboard as an `admin`.<\/p>\n\n\n\n<p>2. Use the <strong>**Share**<\/strong> button in the dashboard header.<\/p>\n\n\n\n<p>3. Search for a user and apply `View only`, `Upload only`, `Edit`, or `No access`.<\/p>\n\n\n\n<p>4. The change is saved through the same backend scoped-permission flow used by Account Management.<\/p>\n\n\n\n<p><strong>## How project sharing behaves<\/strong><\/p>\n\n\n\n<p>&#8211; Sharing a project adds that project ID to the user\u2019s scoped `projects` permissions.<\/p>\n\n\n\n<p>&#8211; A `view_only` user is automatically switched to `scoped` when project access is granted.<\/p>\n\n\n\n<p>&#8211; Removing the last scoped project or collection access switches the user back to `view_only`.<\/p>\n\n\n\n<p>&#8211; `admin` and `editor` users do not need project-specific sharing.<\/p>\n\n\n\n<p><strong>## Public access<\/strong><\/p>\n\n\n\n<p>&#8211; Public access is configured per project from the Share dialog or project settings.<\/p>\n\n\n\n<p>&#8211; Public access supports `View only` or `Upload only`.<\/p>\n\n\n\n<p>&#8211; Public access never grants edit rights.<\/p>\n\n\n\n<p>&#8211; A protected system `public` user exists in the database by default. It is not loginable and cannot be deleted or edited from account management.<\/p>\n\n\n\n<p>&#8211; A public route is normalized as that `public` user identity without requiring login.<\/p>\n\n\n\n<p>&#8211; Runtime access checks for a public route are resolved from the protected `public` user&#8217;s scoped project permissions.<\/p>\n\n\n\n<p>&#8211; `Upload only` uses the same upload-only dashboard behavior as scoped user permissions.<\/p>\n\n\n\n<p>&#8211; When `canUpload` is false, upload UI must stay hidden: no upload CTA, no add-media overlay, and no floating `+` add menu.<\/p>\n\n\n\n<p><strong>## Common issues<\/strong><\/p>\n\n\n\n<p>&#8211; User not visible in share dialog: confirm the account exists and is not your current user.<\/p>\n\n\n\n<p>&#8211; Missing permissions after update: verify the user is not relying on a stale session and refresh if needed.<\/p>\n\n\n\n<p><strong>## Best practices<\/strong><\/p>\n\n\n\n<p>&#8211; Prefer scoped sharing over broad global roles when a user only needs one project.<\/p>\n\n\n\n<p>&#8211; Review scoped access periodically, especially for upload or edit permissions.<\/p>\n","protected":false},"excerpt":{"rendered":"<p># Sharing &amp; Permissions This guide explains how to collaborate and manage access in DataUnfold. ## Roles &amp; access &#8211; Common roles: Viewer, Editor, Owner, Admin (names may vary by deployment). &#8211; Admins can manage users and assign scoped project or collection access. &#8211; Editors and Admins already have global project access. ## Share a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"doc_category":[6],"doc_tag":[],"class_list":["post-191","docs","type-docs","status-publish","hentry","doc_category-configurations"],"year_month":"2026-04","word_count":345,"total_views":0,"reactions":{"happy":0,"normal":0,"sad":0},"author_info":{"name":"dataunfold","author_nicename":"dataunfold","author_url":"https:\/\/www2.dataunfold.com\/?author=1"},"doc_category_info":[{"term_name":"Configurations","term_url":"https:\/\/www2.dataunfold.com\/?doc_category=configurations"}],"doc_tag_info":[],"_links":{"self":[{"href":"https:\/\/www2.dataunfold.com\/index.php?rest_route=\/wp\/v2\/docs\/191","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www2.dataunfold.com\/index.php?rest_route=\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/www2.dataunfold.com\/index.php?rest_route=\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/www2.dataunfold.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www2.dataunfold.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=191"}],"version-history":[{"count":1,"href":"https:\/\/www2.dataunfold.com\/index.php?rest_route=\/wp\/v2\/docs\/191\/revisions"}],"predecessor-version":[{"id":192,"href":"https:\/\/www2.dataunfold.com\/index.php?rest_route=\/wp\/v2\/docs\/191\/revisions\/192"}],"wp:attachment":[{"href":"https:\/\/www2.dataunfold.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=191"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/www2.dataunfold.com\/index.php?rest_route=%2Fwp%2Fv2%2Fdoc_category&post=191"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/www2.dataunfold.com\/index.php?rest_route=%2Fwp%2Fv2%2Fdoc_tag&post=191"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}