/**
  * Adds a new News to the db or opens up the form for adding, if it isn't opened yet.
  *
  * @return array|\Zend\Http\Response
  * @throws \Exception
  */
 public function addAction()
 {
     if (!PermissionChecker::check(Role::MEMBER)) {
         return $this->redirect()->toRoute('account', ['action' => 'noright']);
     }
     $form = new MediaForm();
     $session = new Container('user');
     $request = $this->getRequest();
     if ($request->isPost()) {
         $media = new Media();
         $form->setInputFilter($media->getInputFilter());
         $form->setData($request->getPost());
         if ($form->isValid()) {
             $media->exchangeArray($form->getData());
             $media->setUrl($this->embedVideo($media->getUrl()));
             $this->getMediaTable()->saveMedia($media);
             return $this->redirect()->toRoute('media');
         } else {
             $errors = $form->getMessages();
             return ['form' => $form, 'accountId' => $session->id, 'errors' => $errors];
         }
     }
     return ['form' => $form, 'accountId' => $session->id];
 }