Skip to content

Commit 5f9be7b

Browse files
committed
sync adminLogin with API
Signed-off-by: bota <Bota@dotkernel.com>
1 parent e0a2a16 commit 5f9be7b

4 files changed

Lines changed: 60 additions & 22 deletions

File tree

src/Admin/src/Service/AdminLoginService.php

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,11 @@ public function getAdminLogins(array $params): array
5757
'login.osVersion',
5858
'login.clientType',
5959
'login.clientName',
60-
'login.isCrawler',
60+
'login.deviceBrand',
61+
'login.deviceModel',
62+
'login.osPlatform',
63+
'login.clientEngine',
64+
'login.clientVersion',
6165
'login.loginStatus',
6266
'login.identity',
6367
'login.created',
@@ -111,7 +115,8 @@ private function logAdminVisit(array $serverParams, string $name, SuccessFailure
111115
*/
112116
$browser = new stdClass();
113117
if (ini_get('browscap')) {
114-
$browser = get_browser($_SERVER['HTTP_USER_AGENT']);
118+
$result = get_browser($_SERVER['HTTP_USER_AGENT']);
119+
$browser = $result instanceof stdClass ? $result : $browser;
115120
}
116121

117122
$adminLogin = (new AdminLogin())
@@ -128,7 +133,11 @@ private function logAdminVisit(array $serverParams, string $name, SuccessFailure
128133
->setClientType(! empty($browser->browser_type) ? $browser->browser_type : null)
129134
->setClientName(! empty($browser->browser) ? $browser->browser : null)
130135
->setLoginStatus($status)
131-
->setIsCrawler(! empty($browser->crawler) ? YesNoEnum::Yes : YesNoEnum::No)
136+
->setDeviceBrand(! empty($browser->device_brand) ? $browser->device_brand : null)
137+
->setDeviceBrand(! empty($browser->device_model) ? $browser->device_model : null)
138+
->setDeviceBrand(! empty($browser->platform_version) ? $browser->platform_version : null)
139+
->setDeviceBrand(! empty($browser->browser_engine) ? $browser->browser_engine : null)
140+
->setDeviceBrand(! empty($browser->browser_version) ? $browser->browser_version : null)
132141
->setIdentity($name);
133142

134143
$this->adminLoginRepository->saveResource($adminLogin);

src/Admin/templates/admin/list-admin-login.html.twig

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,20 @@
9191
<th class="column-login-clientName">
9292
{{ sortableColumn('admin::list-admin-login', {}, pagination.queryParams, 'login.clientName', 'Client Name') }}
9393
</th>
94-
<th class="column-login-isCrawler">
95-
{{ sortableColumn('admin::list-admin-login', {}, pagination.queryParams, 'login.isCrawler', 'Is Crawler') }}
94+
<th class="column-login-deviceBrand">
95+
{{ sortableColumn('admin::list-admin-login', {}, pagination.queryParams, 'login.deviceBrand', 'Device Brand') }}
96+
</th>
97+
<th class="column-login-deviceModel">
98+
{{ sortableColumn('admin::list-admin-login', {}, pagination.queryParams, 'login.deviceModel', 'Device Model') }}
99+
</th>
100+
<th class="column-login-osPlatform">
101+
{{ sortableColumn('admin::list-admin-login', {}, pagination.queryParams, 'login.osPlatform', 'Os Platform') }}
102+
</th>
103+
<th class="column-login-clientEngine">
104+
{{ sortableColumn('admin::list-admin-login', {}, pagination.queryParams, 'login.clientEngine', 'Client Engine') }}
105+
</th>
106+
<th class="column-login-clientVersion">
107+
{{ sortableColumn('admin::list-admin-login', {}, pagination.queryParams, 'login.clientVersion', 'Client Version') }}
96108
</th>
97109
<th class="column-login-created">
98110
{{ sortableColumn('admin::list-admin-login', {}, pagination.queryParams, 'login.created', 'Created') }}
@@ -126,13 +138,11 @@
126138
<td class="column-login-osVersion">{{ login.osVersion }}</td>
127139
<td class="column-login-clientType">{{ login.clientType }}</td>
128140
<td class="column-login-clientName">{{ login.clientName }}</td>
129-
<td class="column-login-isCrawler">
130-
{% if login.isCrawler.value == 'yes' %}
131-
<span class="badge text-bg-primary">Yes</span>
132-
{% else %}
133-
<span class="badge text-bg-secondary">No</span>
134-
{% endif %}
135-
</td>
141+
<td class="column-login-deviceBrand">{{ login.deviceBrand }}</td>
142+
<td class="column-login-deviceModel">{{ login.deviceModel }}</td>
143+
<td class="column-login-osPlatform">{{ login.osPlatform }}</td>
144+
<td class="column-login-clientEngine">{{ login.clientEngine }}</td>
145+
<td class="column-login-clientVersion">{{ login.clientVersion }}</td>
136146
<td class="column-login-created">{{ login.getCreated()|date('Y-m-d H:i:s') }}</td>
137147
</tr>
138148
{% endfor %}

src/Core/src/App/src/Service/IpService.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class IpService
1919
* @phpstan-param array{
2020
* HTTP_X_FORWARDED_FOR?: string,
2121
* HTTP_CLIENT_IP?: string,
22-
* REMOTE_ADDR: string,
22+
* REMOTE_ADDR?: string,
2323
* } $server
2424
*/
2525
public static function getUserIp(array $server): mixed
@@ -32,7 +32,7 @@ public static function getUserIp(array $server): mixed
3232
} elseif (isset($server['HTTP_CLIENT_IP']) && self::isPublicIp($server['HTTP_CLIENT_IP'])) {
3333
$realIp = $server['HTTP_CLIENT_IP'];
3434
} else {
35-
$realIp = $server['REMOTE_ADDR'];
35+
$realIp = $server['REMOTE_ADDR'] ?? null;
3636
}
3737
} else {
3838
// check if HTTP_X_FORWARDED_FOR is public network IP
@@ -52,12 +52,12 @@ public static function getUserIp(array $server): mixed
5252
public static function isPublicIp(string $ipAddress): bool
5353
{
5454
return filter_var(
55-
$ipAddress,
56-
FILTER_VALIDATE_IP,
57-
FILTER_FLAG_IPV4 |
55+
$ipAddress,
56+
FILTER_VALIDATE_IP,
57+
FILTER_FLAG_IPV4 |
5858
FILTER_FLAG_IPV6 |
5959
FILTER_FLAG_NO_PRIV_RANGE |
6060
FILTER_FLAG_NO_RES_RANGE
61-
) === $ipAddress;
61+
) === $ipAddress;
6262
}
6363
}

test/Unit/Admin/Entity/AdminLoginTest.php

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,11 +93,30 @@ public function testAccessors(): void
9393
$this->assertSame(AdminLogin::class, $adminLogin::class);
9494
$this->assertSame('test', $adminLogin->getClientName());
9595

96-
$this->assertSame(YesNoEnum::No, $adminLogin->getIsCrawler());
97-
$adminLogin = $adminLogin->setIsCrawler(YesNoEnum::Yes);
96+
$this->assertNull($adminLogin->getDeviceBrand());
97+
$adminLogin = $adminLogin->setDeviceBrand('test');
9898
$this->assertSame(AdminLogin::class, $adminLogin::class);
99-
$this->assertNotNull($adminLogin->getIsCrawler());
100-
$this->assertSame('yes', $adminLogin->getIsCrawler()->value);
99+
$this->assertSame('test', $adminLogin->getDeviceBrand());
100+
101+
$this->assertNull($adminLogin->getDeviceModel());
102+
$adminLogin = $adminLogin->setDeviceModel('test');
103+
$this->assertSame(AdminLogin::class, $adminLogin::class);
104+
$this->assertSame('test', $adminLogin->getDeviceModel());
105+
106+
$this->assertNull($adminLogin->getOsPlatform());
107+
$adminLogin = $adminLogin->setOsPlatform('test');
108+
$this->assertSame(AdminLogin::class, $adminLogin::class);
109+
$this->assertSame('test', $adminLogin->getOsPlatform());
110+
111+
$this->assertNull($adminLogin->getClientEngine());
112+
$adminLogin = $adminLogin->setClientEngine('test');
113+
$this->assertSame(AdminLogin::class, $adminLogin::class);
114+
$this->assertSame('test', $adminLogin->getClientEngine());
115+
116+
$this->assertNull($adminLogin->getClientVersion());
117+
$adminLogin = $adminLogin->setClientVersion('test');
118+
$this->assertSame(AdminLogin::class, $adminLogin::class);
119+
$this->assertSame('test', $adminLogin->getClientVersion());
101120

102121
$this->assertSame(SuccessFailureEnum::Fail, $adminLogin->getLoginStatus());
103122
$adminLogin = $adminLogin->setLoginStatus(SuccessFailureEnum::Success);

0 commit comments

Comments
 (0)