示例#1
0
 /**
  * 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;
 }
示例#2
0
 /**
  * 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;
 }
示例#3
0
 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);
         }
     }
 }
示例#4
0
文件: mom.php 项目: r67/masomatic
 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);
     }
 }