示例#1
0
 /**
  * Returns the number of ranges with no permission
  * @access   public
  * @param    EvaluationObject   &$eval         The evaluation
  * @param    boolean            $return_ids    If YES return the ids
  * @return   integer            Number of ranges with no permission
  */
 function getEvalUserRangesWithNoPermission(&$eval, $return_ids = false)
 {
     $no_permisson = 0;
     $rangeIDs = $eval->getRangeIDs();
     if (!is_array($rangeIDs)) {
         $rangeIDs = array($rangeIDs);
     }
     foreach ($eval->getRangeIDs() as $rangeID) {
         $user_perm = EvaluationObjectDB::getRangePerm($rangeID, $user->id, YES);
         // every range with a lower perm than Tutor
         if ($user_perm < 7) {
             $no_permisson++;
             $no_permisson_ranges[] = $rangeID;
         }
     }
     if ($return_ids == YES) {
         return $no_permisson_ranges;
     } else {
         return $no_permisson > 0 ? $no_permisson : NO;
     }
 }
# ==================================================== END: check the rangeID #
# EVTAU: employees of the vote-team against urlhacking ====================== #
$eval = new Evaluation($evalID, NULL, EVAL_LOAD_NO_CHILDREN);
// someone has voted
if ($eval->hasVoted()) {
    $error = EvalCommon::createReportMessage(_("An dieser Evaluation hat bereits jemand teilgenommen. Sie darf nicht mehr verändert werden."), EVAL_PIC_ERROR, EVAL_CSS_ERROR);
    $error_msgs[] = $error->createContent();
}
// only the author or user with tutor perm in all evalRangeIDs should edit an eval
$authorID = $eval->getAuthorID();
$db = new EvaluationObjectDB();
if ($authorID != $user->id) {
    $no_permisson = 0;
    if (is_array($eval->getRangeIDs())) {
        foreach ($eval->getRangeIDs() as $rangeID) {
            $user_perm = $db->getRangePerm($rangeID, $user->id, YES);
            // every range with a lower perm than Tutor
            if ($user_perm < 7) {
                $no_permisson++;
            }
        }
        if ($no_permisson > 0) {
            if ($no_permisson == 1) {
                $no_permisson_msg = _("Sie haben in einem Bereich, in welchem diese Evaluation hängt, nicht aussreichene Rechte, um diese Eval zu bearbeiten.");
            } else {
                $no_permisson_msg = sprintf(_("Sie haben in %s Bereichen, in denen diese Evaluation hängt, nicht aussreichene Rechte, um diese Eval zu bearbeiten."), $no_permisson);
            }
            $error = EvalCommon::createReportMessage($no_permisson_msg, EVAL_PIC_ERROR, EVAL_CSS_ERROR);
            $error_msgs[] = $error->createContent();
        }
    }