-
-
Notifications
You must be signed in to change notification settings - Fork 825
/
Copy pathDrupal.php
59 lines (51 loc) · 1.38 KB
/
Drupal.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
/*
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC. All rights reserved. |
| |
| This work is published under the GNU AGPLv3 license with some |
| permitted exceptions and without any warranty. For full license |
| and copyright information, see https://civicrm.org/licensing |
+--------------------------------------------------------------------+
*/
namespace Civi\Authx;
class Drupal implements AuthxInterface {
/**
* @inheritDoc
*/
public function checkPassword(string $username, string $password) {
$uid = user_authenticate($username, $password);
// Ensure strict nullness.
return $uid ?: NULL;
}
/**
* @inheritDoc
*/
public function loginSession($userId) {
global $user;
$user = user_load($userId);
user_login_finalize();
}
/**
* @inheritDoc
*/
public function logoutSession() {
module_load_include('inc', 'user', 'user.pages');
user_logout_current_user();
}
/**
* @inheritDoc
*/
public function loginStateless($userId) {
drupal_save_session(FALSE);
global $user;
$user = user_load($userId);
}
/**
* @inheritDoc
*/
public function getCurrentUserId() {
global $user;
return $user && $user->uid ? $user->uid : NULL;
}
}