Commit Graph

30 Commits

Author SHA1 Message Date
Ahmed Ejaz
ec44947b37 Add special handling for admin users in order permissions
Modifies order and line item permission logic to give admin users full access to all orders and line items, bypassing the regular complex joins queries to get orders editable by producers. These complex joins are needed for regular users but for user admins we need to return all orders.
2025-07-13 05:34:55 +05:00
Ahmed Ejaz
2f9c856645 Refactors order and line item permissions logic
Simplifies permission checking by:
- Extracting common managed/coordinated orders logic into separate method
- Combining producer-editable and managed/coordinated order clauses
- Merging producer and admin line item permission checks into single query
2025-06-21 16:19:31 +05:00
Ahmed Ejaz
acdffb0aa1 revert "remove subquery for optimization"
- we are using OR between two queries here: 53ec6621bc/app/services/search_orders.rb (L31-L32)
- so to make it compatible with this, had to revert

Throws following error:
Relation passed to #or must be structurally compatible. Incompatible values: [:left_outer_joins]
2025-04-13 21:35:55 +05:00
Ahmed Ejaz
adbdc64c13 remove subquery for optimization 2025-04-13 21:35:55 +05:00
Ahmed Ejaz
19c5fec9a9 add ability update supplier line_items in orders 2025-04-13 21:35:55 +05:00
Ahmed Ejaz
0a61910cf6 add ability to view supplier products containing orders 2025-04-13 21:35:55 +05:00
Gaetan Craig-Riou
3d82309c5f Fix order permission and specs 2024-07-03 10:17:49 +10:00
David Cook
a170b93cc1 Simplify further
Co-authored-by: Maikel <maikel@email.org.au>
2023-05-05 15:34:23 +10:00
Matt-Yorkley
dfc651ed2c Convert Permissions::Order#visible_line_items to a relation with or query
This change looks innocuous but the result of converting this into a nice relation instead of two queries stuck together with the pipe operator (|) can make a huge difference when chaining this into subqueries. The result set is ultimately the same, but the queries can be built without first returning all the ids and then sticking those ids in an array.
2023-04-28 19:13:22 +01:00
Matt-Yorkley
0683941f88 Ensure line items are correctly scoped for producers 2021-11-11 13:11:19 +00:00
Luis Ramos
e52937c113 Use rubocop auto correct to add frozen string literal to all files
This is an unsafe auto corection, we will need to trust our build here
2021-06-17 23:07:26 +01:00
Viktor Smari
6a342ae368 Ransack.search is deprecated. Use .ransack instead
https://github.com/activerecord-hackery/ransack/pull/975
2021-05-09 01:05:37 +02:00
Matt-Yorkley
6c00fe44ae Revert order permissions changes 2021-03-11 12:19:55 +00:00
Luis Ramos
54489948b9 Remove useless assignment 2021-02-02 23:04:12 +00:00
Luis Ramos
eb56d1ff28 Put the workaround inside a if clause on rails version so it works in both rails 4 and rails 5 2021-02-02 23:00:21 +00:00
Luis Ramos
886888c2a8 Workaround to get where_values to work in rails 5 2021-02-02 22:51:34 +00:00
Luis Ramos
b8f8db0341 Merge pull request #5147 from luisramos0/3-0-stable-apr3
[Spree 2.1] Merge master into 3-0-stable
2020-04-04 11:03:14 +01:00
Luis Ramos
8909238682 Fix one rubocop issue 2020-04-01 10:00:07 +01:00
Luis Ramos
7c367da904 Adapt LineItem#supplied_by_any scope to include deleted variants and deleted products (both not included in the respective default scopes) and use it in Permissions::Order so that variants of deleted products are seen in reports 2020-04-01 10:00:07 +01:00
Matt-Yorkley
36aa52736a Refactor order filtering logic 2020-03-24 09:36:59 +01:00
Matt-Yorkley
45c204017f Improve reports performance
Add the scoping from the search filters for reports into the logic of building sets like `editable_line_items` before combining them into the query to reduce the number of `line_item` ids in the IN clause.
2020-03-21 09:45:33 +01:00
Maikel
c4e4beb912 Revert "Inner join visible orders" 2020-03-19 12:01:00 +11:00
Pau Perez
53a63775fe Replace LEFT JOIN with INNER JOIN
I see no reason why a LEFT might be needed and its the root cause of the
awful performance.
2020-03-05 17:45:06 +01:00
luisramos0
7eba657b2f Add missing templates from spree_backend 2020-02-05 20:04:15 +00:00
luisramos0
f63c7cf54f Extract visible_orders_where_values to a private method 2019-12-29 19:01:44 +00:00
luisramos0
13633e8bea Use arel in order permissions visible orders and editable orders so that we dont have queries with gigantic IN clauses
The | operators here were converting the relations to long lists of IDs, in our current particular issue, an IN clause with 100k order_ids
2019-12-29 19:01:44 +00:00
luisramos0
5cb77c443b Fix rubocop issues 2019-11-29 10:53:40 +00:00
luisramos0
82b274e522 Make selector more specific to avoid sql error 'ambiguos column' 2019-11-29 10:49:58 +00:00
luisramos0
bb2e6324bd Rename order permissions to just order 2019-11-29 10:49:27 +00:00
luisramos0
89056e13ed Extract order permissions to a separate class 2019-11-29 10:48:58 +00:00