Dan Walsh 3eaa99
Dan Walsh 3eaa99
## <summary>Telepathy framework.</summary>
Dan Walsh 3eaa99
Dan Walsh 3eaa99
#######################################
Dan Walsh 3eaa99
## <summary>
Dan Walsh 3eaa99
##  Creates basic types for telepathy
Dan Walsh 3eaa99
##  domain
Dan Walsh 3eaa99
## </summary>
Dan Walsh 3eaa99
## <param name="prefix">
Dan Walsh 3eaa99
##  <summary>
Dan Walsh 3eaa99
##  Prefix for the domain.
Dan Walsh 3eaa99
##  </summary>
Dan Walsh 3eaa99
## </param>
Dan Walsh 3eaa99
#
Dan Walsh 3eaa99
#
Dan Walsh 3eaa99
template(`telepathy_domain_template',`
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	gen_require(`
Dan Walsh 3eaa99
		attribute telepathy_domain;
Dan Walsh 3eaa99
		attribute telepathy_executable;
Dan Walsh 3eaa99
	')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	type telepathy_$1_t, telepathy_domain;
Dan Walsh 3eaa99
	type telepathy_$1_exec_t, telepathy_executable;
Dan Walsh 3eaa99
	application_domain(telepathy_$1_t, telepathy_$1_exec_t)
Dan Walsh 3eaa99
	ubac_constrained(telepathy_$1_t)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	type telepathy_$1_tmp_t;
Dan Walsh 3eaa99
	files_tmp_file(telepathy_$1_tmp_t)
Dan Walsh 3eaa99
	ubac_constrained(telepathy_$1_tmp_t)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	dbus_session_domain(telepathy_$1_t, telepathy_$1_exec_t)
Dan Walsh 3eaa99
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
#######################################
Dan Walsh 3eaa99
## <summary>
Dan Walsh 3eaa99
##  	Role access for telepathy domains
Dan Walsh 3eaa99
###     that executes via dbus-session
Dan Walsh 3eaa99
## </summary>
Dan Walsh 3eaa99
## <param name="user_role">
Dan Walsh 3eaa99
##	<summary>
Dan Walsh 3eaa99
##	The role associated with the user domain.
Dan Walsh 3eaa99
##	</summary>
Dan Walsh 3eaa99
## </param>
Dan Walsh 3eaa99
## <param name="user_domain">
Dan Walsh 3eaa99
##	<summary>
Dan Walsh 3eaa99
##	The type of the user domain.
Dan Walsh 3eaa99
##	</summary>
Dan Walsh 3eaa99
## </param>
Dan Walsh 3eaa99
#
Dan Walsh 3eaa99
template(`telepathy_dbus_session_role', `
Dan Walsh 3eaa99
	gen_require(`
Dan Walsh 3eaa99
		attribute telepathy_domain;
Dan Walsh 3eaa99
	')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
        role $1 types telepathy_domain;
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	allow $2 telepathy_domain:process { ptrace signal_perms };
Dan Walsh 3eaa99
	ps_process_pattern($2, telepathy_domain)
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	optional_policy(`
Dan Walsh 3eaa99
		telepathy_dbus_chat($2)
Dan Walsh 3eaa99
	')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	telepathy_gabble_stream_connect($2)
Dan Walsh 3eaa99
	telepathy_msn_stream_connect($2)
Dan Walsh 3eaa99
	telepathy_salut_stream_connect($2)	
Dan Walsh 3eaa99
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
########################################
Dan Walsh 3eaa99
## <summary>
Dan Walsh 3eaa99
##	Send DBus messages to and from
Dan Walsh 3eaa99
##	all Telepathy domain.
Dan Walsh 3eaa99
## </summary>
Dan Walsh 3eaa99
## <param name="domain">
Dan Walsh 3eaa99
## 	<summary>
Dan Walsh 3eaa99
##	Domain allowed access.
Dan Walsh 3eaa99
##	</summary>
Dan Walsh 3eaa99
## </param>
Dan Walsh 3eaa99
#
Dan Walsh 3eaa99
interface(`telepathy_dbus_chat', `
Dan Walsh 3eaa99
	gen_require(`
Dan Walsh 3eaa99
		attribute telepathy_domain;
Dan Walsh 3eaa99
		class dbus send_msg;
Dan Walsh 3eaa99
	')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	allow $1 telepathy_domain:dbus send_msg;
Dan Walsh 3eaa99
	allow telepathy_domain $1:dbus send_msg;
Dan Walsh 3eaa99
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
########################################
Dan Walsh 3eaa99
## <summary>
Dan Walsh 3eaa99
##	Send DBus messages to and from
Dan Walsh 3eaa99
##	Telepathy Gabble.
Dan Walsh 3eaa99
## </summary>
Dan Walsh 3eaa99
## <param name="domain">
Dan Walsh 3eaa99
## 	<summary>
Dan Walsh 3eaa99
##	Domain allowed access.
Dan Walsh 3eaa99
##	</summary>
Dan Walsh 3eaa99
## </param>
Dan Walsh 3eaa99
#
Dan Walsh 3eaa99
interface(`telepathy_gabble_dbus_chat', `
Dan Walsh 3eaa99
	gen_require(`
Dan Walsh 3eaa99
		type telepathy_gabble_t;
Dan Walsh 3eaa99
		class dbus send_msg;
Dan Walsh 3eaa99
	')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	allow $1 telepathy_gabble_t:dbus send_msg;
Dan Walsh 3eaa99
	allow telepathy_gabble_t $1:dbus send_msg;
Dan Walsh 3eaa99
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
########################################
Dan Walsh 3eaa99
## <summary>
Dan Walsh 3eaa99
##	Read and write Telepathy Butterfly
Dan Walsh 3eaa99
##	temporary files.
Dan Walsh 3eaa99
## </summary>
Dan Walsh 3eaa99
## <param name="domain">
Dan Walsh 3eaa99
## 	<summary>
Dan Walsh 3eaa99
##	Domain allowed access.
Dan Walsh 3eaa99
##	</summary>
Dan Walsh 3eaa99
## </param>
Dan Walsh 3eaa99
#
Dan Walsh 3eaa99
interface(`telepathy_butterfly_rw_tmp_files', `
Dan Walsh 3eaa99
	gen_require(`
Dan Walsh 3eaa99
		type telepathy_butterfly_tmp_t;
Dan Walsh 3eaa99
	')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	allow $1 telepathy_butterfly_tmp_t:file rw_file_perms;
Dan Walsh 3eaa99
	files_search_tmp($1)
Dan Walsh 3eaa99
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
########################################
Dan Walsh 3eaa99
## <summary>
Dan Walsh 3eaa99
##	Stream connect to Telepathy Gabble
Dan Walsh 3eaa99
## </summary>
Dan Walsh 3eaa99
## <param name="domain">
Dan Walsh 3eaa99
## 	<summary>
Dan Walsh 3eaa99
##	Domain allowed access.
Dan Walsh 3eaa99
##	</summary>
Dan Walsh 3eaa99
## </param>
Dan Walsh 3eaa99
#
Dan Walsh 3eaa99
interface(`telepathy_gabble_stream_connect', `
Dan Walsh 3eaa99
	gen_require(`
Dan Walsh 3eaa99
		type telepathy_gabble_t, telepathy_gabble_tmp_t;
Dan Walsh 3eaa99
	')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	stream_connect_pattern($1, telepathy_gabble_tmp_t, telepathy_gabble_tmp_t, telepathy_gabble_t)
Dan Walsh 3eaa99
	files_search_tmp($1)
Dan Walsh 3eaa99
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
#######################################
Dan Walsh 3eaa99
## <summary>
Dan Walsh 3eaa99
##      Stream connect to telepathy MSN managers
Dan Walsh 3eaa99
## </summary>
Dan Walsh 3eaa99
## <param name="domain">
Dan Walsh 3eaa99
##      <summary>
Dan Walsh 3eaa99
##      Domain allowed access.
Dan Walsh 3eaa99
##      </summary>
Dan Walsh 3eaa99
## </param>
Dan Walsh 3eaa99
#
Dan Walsh 3eaa99
interface(`telepathy_msn_stream_connect', `
Dan Walsh 3eaa99
        gen_require(`
Dan Walsh 3eaa99
                type telepathy_msn_t, telepathy_msn_tmp_t;
Dan Walsh 3eaa99
        ')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
        stream_connect_pattern($1, telepathy_msn_tmp_t, telepathy_msn_tmp_t, telepathy_msn_t)
Dan Walsh 3eaa99
        files_search_tmp($1)
Dan Walsh 3eaa99
')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
Dan Walsh 3eaa99
########################################
Dan Walsh 3eaa99
## <summary>
Dan Walsh 3eaa99
##	Stream connect to Telepathy Salut
Dan Walsh 3eaa99
## </summary>
Dan Walsh 3eaa99
## <param name="domain">
Dan Walsh 3eaa99
## 	<summary>
Dan Walsh 3eaa99
##	Domain allowed access.
Dan Walsh 3eaa99
##	</summary>
Dan Walsh 3eaa99
## </param>
Dan Walsh 3eaa99
#
Dan Walsh 3eaa99
interface(`telepathy_salut_stream_connect', `
Dan Walsh 3eaa99
	gen_require(`
Dan Walsh 3eaa99
		type telepathy_salut_t, telepathy_salut_tmp_t;
Dan Walsh 3eaa99
	')
Dan Walsh 3eaa99
Dan Walsh 3eaa99
	stream_connect_pattern($1, telepathy_salut_tmp_t, telepathy_salut_tmp_t, telepathy_salut_t)
Dan Walsh 3eaa99
	files_search_tmp($1)
Dan Walsh 3eaa99
')