3
3
namespace Adldap \Laravel ;
4
4
5
5
use InvalidArgumentException ;
6
- use Adldap \Laravel \Commands \Import ;
7
- use Adldap \Laravel \Events \Synchronizing ;
6
+ use Adldap \Laravel \Facades \Adldap ;
7
+ use Adldap \Laravel \Auth \Resolver ;
8
+ use Adldap \Laravel \Auth \ResolverInterface ;
9
+ use Adldap \Laravel \Commands \Console \Import ;
8
10
use Adldap \Laravel \Auth \DatabaseUserProvider ;
9
11
use Adldap \Laravel \Auth \NoDatabaseUserProvider ;
10
12
use Adldap \Laravel \Listeners \BindsLdapUserModel ;
11
- use Adldap \Laravel \Listeners \SynchronizesPasswords ;
12
13
use Illuminate \Support \Facades \Auth ;
13
14
use Illuminate \Support \Facades \Event ;
15
+ use Illuminate \Support \Facades \Config ;
14
16
use Illuminate \Support \ServiceProvider ;
15
17
use Illuminate \Contracts \Hashing \Hasher ;
16
18
use Illuminate \Auth \Events \Authenticated ;
@@ -59,6 +61,8 @@ public function boot()
59
61
*/
60
62
public function register ()
61
63
{
64
+ $ this ->registerBindings ();
65
+
62
66
$ this ->registerListeners ();
63
67
}
64
68
@@ -72,6 +76,18 @@ public function provides()
72
76
return ['auth ' ];
73
77
}
74
78
79
+ /**
80
+ * Registers the application bindings.
81
+ *
82
+ * @return void
83
+ */
84
+ protected function registerBindings ()
85
+ {
86
+ $ this ->app ->bind (ResolverInterface::class, function () {
87
+ return $ this ->newUserResolver ();
88
+ });
89
+ }
90
+
75
91
/**
76
92
* Registers the event listeners.
77
93
*
@@ -80,8 +96,6 @@ public function provides()
80
96
protected function registerListeners ()
81
97
{
82
98
Event::listen (Authenticated::class, BindsLdapUserModel::class);
83
-
84
- Event::listen (Synchronizing::class, SynchronizesPasswords::class);
85
99
}
86
100
87
101
/**
@@ -96,7 +110,7 @@ protected function registerListeners()
96
110
*/
97
111
protected function newUserProvider (Hasher $ hasher , array $ config )
98
112
{
99
- $ provider = $ this ->getUserProvider ();
113
+ $ provider = $ this ->userProvider ();
100
114
101
115
switch ($ provider ) {
102
116
case DatabaseUserProvider::class:
@@ -117,12 +131,54 @@ protected function newUserProvider(Hasher $hasher, array $config)
117
131
}
118
132
119
133
/**
120
- * Returns the configured user provider.
134
+ * Returns a new user resolver.
135
+ *
136
+ * @return ResolverInterface
137
+ */
138
+ protected function newUserResolver ()
139
+ {
140
+ $ resolver = $ this ->resolver ();
141
+
142
+ return new $ resolver ($ this ->ldapProvider ());
143
+ }
144
+
145
+ /**
146
+ * Retrieves a connection provider from the Adldap instance.
147
+ *
148
+ * @return \Adldap\Connections\ProviderInterface
149
+ */
150
+ protected function ldapProvider ()
151
+ {
152
+ return Adldap::getProvider ($ this ->connection ());
153
+ }
154
+
155
+ /**
156
+ * Returns the configured user provider class.
157
+ *
158
+ * @return string
159
+ */
160
+ protected function userProvider ()
161
+ {
162
+ return Config::get ('adldap_auth.provider ' , DatabaseUserProvider::class);
163
+ }
164
+
165
+ /**
166
+ * Returns the configured user resolver class.
167
+ *
168
+ * @return string
169
+ */
170
+ protected function resolver ()
171
+ {
172
+ return Config::get ('adldap_auth.resolver ' , Resolver::class);
173
+ }
174
+
175
+ /**
176
+ * Returns the configured default connection name.
121
177
*
122
178
* @return string
123
179
*/
124
- protected function getUserProvider ()
180
+ public function connection ()
125
181
{
126
- return config ('adldap_auth.provider ' , DatabaseUserProvider::class );
182
+ return Config:: get ('adldap_auth.connection ' , ' default ' );
127
183
}
128
184
}
0 commit comments