feat: mio权限控制
This commit is contained in:
parent
1f4107407b
commit
4894f134c5
|
@ -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('无权限删除')
|
||||
|
|
Loading…
Reference in New Issue