9
9
use Magento \Framework \App \ObjectManager ;
10
10
use Magento \Framework \Oauth \Exception as OauthException ;
11
11
use Magento \Framework \Oauth \Helper \Oauth as OauthHelper ;
12
+ use Magento \Integration \Api \Data \UserTokenParametersInterfaceFactory ;
12
13
use Magento \Integration \Api \Exception \UserTokenException ;
14
+ use Magento \Integration \Api \UserTokenIssuerInterface ;
13
15
use Magento \Integration \Api \UserTokenReaderInterface ;
16
+ use Magento \Integration \Model \CustomUserContext ;
14
17
use Magento \Integration \Model \ResourceModel \Oauth \Token \Collection as TokenCollection ;
15
18
16
19
/**
@@ -84,6 +87,16 @@ class Token extends \Magento\Framework\Model\AbstractModel
84
87
*/
85
88
private $ reader ;
86
89
90
+ /**
91
+ * @var UserTokenIssuerInterface
92
+ */
93
+ private $ issuer ;
94
+
95
+ /**
96
+ * @var UserTokenParametersInterfaceFactory
97
+ */
98
+ private $ tokenParamsFactory ;
99
+
87
100
/**
88
101
* Initialize dependencies.
89
102
*
@@ -98,6 +111,8 @@ class Token extends \Magento\Framework\Model\AbstractModel
98
111
* @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
99
112
* @param array $data
100
113
* @param UserTokenReaderInterface|null $reader
114
+ * @param UserTokenIssuerInterface|null $issuer
115
+ * @param UserTokenParametersInterfaceFactory|null $paramsFactory
101
116
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
102
117
*/
103
118
public function __construct (
@@ -111,7 +126,9 @@ public function __construct(
111
126
\Magento \Framework \Model \ResourceModel \AbstractResource $ resource = null ,
112
127
\Magento \Framework \Data \Collection \AbstractDb $ resourceCollection = null ,
113
128
array $ data = [],
114
- ?UserTokenReaderInterface $ reader = null
129
+ ?UserTokenReaderInterface $ reader = null ,
130
+ ?UserTokenIssuerInterface $ issuer = null ,
131
+ ?UserTokenParametersInterfaceFactory $ paramsFactory = null
115
132
) {
116
133
parent ::__construct ($ context , $ registry , $ resource , $ resourceCollection , $ data );
117
134
$ this ->_keyLengthFactory = $ keyLengthFactory ;
@@ -120,6 +137,8 @@ public function __construct(
120
137
$ this ->_oauthData = $ oauthData ;
121
138
$ this ->_oauthHelper = $ oauthHelper ;
122
139
$ this ->reader = ObjectManager::getInstance ()->get (UserTokenReaderInterface::class);
140
+ $ this ->issuer = ObjectManager::getInstance ()->get (UserTokenIssuerInterface::class);
141
+ $ this ->tokenParamsFactory = ObjectManager::getInstance ()->get (UserTokenParametersInterfaceFactory::class);
123
142
}
124
143
125
144
/**
@@ -195,23 +214,35 @@ public function convertToAccess()
195
214
*
196
215
* @param int $userId
197
216
* @return $this
217
+ * @deprecated New proper SPI for warking with tokens has been introduced.
218
+ * @see UserTokenIssuerInterface
198
219
*/
199
220
public function createAdminToken ($ userId )
200
221
{
201
- $ this ->setAdminId ($ userId );
202
- return $ this ->saveAccessToken (UserContextInterface::USER_TYPE_ADMIN );
222
+ return $ this ->loadByToken (
223
+ $ this ->issuer ->create (
224
+ new CustomUserContext ((int ) $ userId , UserContextInterface::USER_TYPE_ADMIN ),
225
+ $ this ->tokenParamsFactory ->create ()
226
+ )
227
+ );
203
228
}
204
229
205
230
/**
206
231
* Create access token for a customer
207
232
*
208
233
* @param int $userId
209
234
* @return $this
235
+ * @deprecated New proper SPI for warking with tokens has been introduced.
236
+ * @see UserTokenIssuerInterface
210
237
*/
211
238
public function createCustomerToken ($ userId )
212
239
{
213
- $ this ->setCustomerId ($ userId );
214
- return $ this ->saveAccessToken (UserContextInterface::USER_TYPE_CUSTOMER );
240
+ return $ this ->loadByToken (
241
+ $ this ->issuer ->create (
242
+ new CustomUserContext ((int ) $ userId , UserContextInterface::USER_TYPE_CUSTOMER ),
243
+ $ this ->tokenParamsFactory ->create ()
244
+ )
245
+ );
215
246
}
216
247
217
248
/**
@@ -386,6 +417,7 @@ public function loadByToken($token)
386
417
$ this ->setAdminId ($ data ->getUserContext ()->getUserId ());
387
418
}
388
419
$ this ->setId (PHP_INT_MAX );
420
+ $ this ->setToken ($ token );
389
421
390
422
return $ this ;
391
423
}
0 commit comments