3 namespace BookStack\Providers;
7 use Illuminate\Contracts\Auth\Authenticatable;
8 use Illuminate\Contracts\Auth\UserProvider;
10 class LdapUserProvider implements UserProvider
22 * LdapUserProvider constructor.
25 public function __construct($model)
27 $this->model = $model;
31 * Create a new instance of the model.
33 * @return \Illuminate\Database\Eloquent\Model
35 public function createModel()
37 $class = '\\'.ltrim($this->model, '\\');
44 * Retrieve a user by their unique identifier.
46 * @param mixed $identifier
47 * @return \Illuminate\Contracts\Auth\Authenticatable|null
49 public function retrieveById($identifier)
51 return $this->createModel()->newQuery()->find($identifier);
55 * Retrieve a user by their unique identifier and "remember me" token.
57 * @param mixed $identifier
58 * @param string $token
59 * @return \Illuminate\Contracts\Auth\Authenticatable|null
61 public function retrieveByToken($identifier, $token)
63 $model = $this->createModel();
65 return $model->newQuery()
66 ->where($model->getAuthIdentifierName(), $identifier)
67 ->where($model->getRememberTokenName(), $token)
73 * Update the "remember me" token for the given user in storage.
75 * @param \Illuminate\Contracts\Auth\Authenticatable $user
76 * @param string $token
79 public function updateRememberToken(Authenticatable $user, $token)
81 $user->setRememberToken($token);
87 * Retrieve a user by the given credentials.
89 * @param array $credentials
90 * @return \Illuminate\Contracts\Auth\Authenticatable|null
92 public function retrieveByCredentials(array $credentials)
94 // TODO: Implement retrieveByCredentials() method.
98 // Search current user base by looking up a uid
100 // If not exists create a new user instance with attached role
101 // but do not store it in the database yet
107 * Validate a user against the given credentials.
109 * @param \Illuminate\Contracts\Auth\Authenticatable $user
110 * @param array $credentials
113 public function validateCredentials(Authenticatable $user, array $credentials)
115 // TODO: Implement validateCredentials() method.