"; $yourls_user_passwords = array_merge($yourls_user_passwords, yourls_get_option('ldapauth_usercache')); //print_r($yourls_user_passwords) . "
"; //die('Paused'); } } /** * Create user in config file * Code reused from yourls_hash_passwords_now() */ function ldapauth_create_user( $user, $new_password ) { $configdata = htmlspecialchars(file_get_contents( YOURLS_CONFIGFILE )); if ( $configdata == FALSE ) { die('Couldn\'t read the config file'); } if (!is_writable(YOURLS_CONFIGFILE)) die('Can\'t write to config file'); $pass_hash = ldapauth_hash_password($new_password); $user_line = "\t'$user' => 'phpass:$pass_hash' /* LDAP user added by plugin */,"; // Add the user on a new line after the start of the passwords array $new_contents = preg_replace('/\$yourls_user_passwords\s=\s\[/', '$0 ' . PHP_EOL . $user_line, $configdata, -1, $count); //echo YOURLS_CONFIGFILE . "
"; //echo $configdata . "
"; //echo $user_line . "
"; //echo $user . "
"; //echo htmlspecialchars_decode($new_contents) . "
"; //echo $count . "
"; //die('Paused'); if ($count === 0) { die('Couldn\'t add user, plugin may not be compatible with YourLS version'); } else if ($count > 1) { die('Added user more than once. Check config file.'); } $success = file_put_contents( YOURLS_CONFIGFILE, htmlspecialchars_decode($new_contents) ); if ( $success === false ) { die('Unable to save config file'); } return $pass_hash; } /** * Hashes password the same way as yourls_hash_passwords_now() **/ function ldapauth_hash_password ($password) { $pass_hash = yourls_phpass_hash( $password ); // PHP would interpret $ as a variable, so replace it in storage. $pass_hash = str_replace( '$', '!', $pass_hash ); return $pass_hash; } function ldapauth_debug ($msg) { if (defined('LDAPAUTH_DEBUG') && LDAPAUTH_DEBUG) { error_log("yourls_ldap_auth: " . $msg); } }