/** * fetch options from db then fix and return result * @param boolean $_pemissionDetails [description] * @return [type] [description] */ public static function fetch() { // connect to default database \lib\db::connect(true); // set query string $qry = "SELECT `options`.*\n\t\t\tFROM `options`\n\t\t\tWHERE user_id IS NULL AND\n\t\t\t\tpost_id IS NULL AND\n\t\t\t\t(\n\t\t\t\t\toption_cat like 'option%' OR\n\t\t\t\t\toption_cat like 'permissions'\n\t\t\t\t)"; // run query and give result $result = @mysqli_query(\lib\db::$link, $qry); // if result is not mysqli result return false if (!is_a($result, 'mysqli_result')) { // no record exist return false; } // fetch all records $result = \lib\db::fetch_all($result); $permList = []; $qry_result = null; foreach ($result as $key => $row) { // save permissions to query result if ($row['option_cat'] == 'permissions') { // if status is enable if ($row['option_status'] == 'enable') { $qry_result['permissions']['meta'][$row['option_key']] = json_decode($row['option_meta'], true); $qry_result['permissions']['meta'][$row['option_key']]['id'] = $row['option_key']; $qry_result['permissions']['meta'][$row['option_key']]['name'] = $row['option_value']; // save current user permission as option permission value if (isset($_SESSION['user']['permission']) && $row['option_key'] == $_SESSION['user']['permission']) { $qry_result['permissions']['value'] = $row['option_key']; } } } else { $myValue = $row['option_value']; $myMeta = $row['option_meta']; $myStatus = $row['option_status']; if ($myStatus === 'enable' || $myStatus === 'on' || $myStatus === 'active') { $myStatus = true; } else { $myStatus = false; } if (substr($myValue, 0, 1) == '{') { $myValue = json_decode($myValue, true); } if (substr($myMeta, 0, 1) == '{') { $myMeta = json_decode($myMeta, true); } // save result $qry_result[$row['option_key']] = ['value' => $myValue, 'meta' => $myMeta, 'status' => $myStatus]; } } return $qry_result; }
/** * create link to database if not exist * @param boolean $_force [description] * @return [type] [description] */ private static function createLink($_force = false) { if (!self::$link || $_force) { // open database connection and create link if (!\lib\db::connect('[tools]')) { // cant connect to database return false; } // save link as global variable self::$link = \lib\db::$link; return true; } return true; }
/** * delete session file with given perm name * @param [type] $_permName [description] * @param boolean $_exceptMe [description] * @return [type] [description] */ public static function deleteByPerm($_permName) { $permList = \lib\utility\option::permList(true); $deleteResult = []; // if permission exist if (isset($permList[$_permName])) { // find user with this permission $perm_id = $permList[$_permName]; // connect to database \lib\db::connect(true); $qry = "SELECT `options`.option_value\n\t\t\t\tFROM users\n\t\t\t\tINNER JOIN `options` ON `options`.user_id = `users`.id\n\t\t\t\tWHERE `options`.option_cat = 'session' AND\n\t\t\t\t\tuser_permission = {$perm_id};"; // run query and give result $result = @mysqli_query(\lib\db::$link, $qry); // fetch all records $result = \lib\db::fetch_all($result, 'option_value'); if ($result) { $deleteResult = self::delete($result); // for each file in delete foreach ($deleteResult as $key => $value) { // if file is deleted if ($value === true) { $qry = "DELETE FROM options WHERE option_cat = 'session' AND option_value = '{$key}';"; @mysqli_query(\lib\db::$link, $qry); } } return $deleteResult; } } return null; }