public function executeGDocuments(sfWebRequest $request) { $this->setLayout('gestio'); $this->IDS = $this->getUser()->getSessionPar('idS'); $this->MISSATGE = array(); $this->IDD = $request->getParameter('IDD', 0); $accio = $this->getUser()->ParReqSesForm($request, 'accio', 'GP'); $this->MODE = 'CERCA'; if ($request->isMethod('POST')) { if ($request->hasParameter('B_VEURE_PERMISOS')) { $accio = 'VP'; } elseif ($request->hasParameter('B_NOU')) { $accio = 'ND'; } elseif ($request->hasParameter('B_SAVE_NOU')) { $accio = 'SD'; } elseif ($request->hasParameter('B_UPDATE_PERMISOS')) { $accio = 'SAVE_UPDATE_PERMISOS'; } elseif ($request->hasParameter('B_NEW_USER')) { $accio = 'NUP'; } elseif ($request->hasParameter('B_NOU_USUARI_PERMISOS')) { $accio = 'SAVE_NOU_USUARI_PERMISOS'; } elseif ($request->hasParameter('B_EDITA_DIRECTORI')) { $accio = 'ND'; } elseif ($request->hasParameter('B_SAVE_EDITA_DIRECTORI')) { $accio = 'SD'; } elseif ($request->hasParameter('B_DELETE_DIRECTORI')) { $accio = 'DELETE_DIRECTORI'; } } //Aquest petit bloc és per si es modifica amb un POST el que s'ha enviat per GET $this->getUser()->setSessionPar('accio', $accio); switch ($accio) { case 'GP': $this->getUser()->addLogAction('inside', 'gDocuments'); break; //Visualitza permisos que tenen els usuaris en el directori //Visualitza permisos que tenen els usuaris en el directori case 'VP': $this->LLISTAT_PERMISOS = AppDocumentsPermisosDirPeer::getLlistatPermisos($this->IDD, $this->IDS); $this->MODE = "CONSULTA"; break; //Crea un directori nou //Crea un directori nou case 'ND': $this->FDir = AppDocumentsDirectorisPeer::initialize($this->IDD, $this->IDS); $this->MODE = "NOU"; break; //Guarda un directori //Guarda un directori case 'SD': $RP = $request->getParameter('app_documents_directoris'); $this->FDir = AppDocumentsDirectorisPeer::initialize($RP['idDirectori'], $this->IDS); $this->FDir->bind($RP); if ($this->FDir->isValid()) { $this->FDir->save(); $IDU = $this->getUser()->getSessionPar('idU'); $idD = $this->FDir->getObject()->getIddirectori(); $this->getUser()->addLogAction($accio, 'gDocuments', $this->FDir->getObject()); //A més donem permisos a l'usuari que l'ha creat perquè pugui accedir-hi if (AppDocumentsPermisosDirPeer::addUser($IDU, $idD, $this->IDS)) { $this->getUser()->addLogAction($accio, 'gDocuments', $this->IDD); $this->MODE = "CONSULTA"; } else { $this->MISSATGE = array("Hi ha hagut algun error afegint l'usuari."); $this->MODE = "NOU"; } } else { $this->MISSATGE = array("Hi ha hagut algun error."); $this->MODE = "NOU"; } break; //Esborra un directori //Esborra un directori case 'DELETE_DIRECTORI': $RP = $request->getParameter('app_documents_directoris'); $this->IDD = $RP['idDirectori']; $this->FDir = AppDocumentsDirectorisPeer::initialize($this->IDD, $this->IDS); $this->FDir->getObject()->setActiu(false)->save(); $this->getUser()->addLogAction($accio, 'gDocuments', $this->FDir->getObject()); break; //Actualitza un directori //Actualitza un directori case 'UD': $this->MODE = "NOU"; break; //Guarda els nous permisos //Guarda els nous permisos case 'SAVE_UPDATE_PERMISOS': foreach ($request->getParameter('nivell') as $idU => $idN) { if (!AppDocumentsPermisosDirPeer::addUser($idU, $this->IDD, $this->IDS, $idN)) { $this->MISSATGE[] = "Problema guardant els permisos dels usuaris."; } } $this->getUser()->addLogAction($accio, 'gDocuments', $request->getParameter('nivell')); $this->redirect('gestio/gDocuments?accio=VP&IDD=' . $this->IDD); break; case 'SAVE_NOU_USUARI_PERMISOS': $RP = $request->getParameter('app_documents_permisos_dir'); $this->FPERMISOS = AppDocumentsPermisosDirPeer::initialize($RP['idUsuari'], $RP['idDirectori'], $this->IDS); $this->FPERMISOS->bind($RP); if ($this->FPERMISOS->isValid()) { $this->FPERMISOS->save(); $this->getUser()->addLogAction($accio, 'gDocuments', $this->FPERMISOS->getObject()); $this->redirect('gestio/gDocuments?accio=VP&IDD=' . $this->IDD); } else { $this->MISSATGE[] = "Hi ha hagut algun problema guardant els permisos"; } $this->MODE = 'NOU_USUARI'; break; //Afegim un usuari a un directori //Afegim un usuari a un directori case 'NUP': $this->FPERMISOS = AppDocumentsPermisosDirPeer::initialize($this->IDU, $this->IDD, $this->IDS); $this->MODE = "NOU_USUARI"; break; } $this->LLISTAT_PERMISOS = AppDocumentsPermisosDirPeer::getLlistatPermisos($this->IDD, $this->IDS); }