/*****************************************************************************
*
* Filename         - $Workfile:   privilege_triggers.sql  $
*
*                     Name              Date      Version     CR Number
* Author           - See revision history below.
* Last Update      - See revision history below.
*
* Project Name     - TAGTRAK(Oracle Database)
*
* Source Code
* Identifier       - 0/3/300/8010/112
*
* Design Spec
* Section          - 
*
* Contents         -  Live Schema: triggers for privilege table
*
* Language         - Oracle SQL*Plus script
*
* Classification   - Commercial In Confidence
*
*          (c) Ultra Electronics Limited, 1997
*
*****************************************************************************/
/****************************************************************************
* @(#)$Workfile:   privilege_triggers.sql  $  $Revision:   1.4  $
*
* Revision History
*
* Note that user tagtrak is many users. For these users the user
* name is entered as the last line in the change description.
*
* $Log:   /pvcsarch/db_ora/db/source/live/triggers/privilege_triggers.svl  $
* 
*    Rev 1.4   21 Jun 2001 15:04:40   tagtrak
* OR:
* CR:
* Re-baseline version 4.0.0 to include patches.
* 
*    Rev 1.3   02 Apr 1998 19:46:28   tagtrak
* OR:
* CR:
* REV:
* Initial Issue
* See label for concession
* 
*    Rev 1.2   26 Feb 1998 11:42:50   tagtrak
* OR:
* CR:
* REV:
* Initial core product version
* 
*    Rev 1.1   15 Jan 1998 13:39:12   tagtrak
* OR: OR11101, TN13, TN15
* CR:
* REV:
* Phase 2C to Phase 3 upgrade plus code review actions and resolving some technical issues.
* 
* 
*    Rev 1.0   22 Oct 1997 16:38:42   tagtrak
* OR:
* CR:
* REV:
* Initial check-in
*
****************************************************************************/


create or replace trigger ti_privilege
before insert on privilege
for each row
begin

	/*
	 * Before an insert on the privilege table :
	 *  - Insert the details into the log_table
	 */

	insert into log_table
		( user_id,
			reason,
			log_time )
	values
		( :new.last_user,
			'Privilege ' || :new.priv_code || ', '
			|| :new.priv_description || ' added',
			SYSDATE );
end;
/

create or replace trigger tu_privilege
before update on privilege
for each row
begin

	/*
	 * If the user tries to modify a privilege, do not let him/her.
	 */

  raise_application_error( -20015, 'modification of privilege not allowed');
    
end;
/

create or replace trigger td_privilege
before delete on privilege
for each row
begin

	/*
	 * If the user tries to delete a privilege, do not let him/her.
	 */

  raise_application_error( -20014, 'delete of privilege not allowed');
end;
/
