本文整理汇总了PHP中Kernel::getModRight方法的典型用法代码示例。如果您正苦于以下问题:PHP Kernel::getModRight方法的具体用法?PHP Kernel::getModRight怎么用?PHP Kernel::getModRight使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Kernel
的用法示例。
在下文中一共展示了Kernel::getModRight方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getCapability
/**
* Retourne le niveau de droit de la personne connectée
* @param integer $idAgenda l'identifiant de l'agenda
*/
public function getCapability($idAgenda)
{
if (!$idAgenda) {
return 0;
}
if (!($d = _sessionGet('modules|agenda|rights|' . $idAgenda))) {
$d = Kernel::getModRight('MOD_AGENDA', $idAgenda);
_sessionSet('modules|agenda|rights|' . $idAgenda, $d);
}
if ($d >= PROFILE_CCV_MEMBER) {
$res = AgendaAuth::getModerate();
} elseif ($d >= PROFILE_CCV_READ) {
$res = AgendaAuth::getRead();
} else {
$res = AgendaAuth::getNone();
}
//print_r ("idAgenda=$idAgenda / res=$res<br>");
return $res;
}
示例2: getModRight
public function getModRight($mod_type, $mod_id, $user_type = "-1", $user_id = "-1")
{
// Kernel::deb ("getModRight( $mod_type, $mod_id, $user_type, $user_id )");
$droit = 0;
if ($mod_type == "MOD_MINIMAIL") {
return _currentUSer()->isConnected() ? PROFILE_CCV_ADMIN : 0;
}
if ($user_type == "-1" && $user_id == "-1") {
if (_currentUser()->getExtra('type') && _currentUser()->getExtra('id')) {
$user_type = _currentUser()->getExtra('type');
$user_id = _currentUser()->getExtra('id');
} else {
return 0;
}
}
$mod_parents = Kernel::getModParent($mod_type, $mod_id);
$user_parents = Kernel::getNodeParents($user_type, $user_id);
// Rustine CB 23/01/2009 pour les droits des directeurs dans les teleprocedures
if ($mod_type == 'MOD_TELEPROCEDURES' && $user_type == 'USER_ENS') {
//print_r($mod_parents);
//print_r($user_parents);
$villeMod = $mod_parents[0]->node_type == 'BU_VILLE' ? $mod_parents[0]->node_id : null;
// S'il est bien directeur d'une ecole dans cette ville
foreach ($user_parents as $parent) {
if ($parent['type'] == 'BU_ECOLE' && $parent['droit'] >= PROFILE_CCV_ADMIN && $parent['ALL']->eco_id_ville == $villeMod) {
return PROFILE_CCV_READ;
}
}
} elseif ($mod_type == 'MOD_TELEPROCEDURES' && $user_type == 'USER_ADM' && CopixConfig::exists('teleprocedures|USER_ADM_as_USER_ENS') && CopixConfig::get('teleprocedures|USER_ADM_as_USER_ENS')) {
$villeMod = $mod_parents[0]->node_type == 'BU_VILLE' ? $mod_parents[0]->node_id : null;
foreach ($user_parents as $parent) {
if ($parent['type'] == 'BU_ECOLE' && $parent['droit'] >= 30 && $parent['ALL']->eco_id_ville == $villeMod) {
return PROFILE_CCV_READ;
}
}
} elseif (isset($mod_parents[0]) && $mod_parents[0]->node_type == 'MOD_TELEPROCEDURES' && $user_type == 'USER_VIL') {
return Kernel::getModRight($mod_parents[0]->node_type, $mod_parents[0]->node_id, $user_type, $user_id);
}
//print_r("getModRight( $mod_type, $mod_id, $user_type, $user_id)<br/>");
//print_r($mod_parents);
foreach ($mod_parents as $mod_key => $mod_val) {
// Check user -> admin
if ($mod_val->node_type == $user_type && $mod_val->node_id == $user_id) {
$droit = PROFILE_CCV_ADMIN;
}
// Rustine CB 25/08/2010 Si c'est un droit d'un module du groupe d'assistance
if (CopixConfig::exists('kernel|groupeAssistance') && ($groupeAssistance = CopixConfig::get('kernel|groupeAssistance')) && $mod_val->node_type == 'CLUB' && $mod_val->node_id == $groupeAssistance) {
//print_r();
switch ($mod_type) {
case 'MOD_FORUM':
// Forum : on peut ecrire
$droit = PROFILE_CCV_MEMBER;
break;
case 'MOD_MALLE':
// Malle : on peut lire
// Malle : on peut lire
case 'MOD_BLOG':
// Blog : on peut lire
$droit = PROFILE_CCV_READ;
break;
}
}
// Check parents nodes -> right (DB)
reset($user_parents);
//foreach( $user_parents AS $user_key=>$user_val ) {
while ($user_val = array_pop($user_parents)) {
// Rustine 1 : les gens rattachÈs ‡ une classe ont le mÍme droit dans l'Ècole de la classe
if ($user_val["type"] == "BU_CLASSE") {
$ecoles = Kernel::getNodeParents($user_val["type"], $user_val["id"]);
foreach ($ecoles as $ecole_key => $ecole_val) {
$ecoles[$ecole_key]["droit"] = PROFILE_CCV_READ;
$user_parents[] = $ecoles[$ecole_key];
}
}
// Rustine 2 : les parents ont des droits de lecture sur les classes de leur enfants
if ($user_val["type"] == "USER_ELE" && $user_type == "USER_RES") {
$nodes_all = Kernel::getNodeParents($user_val["type"], $user_val["id"]);
//print_r($nodes_all);
foreach ($nodes_all as $node) {
if ($node['type'] != 'BU_CLASSE') {
continue;
}
$node['droit'] = PROFILE_CCV_READ;
$user_parents[] = $node;
//print_r($node);
/*
$child['classe'] = $node['nom'];
$modules = Kernel::getModEnabled(
$node['type'], $node['id'],
$child["type"], $child["id"] );
*/
//print_r($modules);
}
}
if ($mod_val->node_type == $user_val["type"] && $mod_val->node_id == $user_val["id"]) {
$droit = max($droit, $user_val["droit"]);
}
//$droit = min();
}
}
//.........这里部分代码省略.........