Esempio n. 1
0
 /**
  * Método para crear el archivo databases.ini según los parámetros enviados
  * 
  * @param type $data Campos de los formularios
  * @param type $source Production o Deveploment
  * @param type $createDb Indica si se crea o no la base de datos
  * @return boolean
  */
 public static function setDatabases($data, $source = 'development')
 {
     //Verifico si tiene permisos de escritura para crear y editar un archvivo.ini
     if (!is_writable(APP_PATH . 'config')) {
         MkcMessage::warning('Asigna temporalmente el permiso de escritura a la carpeta "config" de tu app!.');
         return false;
     }
     //Filtro el array con los parámetros
     $data = Filter::data($data, array('host', 'username', 'password', 'name', 'type'), 'trim');
     //Se utiliza por defecto el driver mysqli por ser orientado a objetos
     $data['type'] = 'mysqli';
     //Se utiliza por defecto el charset UTF-8
     $data['charset'] = 'UTF-8';
     $rs = MkcConfig::write('databases', $data, $source);
     if ($rs) {
         MkcAudit::info('Se ha actualizado el archivo de conexión del sistema');
     }
     return $rs;
 }
Esempio n. 2
0
 /**
  * Callback que se ejecuta antes de guardar/modificar
  */
 protected function before_save()
 {
     //Verifico la sucursal al crear el usuario
     if (APP_OFFICE) {
         $this->sucursal_id = $this->sucursal_id == 'todas' ? NULL : Filter::get($this->sucursal_id, 'int');
     } else {
         $this->sucursal_id = Sucursal::OFICINA_PRINCIPAL;
     }
     if (Session::get('perfil_id') != Perfil::SUPER_USUARIO) {
         //Solo el super usuario puede hacer esto
         //Verifico las exclusiones de los nombres de usuarios del config.ini
         $exclusion = MkcConfig::read('config', array('custom' => 'login_exclusion'));
         $exclusion = explode(',', $exclusion);
         if (!empty($exclusion)) {
             if (in_array($this->login, $exclusion)) {
                 MkcMessage::error('El nombre de usuario indicado, no se encuentra disponible.');
                 return 'cancel';
             }
         }
     }
     //Verifico si el login está disponible
     if ($this->_getRegisteredField('login', $this->login, $this->id)) {
         MkcMessage::error('El nombre de usuario no se encuentra disponible.');
         return 'cancel';
     }
     //Verifico si ya se encuentra registrado
     if ($this->_getRegisteredField('persona_id', $this->persona_id, $this->id)) {
         MkcMessage::error('La persona registrada ya posee una cuenta de usuario.');
         return 'cancel';
     }
     //Verifico si se encuentra el mail registrado
     if ($this->_getRegisteredField('email', $this->email, $this->id)) {
         MkcMessage::error('El correo electrónico ya se encuentra registrado.');
         return 'cancel';
     }
     $this->datagrid = Filter::get($this->datagrid, 'int');
 }
 /**
  * Método para editar el databases
  */
 public function databases()
 {
     if (Input::hasPost('development') && Input::hasPost('production')) {
         try {
             Sistema::setDatabases(Input::post('development'), 'development');
             Sistema::setDatabases(Input::post('production'), 'production');
             MkcMessage::valid('El archivo de conexión se ha actualizado correctamente!');
         } catch (KumbiaException $e) {
             MkcMessage::error('Oops!. Se ha realizado algo mal internamente. <br />Intentalo de nuevo!.');
         }
         Input::delete('databases');
     }
     $this->databases = MkcConfig::read('databases', '', true);
     $this->page_module = 'Configuración de conexión';
 }