public function saveUsuarisAppsList($con = null) { if (!$this->isValid()) { throw $this->getErrorSchema(); } if (!isset($this->widgetSchema['usuaris_apps_list'])) { // somebody has unset this widget return; } if (null === $con) { $con = $this->getConnection(); } $c = new Criteria(); $c->add(UsuarisAppsPeer::APP_ID, $this->object->getPrimaryKey()); UsuarisAppsPeer::doDelete($c, $con); $values = $this->getValue('usuaris_apps_list'); if (is_array($values)) { foreach ($values as $value) { $obj = new UsuarisApps(); $obj->setAppId($this->object->getPrimaryKey()); $obj->setUsuariId($value); $obj->save(); } } }
public function setup() { $this->setWidgets(array('idUsuari' => new sfWidgetFormSelect(array('choices' => UsuarisAppsPeer::getSelectUsuarisPermis($this->getOption('app'), $this->getOption('IDS')))), 'idDirectori' => new sfWidgetFormSelect(array('choices' => AppDocumentsDirectorisPeer::getSelectDirectoris($this->getOption('IDS')))), 'idNivell' => new sfWidgetFormSelect(array('choices' => NivellsPeer::getSelectPermisos($this->getOption('IDS')))))); $this->setValidators(array('idUsuari' => new sfValidatorPropelChoice(array('model' => 'Usuaris', 'column' => 'UsuariID', 'required' => false)), 'idDirectori' => new sfValidatorPropelChoice(array('model' => 'AppDocumentsDirectoris', 'column' => 'idDirectori', 'required' => false)), 'idNivell' => new sfValidatorPropelChoice(array('model' => 'Nivells', 'column' => 'idNivells', 'required' => false)))); $this->widgetSchema->setNameFormat('app_documents_permisos_dir[%s]'); $this->setDefault('idDirectori', $this->getOption('IDD')); $this->setDefault('idNivell', 6); $this->widgetSchema->setLabels(array('idUsuari' => 'Usuari: ', 'idDirectori' => 'Directori: ', 'idNivell' => 'Permisos: ')); $this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema); }
/** * This is a method for emulating ON DELETE CASCADE for DBs that don't support this * feature (like MySQL or SQLite). * * This method is not very speedy because it must perform a query first to get * the implicated records and then perform the deletes by calling those Peer classes. * * This method should be used within a transaction if possible. * * @param Criteria $criteria * @param PropelPDO $con * @return int The number of affected rows (if supported by underlying database driver). */ protected static function doOnDeleteCascade(Criteria $criteria, PropelPDO $con) { // initialize var to track total num of affected rows $affectedRows = 0; // first find the objects that are implicated by the $criteria $objects = UsuarisPeer::doSelect($criteria, $con); foreach ($objects as $obj) { // delete related AppDocumentsPermisos objects $criteria = new Criteria(AppDocumentsPermisosPeer::DATABASE_NAME); $criteria->add(AppDocumentsPermisosPeer::IDUSUARI, $obj->getUsuariid()); $affectedRows += AppDocumentsPermisosPeer::doDelete($criteria, $con); // delete related AppDocumentsPermisosDir objects $criteria = new Criteria(AppDocumentsPermisosDirPeer::DATABASE_NAME); $criteria->add(AppDocumentsPermisosDirPeer::IDUSUARI, $obj->getUsuariid()); $affectedRows += AppDocumentsPermisosDirPeer::doDelete($criteria, $con); // delete related Cessio objects $criteria = new Criteria(CessioPeer::DATABASE_NAME); $criteria->add(CessioPeer::USUARI_ID, $obj->getUsuariid()); $affectedRows += CessioPeer::doDelete($criteria, $con); // delete related Factures objects $criteria = new Criteria(FacturesPeer::DATABASE_NAME); $criteria->add(FacturesPeer::VALIDAUSUARI, $obj->getUsuariid()); $affectedRows += FacturesPeer::doDelete($criteria, $con); // delete related Matricules objects $criteria = new Criteria(MatriculesPeer::DATABASE_NAME); $criteria->add(MatriculesPeer::USUARIS_USUARIID, $obj->getUsuariid()); $affectedRows += MatriculesPeer::doDelete($criteria, $con); // delete related Missatges objects $criteria = new Criteria(MissatgesPeer::DATABASE_NAME); $criteria->add(MissatgesPeer::USUARIS_USUARIID, $obj->getUsuariid()); $affectedRows += MissatgesPeer::doDelete($criteria, $con); // delete related Personal objects $criteria = new Criteria(PersonalPeer::DATABASE_NAME); $criteria->add(PersonalPeer::IDUSUARI, $obj->getUsuariid()); $affectedRows += PersonalPeer::doDelete($criteria, $con); // delete related Reservaespais objects $criteria = new Criteria(ReservaespaisPeer::DATABASE_NAME); $criteria->add(ReservaespaisPeer::USUARIS_USUARIID, $obj->getUsuariid()); $affectedRows += ReservaespaisPeer::doDelete($criteria, $con); // delete related UsuarisApps objects $criteria = new Criteria(UsuarisAppsPeer::DATABASE_NAME); $criteria->add(UsuarisAppsPeer::USUARI_ID, $obj->getUsuariid()); $affectedRows += UsuarisAppsPeer::doDelete($criteria, $con); // delete related UsuarisMenus objects $criteria = new Criteria(UsuarisMenusPeer::DATABASE_NAME); $criteria->add(UsuarisMenusPeer::USUARI_ID, $obj->getUsuariid()); $affectedRows += UsuarisMenusPeer::doDelete($criteria, $con); // delete related UsuarisSites objects $criteria = new Criteria(UsuarisSitesPeer::DATABASE_NAME); $criteria->add(UsuarisSitesPeer::USUARI_ID, $obj->getUsuariid()); $affectedRows += UsuarisSitesPeer::doDelete($criteria, $con); // delete related Usuarisllistes objects $criteria = new Criteria(UsuarisllistesPeer::DATABASE_NAME); $criteria->add(UsuarisllistesPeer::USUARIS_USUARISID, $obj->getUsuariid()); $affectedRows += UsuarisllistesPeer::doDelete($criteria, $con); } return $affectedRows; }
function AltresApps($USUARI, $IDS) { $PERMISOS = UsuarisAppsPeer::getPermisosOO($USUARI, $IDS); echo "<TR><TD class=\"SUBMENU_2\">" . image_tag('intranet/Submenu2.png', array('align' => 'ABSMIDDLE')) . " Altres aplicacions</TD></TR>"; foreach ($PERMISOS as $APP) { echo "<TR><TD class=\"SUBMENU_3\">" . link_to(image_tag('intranet/Submenu3.png', array('align' => 'ABSMIDDLE')) . ' ' . $APP->getNom(), $APP->getUrl()) . "</TD></TR>"; } }
/** * If this collection has already been initialized with * an identical criteria, it returns the collection. * Otherwise if this Nivells is new, it will return * an empty collection; or if this Nivells has previously * been saved, it will retrieve related UsuarisAppss from storage. * * This method is protected by default in order to keep the public * api reasonable. You can provide public methods for those you * actually need in Nivells. */ public function getUsuarisAppssJoinApps($criteria = null, $con = null, $join_behavior = Criteria::LEFT_JOIN) { if ($criteria === null) { $criteria = new Criteria(NivellsPeer::DATABASE_NAME); } elseif ($criteria instanceof Criteria) { $criteria = clone $criteria; } if ($this->collUsuarisAppss === null) { if ($this->isNew()) { $this->collUsuarisAppss = array(); } else { $criteria->add(UsuarisAppsPeer::NIVELL_ID, $this->idnivells); $this->collUsuarisAppss = UsuarisAppsPeer::doSelectJoinApps($criteria, $con, $join_behavior); } } else { // the following code is to determine if a new query is // called for. If the criteria is the same as the last // one, just return the collection. $criteria->add(UsuarisAppsPeer::NIVELL_ID, $this->idnivells); if (!isset($this->lastUsuarisAppsCriteria) || !$this->lastUsuarisAppsCriteria->equals($criteria)) { $this->collUsuarisAppss = UsuarisAppsPeer::doSelectJoinApps($criteria, $con, $join_behavior); } } $this->lastUsuarisAppsCriteria = $criteria; return $this->collUsuarisAppss; }
/** * Method to invalidate the instance pool of all tables related to nivells * by a foreign key with ON DELETE CASCADE */ public static function clearRelatedInstancePool() { // invalidate objects in AppDocumentsPermisosPeer instance pool, since one or more of them may be deleted by ON DELETE CASCADE rule. AppDocumentsPermisosPeer::clearInstancePool(); // invalidate objects in AppDocumentsPermisosDirPeer instance pool, since one or more of them may be deleted by ON DELETE CASCADE rule. AppDocumentsPermisosDirPeer::clearInstancePool(); // invalidate objects in UsuarisPeer instance pool, since one or more of them may be deleted by ON DELETE CASCADE rule. UsuarisPeer::clearInstancePool(); // invalidate objects in UsuarisAppsPeer instance pool, since one or more of them may be deleted by ON DELETE CASCADE rule. UsuarisAppsPeer::clearInstancePool(); // invalidate objects in UsuarisMenusPeer instance pool, since one or more of them may be deleted by ON DELETE CASCADE rule. UsuarisMenusPeer::clearInstancePool(); // invalidate objects in UsuarisSitesPeer instance pool, since one or more of them may be deleted by ON DELETE CASCADE rule. UsuarisSitesPeer::clearInstancePool(); }
/** * Populates the object using an array. * * This is particularly useful when populating an object from one of the * request arrays (e.g. $_POST). This method goes through the column * names, checking to see whether a matching key exists in populated * array. If so the setByName() method is called for that column. * * You can specify the key type of the array by additionally passing one * of the class type constants BasePeer::TYPE_PHPNAME, BasePeer::TYPE_STUDLYPHPNAME, * BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM. * The default key type is the column's phpname (e.g. 'AuthorId') * * @param array $arr An array to populate the object from. * @param string $keyType The type of keys the array uses. * @return void */ public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME) { $keys = UsuarisAppsPeer::getFieldNames($keyType); if (array_key_exists($keys[0], $arr)) { $this->setUsuariId($arr[$keys[0]]); } if (array_key_exists($keys[1], $arr)) { $this->setAppId($arr[$keys[1]]); } if (array_key_exists($keys[2], $arr)) { $this->setNivellId($arr[$keys[2]]); } if (array_key_exists($keys[3], $arr)) { $this->setSiteId($arr[$keys[3]]); } if (array_key_exists($keys[4], $arr)) { $this->setActiu($arr[$keys[4]]); } }
/** * Retrieve object using using composite pkey values. * @param int $usuari_id * @param int $app_id * @param PropelPDO $con * @return UsuarisApps */ public static function retrieveByPK($usuari_id, $app_id, PropelPDO $con = null) { $key = serialize(array((string) $usuari_id, (string) $app_id)); if (null !== ($obj = UsuarisAppsPeer::getInstanceFromPool($key))) { return $obj; } if ($con === null) { $con = Propel::getConnection(UsuarisAppsPeer::DATABASE_NAME, Propel::CONNECTION_READ); } $criteria = new Criteria(UsuarisAppsPeer::DATABASE_NAME); $criteria->add(UsuarisAppsPeer::USUARI_ID, $usuari_id); $criteria->add(UsuarisAppsPeer::APP_ID, $app_id); $v = UsuarisAppsPeer::doSelect($criteria, $con); return !empty($v) ? $v[0] : null; }
/** * This is a method for emulating ON DELETE CASCADE for DBs that don't support this * feature (like MySQL or SQLite). * * This method is not very speedy because it must perform a query first to get * the implicated records and then perform the deletes by calling those Peer classes. * * This method should be used within a transaction if possible. * * @param Criteria $criteria * @param PropelPDO $con * @return int The number of affected rows (if supported by underlying database driver). */ protected static function doOnDeleteCascade(Criteria $criteria, PropelPDO $con) { // initialize var to track total num of affected rows $affectedRows = 0; // first find the objects that are implicated by the $criteria $objects = AppsPeer::doSelect($criteria, $con); foreach ($objects as $obj) { // delete related UsuarisApps objects $criteria = new Criteria(UsuarisAppsPeer::DATABASE_NAME); $criteria->add(UsuarisAppsPeer::APP_ID, $obj->getAppId()); $affectedRows += UsuarisAppsPeer::doDelete($criteria, $con); } return $affectedRows; }
public function executeGUsuaris(sfWebRequest $request) { $this->setLayout('gestio'); $this->IDS = $this->getUser()->getSessionPar('idS'); $this->IDU = $request->getParameter('id_usuari'); if ($request->getParameter('accio') == 'CC') { $this->getUser()->setSessionPar('cerca', array('text' => "")); $this->getUser()->setSessionPar('PAGINA', 1); $this->redirect('gestio/gUsuaris?accio=FC'); } $this->CERCA = $this->getUser()->ParReqSesForm($request, 'cerca', array('text' => "")); $this->PAGINA = $this->getUser()->ParReqSesForm($request, 'PAGINA', 1); $accio = $this->getUser()->ParReqSesForm($request, 'accio', 'FC'); //Inicialitzem el formulari de cerca $this->FCerca = new CercaForm(); $this->FCerca->bind($this->CERCA); $this->MODE = array('CONSULTA' => true, 'NOU', 'EDICIO', 'LLISTES', 'CURSOS', 'REGISTRES', 'GESTIO_APLICACIONS'); if ($request->hasParameter('BNOU')) { $accio = "N"; } if ($request->hasParameter('BCERCA')) { $accio = "FC"; $this->PAGINA = 1; } if ($request->hasParameter('BDESVINCULA')) { $accio = "DL"; } if ($request->hasParameter('BVINCULA')) { $accio = "VL"; } if ($request->hasParameter('BSAVE')) { $accio = "S"; } if ($request->hasParameter('BDELETE')) { $accio = "D"; } if ($request->hasParameter('BACTUALITZA_PERMISOS')) { $accio = "SGA"; } $this->getUser()->setSessionPar('accio', $accio); $this->getUser()->setSessionPar('pagina', $this->PAGINA); switch ($accio) { //Hem entrat a usuaris case 'CC': $this->getUser()->addLogAction('inside', 'gUsuaris'); break; //Nou usuari //Nou usuari case 'N': $this->MODE['NOU'] = true; $this->FUsuari = UsuarisPeer::initialize(0, $this->IDS, false); break; //Edita un usuari //Edita un usuari case 'E': $this->MODE['EDICIO'] = true; $this->FUsuari = UsuarisPeer::initialize($this->IDU, $this->IDS, false); break; //Esborra un usuari //Esborra un usuari case 'D': $RP = $request->getParameter('usuaris'); $this->IDU = $RP['UsuariID']; $this->FUsuari = UsuarisPeer::initialize($this->IDU, $this->IDS, false); $this->FUsuari->getObject()->setActiu(false)->save(); $this->getUser()->addLogAction($accio, 'gUsuaris', $this->FUsuari->getObject()); $this->redirect('gestio/gUsuaris?accio=FC'); break; //Mostra les llistes a les que està subscrit un usuari //Mostra les llistes a les que està subscrit un usuari case 'L': $this->USUARI = UsuarisPeer::initialize($this->IDU, $this->IDS, false)->getObject(); $this->LLISTAT_LLISTES = LlistesPeer::getLlistesDisponibles($this->IDU, $this->IDS); $this->MODE['LLISTES'] = true; break; //Mostra els cursos d'un usuari //Mostra els cursos d'un usuari case 'C': $this->USUARI = UsuarisPeer::initialize($this->IDU, $this->IDS, false)->getObject(); $this->MATRICULES = $this->USUARI->getMatricules(); $this->MODE['CURSOS'] = true; break; //Mostra les reserves que ha fet //Mostra les reserves que ha fet case 'R': $this->USUARI = UsuarisPeer::initialize($this->IDU, $this->IDS, false)->getObject(); $this->RESERVES = $this->USUARI->getReserves(); $this->MODE['REGISTRES'] = true; break; //Guarda un usuari //Guarda un usuari case 'S': $RP = $request->getParameter('usuaris'); $this->IDU = $RP['UsuariID']; $this->FUsuari = UsuarisPeer::initialize($this->IDU, $this->IDS, false); $this->FUsuari->bind($RP); if ($this->FUsuari->isValid()) { $this->FUsuari->save(); $this->getUser()->addLogAction($accio, 'gUsuaris', null, $this->FUsuari->getObject()); } $this->MODE['EDICIO'] = true; break; //Desvincula un usuari de la llista de correu //Desvincula un usuari de la llista de correu case 'DL': $D = $request->getParameter('D'); foreach ($D['IDL'] as $IDL) { LlistesPeer::desvincula($this->IDU, $IDL); } $this->getUser()->addLogAction($accio, 'gUsuaris', $D); $this->redirect("gestio/gUsuaris?accio=L"); break; //Vincula un usuari a la llista de correu //Vincula un usuari a la llista de correu case 'VL': $D = $request->getParameter('D'); foreach ($D['IDL'] as $IDL) { LlistesPeer::vincula($this->IDU, $IDL); } $this->getUser()->addLogAction($accio, 'gUsuaris', $D); $this->redirect("gestio/gUsuaris?accio=L"); break; //Gestió de permisos d'aplicacions pels usuaris //Gestió de permisos d'aplicacions pels usuaris case 'GA': $this->USUARI = UsuarisPeer::initialize($this->IDU, $this->IDS, false)->getObject(); $this->LLISTAT_PERMISOS = UsuarisAppsPeer::getPermisos($this->IDU, $this->IDS); $this->MODE['GESTIO_APLICACIONS'] = true; break; //Guarda la gestió d'aplicacions //Guarda la gestió d'aplicacions case 'SGA': $PERM = $request->getParameter('PERMIS', array()); UsuarisAppsPeer::save($PERM, $this->IDU, $this->IDS); $this->USUARI = UsuarisPeer::initialize($this->IDU, $this->IDS, false)->getObject(); $this->LLISTAT_PERMISOS = UsuarisAppsPeer::getPermisos($this->IDU, $this->IDS); $this->getUser()->addLogAction($accio, 'gUsuaris', $PERM); $this->MODE['GESTIO_APLICACIONS'] = true; break; } $this->PAGER_USUARIS = UsuarisPeer::cercaTotsCamps($this->CERCA['text'], $this->PAGINA, $this->IDS); }