2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-09-13 14:11:37 +00:00

Fix api_url for 'user' type (#10182)

* Fix api_url for 'user' type

* Added regression test
This commit is contained in:
Oliver
2025-08-16 08:10:02 +10:00
committed by GitHub
parent 0bed5cf511
commit fa15466ce4
3 changed files with 36 additions and 2 deletions

View File

@@ -396,7 +396,7 @@ class InvenTreeMetadata(SimpleMetadata):
# Special case for special models
if field_info['model'] == 'user':
field_info['api_url'] = (reverse('api-user-list'),)
field_info['api_url'] = reverse('api-user-list')
elif field_info['model'] == 'group':
field_info['api_url'] = reverse('api-group-list')
elif field_info['model'] == 'contenttype':

View File

@@ -42,6 +42,24 @@ class UserAPITests(InvenTreeAPITestCase):
fields['is_staff']['help_text'], 'Does this user have staff permissions'
)
def test_api_url(self):
"""Test the 'api_url attribute in related API endpoints.
Ref: https://github.com/inventree/InvenTree/pull/10182
"""
self.user.is_superuser = True
self.user.save()
url = reverse('api-build-list')
response = self.options(url)
actions = response.data['actions']['POST']
issued_by = actions['issued_by']
self.assertEqual(issued_by['pk_field'], 'pk')
self.assertEqual(issued_by['model'], 'user')
self.assertEqual(issued_by['api_url'], reverse('api-user-list'))
self.assertEqual(issued_by['default'], self.user.pk)
def test_user_api(self):
"""Tests for User API endpoints."""
url = reverse('api-user-list')

View File

@@ -1,6 +1,8 @@
import { Badge, Group, Text } from '@mantine/core';
import { IconUser, IconUsersGroup } from '@tabler/icons-react';
import type { ReactNode } from 'react';
import { t } from '@lingui/core/macro';
import { type InstanceRenderInterface, RenderInlineModel } from './Instance';
export function RenderOwner({
@@ -29,7 +31,21 @@ export function RenderUser({
instance && (
<RenderInlineModel
primary={instance.username}
secondary={`${instance.first_name} ${instance.last_name}`}
secondary={
<Group gap='xs'>
{!instance.is_active && (
<Badge autoContrast color='red'>{t`Inactive`}</Badge>
)}
</Group>
}
suffix={
<Group gap='xs'>
<Text size='sm'>
{instance.first_name} {instance.last_name}
</Text>
<IconUser size={16} />
</Group>
}
/>
)
);