/** * Authenticates a user to LDAP * * @param $username * @param $password * @param bool|false $returnUser * @return bool true if the username and/or password provided are valid * false if the username and/or password provided are invalid * array of ldap_attributes if $returnUser is true */ function ldap($username, $password, $returnUser = false) { $ldaphost = Setting::getSettings()->ldap_server; $ldaprdn = Setting::getSettings()->ldap_uname; $ldappass = Crypt::decrypt(Setting::getSettings()->ldap_pword); $baseDn = Setting::getSettings()->ldap_basedn; $filterQuery = Setting::getSettings()->ldap_auth_filter_query . $username; $ldapversion = Setting::getSettings()->ldap_version; // Connecting to LDAP $connection = ldap_connect($ldaphost) or die("Could not connect to {$ldaphost}"); // Needed for AD ldap_set_option($connection, LDAP_OPT_REFERRALS, 0); ldap_set_option($connection, LDAP_OPT_PROTOCOL_VERSION, $ldapversion); try { if ($connection) { // binding to ldap server $ldapbind = ldap_bind($connection, $ldaprdn, $ldappass); if (($results = @ldap_search($connection, $baseDn, $filterQuery)) != false) { $entry = ldap_first_entry($connection, $results); if (($userDn = @ldap_get_dn($connection, $entry)) !== false) { if (($isBound = ldap_bind($connection, $userDn, $password)) == "true") { return $returnUser ? array_change_key_case(ldap_get_attributes($connection, $entry), CASE_LOWER) : true; } } } } } catch (Exception $e) { LOG::error($e->getMessage()); } ldap_close($connection); return false; }
/** * Authenticates a user to LDAP * * @return true if the username and/or password provided are valid * false if the username and/or password provided are invalid * */ function ldap($username, $password) { $ldaphost = Config::get('ldap.url'); $ldaprdn = Config::get('ldap.username'); $ldappass = Config::get('ldap.password'); $baseDn = Config::get('ldap.basedn'); $filterQuery = Config::get('ldap.authentication.filter.query') . $username; // Connecting to LDAP $connection = ldap_connect($ldaphost) or die("Could not connect to {$ldaphost}"); // Needed for AD ldap_set_option($connection, LDAP_OPT_REFERRALS, 0); try { if ($connection) { // binding to ldap server $ldapbind = ldap_bind($connection, $ldaprdn, $ldappass); if (($results = @ldap_search($connection, $baseDn, $filterQuery)) !== false) { $entry = ldap_first_entry($connection, $results); if (($userDn = @ldap_get_dn($connection, $entry)) !== false) { if (($isBound = ldap_bind($connection, $userDn, $password)) == "true") { return true; } } } } } catch (Exception $e) { LOG::error($e->getMessage()); } ldap_close($connection); return false; }
public function checkOutNotifySlack($settings, $admin, $note = null) { if ($settings->slack_endpoint) { $slack_settings = ['username' => $settings->botname, 'channel' => $settings->slack_channel, 'link_names' => true]; $client = new \Maknz\Slack\Client($settings->slack_endpoint, $slack_settings); try { $client->attach(['color' => 'good', 'fields' => [['title' => 'Checked Out:', 'value' => 'HARDWARE asset <' . config('app.url') . '/hardware/' . $this->id . '/view' . '|' . $this->showAssetName() . '> checked out to <' . config('app.url') . '/admin/users/' . $this->assigned_to . '/view|' . $this->assigneduser->fullName() . '> by <' . config('app.url') . '/admin/users/' . Auth::user()->id . '/view' . '|' . $admin->fullName() . '>.'], ['title' => 'Note:', 'value' => e($note)]]])->send('Asset Checked Out'); } catch (Exception $e) { LOG::error($e); } } }
public static function serve() { try { try { $entityBody = file_get_contents('php://input'); } catch (Exception $e) { } LOG::trace("INCOMING-" . full_url() . "-" . $_SERVER['REQUEST_METHOD'] . "\n" . print_r($_REQUEST, true) . "\n" . $entityBody); switch ($_SERVER['REQUEST_METHOD']) { case 'GET': if (isset($_REQUEST['$e'])) { $params = array(); foreach ($_REQUEST as $key => $value) { if (startsWith($key, "@")) { $params[substr($key, 1)] = $value; } } $content = MOM::read($_REQUEST['$e'], $params); } else { $content = MOM::meta(); } break; case 'POST': if (isset($_REQUEST['$e'])) { $values = json_decode($entityBody); $content = MOM::create($_REQUEST['$e'], $values); } break; case 'PUT': if (isset($_REQUEST['$e'])) { $values = json_decode($entityBody); $params = array(); foreach ($_REQUEST as $key => $value) { if (startsWith($key, "@")) { $params[substr($key, 1)] = $value; } } $content = MOM::update($_REQUEST['$e'], $params, $values); } break; case 'DELETE': if (isset($_REQUEST['$e'])) { $params = array(); foreach ($_REQUEST as $key => $value) { if (startsWith($key, "@")) { $params[substr($key, 1)] = $value; } } $content = MOM::delete($_REQUEST['$e'], $params); } break; } $response = MOM::pack($content); LOG::trace("OUTCOMING-" . full_url() . "-" . $_SERVER['REQUEST_METHOD'] . "-" . $response); header($_SERVER['SERVER_PROTOCOL'] . " 200 OK"); echo $response; } catch (Exception $e) { LOG::error("EXCEPTION-" . full_url() . "-" . $_SERVER['REQUEST_METHOD'] . "\n" . print_r($e, true)); header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error', true, 500); $obj = new stdClass(); $obj->error = $e->getMessage(); echo MOM::pack($obj); } }