Dominick Grift 93780e6
## <summary>Mplayer media player and encoder.</summary>
1ec3d1a
1ec3d1a
########################################
1ec3d1a
## <summary>
1ec3d1a
##	Role access for mplayer
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(`mplayer_role',`
1ec3d1a
	gen_require(`
Dominick Grift 93780e6
		attribute_role mencoder_roles, mplayer_roles;
Dominick Grift 93780e6
		type mencoder_t, mencoder_exec_t, mplayer_home_t;
Dominick Grift 93780e6
		type mplayer_t, mplayer_exec_t, mplayer_tmpfs_t;
1ec3d1a
	')
1ec3d1a
Dominick Grift 93780e6
	########################################
Dominick Grift 93780e6
	#
Dominick Grift 93780e6
	# Declarations
Dominick Grift 93780e6
	#
1ec3d1a
Dominick Grift 93780e6
	roleattribute $1 mencoder_roles;
Dominick Grift 93780e6
	roleattribute $1 mplayer_roles;
1ec3d1a
Dominick Grift 93780e6
	########################################
Dominick Grift 93780e6
	#
Dominick Grift 93780e6
	# Policy
Dominick Grift 93780e6
	#
1ec3d1a
Dominick Grift 93780e6
	domtrans_pattern($2, mencoder_exec_t, mencoder_t)
1ec3d1a
	domtrans_pattern($2, mplayer_exec_t, mplayer_t)
1ec3d1a
Dominick Grift 93780e6
	allow $2 { mplayer_t mencoder_t }:process { ptrace signal_perms };
Dominick Grift 93780e6
	ps_process_pattern($2, { mplayer_t mencoder_t })
Dominick Grift 93780e6
Dominick Grift 93780e6
	allow $2 mplayer_home_t:dir { manage_dir_perms relabel_dir_perms };
Dominick Grift 93780e6
	allow $2 mplayer_home_t:file { manage_file_perms relabel_file_perms };
Dominick Grift 93780e6
	allow $2 mplayer_home_t:lnk_file { manage_lnk_file_perms relabel_lnk_file_perms };
Dominick Grift 93780e6
	userdom_user_home_dir_filetrans($2, mplayer_home_t, dir, ".mplayer")
Dominick Grift 93780e6
Dominick Grift 93780e6
	allow $2 mplayer_tmpfs_t:file { manage_file_perms relabel_file_perms };
Dominick Grift 93780e6
	allow $2 mplayer_tmpfs_t:lnk_file { manage_lnk_file_perms relabel_lnk_file_perms };
Dominick Grift 93780e6
	allow $2 mplayer_tmpfs_t:fifo_file { manage_fifo_file_perms relabel_fifo_file_perms };
Dominick Grift 93780e6
	allow $2 mplayer_tmpfs_t:sock_file { manage_sock_file_perms relabel_sock_file_perms };
1ec3d1a
')
1ec3d1a
1ec3d1a
########################################
1ec3d1a
## <summary>
1ec3d1a
##	Run mplayer in mplayer domain.
1ec3d1a
## </summary>
1ec3d1a
## <param name="domain">
1ec3d1a
##	<summary>
1ec3d1a
##	Domain allowed to transition.
1ec3d1a
##	</summary>
1ec3d1a
## </param>
1ec3d1a
#
1ec3d1a
interface(`mplayer_domtrans',`
1ec3d1a
	gen_require(`
1ec3d1a
		type mplayer_t, mplayer_exec_t;
1ec3d1a
	')
1ec3d1a
Dominick Grift 93780e6
	corecmd_search_bin($1)
1ec3d1a
	domtrans_pattern($1, mplayer_exec_t, mplayer_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
########################################
1ec3d1a
## <summary>
1ec3d1a
##	Execute mplayer in the caller domain.
1ec3d1a
## </summary>
1ec3d1a
## <param name="domain">
1ec3d1a
##	<summary>
1ec3d1a
##	Domain allowed access.
1ec3d1a
##	</summary>
1ec3d1a
## </param>
1ec3d1a
#
1ec3d1a
#
1ec3d1a
interface(`mplayer_exec',`
1ec3d1a
	gen_require(`
1ec3d1a
		type mplayer_exec_t;
1ec3d1a
	')
1ec3d1a
Dominick Grift 93780e6
	corecmd_search_bin($1)
1ec3d1a
	can_exec($1, mplayer_exec_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
########################################
1ec3d1a
## <summary>
Dominick Grift 93780e6
##	Read mplayer user home content files.
1ec3d1a
## </summary>
1ec3d1a
## <param name="domain">
1ec3d1a
##	<summary>
1ec3d1a
##	Domain allowed access.
1ec3d1a
##	</summary>
1ec3d1a
## </param>
1ec3d1a
#
1ec3d1a
interface(`mplayer_read_user_home_files',`
1ec3d1a
	gen_require(`
1ec3d1a
		type mplayer_home_t;
1ec3d1a
	')
1ec3d1a
Chris PeBenito 9401ae1
	userdom_search_user_home_dirs($1)
1ec3d1a
	read_files_pattern($1, mplayer_home_t, mplayer_home_t)
Chris PeBenito 9401ae1
')
Dominick Grift c7fb51d
Dominick Grift c7fb51d
########################################
Dominick Grift c7fb51d
## <summary>
Dominick Grift c7fb51d
##	Create, read, write, and delete
Dominick Grift c7fb51d
##	generic mplayer home content.
Dominick Grift c7fb51d
## </summary>
Dominick Grift c7fb51d
## <param name="domain">
Dominick Grift c7fb51d
##	<summary>
Dominick Grift c7fb51d
##	Domain allowed access.
Dominick Grift c7fb51d
##	</summary>
Dominick Grift c7fb51d
## </param>
Dominick Grift c7fb51d
#
Dominick Grift c7fb51d
interface(`mplayer_manage_generic_home_content',`
Dominick Grift c7fb51d
	gen_require(`
Dominick Grift c7fb51d
		type mplayer_home_t;
Dominick Grift c7fb51d
	')
Dominick Grift c7fb51d
1ec3d1a
	userdom_search_user_home_dirs($1)
Dominick Grift c7fb51d
	allow $1 mplayer_home_t:dir manage_dir_perms;
Dominick Grift c7fb51d
	allow $1 mplayer_home_t:file manage_file_perms;
Dominick Grift c7fb51d
	allow $1 mplayer_home_t:lnk_file manage_lnk_file_perms;
Dominick Grift c7fb51d
')
Dominick Grift c7fb51d
Dominick Grift c7fb51d
########################################
Dominick Grift c7fb51d
## <summary>
Dominick Grift c7fb51d
##	Create specified objects in user home
Dominick Grift c7fb51d
##	directories with the generic mplayer
Dominick Grift c7fb51d
##	home type.
Dominick Grift c7fb51d
## </summary>
Dominick Grift c7fb51d
## <param name="domain">
Dominick Grift c7fb51d
##	<summary>
Dominick Grift c7fb51d
##	Domain allowed access.
Dominick Grift c7fb51d
##	</summary>
Dominick Grift c7fb51d
## </param>
Dominick Grift c7fb51d
## <param name="object_class">
Dominick Grift c7fb51d
##	<summary>
Dominick Grift c7fb51d
##	Class of the object being created.
Dominick Grift c7fb51d
##	</summary>
Dominick Grift c7fb51d
## </param>
Dominick Grift c7fb51d
## <param name="name" optional="true">
Dominick Grift c7fb51d
##	<summary>
Dominick Grift c7fb51d
##	The name of the object being created.
Dominick Grift c7fb51d
##	</summary>
Dominick Grift c7fb51d
## </param>
Dominick Grift c7fb51d
#
Dominick Grift c7fb51d
interface(`mplayer_home_filetrans_mplayer_home',`
Dominick Grift c7fb51d
	gen_require(`
Dominick Grift c7fb51d
		type mplayer_home_t;
Dominick Grift c7fb51d
	')
Dominick Grift c7fb51d
Dominick Grift c7fb51d
	userdom_user_home_dir_filetrans($1, mplayer_home_t, $2, $3)
1ec3d1a
')