Files
openfoodnetwork/app/views/spree/admin/orders/edit.html.haml
Ahmed Ejaz a37e08c2fd Refactor order management permissions for producers
Introduces granular permissions control for producers editing orders:

- Adds new :edit_as_producer_only permission for suppliers
- Refactors ability checks to clearly separate producer vs admin/distributor access
- Updates order views to properly restrict actions based on user role
- Prevents admins from being restricted by producer-only edit mode
2025-06-21 16:16:58 +05:00

40 lines
1.2 KiB
Plaintext

= csrf_meta_tags
- content_for :main_ng_app_name do
= "ofn.admin"
- content_for :page_actions do
- if can?(:fire, @order)
%li= event_links(@order)
- if can?(:manage_order_sections, @order)
= render partial: 'spree/admin/shared/order_links'
- if can?(:admin, Spree::Order)
%li
%a.button.icon-arrow-left{icon: 'icon-arrow-left', href: admin_orders_path }
= t(:back_to_orders_list)
= render partial: "spree/admin/shared/order_page_title"
- if can?(:manage_order_sections, @order)
= render partial: "spree/admin/shared/order_tabs", locals: { current: 'Order Details' }
%div
= render partial: "spree/shared/error_messages", locals: { target: @order }
= admin_inject_shops(@shops, module: 'admin.orders')
= admin_inject_order_cycles(@order_cycles)
%div{
"ng-controller" => "orderCtrl",
"ofn-distributor-id" => @order.distributor_id,
"ofn-order-cycle-id" => @order.order_cycle_id,
"ofn-search-variants-as" => (can?(:manage_order_sections, @order) ? 'hub' : 'supplier'),
}
= render :partial => 'add_product' if can?(:update, @order)
- if @order.line_items.empty?
.no-objects-found
= Spree.t(:your_order_is_empty_add_product)
.admin-order-edit-form
= render partial: 'form'