forked from baron/baron-sso
RP 로그인 이력 통합
This commit is contained in:
@@ -449,12 +449,13 @@ class _DashboardScreenState extends ConsumerState<DashboardScreen> {
|
||||
}
|
||||
|
||||
Widget _buildAuthMethodCell(AuditLogEntry log, String authMethod) {
|
||||
if (authMethod != 'QR') {
|
||||
final isOidc = authMethod.contains('OIDC');
|
||||
if (authMethod != 'QR' && !isOidc) {
|
||||
final approvedUserAgent = log.detailMap['approved_user_agent']?.toString() ?? '';
|
||||
final approvedIp = log.detailMap['approved_ip']?.toString() ?? '';
|
||||
final hasApproverMeta = approvedUserAgent.isNotEmpty || approvedIp.isNotEmpty;
|
||||
if (!authMethod.startsWith('링크') || !hasApproverMeta) {
|
||||
return _selectableText(authMethod);
|
||||
return _selectableText(authMethod);
|
||||
}
|
||||
final deviceLabel = _deviceLabelFromUserAgent(approvedUserAgent);
|
||||
final tooltip = [
|
||||
@@ -472,10 +473,13 @@ class _DashboardScreenState extends ConsumerState<DashboardScreen> {
|
||||
),
|
||||
);
|
||||
}
|
||||
final approvedSessionId = log.detailMap['approved_session_id']?.toString() ?? '';
|
||||
final approvedSessionId = (log.detailMap['approved_session_id']?.toString().trim().isNotEmpty ?? false)
|
||||
? log.detailMap['approved_session_id'].toString()
|
||||
: log.sessionId;
|
||||
final tooltipLabel = isOidc ? '승인한 Userfront 세션 ID' : '승인한 세션 ID';
|
||||
final tooltip = approvedSessionId.isEmpty
|
||||
? '승인한 세션 ID 없음'
|
||||
: '승인한 세션 ID: $approvedSessionId\n클릭하면 복사됩니다.';
|
||||
? '$tooltipLabel 없음'
|
||||
: '$tooltipLabel: $approvedSessionId\n클릭하면 복사됩니다.';
|
||||
return InkWell(
|
||||
onTap: approvedSessionId.isEmpty
|
||||
? null
|
||||
@@ -490,7 +494,7 @@ class _DashboardScreenState extends ConsumerState<DashboardScreen> {
|
||||
child: Tooltip(
|
||||
message: tooltip,
|
||||
child: Text(
|
||||
'QR',
|
||||
isOidc ? authMethod : 'QR',
|
||||
style: TextStyle(
|
||||
color: approvedSessionId.isEmpty ? _ink : Colors.blueAccent,
|
||||
decoration:
|
||||
@@ -502,12 +506,13 @@ class _DashboardScreenState extends ConsumerState<DashboardScreen> {
|
||||
}
|
||||
|
||||
Widget _buildAuthMethodLine(AuditLogEntry log, String authMethod) {
|
||||
if (authMethod != 'QR') {
|
||||
final isOidc = authMethod.contains('OIDC');
|
||||
if (authMethod != 'QR' && !isOidc) {
|
||||
final approvedUserAgent = log.detailMap['approved_user_agent']?.toString() ?? '';
|
||||
final approvedIp = log.detailMap['approved_ip']?.toString() ?? '';
|
||||
final hasApproverMeta = approvedUserAgent.isNotEmpty || approvedIp.isNotEmpty;
|
||||
if (!authMethod.startsWith('링크') || !hasApproverMeta) {
|
||||
return _selectableText('인증수단: $authMethod');
|
||||
return _selectableText('인증수단: $authMethod');
|
||||
}
|
||||
final deviceLabel = _deviceLabelFromUserAgent(approvedUserAgent);
|
||||
final tooltip = [
|
||||
@@ -525,7 +530,10 @@ class _DashboardScreenState extends ConsumerState<DashboardScreen> {
|
||||
),
|
||||
);
|
||||
}
|
||||
final approvedSessionId = log.detailMap['approved_session_id']?.toString() ?? '';
|
||||
final approvedSessionId = (log.detailMap['approved_session_id']?.toString().trim().isNotEmpty ?? false)
|
||||
? log.detailMap['approved_session_id'].toString()
|
||||
: log.sessionId;
|
||||
final tooltipLabel = isOidc ? '승인한 Userfront 세션 ID' : '승인한 세션 ID';
|
||||
return InkWell(
|
||||
onTap: approvedSessionId.isEmpty
|
||||
? null
|
||||
@@ -539,10 +547,10 @@ class _DashboardScreenState extends ConsumerState<DashboardScreen> {
|
||||
},
|
||||
child: Tooltip(
|
||||
message: approvedSessionId.isEmpty
|
||||
? '승인한 세션 ID 없음'
|
||||
: '승인한 세션 ID: $approvedSessionId\n탭하면 복사됩니다.',
|
||||
? '$tooltipLabel 없음'
|
||||
: '$tooltipLabel: $approvedSessionId\n탭하면 복사됩니다.',
|
||||
child: Text(
|
||||
'인증수단: QR',
|
||||
'인증수단: ${isOidc ? authMethod : 'QR'}',
|
||||
style: TextStyle(
|
||||
color: approvedSessionId.isEmpty ? _ink : Colors.blueAccent,
|
||||
decoration: approvedSessionId.isEmpty
|
||||
|
||||
Reference in New Issue
Block a user