Exemplo n.º 1
0
 /**
  * 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;
 }
Exemplo n.º 2
0
 /**
  * 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;
 }
Exemplo n.º 3
0
 /**
  * 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;
 }