<?php
/**
 * @copyright (c) Kufer Software GmbH, Oderstraße 7, D-84453 Mühldorf
 */

namespace Kufer\Web\KuferTools\Dozent\KursUebersicht\Detailsreiter\Termine\BerichtAbgeben;

class KurstagBerichtAbgebenUseCase extends \Kufer\Web\KuferTools\Basis\UseCase\EinzelKurstagUseCase
{
  public function __construct(KurstagBerichtAbgebenRequest $request)
  {
    parent::__construct($request, new KurstagBerichtAbgebenResponse());
  }

  public function hasAccess($pToolSectionId = null)
  {
    if (!parent::hasAccess($pToolSectionId)) {
      return false;
    }

    if (!KurstagBerichtAbgebenUtils::hasAccessToBerichtAbgeben($this->toolSettings, $this->getToolSectionId(), $this->getKurstag())) {
      return false;
    }

    if ($this->getUser()->getDnrIdentifier()->isEmpty(false)) {
      return false;
    }

    return true;
  }

  public static function getToolId()
  {
    return \ToolsAPI::TOOL_KURSUEBERSICHT_DOZ;
  }

  public static function getToolSectionId()
  {
    return 4;
  }

  public function action()
  {
    $this->response->kurstag = $this->getKurstag();
    $this->response->dozent = \SessionOperations::getCurrentWebToolsDozent();

    return $this->response;
  }
}