"""This module provides a custom DRF Permission class for supporting SAFE_METHODS to Authenticated Users, butrequiring Superuser access for all other Request types on an API endpoint."""fromrest_framework.permissionsimportBasePermission,SAFE_METHODSclassIsAdminOrAuthenticatedReadOnly(BasePermission):""" Method that will require staff access for all methods not in the SAFE_METHODS list. For example GET requests will not require a Staff or Admin user. """defhas_permission(self,request,view):ifrequest.methodinSAFE_METHODS:returnrequest.user.is_authenticatedelse:returnrequest.user.is_staff