@@ -202,25 +202,6 @@ export class AccountService {
202
202
const privateUser = rootUsers [ rootPublicKey ] ;
203
203
204
204
const accessLevel = this . getAccessLevel ( rootPublicKey , hostname ) ;
205
- if ( accessLevel === AccessLevel . None ) {
206
- continue ;
207
- }
208
-
209
- const encryptedSeedHex = this . cryptoService . encryptSeedHex (
210
- privateUser . seedHex ,
211
- hostname
212
- ) ;
213
- let encryptedMessagingKeyRandomness : string | undefined ;
214
- if ( privateUser . messagingKeyRandomness ) {
215
- encryptedMessagingKeyRandomness = this . cryptoService . encryptSeedHex (
216
- privateUser . messagingKeyRandomness ,
217
- hostname
218
- ) ;
219
- }
220
- const accessLevelHmac = this . cryptoService . accessLevelHmac (
221
- accessLevel ,
222
- privateUser . seedHex
223
- ) ;
224
205
225
206
const commonFields = {
226
207
hasExtraText : privateUser . extraText ?. length > 0 ,
@@ -229,16 +210,34 @@ export class AccountService {
229
210
version : privateUser . version ,
230
211
network : privateUser . network ,
231
212
loginMethod : privateUser . loginMethod || LoginMethod . DESO ,
232
- accessLevel,
233
213
} ;
234
214
235
- publicUsers [ rootPublicKey ] = {
236
- ...commonFields ,
237
- encryptedSeedHex,
238
- accessLevelHmac,
239
- derivedPublicKeyBase58Check : privateUser . derivedPublicKeyBase58Check ,
240
- encryptedMessagingKeyRandomness,
241
- } ;
215
+ if ( accessLevel !== AccessLevel . None ) {
216
+ const encryptedSeedHex = this . cryptoService . encryptSeedHex (
217
+ privateUser . seedHex ,
218
+ hostname
219
+ ) ;
220
+
221
+ let encryptedMessagingKeyRandomness : string | undefined ;
222
+ if ( privateUser . messagingKeyRandomness ) {
223
+ encryptedMessagingKeyRandomness = this . cryptoService . encryptSeedHex (
224
+ privateUser . messagingKeyRandomness ,
225
+ hostname
226
+ ) ;
227
+ }
228
+ const accessLevelHmac = this . cryptoService . accessLevelHmac (
229
+ accessLevel ,
230
+ privateUser . seedHex
231
+ ) ;
232
+ publicUsers [ rootPublicKey ] = {
233
+ ...commonFields ,
234
+ encryptedSeedHex,
235
+ accessLevelHmac,
236
+ derivedPublicKeyBase58Check : privateUser . derivedPublicKeyBase58Check ,
237
+ encryptedMessagingKeyRandomness,
238
+ accessLevel,
239
+ } ;
240
+ }
242
241
243
242
// To support sub-accounts for the legacy identity flow, we need to return
244
243
// a flat map of all users and their sub-accounts. Each sub-account has a
@@ -250,20 +249,28 @@ export class AccountService {
250
249
rootPublicKey ,
251
250
subAccount . accountNumber
252
251
) ;
253
- const accountInfo = this . getAccountInfo ( subAccountPublicKey ) ;
252
+ const subAccountAccessLevel = this . getAccessLevel (
253
+ subAccountPublicKey ,
254
+ hostname
255
+ ) ;
256
+ if ( subAccountAccessLevel === AccessLevel . None ) {
257
+ return ;
258
+ }
259
+ const subAccountInfo = this . getAccountInfo ( subAccountPublicKey ) ;
254
260
const subAccountEncryptedSeedHex = this . cryptoService . encryptSeedHex (
255
- accountInfo . seedHex ,
261
+ subAccountInfo . seedHex ,
256
262
hostname
257
263
) ;
258
264
const subAccountAccessLevelHmac = this . cryptoService . accessLevelHmac (
259
- accessLevel ,
260
- accountInfo . seedHex
265
+ subAccountAccessLevel ,
266
+ subAccountInfo . seedHex
261
267
) ;
262
268
263
269
publicUsers [ subAccountPublicKey ] = {
264
270
...commonFields ,
265
271
encryptedSeedHex : subAccountEncryptedSeedHex ,
266
272
accessLevelHmac : subAccountAccessLevelHmac ,
273
+ accessLevel : subAccountAccessLevel ,
267
274
} ;
268
275
} ) ;
269
276
}
0 commit comments