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_CONFIG_CHANNEL

DDL script

Package source

Legend: comment string keyword reserved word operator
     1: PACKAGE rhn_config_channel
     2: IS
     3:     FUNCTION get_user_chan_access(config_channel_id_in IN NUMBER, user_id_in IN NUMBER) RETURN NUMBER;
     4:     FUNCTION get_user_revision_access(config_revision_id_in IN NUMBER, user_id_in IN NUMBER) RETURN NUMBER;
     5:     FUNCTION get_user_file_access(config_file_id_in IN NUMBER, user_id_in IN NUMBER) RETURN NUMBER;
     6:     FUNCTION action_diff_revision_status(action_config_revision_id_in IN NUMBER) RETURN VARCHAR2;
     7: END rhn_config_channel;

Package body source

Legend: comment string keyword reserved word operator
     1: PACKAGE BODY rhn_config_channel
     2: IS
     3:     FUNCTION action_diff_revision_status(action_config_revision_id_in IN NUMBER)
     4:     RETURN VARCHAR2
     5:     IS
     6:     	failure_reason VARCHAR2(4000);
     7: 	result_is_null NUMBER;
     8: 	result_exists NUMBER;
     9:     BEGIN
    10: 	select extant, is_null, reason
    11: 	into   result_exists, result_is_null, failure_reason
    12: 	from   (
    13:         	SELECT ACRR.action_config_revision_id extant,
    14:         	       1 is_null, -- NVL2(ACRR.result, 0, 1),
    15:         	       CFF.name reason
    16:         	  FROM rhnConfigFileFailure CFF,
    17:         	       rhnActionConfigRevisionResult ACRR,
    18:         	       rhnActionConfigRevision ACR
    19:         	 WHERE ACR.id = action_config_revision_id_in
    20:         	   AND ACR.id = ACRR.action_config_revision_id (+)
    21:         	   and acrr.result is null
    22:         	   AND ACR.failure_id = CFF.id (+)
    23:         	union all
    24:         	SELECT ACRR.action_config_revision_id extant,
    25:         	       0 is_null, -- NVL2(ACRR.result, 0, 1),
    26:         	       CFF.name reason
    27:         	  FROM rhnConfigFileFailure CFF,
    28:         	       rhnActionConfigRevisionResult ACRR,
    29:         	       rhnActionConfigRevision ACR
    30:         	 WHERE ACR.id = action_config_revision_id_in
    31:         	   AND ACR.id = ACRR.action_config_revision_id (+)
    32:         	   and acrr.result is not null
    33:         	   AND ACR.failure_id = CFF.id (+)
    34: 		);
    35:     	IF failure_reason IS NOT NULL
    36: 	THEN
    37: 	    RETURN failure_reason;
    38: 	END IF;
    39:     	IF result_exists IS NOT NULL
    40: 	THEN
    41: 	    IF result_is_null = 1
    42: 	    THEN
    43: 	    	RETURN 'No differences';
    44: 	    END IF;
    45: 	    RETURN 'Differences exist';
    46: 	END IF;
    47:     	RETURN NULL;
    48:     END action_diff_revision_status;
    49:     FUNCTION get_user_chan_access(config_channel_id_in IN NUMBER, user_id_in IN NUMBER)
    50:     RETURN NUMBER
    51:     IS
    52:     	server_id NUMBER;
    53: 	org_matches NUMBER;
    54: 	global_channel VARCHAR2(30);
    55: 	any_visible_servers_subscribed NUMBER;
    56:     BEGIN
    57:     	org_matches := 0;
    58: 	BEGIN
    59:     	  SELECT 1 INTO org_matches
    60: 	    FROM rhnConfigChannel CC,
    61: 	         web_contact WC
    62: 	   WHERE WC.id = user_id_in
    63: 	     AND CC.id = config_channel_id_in
    64: 	     AND WC.org_id = CC.org_id;
    65: 	EXCEPTION
    66: 	  WHEN NO_DATA_FOUND
    67: 	    THEN RETURN 0;
    68: 	END;
    69: 	global_channel := 'unknown';
    70:  	SELECT CCT.label INTO global_channel
    71: 	  FROM rhnConfigChannel CC,
    72: 	       rhnConfigChannelType CCT
    73: 	 WHERE CC.id = config_channel_id_in
    74: 	   AND CCT.id = CC.confchan_type_id;
    75:     	IF (rhn_user.check_role_implied(user_id_in, 'config_admin') = 1) AND (global_channel = 'normal')
    76: 	THEN
    77: 	    RETURN 1;
    78: 	END IF;
    79:     	any_visible_servers_subscribed := 0;
    80: 	BEGIN
    81:     	  SELECT 1 INTO any_visible_servers_subscribed
    82: 	    FROM DUAL
    83:            WHERE EXISTS (
    84: 	     SELECT SCC.server_id
    85: 	       FROM rhnServerConfigChannel SCC,
    86: 	            rhnUserServerPermsDupes USPD
    87: 	      WHERE USPD.user_id = user_id_in
    88: 	        AND USPD.server_id = SCC.server_id
    89: 	        AND SCC.config_channel_id = config_channel_id_in
    90: 	   );
    91: 	EXCEPTION
    92: 	  WHEN NO_DATA_FOUND
    93: 	    THEN RETURN 0;
    94: 	END;
    95: 	RETURN any_visible_servers_subscribed;
    96:     END get_user_chan_access;
    97:     FUNCTION get_user_revision_access(config_revision_id_in IN NUMBER, user_id_in IN NUMBER)
    98:     RETURN NUMBER
    99:     IS
   100:     	config_channel_id NUMBER;
   101:     BEGIN
   102:     BEGIN
   103:     	SELECT CF.config_channel_id INTO config_channel_id
   104: 	  FROM rhnConfigFile CF,
   105: 	       rhnConfigRevision CR
   106: 	 WHERE CF.id = CR.config_file_id
   107: 	   AND CR.id = config_revision_id_in;
   108:     EXCEPTION
   109: 	  WHEN NO_DATA_FOUND
   110: 	   THEN RETURN 0;
   111:     END;
   112: 	RETURN rhn_config_channel.get_user_chan_access(config_channel_id, user_id_in);
   113:     END get_user_revision_access;
   114:     FUNCTION get_user_file_access(config_file_id_in IN NUMBER, user_id_in IN NUMBER)
   115:     RETURN NUMBER
   116:     IS
   117:     	config_channel_id NUMBER;
   118:     BEGIN
   119:     BEGIN
   120:         SELECT CF.config_channel_id INTO config_channel_id
   121: 	  FROM rhnConfigFile CF
   122: 	 WHERE CF.id = config_file_id_in;
   123: 	EXCEPTION
   124: 	  WHEN NO_DATA_FOUND
   125: 	    THEN RETURN 0;
   126:     END;
   127: 	RETURN rhn_config_channel.get_user_chan_access(config_channel_id, user_id_in);
   128:     END get_user_file_access;
   129: END rhn_config_channel;