public function listProfilesByUser($id_user, $isActive = NULL)
 {
     $select_profile = $this->buildSelectFields('p_', 'p', 'profile');
     $sql = '
         SELECT
             ' . $select_profile . '
         FROM
             "' . $this->table . '" AS "up"
             INNER JOIN "profile" AS "p" ON "p"."id" = "up"."id_profile"
             INNER JOIN "user" AS "u" ON "u"."id" = "up"."id_user"
         WHERE 1=1
             AND "u"."id" = ' . $this->db->escape($id_user) . '
             ' . (is_null($isActive) ? '' : " AND \"p\".\"isActive\"='" . $isActive . "'") . '
     ';
     $query = $this->db->query($sql);
     if ($query === FALSE) {
         Helper_Log::write($this->messageError(__FUNCTION__, FALSE), Helper_Log::LOG_DB);
         throw new Exception("Problema ejecución en Base de Datos, ver log de errores. Consulte con Sistemas");
     }
     $rows = $query->result_array();
     $eProfiles = array();
     if (!empty($rows)) {
         foreach ($rows as $row) {
             $eProfile = new eProfile();
             $eProfile->parseRow($row, 'p_');
             $eProfiles[] = $eProfile;
         }
     }
     return $eProfiles;
 }
Ejemplo n.º 2
0
 function filter(filterProfile $filter, &$eProfiles, &$eRols = NULL, &$count = NULL)
 {
     $eProfiles = array();
     $eRols = array();
     $count = 0;
     $queryR = $this->db->query($this->filterQuery($filter));
     if ($queryR === FALSE) {
         Helper_Log::write($this->messageError(__FUNCTION__, FALSE), Helper_Log::LOG_DB);
         throw new Exception("Problema ejecución en Base de Datos, ver log de errores. Consulte con Sistemas");
     }
     $queryC = $this->db->query($this->filterQuery($filter, TRUE));
     if ($queryC === FALSE) {
         Helper_Log::write($this->messageError(__FUNCTION__, FALSE), Helper_Log::LOG_DB);
         throw new Exception("Problema ejecución en Base de Datos, ver log de errores. Consulte con Sistemas");
     }
     $row = $queryC->row_array();
     $count = $row['count'];
     $rows = $queryR->result_array();
     if (!empty($rows)) {
         foreach ($rows as $row) {
             $eProfile = new eProfile();
             $eRol = new eRol();
             $eProfile->parseRow($row, 'p_');
             $eRol->parseRow($row, 'r_');
             $eProfiles[] = $eProfile;
             $eRols[] = $eRol;
         }
     }
 }
 public static function saveProfile(eProfile $eProfile)
 {
     $oBus = new Response_Business();
     $MY =& MY_Controller::get_instance();
     /* @var $mProfile Profile_Model */
     $mProfile =& $MY->mProfile;
     $oTransaction = new MY_Business();
     $oTransaction->begin();
     try {
         $isEditable = TRUE;
         if (!$eProfile->isEmpty()) {
             $eProfileT = $mProfile->load($eProfile->id);
             if (!Helper_App_Session::isSuperAdminProfile()) {
                 if ($eProfileT->isSuperAdmin == 1 || $eProfileT->isAdmin == 1) {
                     throw new Exception("Prohibido editar éste perfil");
                 }
                 $isEditable = $eProfileT->isEditable == 1;
             }
             $eProfile->isSuperAdmin = $eProfileT->isSuperAdmin;
             $eProfile->isAdmin = $eProfileT->isAdmin;
             $eProfile->isEditable = $eProfileT->isEditable;
         }
         if ($isEditable) {
             $mProfile->save($eProfile);
         }
         $oTransaction->commit();
         $oBus->isSuccess(TRUE);
         $oBus->message("Guardado exitosamente");
     } catch (Exception $e) {
         $oTransaction->rollback();
         $oBus->isSuccess(FALSE);
         $oBus->message($e->getMessage());
     }
     return $oBus;
 }