Ejemplo n.º 1
0
 public function actionArchive($id, $full = 0)
 {
     //if(!is_numeric($id)) { $this->redirect('/player/'.$id); }
     if (Yii::app()->user->isGuest) {
         $this->redirect(array('fullscreen', 'id' => $id, 'full' => $full));
     }
     $this->layout = 'emptycolumn';
     $id = Cams::model()->getRealId($id);
     $cam = Cams::model()->findByPK($id);
     if (!$cam) {
         throw new CHttpException(404, Yii::t('errors', 'There is no such cam'));
     }
     if (!$cam->is_public && Yii::app()->user->isGuest) {
         throw new CHttpException(403, Yii::t('errors', 'Access denied'));
     }
     $uid = Yii::app()->user->getId();
     $shared = false;
     if ($cam->user_id != $uid) {
         $shared = Shared::model()->findByAttributes(array('user_id' => $uid, 'cam_id' => $id));
         if (!$cam->is_public && !(bool) $shared) {
             throw new CHttpException(403, Yii::t('errors', 'Access denied'));
         }
     }
     $this->showStatusbar = $this->showArchive = !$cam->is_public || $shared && (!$shared->is_public || $shared->is_approved) || $uid == $cam->user_id ? 1 : 0;
     $server = Servers::model()->findByPK($cam->server_id);
     $momentManager = new momentManager($cam->server_id);
     $this->render('archive', array('cam' => $cam, 'full' => !$full, 'unixtime' => $momentManager->unixtime(), 'uri' => 'rtmp://' . $server->ip . ':' . $server->l_port, 'down' => $server->protocol . '://' . $server->ip . ':' . $server->w_port . '/mod_nvr/file?stream=', 'recorded_intervals' => $momentManager->existence($cam->id)));
 }