mirror of
https://github.com/xevidos/codiad.git
synced 2024-11-10 21:26:35 +01:00
Added legacy support to necessary functions used in update processes, Continued work on search feature, Updated jsend to use let instead of var, Continued removal of no longer used methods
This commit is contained in:
parent
aad8c48a82
commit
c85c920340
13
common.php
13
common.php
@ -167,10 +167,15 @@ class Common {
|
||||
public static function is_admin() {
|
||||
|
||||
global $sql;
|
||||
$query = "SELECT COUNT( * ) FROM users WHERE id=? AND ( access=? OR access='admin' );";
|
||||
$bind_variables = array( $_SESSION["user_id"], Permissions::SYSTEM_LEVELS["admin"] );
|
||||
$return = $sql->query( $query, $bind_variables, -1, 'fetchColumn' );
|
||||
$admin = ( $return > 0 );
|
||||
$admin = false;
|
||||
|
||||
if( isset( $_SESSION["user_id"] ) ) {
|
||||
|
||||
$query = "SELECT COUNT( * ) FROM users WHERE id=? AND ( access=? OR access='admin' );";
|
||||
$bind_variables = array( $_SESSION["user_id"], Permissions::SYSTEM_LEVELS["admin"] );
|
||||
$return = $sql->query( $query, $bind_variables, -1, 'fetchColumn' );
|
||||
$admin = ( $return > 0 );
|
||||
}
|
||||
return $admin;
|
||||
}
|
||||
|
||||
|
@ -635,6 +635,12 @@ class Filemanager extends Common {
|
||||
"status" => "none",
|
||||
"message" => null,
|
||||
);
|
||||
|
||||
if( ! common::isAbsPath( $path ) ) {
|
||||
|
||||
$path = WORKSPACE . "/$path";
|
||||
}
|
||||
|
||||
if ( ! function_exists( 'shell_exec' ) ) {
|
||||
|
||||
$response["status"] = "error";
|
||||
@ -654,7 +660,7 @@ class Filemanager extends Common {
|
||||
|
||||
$da['line'] = $data[1];
|
||||
$da['file'] = str_replace( $path, '', $data[0] );
|
||||
$da['result'] = str_replace( $path, '', $data[0] );
|
||||
$da['result'] = $_SESSION["project"] . str_replace( $path, '', $data[0] );
|
||||
$da['string'] = str_replace( $data[0] . ":" . $data[1] . ':', '', $line );
|
||||
$return[] = $da;
|
||||
}
|
||||
@ -666,7 +672,8 @@ class Filemanager extends Common {
|
||||
} else {
|
||||
|
||||
$response["status"] = "success";
|
||||
$response["index"] = $return;
|
||||
$response["data"] = array();
|
||||
$response["data"]["index"] = $return;
|
||||
}
|
||||
}
|
||||
return $response;
|
||||
|
@ -46,9 +46,9 @@ if( ! isset( $_SESSION['project'] ) ) {
|
||||
require_once('../project/controller.php');
|
||||
}
|
||||
|
||||
if( isset( $_GET["path"] ) ) {
|
||||
if( isset( $_GET["path"] ) || isset( $_POST["path"] ) ) {
|
||||
|
||||
$path = $_GET["path"];
|
||||
$path = isset( $_GET["path"] ) ? $_GET["path"] : $_POST["path"];
|
||||
} else {
|
||||
|
||||
$response["status"] = "error";
|
||||
@ -60,7 +60,7 @@ if( isset( $_GET["path"] ) ) {
|
||||
// Security Check
|
||||
//////////////////////////////////////////////////////////////////
|
||||
|
||||
$access = Permissions::get_access( $_GET['path'] );
|
||||
$access = Permissions::get_access( $path );
|
||||
|
||||
if ( ! Permissions::check_access( "read", $access ) ) {
|
||||
|
||||
@ -91,7 +91,7 @@ switch( $action ) {
|
||||
|
||||
case 'archive':
|
||||
|
||||
if( ! isset( $_GET["path"] ) ) {
|
||||
if( ! isset( $path ) ) {
|
||||
|
||||
exit( formatJSEND( "error", "No path specified." ) );
|
||||
}
|
||||
@ -102,7 +102,7 @@ switch( $action ) {
|
||||
}
|
||||
|
||||
$Archive = new Archive();
|
||||
$path = $Filemanager->formatPath( $_GET["path"] );
|
||||
$path = $Filemanager->formatPath( $path );
|
||||
$result = $Archive->compress( $path );
|
||||
|
||||
if( $result ) {
|
||||
@ -238,15 +238,19 @@ switch( $action ) {
|
||||
|
||||
case 'search':
|
||||
|
||||
if( isset( $_GET["query"] ) ) {
|
||||
if( isset( $path ) && isset( $_POST["query"] ) ) {
|
||||
|
||||
$query = $_GET["query"];
|
||||
if( isset( $_GET["options"] ) ) {
|
||||
$query = $_POST["query"];
|
||||
|
||||
if( isset( $_POST["options"] ) ) {
|
||||
|
||||
$options = $_GET["options"];
|
||||
$options = json_decode( $_POST["options"], true );
|
||||
} else {
|
||||
|
||||
$options = array();
|
||||
}
|
||||
|
||||
$response = $Filemanager->search( $path, $query );
|
||||
$response = $Filemanager->search( $path, $query, $options );
|
||||
} else {
|
||||
|
||||
$response["status"] = "error";
|
||||
|
@ -1139,9 +1139,11 @@
|
||||
action: 'search',
|
||||
path: path
|
||||
});
|
||||
|
||||
codiad.modal.load_process.done( async function() {
|
||||
var lastSearched = JSON.parse( await codiad.settings.get_option( "lastSearched" ) );
|
||||
if( lastSearched ) {
|
||||
|
||||
$( '#modal-content form input[name="search_string"]' ).val( lastSearched.searchText );
|
||||
$( '#modal-content form input[name="search_file_type"]' ).val( lastSearched.fileExtension );
|
||||
$( '#modal-content form select[name="search_type"]' ).val( lastSearched.searchType );
|
||||
@ -1152,15 +1154,11 @@
|
||||
});
|
||||
codiad.modal.hideOverlay();
|
||||
let _this = this;
|
||||
$( '#modal-content form' )
|
||||
.live( 'submit', function( e ) {
|
||||
$( '#filemanager-search-processing' )
|
||||
.show();
|
||||
$( '#modal-content form' ).live( 'submit', function( e ) {
|
||||
$( '#filemanager-search-processing' ).show();
|
||||
e.preventDefault();
|
||||
searchString = $( '#modal-content form input[name="search_string"]' )
|
||||
.val();
|
||||
fileExtensions = $( '#modal-content form input[name="search_file_type"]' )
|
||||
.val();
|
||||
searchString = $( '#modal-content form input[name="search_string"]' ).val();
|
||||
fileExtensions = $( '#modal-content form input[name="search_file_type"]' ).val();
|
||||
searchFileType = $.trim( fileExtensions );
|
||||
if( searchFileType != '' ) {
|
||||
//season the string to use in find command
|
||||
@ -1168,12 +1166,21 @@
|
||||
}
|
||||
searchType = $( '#modal-content form select[name="search_type"]' )
|
||||
.val();
|
||||
$.post( _this.controller + '?action=search&path=' + encodeURIComponent( path ) + '&type=' + searchType, {
|
||||
search_string: searchString,
|
||||
search_file_type: searchFileType
|
||||
let options = {
|
||||
filetype: fileExtensions,
|
||||
};
|
||||
$.post( _this.controller + '?action=search', {
|
||||
path: path,
|
||||
query: searchString,
|
||||
options: JSON.stringify( options )
|
||||
}, function( data ) {
|
||||
searchResponse = codiad.jsend.parse( data );
|
||||
var results = '';
|
||||
|
||||
let searchResponse = codiad.jsend.parse( data );
|
||||
let results = '';
|
||||
|
||||
console.log( data );
|
||||
console.log( searchResponse );
|
||||
|
||||
if( searchResponse != 'error' ) {
|
||||
$.each( searchResponse.index, function( key, val ) {
|
||||
// Cleanup file format
|
||||
|
@ -23,7 +23,6 @@ class Project extends Common {
|
||||
public $no_return = false;
|
||||
public $assigned = false;
|
||||
public $command_exec = '';
|
||||
public $public_project = false;
|
||||
public $user = '';
|
||||
|
||||
//////////////////////////////////////////////////////////////////
|
||||
@ -47,12 +46,12 @@ class Project extends Common {
|
||||
public function add_project( $project_name, $project_path, $owner = null ) {
|
||||
|
||||
global $sql;
|
||||
if( $this->public_project ) {
|
||||
if( $owner == null ) {
|
||||
|
||||
$owner = 'nobody';
|
||||
$owner = -1;
|
||||
} else {
|
||||
|
||||
$owner = $_SESSION["user"];
|
||||
$owner = $_SESSION["user_id"];
|
||||
}
|
||||
|
||||
$query = "INSERT INTO projects( name, path, owner ) VALUES ( ?, ?, ? );";
|
||||
@ -69,7 +68,7 @@ class Project extends Common {
|
||||
|
||||
global $sql;
|
||||
$query = "SELECT * FROM projects WHERE path=? AND owner=? LIMIT 1";
|
||||
$bind_variables = array( $this->path, $_SESSION["user"] );
|
||||
$bind_variables = array( $this->path, $_SESSION["user_id"] );
|
||||
$project = $sql->query( $query, $bind_variables, array(), "fetch" );
|
||||
|
||||
if( empty( $project ) ) {
|
||||
|
@ -1,6 +1,5 @@
|
||||
<?php
|
||||
|
||||
require_once( __DIR__ . "/class.sql.conversions.php" );
|
||||
require_once( __DIR__ . "/../permissions/class.permissions.php" );
|
||||
|
||||
class sql {
|
||||
@ -13,13 +12,10 @@ class sql {
|
||||
);
|
||||
|
||||
public $connection = null;
|
||||
public $conversions = null;
|
||||
public $identifier_character = null;
|
||||
protected static $instance = null;
|
||||
|
||||
public function __construct() {
|
||||
|
||||
$this->conversions = new sql_conversions();
|
||||
}
|
||||
|
||||
public function close() {
|
||||
@ -46,12 +42,6 @@ class sql {
|
||||
return( $this->connection );
|
||||
}
|
||||
|
||||
public function create_table( $table_name, $fields=array(), $attributes=array() ) {
|
||||
|
||||
$query = $this->conversions->table( $table_name, $fields, $attributes );
|
||||
//$this->query( $query, array(), array(), null, "rowCount" );
|
||||
}
|
||||
|
||||
public function create_default_tables() {
|
||||
|
||||
$create_tables = $this->create_tables();
|
||||
@ -302,16 +292,19 @@ class sql {
|
||||
$convert = true;
|
||||
}
|
||||
|
||||
$current_user = null;
|
||||
|
||||
foreach( $users as $row => $user ) {
|
||||
|
||||
if( $project["owner"] == $user["username"] ) {
|
||||
|
||||
$update_query .= "UPDATE projects SET owner={$user["id"]} WHERE id={$project["id"]};";
|
||||
$current_user = $user;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if( $project["owner"] != $user["username"] ) {
|
||||
if( $current_user != null && $project["owner"] != $current_user["username"] ) {
|
||||
|
||||
$update_query .= "UPDATE projects SET owner=-1 WHERE id={$project["id"]};";
|
||||
}
|
||||
|
@ -8,13 +8,27 @@ require_once('../../common.php');
|
||||
require_once('../settings/class.settings.php');
|
||||
require_once('./class.update.php');
|
||||
|
||||
|
||||
function check_access_legacy() {
|
||||
|
||||
$pass = false;
|
||||
|
||||
if( isset( $_SESSION["token"] ) && isset( $_SESSION["user"] ) ) {
|
||||
|
||||
global $sql;
|
||||
$query = "SELECT COUNT( * ) FROM users WHERE username=? AND access=?;";
|
||||
$bind_variables = array( $_SESSION["user"], "admin" );
|
||||
$return = $sql->query( $query, $bind_variables, -1, 'fetchColumn' );
|
||||
$admin = ( $return > 0 );
|
||||
return $admin;
|
||||
}
|
||||
return $pass;
|
||||
}
|
||||
|
||||
$user_settings_file = BASE_PATH . "/data/settings.php";
|
||||
$projects_file = BASE_PATH . "/data/projects.php";
|
||||
$users_file = BASE_PATH . "/data/users.php";
|
||||
//checkSession();
|
||||
if ( ! checkAccess() ) {
|
||||
if ( ! checkAccess() && ! check_access_legacy() ) {
|
||||
|
||||
echo "Error, you do not have access to update Codiad.";
|
||||
exit();
|
||||
|
@ -1,6 +1,6 @@
|
||||
( function( global, $ ) {
|
||||
|
||||
var codiad = global.codiad;
|
||||
let codiad = global.codiad;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Parse JSEND Formatted Returns
|
||||
@ -11,7 +11,8 @@
|
||||
parse: function( d ) {
|
||||
|
||||
// (Data)
|
||||
var obj = $.parseJSON( d );
|
||||
let obj = $.parseJSON( d );
|
||||
|
||||
if ( obj === undefined || obj === null ) {
|
||||
|
||||
return 'error';
|
||||
|
Loading…
Reference in New Issue
Block a user