mirror of
https://github.com/inventree/InvenTree.git
synced 2025-09-13 14:11:37 +00:00
chore(backend): improve coverage (#10226)
* remove unneeded helper * remove unnecessary coverage * ignore catch-all pervisions in app setup * remove unused function * this was replaced by get_model_permission_string
This commit is contained in:
@@ -33,16 +33,16 @@ class UsersConfig(AppConfig):
|
||||
from users.tasks import rebuild_all_permissions
|
||||
|
||||
rebuild_all_permissions()
|
||||
except (OperationalError, ProgrammingError):
|
||||
except (OperationalError, ProgrammingError): # pragma: no cover
|
||||
pass
|
||||
except Exception as e:
|
||||
except Exception as e: # pragma: no cover
|
||||
logger.exception('Failed to rebuild permissions: %s', e)
|
||||
|
||||
try:
|
||||
self.update_owners()
|
||||
except (OperationalError, ProgrammingError):
|
||||
except (OperationalError, ProgrammingError): # pragma: no cover
|
||||
pass
|
||||
except Exception as e:
|
||||
except Exception as e: # pragma: no cover
|
||||
logger.exception('Failed to update owners: %s', e)
|
||||
|
||||
def update_owners(self):
|
||||
|
@@ -75,17 +75,6 @@ def default_token_expiry():
|
||||
return InvenTree.helpers.current_date() + datetime.timedelta(days=365)
|
||||
|
||||
|
||||
def default_create_token(token_model, user, serializer):
|
||||
"""Generate a default value for the token."""
|
||||
token = token_model.objects.filter(user=user, name='', revoked=False)
|
||||
|
||||
if token.exists():
|
||||
return token.first()
|
||||
|
||||
else:
|
||||
return token_model.objects.create(user=user, name='')
|
||||
|
||||
|
||||
class ApiToken(AuthToken, InvenTree.models.MetadataMixin):
|
||||
"""Extends the default token model provided by djangorestframework.authtoken.
|
||||
|
||||
|
@@ -55,19 +55,6 @@ def split_permission(app: str, perm: str) -> tuple[str, str]:
|
||||
return perm, model
|
||||
|
||||
|
||||
def model_permission_string(model: models.Model, permission: str) -> str:
|
||||
"""Generate a permission string for a given model and permission type.
|
||||
|
||||
Arguments:
|
||||
model: The model class to check (e.g. 'part')
|
||||
permission: The permission to check (e.g. 'view' / 'delete')
|
||||
|
||||
Returns:
|
||||
str: The permission string (e.g. 'part.view_part')
|
||||
"""
|
||||
return f'{model._meta.app_label}.{permission}_{model._meta.model_name}'
|
||||
|
||||
|
||||
def check_user_role(
|
||||
user: User, role: str, permission: str, allow_inactive: bool = False
|
||||
) -> bool:
|
||||
|
@@ -117,23 +117,6 @@ def generate_permission_dict(permissions) -> dict:
|
||||
return perms
|
||||
|
||||
|
||||
def generate_roles_dict(roles) -> dict:
|
||||
"""Generate a dictionary of roles for a given set of roles."""
|
||||
# Build out an (initially empty) dictionary of roles
|
||||
role_dict = {name: [] for name, _ in RULESET_CHOICES}
|
||||
|
||||
for role in roles:
|
||||
permissions = []
|
||||
|
||||
for permission in ['view', 'add', 'change', 'delete']:
|
||||
if getattr(role, f'can_{permission}', False):
|
||||
permissions.append(permission)
|
||||
|
||||
role_dict[role.name] = permissions
|
||||
|
||||
return role_dict
|
||||
|
||||
|
||||
class GetAuthTokenSerializer(serializers.Serializer):
|
||||
"""Serializer for the GetAuthToken API endpoint."""
|
||||
|
||||
@@ -277,7 +260,7 @@ class GroupSerializer(InvenTreeModelSerializer):
|
||||
if not user_detail:
|
||||
self.fields.pop('users', None)
|
||||
|
||||
except AppRegistryNotReady:
|
||||
except AppRegistryNotReady: # pragma: no cover
|
||||
pass
|
||||
|
||||
permissions = serializers.SerializerMethodField(allow_null=True, read_only=True)
|
||||
@@ -421,13 +404,8 @@ class UserCreateSerializer(ExtendedUserSerializer):
|
||||
user = self.context['request'].user
|
||||
|
||||
# Check that the user trying to create a new user is a superuser
|
||||
if not user.is_staff:
|
||||
raise serializers.ValidationError(
|
||||
_('Only staff users can create new users')
|
||||
)
|
||||
|
||||
if not check_user_role(user, RuleSetEnum.ADMIN, 'add'):
|
||||
raise serializers.ValidationError(
|
||||
if not user.is_staff or not check_user_role(user, RuleSetEnum.ADMIN, 'add'):
|
||||
raise serializers.ValidationError( # pragma: no cover # Handled by permissions already
|
||||
_('You do not have permission to create users')
|
||||
)
|
||||
|
||||
|
Reference in New Issue
Block a user