Exemplo n.º 1
0
 private function verify()
 {
     if (Ibos::app()->request->isAjaxRequest) {
         $uid = Ibos::app()->user->uid;
         $artIds = trim(EnvUtil::getRequest("articleids"), ",");
         $ids = explode(",", $artIds);
         if (empty($ids)) {
             $this->ajaxReturn(array("isSuccess" => false, "msg" => Ibos::lang("Parameters error", "error")));
         }
         $sender = User::model()->fetchRealnameByUid($uid);
         foreach ($ids as $artId) {
             $artApproval = ArticleApproval::model()->fetchLastStep($artId);
             if (empty($artApproval)) {
                 $this->verifyComplete($artId, $uid);
             } else {
                 $art = Article::model()->fetchByPk($artId);
                 $category = ArticleCategory::model()->fetchByPk($art["catid"]);
                 $approval = Approval::model()->fetch("id={$category["aid"]}");
                 $curApproval = Approval::model()->fetchNextApprovalUids($approval["id"], $artApproval["step"]);
                 $nextApproval = Approval::model()->fetchNextApprovalUids($approval["id"], $artApproval["step"] + 1);
                 if (!in_array($uid, $curApproval["uids"])) {
                     $this->ajaxReturn(array("isSuccess" => false, "msg" => Ibos::lang("You do not have permission to verify the article")));
                 }
                 if (!empty($nextApproval)) {
                     if ($nextApproval["step"] == "publish") {
                         $this->verifyComplete($artId, $uid);
                     } else {
                         ArticleApproval::model()->recordStep($artId, $uid);
                         $config = array("{sender}" => $sender, "{subject}" => $art["subject"], "{category}" => $category["name"], "{content}" => $this->renderPartial("remindcontent", array("article" => $art, "author" => $sender), true), "{url}" => $this->createUrl("default/index", array("type" => "notallow")));
                         foreach ($nextApproval["uids"] as $k => $approvalUid) {
                             if (!ArticleUtil::checkReadScope($approvalUid, $art)) {
                                 unset($nextApproval["uids"][$k]);
                             }
                         }
                         Notify::model()->sendNotify($nextApproval["uids"], "article_verify_message", $config, $uid);
                         Article::model()->updateAllStatusAndApproverByPks($artId, $uid, 2);
                     }
                 }
             }
         }
         $this->ajaxReturn(array("isSuccess" => true, "msg" => Ibos::lang("Verify succeed", "message")));
     }
 }