示例#1
0
/**
 * vérifier si l'utilisateur a les droits nécessaires, c'est-à-dire si l'utilisateur est propriétaire
 *  ou le droit nécessaire est présent en base.
 * @author Alban Truc
 * @param MongoId|string $idElement
 * @param MongoId|string $idUser
 * @param array $refRightCodes
 * @since 31/05/2014
 * @return bool|array contenant un message d'erreur
 */
function actionAllowed($idElement, $idUser, $refRightCodes)
{
    $idElement = new MongoId($idElement);
    $idUser = new MongoId($idUser);
    $elementManager = new ElementManager();
    $element = $elementManager->findById($idElement);
    if (!array_key_exists('error', $element)) {
        $isOwner = $hasRight = FALSE;
        if ($element['idOwner'] == $idUser) {
            $isOwner = TRUE;
        } else {
            $rightManager = new RightManager();
            $hasRight = $rightManager->hasRightOnElement($idUser, $idElement, $refRightCodes);
        }
        if ($isOwner || $hasRight) {
            return TRUE;
        } else {
            return FALSE;
        }
    } else {
        return array('error' => 'Element does not exist');
    }
}