RHN_CACHE
DDL scriptPackage source
Legend: string keyword reserved word operator
1: package
2: rhn_cache
3: is
4: version varchar2(100) := '$Id: universe.satellite.sql,v 1.2 2008/06/09 08:37:56 mmraka Exp $';
5: procedure update_perms_for_server(
6: server_id_in in number
7: );
8: procedure update_perms_for_user(
9: user_id_in in number
10: );
11: procedure update_perms_for_server_group(
12: server_group_id_in in number
13: );
14: end rhn_cache;
Package body source
Legend: string keyword reserved word operator
1: package body
2: rhn_cache
3: is
4: body_version varchar2(100) := '$Id: universe.satellite.sql,v 1.2 2008/06/09 08:37:56 mmraka Exp $';
5: procedure update_perms_for_server(
6: server_id_in in number
7: ) is
8: begin
9: delete from rhnUserServerPerms where server_id = server_id_in;
10: insert into rhnUserServerPerms(user_id, server_id) (
11: select distinct user_id, server_id_in
12: from rhnUserServerPermsDupes
13: where server_id = server_id_in
14: );
15: end update_perms_for_server;
16: procedure update_perms_for_user(
17: user_id_in in number
18: ) is
19: begin
20: delete from rhnUserServerPerms
21: where user_id = user_id_in
22: and server_id in
23: (select server_id
24: from rhnUserServerPerms
25: where user_id = user_id_in
26: minus
27: select server_id
28: from rhnUserServerPermsDupes uspd
29: where uspd.user_id = user_id_in);
30: insert into rhnUserServerPerms (user_id, server_id)
31: select distinct user_id_in, server_id
32: from rhnUserServerPermsDupes uspd
33: where uspd.user_id = user_id_in
34: and not exists
35: (select 1
36: from rhnUserServerPerms usp
37: where usp.user_id = user_id_in
38: and usp.server_id = uspd.server_id);
39: end update_perms_for_user;
40: procedure update_perms_for_server_group(
41: server_group_id_in in number
42: ) is
43: cursor users is
44: select usgp.user_id id
45: from rhnUserServerGroupPerms usgp
46: where usgp.server_group_id = server_group_id_in
47: and not exists (
48: select 1
49: from rhnUserGroup ug,
50: rhnUserGroupMembers ugm,
51: rhnServerGroup sg,
52: rhnUserGroupType ugt
53: where ugt.label = 'org_admin'
54: and sg.id = server_group_id_in
55: and ugm.user_id = usgp.user_id
56: and ug.org_id = sg.org_id
57: and ugm.user_group_id = ug.id
58: );
59: begin
60: for u in users loop
61: update_perms_for_user(u.id);
62: end loop;
63: end update_perms_for_server_group;
64: end rhn_cache;