feat: mio权限控制

This commit is contained in:
caoqianming 2023-10-25 08:41:25 +08:00
parent 1f4107407b
commit 4894f134c5
1 changed files with 10 additions and 1 deletions

View File

@ -127,13 +127,22 @@ class MIOViewSet(CustomModelViewSet):
def get_serializer_class(self):
if self.action in ['create', 'update', 'partial_update']:
type = self.request.data.get('type')
user = self.request.user
if type in [MIO.MIO_TYPE_DO_IN, MIO.MIO_TYPE_DO_OUT]:
if not has_perm(user, ['mio.do']):
raise PermissionDenied
return MIODoSerializer
elif type in [MIO.MIO_TYPE_OTHER_IN, MIO.MIO_TYPE_OTHER_OUT]:
if not has_perm(user, ['mio.other']):
raise PermissionDenied
return MIOOtherSerializer
elif type == MIO.MIO_TYPE_SALE_OUT:
if not has_perm(user, ['mio.sale']):
raise PermissionDenied
return MIOSaleSerializer
elif type == MIO.MIO_TYPE_PUR_IN:
if not has_perm(user, ['mio.pur']):
raise PermissionDenied
return MIOPurSerializer
return self.serializer_class
@ -177,7 +186,7 @@ class MIOItemViewSet(ListModelMixin, BulkCreateModelMixin, BulkDestroyModelMixin
ordering = ['create_time']
def perform_destroy(self, instance):
if instance.state != MIO.MIO_CREATE:
if instance.mio.state != MIO.MIO_CREATE:
raise ParseError('出入库记录非创建中不可删除')
if has_perm(self.request.user, ['mio.update']) is False and instance.mio.create_by != self.request.user:
raise PermissionDenied('无权限删除')