3 namespace BookStack\Auth\Access;
5 use Illuminate\Contracts\Auth\Authenticatable;
6 use Illuminate\Contracts\Auth\UserProvider;
8 class ExternalBaseUserProvider implements UserProvider
18 * LdapUserProvider constructor.
22 public function __construct(string $model)
24 $this->model = $model;
28 * Create a new instance of the model.
30 * @return \Illuminate\Database\Eloquent\Model
32 public function createModel()
34 $class = '\\' . ltrim($this->model, '\\');
40 * Retrieve a user by their unique identifier.
42 * @param mixed $identifier
44 * @return \Illuminate\Contracts\Auth\Authenticatable|null
46 public function retrieveById($identifier)
48 return $this->createModel()->newQuery()->find($identifier);
52 * Retrieve a user by their unique identifier and "remember me" token.
54 * @param mixed $identifier
55 * @param string $token
57 * @return \Illuminate\Contracts\Auth\Authenticatable|null
59 public function retrieveByToken($identifier, $token)
65 * Update the "remember me" token for the given user in storage.
67 * @param \Illuminate\Contracts\Auth\Authenticatable $user
68 * @param string $token
72 public function updateRememberToken(Authenticatable $user, $token)
78 * Retrieve a user by the given credentials.
80 * @param array $credentials
82 * @return \Illuminate\Contracts\Auth\Authenticatable|null
84 public function retrieveByCredentials(array $credentials)
86 // Search current user base by looking up a uid
87 $model = $this->createModel();
89 return $model->newQuery()
90 ->where('external_auth_id', $credentials['external_auth_id'])
95 * Validate a user against the given credentials.
97 * @param \Illuminate\Contracts\Auth\Authenticatable $user
98 * @param array $credentials
102 public function validateCredentials(Authenticatable $user, array $credentials)
104 // Should be done in the guard.