comparison scripts/migration/migrate_permissions.sql @ 10:a50cf11e5178

Rewrite LGDataverse completely upgrading to dataverse4.0
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Tue, 08 Sep 2015 17:00:21 +0200
parents
children
comparison
equal deleted inserted replaced
9:5926d6419569 10:a50cf11e5178
1 -- reference queries for duplicate roles in vdc_role
2 -- (created when user accounts where merged)
3 -- NOTE: may need to run multiple times
4
5 /*
6 select * from _dvn3_vdcrole
7 where vdcuser_id || '|' || vdc_id || '|' || role_id in
8 (
9 select vdcuser_id || '|' || vdc_id || '|' || role_id from _dvn3_vdcrole
10 group by vdcuser_id, vdc_id, role_id
11 having count(*) > 1
12 )
13 order by vdcuser_id, vdc_id, role_id
14
15
16 delete from _dvn3_vdcrole where id in
17 (
18 select max(id) from _dvn3_vdcrole
19 group by vdcuser_id, vdc_id, role_id
20 having count(*) >1
21 order by max(id)
22 )
23 */
24
25 -----------------------
26 -- dataverses role assignments
27 -----------------------
28
29 -- admin (from the vdcnetwork creator)
30 insert into roleassignment ( assigneeidentifier, definitionpoint_id, role_id)
31 select '@'|| useridentifier, vdcn.id, dr.id
32 from _dvn3_vdcnetwork vdcn, authenticateduser, dataverserole dr
33 where vdcn.creator_id = authenticateduser.id
34 and dr.alias='admin';
35
36 -- admin
37 insert into roleassignment ( assigneeidentifier, definitionpoint_id, role_id)
38 select '@'|| useridentifier, vdc_id, dr.id
39 from _dvn3_vdcrole, authenticateduser, dataverserole dr
40 where _dvn3_vdcrole.vdcuser_id = authenticateduser.id
41 and role_id=3 and dr.alias='admin';
42 -- curator
43 insert into roleassignment ( assigneeidentifier, definitionpoint_id, role_id)
44 select '@'|| useridentifier, vdc_id, dr.id
45 from _dvn3_vdcrole, authenticateduser, dataverserole dr
46 where _dvn3_vdcrole.vdcuser_id = authenticateduser.id
47 and role_id=2 and dr.alias='curator';
48 -- contributor
49 insert into roleassignment ( assigneeidentifier, definitionpoint_id, role_id)
50 select '@'|| useridentifier, vdc_id, dr.id
51 from _dvn3_vdcrole, authenticateduser, dataverserole dr
52 where _dvn3_vdcrole.vdcuser_id = authenticateduser.id
53 and role_id=1 and dr.alias='dsContributor';
54 -- member
55 insert into roleassignment ( assigneeidentifier, definitionpoint_id, role_id)
56 select '@'|| useridentifier, vdc_id, dr.id
57 from _dvn3_vdcrole, authenticateduser, dataverserole dr
58 where _dvn3_vdcrole.vdcuser_id = authenticateduser.id
59 and role_id=4 and dr.alias='member';
60
61 -- groups (as members)
62 insert into roleassignment ( assigneeidentifier, definitionpoint_id, role_id)
63 select '&'|| groupalias, vdcs_id, dr.id
64 from _dvn3_vdc_usergroup, explicitgroup, dataverserole dr
65 where _dvn3_vdc_usergroup.allowedgroups_id = explicitgroup.id
66 and dr.alias='member';
67
68 -----------------------
69 -- dataset role assignments
70 -----------------------
71
72 -- contributor (from the study creator)
73 insert into roleassignment ( assigneeidentifier, definitionpoint_id, role_id)
74 select '@'|| useridentifier, ds.id, dr.id
75 from _dvn3_study s, authenticateduser, dataverserole dr, dataset ds
76 where s.creator_id = authenticateduser.id
77 and ds.authority = s.authority
78 and ds.protocol = s.protocol
79 and ds.identifier = s.studyid
80 and dr.alias='editor';
81
82 -- member
83 insert into roleassignment ( assigneeidentifier, definitionpoint_id, role_id)
84 select '@'|| useridentifier, ds.id, dr.id
85 from _dvn3_study_vdcuser, _dvn3_study s, authenticateduser, dataverserole dr, dataset ds
86 where _dvn3_study_vdcuser.allowedusers_id = authenticateduser.id
87 and _dvn3_study_vdcuser.studies_id = s.id
88 and ds.authority = s.authority
89 and ds.protocol = s.protocol
90 and ds.identifier = s.studyid
91 and dr.alias='member';
92
93 -- groups (as members)
94 insert into roleassignment ( assigneeidentifier, definitionpoint_id, role_id)
95 select '&'|| groupalias, ds.id, dr.id
96 from _dvn3_study_usergroup, _dvn3_study s, explicitgroup, dataverserole dr, dataset ds
97 where _dvn3_study_usergroup.allowedgroups_id = explicitgroup.id
98 and _dvn3_study_usergroup.studies_id = s.id
99 and ds.authority = s.authority
100 and ds.protocol = s.protocol
101 and ds.identifier = s.studyid
102 and dr.alias='member';
103
104 -----------------------
105 -- file role assignments
106 -----------------------
107
108 insert into roleassignment ( assigneeidentifier, definitionpoint_id, role_id)
109 select '@'|| useridentifier, studyfiles_id, dr.id
110 from _dvn3_studyfile_vdcuser, authenticateduser, dataverserole dr
111 where _dvn3_studyfile_vdcuser.allowedusers_id = authenticateduser.id
112 and _dvn3_studyfile_vdcuser.studyfiles_id in (select id from datafile)
113 and dr.alias='fileDownloader';
114
115 insert into roleassignment ( assigneeidentifier, definitionpoint_id, role_id)
116 select '&'|| groupalias, studyfiles_id, dr.id
117 from _dvn3_studyfile_usergroup, explicitgroup, dataverserole dr
118 where _dvn3_studyfile_usergroup.allowedgroups_id = explicitgroup.id
119 and _dvn3_studyfile_usergroup.studyfiles_id in (select id from datafile)
120 and dr.alias='fileDownloader';
121
122