예제 #1
0
 /**
  *
  * get all users
  */
 static function getAllUsers()
 {
     //
     // use database
     //
     if (gatorconf::get('use_database')) {
         $db = new DBDriver();
         $rs = $db->query("SELECT * FROM users");
         return $db->fetchAll($rs);
     }
     //
     // use user_config_file
     //
     $config_file = gatorconf::get('user_config_file');
     // load users database on start and on file change
     if (!isset($_SESSION['cached_users']) || $_SESSION['user_config_stamp'] != filemtime($config_file)) {
         $_SESSION['user_config_stamp'] = filemtime($config_file);
         $_SESSION['cached_users'] = json_decode(file_get_contents($config_file), true);
     }
     // refresh user's permissions
     if (isset($_SESSION['simple_auth']['username']) && $_SESSION['simple_auth']['username'] != 'admin' && isset($_SESSION['simple_auth']['permissions'])) {
         foreach ($_SESSION['cached_users'] as $key => $user) {
             // account match
             if ($user['username'] == $_SESSION['simple_auth']['username']) {
                 $_SESSION['simple_auth']['permissions'] = $user['permissions'];
                 break;
             }
         }
     }
     if (!is_array($_SESSION['cached_users'])) {
         gator::error('cannot read users file!');
     }
     return $_SESSION['cached_users'];
 }