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