Backport ACL computation improvements
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
@@ -65,6 +65,7 @@ class DocumentSignaturesApp(MayanAppConfig):
|
||||
app_label='django_gpg', model_name='Key'
|
||||
)
|
||||
|
||||
DetachedSignature = self.get_model(model_name='DetachedSignature')
|
||||
EmbeddedSignature = self.get_model(model_name='EmbeddedSignature')
|
||||
|
||||
SignatureBaseModel = self.get_model(model_name='SignatureBaseModel')
|
||||
@@ -86,6 +87,12 @@ class DocumentSignaturesApp(MayanAppConfig):
|
||||
permission_document_version_signature_upload,
|
||||
)
|
||||
)
|
||||
ModelPermission.register_inheritance(
|
||||
model=SignatureBaseModel, related='document_version'
|
||||
)
|
||||
ModelPermission.register_inheritance(
|
||||
model=DetachedSignature, related='document_version'
|
||||
)
|
||||
|
||||
SourceColumn(
|
||||
source=SignatureBaseModel, label=_('Date'), attribute='date'
|
||||
|
||||
@@ -42,47 +42,44 @@ link_document_version_signature_delete = Link(
|
||||
args='resolved_object.pk', condition=is_detached_signature,
|
||||
icon_class_path='mayan.apps.document_signatures.icons.icon_document_version_signature_delete',
|
||||
permissions=(permission_document_version_signature_delete,),
|
||||
permissions_related='document_version.document', tags='dangerous',
|
||||
text=_('Delete'), view='signatures:document_version_signature_delete',
|
||||
tags='dangerous', text=_('Delete'),
|
||||
view='signatures:document_version_signature_delete',
|
||||
)
|
||||
link_document_version_signature_details = Link(
|
||||
args='resolved_object.pk',
|
||||
icon_class_path='mayan.apps.document_signatures.icons.icon_document_version_signature_details',
|
||||
permissions=(permission_document_version_signature_view,),
|
||||
permissions_related='document_version.document', text=_('Details'),
|
||||
view='signatures:document_version_signature_details',
|
||||
text=_('Details'), view='signatures:document_version_signature_details',
|
||||
)
|
||||
link_document_version_signature_list = Link(
|
||||
args='resolved_object.pk',
|
||||
icon_class_path='mayan.apps.document_signatures.icons.icon_document_version_signature_list',
|
||||
permissions=(permission_document_version_signature_view,),
|
||||
permissions_related='document', text=_('Signatures'),
|
||||
view='signatures:document_version_signature_list',
|
||||
text=_('Signatures'), view='signatures:document_version_signature_list'
|
||||
)
|
||||
link_document_version_signature_download = Link(
|
||||
args='resolved_object.pk', condition=is_detached_signature,
|
||||
permissions=(permission_document_version_signature_download,),
|
||||
permissions_related='document_version.document', text=_('Download'),
|
||||
view='signatures:document_version_signature_download',
|
||||
text=_('Download'), view='signatures:document_version_signature_download'
|
||||
)
|
||||
link_document_version_signature_upload = Link(
|
||||
args='resolved_object.pk',
|
||||
icon_class_path='mayan.apps.document_signatures.icons.icon_document_version_signature_upload',
|
||||
permissions=(permission_document_version_signature_upload,),
|
||||
permissions_related='document', text=_('Upload signature'),
|
||||
view='signatures:document_version_signature_upload',
|
||||
text=_('Upload signature'),
|
||||
view='signatures:document_version_signature_upload'
|
||||
)
|
||||
link_document_version_signature_detached_create = Link(
|
||||
args='resolved_object.pk',
|
||||
icon_class_path='mayan.apps.document_signatures.icons.icon_document_version_signature_detached_create',
|
||||
permissions=(permission_document_version_sign_detached,),
|
||||
permissions_related='document', text=_('Sign detached'),
|
||||
view='signatures:document_version_signature_detached_create',
|
||||
text=_('Sign detached'),
|
||||
view='signatures:document_version_signature_detached_create'
|
||||
)
|
||||
link_document_version_signature_embedded_create = Link(
|
||||
args='resolved_object.pk',
|
||||
icon_class_path='mayan.apps.document_signatures.icons.icon_document_version_signature_embedded_create',
|
||||
permissions=(permission_document_version_sign_embedded,),
|
||||
permissions_related='document', text=_('Sign embedded'),
|
||||
view='signatures:document_version_signature_embedded_create',
|
||||
text=_('Sign embedded'),
|
||||
view='signatures:document_version_signature_embedded_create'
|
||||
)
|
||||
|
||||
@@ -54,7 +54,7 @@ class DocumentVersionDetachedSignatureCreateView(FormView):
|
||||
passphrase = form.cleaned_data['passphrase'] or None
|
||||
|
||||
AccessControlList.objects.check_access(
|
||||
obj=key, permissions=permission_key_sign, user=self.request.user
|
||||
obj=key, permissions=(permission_key_sign,), user=self.request.user
|
||||
)
|
||||
|
||||
try:
|
||||
@@ -109,7 +109,7 @@ class DocumentVersionDetachedSignatureCreateView(FormView):
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
AccessControlList.objects.check_access(
|
||||
obj=self.get_document_version().document,
|
||||
permissions=permission_document_version_sign_detached,
|
||||
permissions=(permission_document_version_sign_detached,),
|
||||
user=request.user
|
||||
)
|
||||
|
||||
@@ -146,7 +146,7 @@ class DocumentVersionEmbeddedSignatureCreateView(FormView):
|
||||
passphrase = form.cleaned_data['passphrase'] or None
|
||||
|
||||
AccessControlList.objects.check_access(
|
||||
obj=key, permissions=permission_key_sign, user=self.request.user
|
||||
obj=key, permissions=(permission_key_sign,), user=self.request.user
|
||||
)
|
||||
|
||||
try:
|
||||
@@ -206,7 +206,7 @@ class DocumentVersionEmbeddedSignatureCreateView(FormView):
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
AccessControlList.objects.check_access(
|
||||
obj=self.get_document_version().document,
|
||||
permissions=permission_document_version_sign_embedded,
|
||||
permissions=(permission_document_version_sign_embedded,),
|
||||
user=request.user
|
||||
)
|
||||
|
||||
@@ -283,8 +283,9 @@ class DocumentVersionSignatureDownloadView(SingleObjectDownloadView):
|
||||
class DocumentVersionSignatureListView(SingleObjectListView):
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
AccessControlList.objects.check_access(
|
||||
permissions=permission_document_version_signature_view,
|
||||
user=request.user, obj=self.get_document_version()
|
||||
obj=self.get_document_version(),
|
||||
permissions=(permission_document_version_signature_view,),
|
||||
user=request.user
|
||||
)
|
||||
|
||||
return super(
|
||||
@@ -345,7 +346,7 @@ class DocumentVersionSignatureUploadView(SingleObjectCreateView):
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
AccessControlList.objects.check_access(
|
||||
obj=self.get_document_version(),
|
||||
permissions=permission_document_version_signature_upload,
|
||||
permissions=(permission_document_version_signature_upload,),
|
||||
user=request.user
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user