WIP: public: change permission denied handling (#8122) #218
Closed
yweber
wants to merge 1 commits from
wip/8122-private-page-custom-message
into main
pull from: wip/8122-private-page-custom-message
merge into: entrouvert:main
entrouvert:main
entrouvert:wip/75908-wcs-trigger
entrouvert:wip/80759-Cellule-Graphe-avoir-des-pourcen
entrouvert:wip/90119-configurer-eslint
entrouvert:wip/89980-remplacer-pylint-par-ruff
entrouvert:wip/8122-error403-view
entrouvert:wip/map-search
entrouvert:wip/83250-Avoir-un-id-stable-sur-les-cellu
entrouvert:wip/87119-card-custom-id
entrouvert:wip/85720-incoherence-des-onglets-quand-un
entrouvert:wip/83352-template-test-page
entrouvert:wip/83722-manage-error-on-search
entrouvert:wip/47511-lingo-fix-error-display-on-payment-status-page
entrouvert:wip/79857-has-role-uuid
entrouvert:wip/79428-family-activity-marker
entrouvert:wip/76874-lingo-invoice-pdf-filename
entrouvert:wip/76434-utiliser-hobo-multitenant-spoole
entrouvert:wip/74926-migration-ultra-lente-en-recette
entrouvert:wip/74357-lingo-hide-tipi-choice-in-backend-creation
entrouvert:wip/74048-Ajouter-la-classe-cell-title-aux
entrouvert:wip/72667-duration-filter
entrouvert:wip/70837-Poser-des-classes-BEM-sur-les-li
entrouvert:wip/72207-requests-do-not-duplicate-params
entrouvert:wip/70884-snapshot-slug-collision
entrouvert:hotfix/v4.72
entrouvert:wip/70605-enable-cell-condition
entrouvert:wip/70844-cell-visibility-tests
entrouvert:wip/70812-title-migration-h1
entrouvert:wip/70803-text-cell-with-only-title
entrouvert:wip/70804-title-as-additional-label
entrouvert:wip/70802-text-cell-with-only-title
entrouvert:wip/70646-fix-migration
entrouvert:wip/70630-over-long-title-migration
entrouvert:wip/68675-subslug-or-card
entrouvert:hotfix/v4.68
entrouvert:wip/70349-wcs-dont-mix-category-and-form-description
entrouvert:wip/67580-uwsgi-conf
entrouvert:wip/69836-fix-weekly-calendar-current-week
entrouvert:wip/django-upgrade
entrouvert:wip/65846-uniformize-form-links-rendering
entrouvert:wip/69271-wcs-richtext-field
entrouvert:wip/69400-reduce-num-queries
entrouvert:wip/69454-famille-multi-week
entrouvert:wip/69194-fix-import
entrouvert:wip/69371-tables-same-classes
entrouvert:wip/69351-emails-filenames-table-classes
entrouvert:wip/69301-cell-session-required
entrouvert:wip/62137-wcs-hide-link-if-no-url
entrouvert:wip/69019-wcs-card-first-option
entrouvert:wip/68807-wcs-card-custom-fix-new-cell-init
entrouvert:wip/64575-ajax-edit-cell-attribute
entrouvert:wip/68865-fix-condition-attributeerror
entrouvert:wip/68643-wcs-card-related-labels
entrouvert:wip/66897-wcs-card-user-fields
entrouvert:wip/66898-wcs-card-user-fields
entrouvert:wip/68721-wcs-custom-card-table
entrouvert:wip/68606-search-cell-card-engine-target-page
entrouvert:wip/68534-wcs-card-link-to-page-with-subslug
entrouvert:wip/68554-remove-export-old-format-compat
entrouvert:wip/68673-delete-filters-defined-in-publik-django-templatetags
entrouvert:wip/68679-inherit-placeholder-options
entrouvert:wip/68531-wcs-card-cell-options
entrouvert:wip/68598-wcs-missing-varname
entrouvert:wip/68539-do-not-index-cards-with-user-restriction
entrouvert:wip/67719-wcs-fix-card-relations
entrouvert:wip/68517-cards-adjust-select
entrouvert:wip/68140-merge-card-cells
entrouvert:wip/68063-wcs-card-table-display
entrouvert:wip/68037-wcs-car-cell-all-cards-option
entrouvert:wip/68015-wcs-card-cell-get-many-cards
entrouvert:wip/68473-pylint
entrouvert:wip/68372-dataviz-traduction-trompeuse-var
entrouvert:wip/65882-dataviz-les-sous-filtres-ne-sont
entrouvert:wip/68052-no-tryauth-for-bots
entrouvert:wip/signoz
entrouvert:wip/68212-transactionrecentcell
entrouvert:wip/68160-rephrase-redirection-template
entrouvert:wip/68113-pie-legend-width
entrouvert:wip/68049-dataviz-ne-pas-inverser-automati
entrouvert:wip/67937-table-inverted
entrouvert:wip/67902-revert
entrouvert:wip/67724-django-32
entrouvert:wip/tox-django-32
entrouvert:wip/60018-raw-sql
entrouvert:wip/60018-Page-objects-get-by-natural-key-
entrouvert:wip/67470-str-pylint
entrouvert:wip/67254-clean-duplicated-code
entrouvert:wip/63793-fix-cell-duplicate-unknown-cell
entrouvert:wip/66603-fix-cell-form
entrouvert:wip/67260-wcs-related-and-custom-view
entrouvert:wip/67214-wcs-fix-500-with-badly-ordered-card-cells
entrouvert:wip/67137-skeleton-bytes
entrouvert:wip/66299-Cellule-Graphe-erreur-
entrouvert:wip/66953-fix-condition-context
entrouvert:wip/61589-wcs-care-forms-title
entrouvert:wip/64288-drf-version
entrouvert:wip/66632-fix-condition
entrouvert:wip/66737-lingo-retirer-la-reference-a-SIP
entrouvert:wip/65145-placeholder-flex-grid
entrouvert:wip/65834-fix-icon-height
entrouvert:wip/66263-cell-condition
entrouvert:wip/64936-visual-mark-on-tabs-with-settings
entrouvert:wip/66487-less-transactions
entrouvert:wip/66310-categories-cell-general-tab
entrouvert:wip/65878-link-keep-label-in-general-tab
entrouvert:wip/65815-verbatim-url-in-models
entrouvert:wip/65540-remove-get-templatefilter
entrouvert:wip/65746-fix-template-rendering
entrouvert:wip/65801-remove-json_script-temptatetag
entrouvert:wip/65794-dashboard-tile-stats
entrouvert:wip/64451-card-skip-empty-value
entrouvert:wip/65615-dataviz-exception-MissingRequest
entrouvert:wip/65722-remove-statics-hash
entrouvert:wip/65617-reorder-page-post
entrouvert:wip/65348-dataviz-request-GET-ne-fonctionn
entrouvert:wip/64497-notif-to-anonymous
entrouvert:wip/65024-requests-legacy-urls
entrouvert:wip/64803-publik-django-templatetags
entrouvert:wip/64970-asset-api-return-url
entrouvert:wip/62415-placeholder-div
entrouvert:wip/64496-always-consider-menu-visibility
entrouvert:wip/62072-placeholder-grid
entrouvert:wip/64460-is-notifiable-do-not-log
entrouvert:wip/64416-requests-legacy-urls
entrouvert:wip/64298-django32-skeleton
entrouvert:wip/64297-pwa-maskable-icon
entrouvert:wip/63683-remove-six-usage
entrouvert:wip/62172-style-page-messages
entrouvert:wip/62136-bypass-url-validity
entrouvert:wip/63220-fix-wcs-cells-anonymous-user
entrouvert:wip/63935-add-card-info-cell
entrouvert:wip/63390-forms-in-your-care-cache
entrouvert:wip/63807-forms-in-your-care-mark-as-valid
entrouvert:wip/63650-fix-MultiValueDictKeyError
entrouvert:wip/63325-weekly-agenda-cell-slot-color
entrouvert:wip/63476-make-public-url-no-netloc
entrouvert:wip/62965-cell-edit-sidetabs
entrouvert:wip/63221-assets-check-filename
entrouvert:wip/62678-cache-trop-long-sur-la-cellule-D
entrouvert:wip/63233-fix-missing-dashboard-cell
entrouvert:wip/63223-tests-no-migrations
entrouvert:wip/63176-new-pylint
entrouvert:wip/61816-native-404-without-exception
entrouvert:wip/native-404-without-exception
entrouvert:wip/62244-family-calendar-cell-book-link
entrouvert:wip/62460-wcs-requestcontext-for-custom-field-templates
entrouvert:wip/61391-wcs-card-custom-field-escaping
entrouvert:wip/62439-fix-has-role
entrouvert:wip/62417-filters-enable
entrouvert:wip/60916-cell-duplicate-target
entrouvert:wip/59505-manager-django-permissions
entrouvert:wip/60643-many-notifications
entrouvert:wip/62137-wcs-no-A-if-URL-and-label-empty
entrouvert:wip/61040-wcs-card-custom-title-in-additional-label
entrouvert:wip/58878-custom-view-on-card-cell
entrouvert:wip/58851-care-cells-front
entrouvert:wip/56791-remove-collapse-feature
entrouvert:wip/59798-page-params
entrouvert:wip/61022-data-conditionnal-on-group
entrouvert:wip/61240-lingo-ignorer-les-retours-vides
entrouvert:wip/61197-css-link-list
entrouvert:wip/60956-wcs-card-ids-widget
entrouvert:wip/60957-wcs-card-id-from-url
entrouvert:wip/58782-wcs-filter-by-number
entrouvert:wip/61082-strip-pwa-nav
entrouvert:wip/61033-cards-all-div
entrouvert:wip/60891-card-cell-reverse-relation
entrouvert:wip/60885-card-cell-bad-repeat-index
entrouvert:wip/58447-agenda-cell-subscriptions
entrouvert:wip/60707-wcs-card-fix-js
entrouvert:wip/60445-check-url-with-a-real-user-agent
entrouvert:wip/60564-order-by-filter
entrouvert:wip/58833-card-related
entrouvert:wip/60370-wcs-card-cell-link
entrouvert:wip/58802-wcs-card-cell-empty-value
entrouvert:wip/60369-wcs-card-cell-subtitle
entrouvert:wip/58800-cell-custom-schema-split-content-and-display
entrouvert:wip/58326-wcs-card-empty-custom-schema
entrouvert:wip/60446-cov-context
entrouvert:wip/60397-wcs-card-cell-carddef_reference
entrouvert:wip/60323-enhance-tracking-code-presentation-message
entrouvert:wip/60282-search-max-url-length
entrouvert:wip/59803-card-repeat-index-in-context-rebased
entrouvert:wip/58848-add-cancelurl-to-category-forms-links
entrouvert:wip/60114-add-cancelurl-to-form-links
entrouvert:wip/59931-urlize-card-content
entrouvert:wip/59598-html-in-title
entrouvert:wip/59595-fix-undefined-template
entrouvert:wip/58735-card-templates-context
entrouvert:wip/59803-card-repeat-index-in-context
entrouvert:wip/59801-wcs-filter-by-internal-id
entrouvert:wip/58862-card-ids
entrouvert:wip/59643-link-cell-url-max-length
entrouvert:wip/58462-reduce-wcs-cache-duration
entrouvert:wip/58900-gallery-fix-image-delete
entrouvert:wip/59213-data-include-geoloc-button-block
entrouvert:wip/59186-check-access-against-is-superuser
entrouvert:wip/58962-family-agenda-cache
entrouvert:wip/59025-index-list-of-external-links
entrouvert:wip/58903-make-public-url-with-empty-or-random-url
entrouvert:wip/57134-card-cell-template-field
entrouvert:wip/57707-fix-import-with-internal-redirection
entrouvert:wip/57927-agenda-cell-reference-template
entrouvert:wip/58186-duplicate-redirect
entrouvert:wip/58413-card-cell-empty-card-id
entrouvert:wip/57966-user-requests-custom-title
entrouvert:wip/57954-email-field-in-card
entrouvert:wip/51994-card-file-content
entrouvert:wip/58412-card-cell-id-max-length
entrouvert:wip/58415-add-wcs-templatetags-by-default
entrouvert:wip/56015-clean-family
entrouvert:wip/57952-lingo-clarify-message-on-paid-invoice
entrouvert:wip/56650-lingo-no-callback-url-on-backend
entrouvert:wip/56651-lingo-filter-transaction
entrouvert:wip/57626-template-error
entrouvert:wip/57570-searchcell-button-markup
entrouvert:wip/56979-json-cell-url-error
entrouvert:wip/57323-search-cell-title
entrouvert:wip/57238-family-weekly-agenda-past-events
entrouvert:wip/56649-lingo-return-url
entrouvert:wip/56647-lingo-payment-backend-not-found-error
entrouvert:wip/57322-card-list-pagination
entrouvert:wip/56646-lingo-callback-url-no-link
entrouvert:wip/57279-coloured-surfaces
entrouvert:wip/57061-rename-option-include-requests-not-author
entrouvert:wip/57042-pylint-f-string-disable
entrouvert:wip/56974-pwa-double-redirection
entrouvert:wip/56930-export-import-no-maps-no-pwa
entrouvert:wip/56584-card-no-title
entrouvert:wip/56477-wcs-include-forms-user-can-access
entrouvert:wip/56188-edit-roles
entrouvert:wip/56422-wcs-card-text-fields
entrouvert:wip/56730-family-agenda-user-external-template
entrouvert:wip/56720-family-static
entrouvert:wip/56596-card-info-extra-div
entrouvert:wip/56027-agenda-cell
entrouvert:wip/56308-online-url-consider-redirect
entrouvert:wip/56609-cell-card-bad-markup
entrouvert:wip/56288-pylint
entrouvert:wip/56190-fix-empty-message
entrouvert:wip/56200-wcs-site-invalid
entrouvert:wip/56012-wcs-include_forms_user_can_access
entrouvert:wip/56029-fix-css-cards-cell
entrouvert:wip/54195-tracking
entrouvert:wip/56028-cards-empty-message
entrouvert:wip/56014-revert-forms-user-can-access
entrouvert:wip/13688-lingo-invoice-download-popup
entrouvert:wip/55868-pyupgrade
entrouvert:wip/55468-geojson-wrong-url
entrouvert:wip/55843-card-title
entrouvert:wip/55288-page-ordering
entrouvert:wip/55647-config-json-cell-template
entrouvert:wip/52073-card-cell
entrouvert:wip/55041-forms-user-has-access
entrouvert:wip/55792-cell-template-choice
entrouvert:wip/55335-card-title
entrouvert:wip/55776-description-in-form-and-link-contexts
entrouvert:wip/55686-lingo-no-limit-date
entrouvert:wip/55550-filters
entrouvert:wip/55363-redirect-url-validation
entrouvert:wip/55114-snapshot-str
entrouvert:wip/55103-subslug-help
entrouvert:wip/54259-custom-schema
entrouvert:wip/54549-cards-title
entrouvert:wip/lingo-add-pk-table-wrapper
entrouvert:hotfix/v3.54
entrouvert:wip/54882-do-not-preload-tiles
entrouvert:wip/47537-tipi-update-default-url
entrouvert:wip/54763-index-page-of-cells-with-external-links
entrouvert:wip/54592-dashboard-do-not-load
entrouvert:wip/54570-export-no-ascii-escape
entrouvert:wip/54562-Ajout-de-chrono-comme-exposant-d
entrouvert:wip/52912-jsonfield
entrouvert:wip/54236-repeat-cells
entrouvert:wip/53947-card-cell-without_user
entrouvert:wip/53376-wcs-category-slugs
entrouvert:wip/53213-careforms-category
entrouvert:wip/53778-move-compute-max-height
entrouvert:wip/53780-cell-open-close-events
entrouvert:wip/53596-dataviz-empty-values
entrouvert:wip/53541-remove-newsletter-app
entrouvert:wip/53521-geojson-invalid
entrouvert:wip/53221-subslug-display
entrouvert:wip/52498-card-schema
entrouvert:wip/53501-notif-cell-align-btns
entrouvert:wip/53234-user-list-of-forms-cells-markup
entrouvert:wip/52439-user-search-template
entrouvert:wip/52915-jsonb
entrouvert:wip/52797-isort
entrouvert:wip/52418-search-index-invalid-cell
entrouvert:wip/52055-wcs-backoffice-categories
entrouvert:wip/52201-degager-un-job-qui-a-echoue-du-s
entrouvert:wip/51477-in-menu
entrouvert:wip/51476-redirection
entrouvert:wip/51075-cell-duplicate
entrouvert:wip/51475-import-snapshot
entrouvert:wip/51472-page-load-signals
entrouvert:wip/51184-getlist-filter
entrouvert:wip/51282-auto-tile-invalid-key
entrouvert:wip/50971-card-file-display
entrouvert:wip/51251-description
entrouvert:wip/51014-search-pages-description
entrouvert:wip/50398-assets-key-maxlength
entrouvert:wip/50663-cards-cell-invalid
entrouvert:wip/50713-geojson-layer-cache-duration
entrouvert:wip/50874-has-role-fix
entrouvert:wip/49388-card-cell-user
entrouvert:wip/50001-card-cell-info
entrouvert:wip/feedparser
entrouvert:wip/50000-subslug
entrouvert:wip/49863-lingo-remote-exception
entrouvert:wip/49854-cards-full
entrouvert:wip/49876-ajax-404
entrouvert:wip/49406-cards-in-templates
entrouvert:wip/48562-newsletter-errors
entrouvert:wip/48978-map-layer-slots
entrouvert:wip/45183-eopayment-as-app
entrouvert:wip/48876-get-default-form-fields
entrouvert:wip/48393-lingo-update_transactions-err
entrouvert:wip/48394-lingo-err-1
entrouvert:wip/48338-lingo-err-1
entrouvert:wip/48190-cards-cell-current-user
entrouvert:wip/48261-search-cards-user
entrouvert:wip/48262-search-cards-custom-view
entrouvert:wip/48507-fix-split
entrouvert:wip/48644-export-import-no-lingo
entrouvert:wip/48637-template-name-parameter-for-json-cell
entrouvert:wip/48409-cards
entrouvert:wip/48452-card-info-cell
entrouvert:wip/48413-assets-serve-ckeditor-media
entrouvert:wip/46865-cards-custom-view
entrouvert:hotfix/v3.12
entrouvert:wip/47101-card-slug
entrouvert:hotfix/v2.78
entrouvert:hotfix/v2.73
entrouvert:wip/djangorestframework-39
entrouvert:wip/django22
entrouvert:40883-more-items
entrouvert:40244-exceptions-request
entrouvert:wip/theming
entrouvert:wip/39083-pytest-request-finalizer
entrouvert:wip/tests-request-finalizer
entrouvert:hotfix/v2.50
entrouvert:wip/37464-back-to-black
entrouvert:hotfix/v2.39
entrouvert:wip/29187-backoffice-submission-cell-order
entrouvert:hotfix/v2.26
entrouvert:wip/34934-Gestion-de-l-authentification-mu
entrouvert:hotfix/v2.22
entrouvert:hotfix/test-1
entrouvert:wip/pylint-warnings-next
entrouvert:wip/gallery
entrouvert:wip/23717-external-user-demands-retrieval
entrouvert:wip/guichet-toto
entrouvert:wip/guichet
entrouvert:wip/pwapush
entrouvert:wip/python3
entrouvert:wip/jenkinslib
entrouvert:wip/jenkinsfile-fred
entrouvert:wip/notifications-13122
entrouvert:wip/quixote3
entrouvert:wip/performances
entrouvert:wip/concrete-cellbase-17645
entrouvert:wip/assets-management
entrouvert:wip/lingo-merge
entrouvert:wip/teamnet_axel
entrouvert:wip/chat
entrouvert:wip/search
entrouvert:debian
entrouvert:wip/debian
entrouvert:wip/start
No reviewers
Labels
Clear labels
No items
No Label
Milestone
Clear milestone
No items
No Milestone
Assignees
Clear assignees
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.
No due date set.
Dependencies
No dependencies set.
Reference: entrouvert/combo#218
Reference in New Issue
No description provided.
Delete Branch "wip/8122-private-page-custom-message"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
f89d091502
toe486381e3e
e486381e3e
to1fabd7a562
1fabd7a562
to796feaf067
WIP: data: add custom error message when Page display is not allowed (#8122)to data: add custom error message when Page display is not allowed (#8122)@ -218,6 +218,7 @@ class Page(models.Model):
public = models.BooleanField(_('Public'), default=True)
groups = models.ManyToManyField(Group, verbose_name=_('Roles'), blank=True)
private_error_message = models.TextField(_('Private error message'), blank=True)
quelque part, dans le label ou en help_text, je rajouterais que c'est un gabarit (en général on ajoute "(template)" à la fin du label)
@ -0,0 +15,4 @@
error_msg_p.removeAttribute('hidden')
}
}
page_visibility_form_update()
ça doit pouvoir se gérer en ajouter dans data attributes sur les champs, sur ce modèle (sur lingo, mais on a ce qu'il faut dans combo aussi), plutôt qu'ajouter du js:
Merci pour tes commentaires !
Si j'ai pu appliquer les autres sans problème, celui-ci me pose soucis. Je n'ai pas l'impression que ça fonctionne dans mon cas :
Je ne sais pas si je rate quelque chose dans l'utilisation de ces attributs ?
Sinon je ne vois pas trop d'autre choix que d'ajouter le JS au formulaire (sinon ajouter le cas particulier pour la gestion des checkbox avec "data-dynamic-display-*", mais j'ai l'impression que ça serait un ticket a part non ?)
ok alors laisse tomber, garde le JS custom, effectivement je crois que quand je l'ai copié dans lingo j'ai corrigé un truc pour masquer le champ et le label; mais on ne vas pas modifier ça dans combo de suite parce que ça impacterait la custo de la cellule fiches.
@ -547,0 +549,4 @@
msg_template = Template(page.private_error_message)
msg_render_ctx = {'page': page, 'request': request}
msg_render_ctx.update(getattr(request, 'extra_context_data', {}))
error_msg = msg_template.render(Context(msg_render_ctx))
ici je mettrais un RequestContext plutôt qu'un Context, sinon tu risques d'avoir plus tard un ticket qui dit qu'on n'a pas accès à la variable site_base, par exemple
@ -547,0 +562,4 @@
msg = _(
'%(open_a)s You can try to authenticate yourself %(close_a)s'
% {'open_a': f'<a href="{login_url}">', 'close_a': '</a>'}
les params de la chaîne à traduire sont à mettre à l'extérieur du _()
796feaf067
to0e1ebcc418
0e1ebcc418
to896e484654
@ -253,3 +253,4 @@
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['public'].widget.attrs.update({'onclick': 'page_visibility_form_update()'})
Je pense qu'on ne fait comme ça nulle part, ma préférence irait à tout faire dans le script, via un addeventlistener
@ -547,0 +572,4 @@
ctx['page'] = error_page
template_name = settings.COMBO_PUBLIC_TEMPLATES['standard'].get('template')
response_content = loader.render_to_string(template_name, ctx.flatten(), request)
return HttpResponse(response_content, status=403)
La logique du code est bien mais je suggère de l'écrire tout autrement, en passant par un template dédié :
return render(request, 'combo/private-page-error.html', context={'error_message': error_msg}, status=403)
{% if
(ça devrait rendre mieux que de construire du html dans la vue)href="{% url "auth_login" %}?next={{ request.build_absolute_uri }}"
(le gain en lisibilité outrepasse large le gain en robustesse de passer par urlparse, et le "next" est déjà hardcodé à plein endroits, pas besoin d'aller le chercher dans REDIRECT_FIELD_NAME)N'hésite pas à me dire si tu trouves cette idée mauvaise ou qu'il y a une complexité que j'ai raté 😄
@ -345,0 +346,4 @@
page.save()
resp = app.get('/', status=403)
assert 'Access denied to Home' in resp.text
assert 'You can try to authenticate yourself' in resp.text
Ça vaut le coup de taper un resp.click sur le lien de login, et vite fait vérifier qu'on tombe bien sur la page de connexion
896e484654
to65ceb1f40b
65ceb1f40b
to49b781feb5
49b781feb5
to8150737373
8150737373
to48d540c52f
48d540c52f
toec9dec01d8
@ -547,0 +553,4 @@
context = {
'custom_message': error_msg,
'page': Page(title=_('Error - access denied'), template_name=page.template_name),
Je ne sais pas si c'est une bonne idée de faire que la fausse page essaye d'utiliser le même thème que la page non-accessible ?
Je ne suis pas sûr, ici on touche à mes limites de compréhension de combo :) je pense que tu peux mettre
template_name='combo/private-page-error.html'
, l'hypothèse étant que c'est sûrement plus safe de ne pas mixer deux template différentsJe serais à dire de regarder ce qui est fait dans error404 et de faire pareil.
Merci à vous deux !
Ok, je force l'utilisation du template 'standard'
Ça n'est pas tout ce que error404 fait; il y a 1/ vérifier qu'il y a des pages du site accessible et si ça n'est pas le cas retourner un gabarit minimal, pour les mêmes raisons que sur la page 404 (c'est suite à un audit de sécurité, cf #41514); puis 2/ prendre une page qui aurait comme slug "403" et si elle n'existe pas, partir sur la base de qui est à l'accueil (cf #43851, c'est pour avoir le pied de page).
J'ai l'impression qu'on comprend le ticket de deux manières différentes :
C'est bien ça ?
Il me semble en effet que la direction prise répète des erreurs et questions déjà traitées pour la page 404; le point 1/ est important pour ne pas prochain audit se taper le même commentaire, le point 2/ relève davantage de l'anticipation des besoins, ne pas devoir défaire/refaire quand quelqu'un viendra souhaiter du gras ou un lien dans le texte personnalisé.
Alors oui je m'éloigne ainsi du ticket, mais il ne donne pas de cas d'usage qui justifierait que le message soit différent par page et Benjamin y a lié le ticket #84346 qui correspond davantage à ma description.
Super, merci :) Je pars sur cette implémentation 404 like.
ec9dec01d8
to64cf65310e
@ -0,0 +1,20 @@
{% extends "combo/page_template.html" %}
{% load i18n %}
{% block messages %}
Comme discuté sur jabber, plutôt que de faire les choses dans le bloc messages je te suggère
Outre le markup ça intègre des remarques que j'aurais pu faire par ailleurs :
64cf65310e
tod90ebf7ad7
d90ebf7ad7
to548b931abd
data: add custom error message when Page display is not allowed (#8122)to WIP: data: add custom error message when Page display is not allowed (#8122)548b931abd
toe1323063e8
WIP: data: add custom error message when Page display is not allowed (#8122)to WIP: public: change permission denied handling (#8122)e1323063e8
to46ecf07ff0
WIP: public: change permission denied handling (#8122)to public: change permission denied handling (#8122)@ -0,0 +12,4 @@
{% trans "authenticate yourself using another account" %}
</a>.
</p>
{% else %}
On ne devrait jamais tomber dans ce "else", c'est utile de le laisser ?
@ -549,2 +553,3 @@
# be viewed, display generic django Permission Denied error
raise PermissionDenied()
return redirect_to_login(request.build_absolute_uri())
Si j'arrive à suivre correctement, ça ne me semble pas approprié, ça voudrait dire qu'un premier accès sur le portail agent afficherait une page d'erreur, plutôt qu'envoyer l'usager se connecter.
J'ai l'impression qu'en fait tout est confus entre les différentes directions, la description un peu courte du ticket, le ticket lié toulouse qui demande une page 403 différente, mes commentaires, etc.
Il faut peut-être prendre du recul et refaire une description fonctionnelle un peu exhaustive de ce qu'on veut atteindre, avant de continuer sur le code.
Dans le cas ou aucune page n'est accessible oui, j'avais (mal) compris que c'était ce qui était attendu ;)
Je pense qu'on peut fermer cette PR en attendant une description fonctionnelle plus détaillée de ce qui est attendu/voulu ?
public: change permission denied handling (#8122)to WIP: public: change permission denied handling (#8122)Pull request closed