Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
3c7c109
docs: Add ADR for permissions page condition-slot architecture
thekidnamedkd Jun 30, 2026
136772f
feat: Add permission-id reverse dictionary util
thekidnamedkd Jun 30, 2026
75fd75d
feat: Add permission entity resolver and ALLOW_FLAG/ANY_ADDR sentinels
thekidnamedkd Jun 30, 2026
0ad2a20
feat: Add settings permissions page route and shell
thekidnamedkd Jun 30, 2026
eb2e91e
feat: Add permission row types and condition-type resolver
thekidnamedkd Jun 30, 2026
c85c7cd
feat: Add PERMISSION_CONDITION slot and no-condition fallback component
thekidnamedkd Jun 30, 2026
712108e
feat: Add condition slot registry and voting-power/execute-selector c…
thekidnamedkd Jun 30, 2026
633b6ae
feat: Add permissions endpoint mock data for preview mode
thekidnamedkd Jun 30, 2026
2ae0bdc
feat: Add permissions list with linked-account tabs and condition rou…
thekidnamedkd Jun 30, 2026
88476b2
feat: Use full permission dictionary with raw permission names
thekidnamedkd Jun 30, 2026
d674356
feat: Redesign permission rows with details and condition definition …
thekidnamedkd Jun 30, 2026
06e0cdd
feat: Link to permissions page from DAO settings
thekidnamedkd Jun 30, 2026
7b35589
fix: Show plugin type tag for permission who and where entities
thekidnamedkd Jun 30, 2026
1746cfb
chore: Add changeset for permissions page
thekidnamedkd Jun 30, 2026
1249445
chore: Document PERMISSION_CONDITION in generated slot docs
thekidnamedkd Jun 30, 2026
54b6f1f
feat: Show permissions entry as a DAO settings info row
thekidnamedkd Jun 30, 2026
e3833a1
feat: Add MembershipConditionSlot component for multisig membership c…
harryburger Jul 1, 2026
6fb67b6
fix: Update Condition registry metrics to reflect accurate counts
harryburger Jul 1, 2026
f019c25
Merge branch 'main' into app-954-build-ui-for-permission-page
harryburger Jul 1, 2026
ebca8a8
feat: Add permissions graph view for DAO settings
thekidnamedkd Jul 1, 2026
f442e17
feat: Refine permissions graph nodes, edges, and detail card
thekidnamedkd Jul 1, 2026
a85e532
refactor: Reuse shared string/address utils and add permission-id helper
thekidnamedkd Jul 1, 2026
05140f0
feat: Gate permissions page and entry points behind a feature flag
thekidnamedkd Jul 1, 2026
fd2f54b
fix: Scope DAO settings e2e crawl to governance process links
thekidnamedkd Jul 1, 2026
823d4f5
feat: Align permissions list with Figma and resolve real entities
thekidnamedkd Jul 1, 2026
64977ba
chore: Remove permissions condition-slot ADR
thekidnamedkd Jul 1, 2026
c42658e
feat: Add self-contained Patito DAO permissions preview matching Figma
thekidnamedkd Jul 2, 2026
6eb5db4
feat: Format voting-power condition amount with token decimals
thekidnamedkd Jul 2, 2026
cc0a8b0
Merge remote-tracking branch 'origin/main' into app-954-build-ui-for-…
thekidnamedkd Jul 2, 2026
93ccd85
Merge branch 'app-954-build-ui-for-permission-page' into app-967-buil…
thekidnamedkd Jul 2, 2026
02bcba6
feat: Share permissions data and controls across list and graph views
thekidnamedkd Jul 2, 2026
fd4fd13
fix: Elevate selected permission edges above dimmed connectors
thekidnamedkd Jul 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/app-954-permissions-page.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@aragon/app": patch
---

Add a permissions overview subpage to DAO settings (list view): linked-account tabs, permission rows (who/where/permission/condition) with expandable details and a per-condition slot system, plus a "Permissions" entry link on the settings page
7 changes: 4 additions & 3 deletions docs/slots/_metrics.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,16 @@

| Metric | Value |
|---|---|
| Total slots | 33 |
| Registered plugins | 7 |
| Total slots | 34 |
| Registered plugins | 8 |
| Unregistered slots | 4 |

## Slots Per Module

| Module | Enum | Count |
|---|---|---|
| Governance | `GovernanceSlotId` | 20 |
| Settings | `SettingsSlotId` | 4 |
| Settings | `SettingsSlotId` | 5 |
| Create DAO | `CreateDaoSlotId` | 5 |
| Application | `ApplicationSlotId` | 1 |
| Dashboard (DAO-level) | `DashboardDaoSlotId` | 1 |
Expand All @@ -34,6 +34,7 @@
| SPP | 7 | 2 | - | - | 9 |
| Capital Distributor | - | - | - | 1 | 1 |
| Gauge Voter | - | - | - | 1 | 1 |
| Condition registry | - | 3 | - | - | 3 |

## Unregistered Slots

Expand Down
3 changes: 2 additions & 1 deletion docs/slots/settings-slots.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,12 @@
**Enum:** `SettingsSlotId`
**Location:** `src/modules/settings/constants/moduleSlots.ts`

The settings module defines 4 slots for plugin-specific governance settings, updates, and uninstallation.
The settings module defines 5 slots for plugin-specific governance settings, updates, and uninstallation.

| Slot ID | Type | Description | Registered By |
|---|---|---|---|
| `SETTINGS_GOVERNANCE_SETTINGS_HOOK` | Function | Returns the current governance settings for a plugin | Token Voting, Multisig, Lock To Vote, Admin, SPP |
| `SETTINGS_BUILD_PREPARE_PLUGIN_UPDATE_DATA` | Function | Builds the transaction data for preparing a plugin update | Token Voting, Multisig, Lock To Vote |
| `SETTINGS_GET_UNINSTALL_HELPERS` | Function | Returns helper data needed for uninstalling the plugin | Token Voting, Multisig, Lock To Vote, SPP |
| `SETTINGS_PLUGIN_TO_FORM_DATA` | Function | Converts plugin settings to form-compatible data for the settings editor | Token Voting, Lock To Vote |
| `PERMISSION_CONDITION` | Component | Renders the condition-specific detail for a permission grant (routed by condition type) | Condition registry |
2 changes: 1 addition & 1 deletion e2e/helpers/pages/daoSettingsPage/daoSettingsPage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export class DaoSettingsPage extends DaoPage {
readonly daoInfoSection = () => this.page.getByRole('main');

readonly governanceProcesses = () =>
this.page.getByRole('main').locator('a[href*="/settings/"]');
this.page.locator('#governance').locator('a[href*="/settings/"]');

readonly firstProcess = () => this.governanceProcesses().first();

Expand Down
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
"dependencies": {
"@aragon/aragon-domain": "^0.3.1",
"@aragon/gov-ui-kit": "^2.8.0",
"@dagrejs/dagre": "^3.0.0",
"@floating-ui/react": "^0.27.19",
"@number-flow/react": "^0.6.0",
"@radix-ui/react-dialog": "^1.1.17",
Expand All @@ -51,6 +52,7 @@
"@tanstack/react-query-devtools": "^5.101.0",
"@walletconnect/core": "^2.23.9",
"@walletconnect/utils": "^2.23.9",
"@xyflow/react": "^12.11.1",
"classnames": "^2.5.1",
"deepmerge-ts": "^7.1.5",
"framer-motion": "^12.40.0",
Expand Down
162 changes: 162 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file added public/patitoDao.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/patitoDeveloperDao.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading