Project

General

Profile

CdmAuthorisationAndAccessControl » History » Version 10

Andreas Kohlbecker, 08/31/2012 09:39 AM

1 1 Andreas Kohlbecker
2 3 Andreas Kohlbecker
# Cdm authorisation and access control
3 2 Andreas Kohlbecker
4
5
It is evident that the cdm library needs authorisation and access control. There are library methods which need to protected from unauthorised execution and there is also the data which is exposed by the library. Not all data should be visible to every user so a [[HibernateSpringAndRowlevelSecurity|row level access control]] is needed.
6
7
8
9 4 Andreas Kohlbecker
## Questions
10 2 Andreas Kohlbecker
11 4 Andreas Kohlbecker
12 7 Andreas Kohlbecker
1. Do we need a access control in the web service (cdmlib-remote) or is it sufficient to protect the service layer. As long web service controllers are not using DAO (cdmlib-persistence) methods directly it should not be necessary.
13 4 Andreas Kohlbecker
14
15
16 3 Andreas Kohlbecker
## Use cases
17 4 Andreas Kohlbecker
18
19 8 Andreas Kohlbecker
 A. a specific **classification sub tree** must not be **publicly visible** in the data portal and thus must be also hidden in the web service responses
20 1 Andreas Kohlbecker
21 9 Andreas Kohlbecker
 B. a specific **classification sub tree** is only visible for users which have a specific **role** but the user is not granted to **edit** anything in/below it
22 1 Andreas Kohlbecker
23 8 Andreas Kohlbecker
 C. A user is only granted to **edit descriptions** 
24
25
 D. A user is only granted to **edit structured descriptions** 
26
27
 E. Combinations of A, B and C, D must be possible
28
29 10 Andreas Kohlbecker
 F. Only users with the **roles** *Admin* or **Usermanager** or the user in question it self (if currently authenticated) are allowed to execute **change password** 
30 8 Andreas Kohlbecker
31 9 Andreas Kohlbecker
 G. Only users with the **roles** *Admin* or **Usermanager** are allowed to create or **edit** new users
32 4 Andreas Kohlbecker
33
34
 **Special cases:** 
35
36 6 Andreas Kohlbecker
* **@TaxonNames@** can potentially be shared between different taxa, thus a situation may occur where a user has grants to edit taxon A but not for taxon B, but both taxa are sharing the same name. How will we handle this situation, should the name be cloned when the user starts editing taxon A, so that taxon A has another name entity than taxon B after the user saved the latest changes?
37 4 Andreas Kohlbecker
38 5 Andreas Kohlbecker
* The same problem as described above for TaxonNames also accounts for *@References@*, but in this case the problem is more severe since references are very often part of multiple taxon names. 
39 4 Andreas Kohlbecker
40
41
42