cn=$p_cn;
parent::__construct($p_cn, $p_id);
}
/**
* Display the content of a profile
* @param type $resource
* @param type $p_id
*/
function sub_menu($resource, $p_id)
{
if (Database::num_row($resource)!=0)
{
$gDossier=dossier::id();
echo '
';
for ($e=0; $eDéfaut':'';
$js=sprintf(
'%s', $gDossier, $menu['pm_id'], $me_code);
?>
-
( )
cn->exec_sql("
SELECT pm_id,
pm.me_code,
me_code_dep,
p_id,
p_order,
p_type_display,
pm_default,
pm_desc,
me_menu,
me_description
FROM profile_menu as pm
join profile_menu_type on (p_type_display=pm_type)
join menu_ref as mr on (mr.me_code=pm.me_code)
where
p_id=$1 and me_code_dep=$2
order by p_order asc
", array($p_id, $me_code));
$this->sub_menu($ret2, $p_id);
echo "
";
} //end loop e
echo '
';
} // end if
}
/**
* Show a table with all the menu and the type
* @param type $p_id profile.p_id
*/
function listing_profile($p_id)
{
$array=$this->cn->get_array("
SELECT pm_id,
pm.me_code,
me_code_dep,
p_id,
p_order,
p_type_display,
pm_default,
pm_desc,
me_menu,
me_description
FROM profile_menu as pm join profile_menu_type on (p_type_display=pm_type)
join menu_ref as mr on (mr.me_code=pm.me_code)
where
p_id=$1 and p_type_display='M'
order by p_order asc
", array($p_id));
if (count($array)==0)
{
// if not module show only menu
$ret=$this->cn->exec_sql("
SELECT pm_id,
pm.me_code,
me_code_dep,
p_id,
p_order,
p_type_display,
pm_default,
pm_desc,
me_menu,
me_description
FROM profile_menu as pm
join profile_menu_type on (p_type_display=pm_type)
join menu_ref as mr on (mr.me_code=pm.me_code)
where
p_id=$1 and p_type_display='E'
order by p_order asc
", array($p_id));
echo '';
$this->sub_menu($ret, $p_id);
// $this->listing_profile($p_id,$ret, $array[$i]['me_code']);
echo "";
echo '
';
}
else
{
$this->cn->prepare("menu", "
SELECT pm_id,
pm.me_code,
me_code_dep,
p_id,
p_order,
p_type_display,
pm_default,
pm_desc,
me_menu,
me_description
FROM profile_menu as pm
join profile_menu_type on (p_type_display=pm_type)
join menu_ref as mr on (mr.me_code=pm.me_code)
where
p_id=$1 and me_code_dep=$2 and p_type_display in ('E','S')
order by p_order asc
");
echo '';
// Menu by module
$gDossier=Dossier::id();
for ($i=0; $iDéfaut':'';
$js=sprintf('%s', $gDossier, $array[$i]['pm_id'], $array[$i]['me_code']);
echo "- ".$array[$i]['me_menu']." (".$js.")".$array[$i]['me_description']." ".$me_def;
$ret=$this->cn->execute("menu", array($p_id, $array[$i]['me_code']));
$this->sub_menu($ret, $p_id);
echo "
";
}// end loop i
echo '
';
//*******************************************
// show also menu without a module
//*******************************************
$ret=$this->cn->exec_sql("
SELECT pm_id,
pm.me_code,
me_code_dep,
p_id,
p_order,
p_type_display,
pm_default,
pm_desc,
me_menu,
me_description
FROM profile_menu as pm
join profile_menu_type on (p_type_display=pm_type)
join menu_ref as mr on (mr.me_code=pm.me_code)
where
p_id=$1 and p_type_display not in ('M','P') and me_code_dep is null
order by p_order asc
", array($p_id));
if (Database::num_row($ret))
{
echo "Menu sans module
";
$this->sub_menu($ret, $p_id);
}
}
}
function printing($p_id)
{
$ret=$this->cn->exec_sql("
SELECT pm_id,
pm.me_code,
me_code_dep,
p_id,
p_order,
p_type_display,
pm_default,
pm_desc,
me_menu,
me_description
FROM profile_menu as pm
join profile_menu_type on (p_type_display=pm_type)
join menu_ref as mr on (mr.me_code=pm.me_code)
where
p_id=$1 and me_type='PR'
order by p_order asc
", array($p_id));
// Menu by module
$gDossier=Dossier::id();
$this->sub_menu($ret, $p_id);
}
/**
* Show the available profile for the profile $p_id, it concerns only the action of management (action-gestion)
* @param $p_id is the profile p_id
*/
function available_profile($p_id)
{
$array=$this->cn->get_array("
select p.p_id,p.p_name,s.p_granted,s.ua_id,s.ua_right
from profile as p
join user_sec_action_profile as s on (s.p_granted=p.p_id)
where s.p_id=$1
union
select p2.p_id, p2.p_name,null,null,'X'
from profile as p2
where
p2.p_id not in (select p_granted from user_sec_action_profile where p_id = $1) order by p_name;
", array($p_id));
$aright_value=array(
array('value'=>'R', 'label'=>_('Lecture')),
array('value'=>'W', 'label'=>_('Ecriture')),
array('value'=>'X', 'label'=>_('Aucun accès'))
);
require_once NOALYSS_INCLUDE.'/template/user_sec_profile.php';
}
/**
* Show the available repository for the profile $p_id
* @param $p_id is the profile p_id
*/
function available_repository($p_id)
{
$array=$this->cn->get_array("
select p.r_id,p.r_name,s.ur_id,s.ur_right
from stock_repository as p
join profile_sec_repository as s on (s.r_id=p.r_id)
where s.p_id=$1
union
select p2.r_id, p2.r_name,null,'X'
from stock_repository as p2
where
p2.r_id not in (select r_id from profile_sec_repository where p_id = $1) order by r_name;
", array($p_id));
$aright_value=array(
array('value'=>'R', 'label'=>_('Lecture')),
array('value'=>'W', 'label'=>_('Ecriture')),
array('value'=>'X', 'label'=>_('Aucun accès'))
);
require_once NOALYSS_INCLUDE.'/template/profile_sec_repository.php';
}
}
//end class
?>