/** * @see Controller nuevo controller */ require_once CORE_PATH . 'kumbia/controller.php'; /** * Controlador principal que heredan los controladores * * Todas las controladores heredan de esta clase en un nivel superior * por lo tanto los metodos aqui definidos estan disponibles para * cualquier controlador. * * @category Kumbia * @package Controller */ //Cargo los parámetros de configuración DwConfig::Load(); class AppController extends Controller { /** * Callback que se ejecuta antes de los métodos de todos los controladores */ protected final function initialize() { if (APP_UPDATE) { DwMessage::info('Estamos en labores de mantenimiento y actualización.'); View::select(NULL, 'update'); } } /** * Callback que se ejecuta después de los métodos de todos los controladores */
<?php /** * @see Controller nuevo controller */ require_once CORE_PATH . 'kumbia/controller.php'; /** * Controlador principal que heredan los controladores * * Todas las controladores heredan de esta clase en un nivel superior * por lo tanto los metodos aqui definidos estan disponibles para * cualquier controlador. * * @category Kumbia * @package Controller */ Load::lib('dw_config'); DwConfig::load(); class AppController extends Controller { protected final function initialize() { } protected final function finalize() { } }
/** * Callback que se ejecuta antes de guardar/modificar */ protected function before_save() { 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 = DwConfig::read('config', array('custom' => 'login_exclusion')); $exclusion = explode(',', $exclusion); if (!empty($exclusion)) { if (in_array($this->login, $exclusion)) { Flash::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)) { Flash::error('El nombre de usuario no se encuentra disponible.'); return 'cancel'; } //Verifico si se encuentra el mail registrado if ($this->_getRegisteredField('email', $this->email, $this->id)) { Flash::error('El correo electrónico ya se encuentra registrado o no se encuentra disponible.'); return 'cancel'; } $this->datagrid = Filter::get($this->datagrid, 'int'); }
/** * Callback que se ejecuta antes de guardar/modificar */ protected function before_save() { //Coloco en mayusculas los datos que van a bd $this->nombres = strtoupper($this->nombres); $this->apellidos = strtoupper($this->apellidos); $this->login = strtoupper($this->login); $this->email = strtoupper($this->email); //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 = DwConfig::read('config', array('custom' => 'login_exclusion')); $exclusion = explode(',', $exclusion); if (!empty($exclusion)) { if (in_array($this->login, $exclusion)) { DwMessage::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)) { DwMessage::error('El nombre de usuario no se encuentra disponible.'); return 'cancel'; } //Verifico si ya se encuentra registrado //if($this->_getRegisteredField('titular_id', $this->titular_id, $this->id)) { // DwMessage::error('La titular registrada ya posee una cuenta de usuario.'); // return 'cancel'; //} //if($this->_getRegisteredField('titular_id', $this->titular_id, $this->cedula)) { // DwMessage::error('La Cedula registrada ya posee una cuenta de usuario.'); // return 'cancel'; //} //Verifico si se encuentra el mail registrado if ($this->_getRegisteredField('email', $this->email, $this->id)) { DwMessage::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'); DwMessage::valid('El archivo de conexión se ha actualizado correctamente!'); } catch (KumbiaException $e) { DwMessage::error('Oops!. Se ha realizado algo mal internamente. <br />Intentalo de nuevo!.'); } Input::delete('databases'); } $this->databases = DwConfig::read('databases', '', true); $this->page_module = 'Configuración de conexión'; }
/** * 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')) { DwMessage::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 = DwConfig::write('databases', $data, $source); if ($rs) { DwAudit::info('Se ha actualizado el archivo de conexión del sistema'); } return $rs; }