| 1: | <?php |
| 2: | |
| 3: | |
| 4: | |
| 5: | |
| 6: | |
| 7: | |
| 8: | |
| 9: | define('DEBUG_MODE', false); |
| 10: | define('APP_PATH', dirname(dirname(dirname(__FILE__))).'/'); |
| 11: | define('VENDOR_PATH', APP_PATH.'vendor/'); |
| 12: | define('WEB_ROOT', ''); |
| 13: | |
| 14: | |
| 15: | require_once APP_PATH.'lib/framework.php'; |
| 16: | require APP_PATH.'modules/core/functions.php'; |
| 17: | |
| 18: | |
| 19: | |
| 20: | |
| 21: | |
| 22: | |
| 23: | |
| 24: | |
| 25: | |
| 26: | function cypht_login($user, $pass, $url, $lifetime=0) { |
| 27: | list($session, $request) = session_init(); |
| 28: | $session->check($request, $user, $pass, false); |
| 29: | if ($session->is_active()) { |
| 30: | list($domain, $path, $secure) = url_parse($url); |
| 31: | $config = new Hm_Site_Config_File(); |
| 32: | $user_config = load_user_config_object($config); |
| 33: | $user_config->load($user, $pass); |
| 34: | module_init_functions($user_config, $session, $request, $config, $user, $pass); |
| 35: | $user_data = $user_config->dump(); |
| 36: | $session->set('user_data', $user_data); |
| 37: | $session->set('username', rtrim($user)); |
| 38: | Hm_Functions::setcookie('hm_id', stripslashes($session->enc_key), $lifetime, $path, $domain, $secure, true); |
| 39: | Hm_Functions::setcookie('hm_session', stripslashes($session->session_key), $lifetime, $path, $domain, $secure, true); |
| 40: | $session->end(); |
| 41: | return true; |
| 42: | } |
| 43: | return false; |
| 44: | } |
| 45: | |
| 46: | |
| 47: | |
| 48: | |
| 49: | |
| 50: | |
| 51: | |
| 52: | |
| 53: | |
| 54: | |
| 55: | |
| 56: | |
| 57: | function module_init_functions($user_config, $session, $request, $config, $user, $pass) { |
| 58: | foreach (Hm_Handler_Modules::get_for_page('functional_api') as $func => $vals) { |
| 59: | if (is_readable(sprintf("%smodules/%s/modules.php", APP_PATH, $vals[0]))) { |
| 60: | require_once sprintf("%smodules/%s/modules.php", APP_PATH, $vals[0]); |
| 61: | $func($user_config, $session, $request, $config, $user, $pass); |
| 62: | } |
| 63: | } |
| 64: | } |
| 65: | |
| 66: | |
| 67: | |
| 68: | |
| 69: | |
| 70: | |
| 71: | function cypht_logout() { |
| 72: | list($session, $request) = session_init(); |
| 73: | $session->check($request); |
| 74: | $session->destroy($request); |
| 75: | } |
| 76: | |
| 77: | |
| 78: | |
| 79: | |
| 80: | |
| 81: | |
| 82: | |
| 83: | function url_parse($url) { |
| 84: | $parsed = parse_url($url); |
| 85: | $secure = $parsed['scheme'] === 'https' ? true : false; |
| 86: | return array($parsed['host'], '/', $secure); |
| 87: | } |
| 88: | |
| 89: | |
| 90: | |
| 91: | |
| 92: | |
| 93: | |
| 94: | function session_init() { |
| 95: | $config = new Hm_Site_Config_File(); |
| 96: | $module_exec = new Hm_Module_Exec($config); |
| 97: | $module_exec->load_module_sets('functional_api'); |
| 98: | $request = new Hm_Request($module_exec->filters, $config); |
| 99: | if (in_array('site', $config->get_modules(), true)) { |
| 100: | if (is_readable(APP_PATH.'modules/site/lib.php')) { |
| 101: | Hm_Debug::add('Including site module set lib.php'); |
| 102: | require APP_PATH.'modules/site/lib.php'; |
| 103: | } |
| 104: | } |
| 105: | $session_config = new Hm_Session_Setup($config); |
| 106: | $session = $session_config->setup_session(); |
| 107: | return array($session, $request); |
| 108: | } |
| 109: | |