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:
12: delete from rhnUserServerPerms p
13: where server_id = server_id_in
14: and user_id not in (select user_id
15: from rhnUserServerPermsDupes d
16: where p.server_id = d.server_id);
17:
18: insert into rhnUserServerPerms(user_id, server_id) (
19: select distinct user_id, server_id_in
20: from rhnUserServerPermsDupes d
21: where server_id = server_id_in
22: and user_id not in (
23: select user_id
24: from rhnUserServerPerms p
25: where p.server_id = d.server_id)
26: );
27: end update_perms_for_server;
28:
29:
30: procedure update_perms_for_user(
31: user_id_in in number
32: ) is
33: begin
34:
35: delete from rhnUserServerPerms up
36: where user_id = user_id_in
37: and not exists (
38: select 1
39: from rhnUserServerPermsDupes uspd
40: where uspd.user_id = up.user_id
41: and uspd.server_id = up.server_id);
42:
43:
44: insert into rhnUserServerPerms (user_id, server_id)
45: select distinct user_id_in, server_id
46: from rhnUserServerPermsDupes uspd
47: where uspd.user_id = user_id_in
48: and not exists (
49: select 1
50: from rhnUserServerPerms usp
51: where usp.user_id = user_id_in
52: and usp.server_id = uspd.server_id);
53: end update_perms_for_user;
54:
55:
56:
57: procedure update_perms_for_server_group(
58: server_group_id_in in number
59: ) is
60: cursor users is
61:
62: select usgp.user_id id
63: from rhnUserServerGroupPerms usgp
64: where usgp.server_group_id = server_group_id_in
65: and not exists (
66: select 1
67: from rhnUserGroup ug,
68: rhnUserGroupMembers ugm,
69: rhnServerGroup sg,
70: rhnUserGroupType ugt
71: where ugt.label = 'org_admin'
72: and ugt.id = ug.group_type
73: and sg.id = server_group_id_in
74: and ugm.user_id = usgp.user_id
75: and ug.org_id = sg.org_id
76: and ugm.user_group_id = ug.id
77: );
78: begin
79: for u in users loop
80: update_perms_for_user(u.id);
81: end loop;
82: end update_perms_for_server_group;
83: end rhn_cache;