3 namespace BookStack\Auth\Access;
5 use Illuminate\Contracts\Auth\Authenticatable;
6 use Illuminate\Contracts\Auth\UserProvider;
8 class ExternalBaseUserProvider implements UserProvider
19 * 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, '\\');
39 * Retrieve a user by their unique identifier.
41 * @param mixed $identifier
42 * @return \Illuminate\Contracts\Auth\Authenticatable|null
44 public function retrieveById($identifier)
46 return $this->createModel()->newQuery()->find($identifier);
50 * Retrieve a user by their unique identifier and "remember me" token.
52 * @param mixed $identifier
53 * @param string $token
54 * @return \Illuminate\Contracts\Auth\Authenticatable|null
56 public function retrieveByToken($identifier, $token)
63 * Update the "remember me" token for the given user in storage.
65 * @param \Illuminate\Contracts\Auth\Authenticatable $user
66 * @param string $token
69 public function updateRememberToken(Authenticatable $user, $token)
75 * Retrieve a user by the given credentials.
77 * @param array $credentials
78 * @return \Illuminate\Contracts\Auth\Authenticatable|null
80 public function retrieveByCredentials(array $credentials)
82 // Search current user base by looking up a uid
83 $model = $this->createModel();
84 return $model->newQuery()
85 ->where('external_auth_id', $credentials['external_auth_id'])
90 * Validate a user against the given credentials.
92 * @param \Illuminate\Contracts\Auth\Authenticatable $user
93 * @param array $credentials
96 public function validateCredentials(Authenticatable $user, array $credentials)
98 // Should be done in the guard.