function get_credentials($idalm_user) { //Recorro Arreglo de tablas para chequear permisos $alm_user = new alm_userTable(); $alm_user->readEnv(); $alm_table = new alm_tableTable(); $alm_table->readEnv(); $alm_table_data = $alm_table->readData(); $alm_user_record = $alm_user->readRecord($idalm_user); $alm_tables = "/^(alm_table|alm_user|alm_access|alm_role|alm_column)\$/"; if ($alm_table_data) { foreach ($alm_table_data as $table) { switch ($alm_user_record['idalm_role']) { case '': // Si no hay role por defecto, revisar personalizacion $alm_access = new alm_accessTable(); $credentials = $alm_access->readDataFilter("alm_access.idalm_user='******' AND alm_access.idalm_table='" . $table['idalm_table'] . "' AND alm_access.idalm_role!='deny'"); if (is_array($credentials)) { $arrayCredentials[$table['idalm_table']] = $credentials[0]['idalm_role']; } break; case 'full': // total $arrayCredentials[$table['idalm_table']] = 'full'; break; case 'edit': // edicion if (!preg_match($alm_tables, $table['idalm_table'])) { $arrayCredentials[$table['idalm_table']] = 'edit'; } break; case 'delete': // Correccion, solo borrar if (!preg_match($alm_tables, $table['idalm_table'])) { $arrayCredentials[$table['idalm_table']] = 'delete'; } break; case 'read': // Guest, read-only... if (!preg_match($alm_tables, $table['idalm_table'])) { $arrayCredentials[$table['idalm_table']] = 'read'; } break; case 'deny': // No access # Nothing to do... break; } } } return $arrayCredentials; }