aragon / client

(Aragon 1) Create and manage decentralized organizations on Ethereum.
https://client.aragon.org
GNU Affero General Public License v3.0
834 stars 275 forks source link

Removing All Permissions does not "Uninstall" an app instance #575

Open lkngtn opened 5 years ago

lkngtn commented 5 years ago

Describe the bug It is my understanding that app instances can be "uninstalled" from an organization by removing all permissions granted to the app instance/entity and all permissions (and managers) granted from the app instance.

Mainnet or testnet? rinkeby

Organization https://rinkeby.aragon.org/#/0x61054DB91BcA13EFa3F51585958B5228a41591D9/0x88ab384e4471bf058ebe202b01318c27d4352cdd

To Reproduce Steps to reproduce the behavior: 1: See that two instances of the finance app are installed in the org. (or dao apps 0x61054DB91BcA13EFa3F51585958B5228a41591D9)

  1. Look at permissions app (or dao acl 0x61054DB91BcA13EFa3F51585958B5228a41591D9) and see that no permissions are assigned to or from one of the finance app instances.

Expected behavior If all permissions are removed, the app should move to permissionless apps section of dao apps [dao-addres] --all and should not be shown in the UI.

Screenshots

image

Desktop (please complete the following information):

Additional context This is problematic as there is no way for an organization to remove a no longer used application from the UI.

lkngtn commented 5 years ago

Wanted to bump this issue to add a few stories about how this issue comes up.

  1. If you create a Token Democracy organization from the onboarding process and decide later that the support was set incorrectly you are in a bit of a bind. By default the "modify support" permission is discarded and unrecoverable, so in order to get around this you would need to install a new instance of the voting app, and transfer any permissions assigned to the old voting app instance to the new voting app instance. You are no longer using the old voting app instance anywhere within the organization, but the voting app instance is always visible. A constant reminder of the mistakes you have made in the past... 😭

  2. Some applications have parameters that are only set at initialization, such as the token managers "transferable or non-transferable setting", If you want to convert a token from one or the other you would need to re-deploy the token manager and any voting apps that point to it, and then re-assign permissions. But again now you will have a useless token manager and useless voting app(s) that remain permanently. It would be great if there was a way to re-initialize existing apps to change these parameters, to avoid having to completely redeploy an organization or migrate token balances from one organization to another.

Edit: related to #738

lkngtn commented 5 years ago

Also I noticed this was tagged as a "design request", I don't think there is any design necessary for a basic solution. The UI just needs to not show applications which have no permissions associated with them.

sohkai commented 5 years ago

@lkngtn I think we could combine this with https://github.com/aragon/aragon/issues/654 ("without permissions" is essentially uninstalled).

The biggest question is where we show these so the user can see his list of uninstalled apps, but yes, we should remove them from the menu panel right now.

stellarmagnet commented 5 years ago

Would love having this feature (hiding apps from left menu when permissions are removed), especially as TPS is in Rinkeby and potentially changing a bunch of things around -- and uncovering bugs in our UI template :)

The biggest question is where we show these so the user can see his list of uninstalled apps, but yes, we should remove them from the menu panel right now.

I think a pretty easy solution can be that the "Installed apps" tab has two sections.

image

Apps without permissions show up in the Unactivated section (whether they are freshly installed, or ones where permissions were retroactively removed).

This may require a little brainstorming for the best terms to use (not sure if installed is confusing when used in conjunction with activated and unactivated. @luisivan @lkngtn @dizzypaty

sohkai commented 5 years ago

@stellarmagnet It also presents a challenge as some apps may be usable and unusable instances, so they could appear in both sections.

stellarmagnet commented 5 years ago

@sohkai I think appearing in both sections is fine.

Or maybe a better option is we show the "installed instance" contract address on the app card in the app center installed apps landing view, and list the active/inactive contract addresses within the card. Will share mock soon