## <summary>DBus fingerprint reader service.</summary>

########################################
## <summary>
##	Execute a domain transition to run fprintd.
## </summary>
## <param name="domain">
## <summary>
##	Domain allowed to transition.
## </summary>
## </param>
#
interface(`fprintd_domtrans',`
	gen_require(`
		type fprintd_t, fprintd_exec_t;
	')

	corecmd_search_bin($1)
	domtrans_pattern($1, fprintd_exec_t, fprintd_t)
')

######################################
## <summary>
##	Execute fprintd in the caller domain.
## </summary>
## <param name="domain">
##	<summary>
##	Domain allowed access.
##	</summary>
## </param>
#
interface(`fprintd_exec',`
	gen_require(`
		type fprintd_exec_t;
	')

	corecmd_search_bin($1)
	can_exec($1, fprintd_exec_t)
')

########################################
## <summary>
##	Send and receive messages from
##	fprintd over dbus.
## </summary>
## <param name="domain">
##	<summary>
##	Domain allowed access.
##	</summary>
## </param>
#
interface(`fprintd_dbus_chat',`
	gen_require(`
		type fprintd_t;
		class dbus send_msg;
	')

	allow $1 fprintd_t:dbus send_msg;
	allow fprintd_t $1:dbus send_msg;
')

########################################
## <summary>
##	Mounton fprintd lib directory.
## </summary>
## <param name="domain">
##	<summary>
##	Domain allowed access.
##	</summary>
## </param>
#
interface(`fprintd_mounton_var_lib',`
	gen_require(`
		type fprintd_var_lib_t;
	')

	allow $1 fprintd_var_lib_t:dir mounton;
')

########################################
## <summary>
##	Read fprintd lib directory.
## </summary>
## <param name="domain">
##	<summary>
##	Domain allowed access.
##	</summary>
## </param>
#
interface(`fprintd_read_var_lib_dir',`
	gen_require(`
		type fprintd_var_lib_t;
	')

	allow $1 fprintd_var_lib_t:dir { list_dir_perms };
')

########################################
## <summary>
##	Setattr fprintd lib directory.
## </summary>
## <param name="domain">
##	<summary>
##	Domain allowed access.
##	</summary>
## </param>
#
interface(`fprintd_setattr_var_lib_dir',`
	gen_require(`
		type fprintd_var_lib_t;
	')

	allow $1 fprintd_var_lib_t:dir { setattr_dir_perms };
')
