1ec3d1a
## <summary>IRC client policy</summary>
1ec3d1a
1ec3d1a
########################################
1ec3d1a
## <summary>
1ec3d1a
##	Role access for IRC
1ec3d1a
## </summary>
1ec3d1a
## <param name="role">
1ec3d1a
##	<summary>
1ec3d1a
##	Role allowed access
1ec3d1a
##	</summary>
1ec3d1a
## </param>
1ec3d1a
## <param name="domain">
1ec3d1a
##	<summary>
1ec3d1a
##	User domain for the role
1ec3d1a
##	</summary>
1ec3d1a
## </param>
1ec3d1a
#
1ec3d1a
interface(`irc_role',`
1ec3d1a
	gen_require(`
1ec3d1a
		type irc_t, irc_exec_t;
1ec3d1a
		type irssi_t, irssi_exec_t, irssi_home_t;
1ec3d1a
	')
1ec3d1a
1ec3d1a
	role $1 types irc_t;
1ec3d1a
	role $1 types irssi_t;
1ec3d1a
1ec3d1a
	# Transition from the user domain to the derived domain.
1ec3d1a
	domtrans_pattern($2, irc_exec_t, irc_t)
1ec3d1a
1ec3d1a
	# allow ps to show irc
1ec3d1a
	ps_process_pattern($2, irc_t)
1ec3d1a
	allow $2 irc_t:process signal;
1ec3d1a
1ec3d1a
	domtrans_pattern($2, irssi_exec_t, irssi_t)
1ec3d1a
1ec3d1a
	allow $2 irssi_t:process signal_perms;
1ec3d1a
	ps_process_pattern($2, irssi_t)
1ec3d1a
1ec3d1a
	manage_dirs_pattern($2, irssi_home_t, irssi_home_t)
1ec3d1a
	manage_files_pattern($2, irssi_home_t, irssi_home_t)
1ec3d1a
	manage_lnk_files_pattern($2, irssi_home_t, irssi_home_t)
1ec3d1a
1ec3d1a
	relabel_dirs_pattern($2, irssi_home_t, irssi_home_t)
1ec3d1a
	relabel_files_pattern($2, irssi_home_t, irssi_home_t)
1ec3d1a
	relabel_lnk_files_pattern($2, irssi_home_t, irssi_home_t)
1ec3d1a
')