feature request #6867
Updated by Andreas Kohlbecker over 6 years ago
After an in depth discussion we decided that for phyconbank the strategy **D)** (per instance UPDATE & DELETE permission) would be the most appropriate: * a submitter will the per instance UPDATE+DELETE permission when he creates a Reference, TeamOrPersonBase, Name instance. * once a registration is set to the states `rejected`, `ready` or `published` the UPDATE+DELETE permission must be revoked again, so that the registered name and references are protected from being changed after the editing registration workflow has ended. The `RegistrationManager` (#6655) will be responsible for ~~assigning and~~ revoking of authorities. **NOTE**: It is more reliable to implement the revoking of permissions in a **`GrantedAuthorityRevokingRegistrationUpdateListener`** **`GrantedAuthorityRevokingRegistrationUpdateLister`** ---- I future is might be interesting to move the assignment of authorities into the cdmlib istelf: * A `ExtendedCreatePermissionManager`. This implements listener interfaces * hibernate `SaveOrUpdateEventListener` or `Interceptor` `Intercepter` to be able to act when a newly created instance of *Reference, TeamOrPersonBase, Name, ...* Name* is being saved, see # * `RegistrationStateChangeEventLister` to be noticed when the registration state is changed to `rejected`, `ready` or `published` so that the permissions can be revoked. ==> this has been implemented as Hibernate PostUpdateEventListener is the `GrantedAuthorityRevokingRegistrationUpdateListener` `GrantedAuthorityRevokingRegistrationUpdateLister` **DONE**