staging #169
73
notes.md
Normal file
73
notes.md
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
# Wordpress auth
|
||||||
|
|
||||||
|
Add the following code to `wp-content/themes/bravada/functions.php`:
|
||||||
|
|
||||||
|
```
|
||||||
|
function rot_auth( $user, $username, $password ){
|
||||||
|
// Make sure a username and password are present for us to work with
|
||||||
|
if($username == '' || $password == '') return;
|
||||||
|
|
||||||
|
$ch = curl_init();
|
||||||
|
|
||||||
|
curl_setopt($ch, CURLOPT_URL, 'https://app.rudernlinz.at/wikiauth');
|
||||||
|
curl_setopt($ch, CURLOPT_POST, 1);
|
||||||
|
curl_setopt($ch, CURLOPT_POSTFIELDS, "name=$username&password=$password");
|
||||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||||
|
|
||||||
|
// Execute the cURL session and get the response
|
||||||
|
$response = curl_exec($ch);
|
||||||
|
|
||||||
|
// Check for cURL errors
|
||||||
|
if(curl_errno($ch)){
|
||||||
|
$user = new WP_Error( 'denied', __('Curl error: ' . curl_error($ch)) );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Close the cURL session
|
||||||
|
curl_close($ch);
|
||||||
|
|
||||||
|
|
||||||
|
if (strpos($response, 'SUCC') !== false) {
|
||||||
|
$user = get_user_by('login', $username);
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
// User does not exist, create a new one
|
||||||
|
$userdata = array(
|
||||||
|
'user_email' => $username,
|
||||||
|
'user_login' => $username,
|
||||||
|
'first_name' => $username,
|
||||||
|
'last_name' => ''
|
||||||
|
);
|
||||||
|
$new_user_id = wp_insert_user($userdata);
|
||||||
|
|
||||||
|
if (!is_wp_error($new_user_id)) {
|
||||||
|
// Load the new user info
|
||||||
|
$user = new WP_User($new_user_id);
|
||||||
|
|
||||||
|
// Set role based on username
|
||||||
|
if ($username == 'Philipp Hofer' || $username == 'Marie Birner') {
|
||||||
|
$user->set_role('administrator');
|
||||||
|
} else {
|
||||||
|
$user->set_role('editor');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Handle error in user creation
|
||||||
|
return $new_user_id;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$user = new WP_Error( 'denied', __("Falscher Benutzername/Passwort. Verwendest du deine Accountdaten vom Ruderassistenten?") );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return $user;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Comment this line if you wish to fall back on WordPress authentication
|
||||||
|
// Useful for times when the external service is offline
|
||||||
|
remove_action('authenticate', 'wp_authenticate_username_password', 20);
|
||||||
|
|
||||||
|
add_filter( 'authenticate', 'rot_auth', 10, 3 );
|
||||||
|
```
|
Loading…
Reference in New Issue
Block a user