- Non-admin create was blocked (create button disabled) given their lack of rights to the binding type
- When non-admins create their project they get this binding automatically, so count case as valid
Also
- Disable remove of a member binding if there is only one user
- covers case where a non-admin can remove themselves when editing their project and not re-add
- Previously nav away was occurring inside `this.save` before we could wait for the mgmt cluster
- This meant some info was missing when we arrived at the next page
- So move wait and role change into after hook and rely on native nav in this.save again
- make userPrincipal id/name properties generic in mgnt binding types
- userPrincipalName becomes principalName
- principalId comes from this.principalName || this.userPrincipalName || this.groupPrincipalName
- use principal to determine user/group and properties in norman to save
- removed properties in norman save bindings that weren't needed
Making an exception for cluster/project owners when filtering out system bindings. Also making sure we filter out the default binding when evaluating newBindings since this yielded us adding a second admin to project pages.
https://github.com/rancher/dashboard/issues/3550#issuecomment-891359765
Turns out `authz.management.cattle.io/creator-owner-binding` is more a reflection on the current state of something rather than the origin of something.
rancher/dashboard#3296