Project

General

Profile

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** 

Back