예제 #1
0
 /**
  * Yourls filter is_valid_user
  *
  * @param $value
  * @return bool
  */
 public function filter_is_valid_user($value)
 {
     if (true === $value) {
         return true;
     }
     $username = $this->getRequest('username');
     $password = $this->getRequest('password');
     if ($username && $password) {
         try {
             $this->_ldap->auth($username, $password);
         } catch (Exception $e) {
             yourls_login_screen($this->mapLdapException($e));
             die;
         }
         yourls_set_user($username);
         $this->setSession('login', [$username => 'phpass:'******'groups', $this->_ldap->getGroups());
         $this->action_pre_login();
         return true;
     }
     return false;
 }
예제 #2
0
function yourls_check_signature()
{
    global $yourls_user_passwords;
    foreach ($yourls_user_passwords as $valid_user => $valid_password) {
        if (yourls_auth_signature($valid_user) == $_REQUEST['signature']) {
            yourls_set_user($valid_user);
            return true;
        }
    }
    return false;
}
예제 #3
0
/**
 * Check auth against signature. Sets user if applicable, returns bool
 *
 * @since 1.4.1
 * @return bool False if signature missing or invalid, true if valid
 */
function yourls_check_signature()
{
    if (!isset($_REQUEST['signature']) or empty($_REQUEST['signature'])) {
        return false;
    }
    // Check signature against all possible users
    global $yourls_user_passwords;
    foreach ($yourls_user_passwords as $valid_user => $valid_password) {
        if (yourls_auth_signature($valid_user) == $_REQUEST['signature']) {
            yourls_set_user($valid_user);
            return true;
        }
    }
    // Signature doesn't match known user
    return false;
}