die('Check log\\n'); } } } else { $redis = false; } require "Lib/phpMQTT.php"; $mqtt = new phpMQTT($mqtt_server['host'], $mqtt_server['port'], "Emoncms input subscriber"); require "Modules/user/user_model.php"; $user = new User($mysqli, $redis, null); require_once "Modules/feed/feed_model.php"; $feed = new Feed($mysqli, $redis, $feed_settings); require_once "Modules/input/input_model.php"; $input = new Input($mysqli, $redis, $feed); require_once "Modules/process/process_model.php"; $process = new Process($mysqli, $input, $feed, $user->get_timezone($mqttsettings['userid'])); if (!$mqtt->connect(true, NULL, $mqtt_server['user'], $mqtt_server['password'])) { $log->error("Cannot connect to MQTT Server"); die('Check log\\n'); } $topic = $mqttsettings['basetopic'] . "/#"; echo "Subscribing to: " . $topic . "\n"; $topics[$topic] = array("qos" => 0, "function" => "procmsg"); $mqtt->subscribe($topics, 0); while ($mqtt->proc()) { } $mqtt->close(); function procmsg($topic, $value) { $time = time(); echo $topic . " " . $value . "\n";
die('Check log\\n'); } } } else { $redis = false; } require "Modules/user/user_model.php"; $user = new User($mysqli, $redis, null); include "Modules/feed/feed_model.php"; $feed = new Feed($mysqli, $redis, $feed_settings); require_once "Modules/feed/engine/shared_helper.php"; $helperclass = new SharedHelper(); $session['userid'] = $userid; // required $emailto = $user->get_email($session['userid']); $usertimezone = $user->get_timezone($session['userid']); $now = DateTime::createFromFormat("U", $time); $now->setTimezone(new DateTimeZone($usertimezone)); $now->setTime(23, 59, 59); // at 23:59:59 $now->modify("last day of previous month"); $end = $now->format("U"); $endText = $now->format("YmdHis"); // today $now->setTime(0, 0); // at 00:00 $now->modify("first day of this month"); $start = $now->format("U"); $startText = $now->format("YmdHis"); // Get user feeds $userfeeds = $feed->get_user_feeds($session['userid']);
if (!$redis->auth($redis_server['auth'])) { $log->error("Cannot connect to redis at " . $redis_server['host'] . ", autentication failed"); die('Check log\\n'); } } } else { $redis = false; } require "Modules/user/user_model.php"; $user = new User($mysqli, $redis, null); require_once "Modules/feed/feed_model.php"; $feed = new Feed($mysqli, $redis, $feed_settings); require_once "Modules/input/input_model.php"; $input = new Input($mysqli, $redis, $feed); require_once "Modules/process/process_model.php"; $process = new Process($mysqli, $input, $feed, $user->get_timezone($mqtt_server['userid'])); $mqtt_client = new Mosquitto\Client(); $mqtt_client->setCredentials($mqtt_server['user'], $mqtt_server['password']); $connected = false; $mqtt_client->onConnect('connect'); $mqtt_client->onDisconnect('disconnect'); $mqtt_client->onSubscribe('subscribe'); $mqtt_client->onMessage('message'); $mqtt_client->connect($mqtt_server['host'], $mqtt_server['port'], 5); $topic = $mqtt_server['basetopic'] . "/#"; echo "Subscribing to: " . $topic . "\n"; $log->warn("Subscribing to: " . $topic); $mqtt_client->subscribe($topic, 2); while (true) { $mqtt_client->loop(); }
/** * Logs the user in * @param string $uname username * @param string $pass password * @param string $cookieVal y or n if we are using cookie * @param string $isCookie id value of user stored in the cookie * @param string $resume page to forward the user to after a login * @param string $lang language code to set * @return any error message that occured during login */ function doLogin($uname, $pass, $cookieVal = null, $isCookie = false, $resume = '', $lang = '') { global $conf; $msg = ''; if (empty($resume)) { $resume = 'ctrlpnl.php'; } // Go to control panel by default $_SESSION['sessionID'] = null; $_SESSION['sessionName'] = null; $_SESSION['sessionAdmin'] = null; $_SESSION['hourOffset'] = null; $uname = stripslashes($uname); $pass = stripslashes($pass); $ok_user = $ok_pass = false; $use_logonname = (bool) $conf['app']['useLogonName']; $adminemail = strtolower($conf['app']['adminEmail']); if ($isCookie !== false) { // Cookie is set $cookieValue = $isCookie; if (($id = $this->verifyCookie($cookieValue)) !== false) { $ok_user = $ok_pass = true; } else { $ok_user = $ok_pass = false; setcookie('ID', '', time() - 3600, '/'); // Clear out all cookies $msg .= translate('That cookie seems to be invalid') . '<br/>'; } } else { if ($conf['ldap']['authentication']) { // Include LDAPEngine class include_once 'LDAPEngine.class.php'; $ldap = new LDAPEngine($uname, $pass); if ($ldap->connected()) { $mail = $ldap->getUserEmail(); if ($mail) { $id = $this->db->userExists($mail); if ($id) { // check if LDAP and local DB are in consistancy. $updates = $ldap->getUserData(); if ($this->db->check_updates($id, $updates)) { $this->db->update_user($id, $updates); } } else { $data = $ldap->getUserData(); $id = $this->do_register_user($data, false); } $ok_user = true; $ok_pass = true; } else { $msg .= translate('This system requires that you have an email address.'); } } else { $msg .= translate('Invalid User Name/Password.'); } $ldap->disconnect(); } else { // If we cant find email, set message and flag if (!($id = $this->db->userExists($uname, $use_logonname))) { $msg .= translate('We could not find that logon in our database.') . '<br/>'; $ok_user = false; } else { $ok_user = true; } // If password is incorrect, set message and flag if ($ok_user && !$this->db->isPassword($uname, $pass, $use_logonname)) { $msg .= translate('That password did not match the one in our database.') . '<br/>'; $ok_pass = false; } else { $ok_pass = true; } } } // If the login failed, notify the user and quit the app if (!$ok_user || !$ok_pass) { $msg .= translate('You can try'); return $msg; } else { $this->is_loggedin = true; $user = new User($id); // Get user info // If the user wants to set a cookie, set it // for their ID and fname. Expires in 30 days (2592000 seconds) if (!empty($cookieVal)) { //die ('Setting cookie'); setcookie('ID', $this->generateCookie($user->get_id()), time() + 2592000, '/'); } // If it is the admin, set session variable if ($user->get_email() == $adminemail || $user->get_isadmin()) { $_SESSION['sessionAdmin'] = $user->get_email(); } // Set other session variables $_SESSION['sessionID'] = $user->get_id(); $_SESSION['sessionName'] = $user->get_fname(); $_SESSION['hourOffset'] = $user->get_timezone() - $conf['app']['timezone']; if ($lang != '') { set_language($lang); if ($lang != $user->get_lang()) { $user->set_lang($lang); // Language changed so update the DB } } // Send them to the control panel CmnFns::redirect(urldecode($resume)); } }
/** * @desc Update user * @param User $user * @param string $condition the SQL condition update user * @param array $parameters */ public static function update(User $user, $extended_fields = null) { $condition = 'WHERE user_id=:user_id'; $parameters = array('user_id' => $user->get_id()); self::$querier->update(DB_TABLE_MEMBER, array('display_name' => TextHelper::htmlspecialchars($user->get_display_name()), 'level' => $user->get_level(), 'groups' => implode('|', $user->get_groups()), 'email' => $user->get_email(), 'show_email' => (int) $user->get_show_email(), 'locale' => $user->get_locale(), 'timezone' => $user->get_timezone(), 'theme' => $user->get_theme(), 'editor' => $user->get_editor()), $condition, $parameters); if ($extended_fields !== null) { if ($extended_fields instanceof MemberExtendedFieldsService) { $fields_data = $extended_fields->get_data($user->get_id()); } elseif (is_array($extended_fields)) { $fields_data = $extended_fields; } else { $fields_data = array(); } self::$querier->update(DB_TABLE_MEMBER_EXTENDED_FIELDS, $fields_data, $condition, $parameters); } SessionData::recheck_cached_data_from_user_id($user->get_id()); self::regenerate_cache(); }