Main Tables Views Materialized Views Indexes Constraints Triggers Procedures Functions Packages Sequences Java Sources Sanity Check Index DDL scrips
Package source Package body source

RHN_CACHE

DDL script

Package source

Legend: comment string keyword reserved word operator
     1: package
     2: rhn_cache
     3: is
     4: 	version varchar2(100) := '';
     5: 
     6: 	-- this searches out all users who get perms...
     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: comment string keyword reserved word operator
     1: package body
     2: rhn_cache
     3: is
     4: 	body_version varchar2(100) := '';
     5: 
     6: 	-- this searches out all users who get perms...
     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: 	-- this means a server got added or removed, so we
    46: 	-- can't key off of a server anywhere.
    47: 	procedure update_perms_for_server_group(
    48: 		server_group_id_in in number
    49: 	) is
    50: 		cursor users is
    51: 			-- org admins aren't affected, so don't test for them
    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;