From 94705c64bfea3242bee2c2cddf5df9c1524f3088 Mon Sep 17 00:00:00 2001 From: Suherdy Yacob Date: Tue, 6 Jan 2026 11:02:09 +0700 Subject: [PATCH] feat: Introduce permissive `ir.rule`s and SQL-based ID retrieval for access restrictions, improving stock location visibility and adding `stock_account` dependency. --- __manifest__.py | 4 +- .../restricted_models.cpython-312.pyc | Bin 4224 -> 5895 bytes models/restricted_models.py | 36 ++++++- security/ir.model.access.csv | 2 + security/ir_rule.xml | 97 ++++++++++++++++++ 5 files changed, 133 insertions(+), 6 deletions(-) create mode 100644 security/ir.model.access.csv create mode 100644 security/ir_rule.xml diff --git a/__manifest__.py b/__manifest__.py index 00ce14b..53f1499 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -16,8 +16,10 @@ """, 'category': 'Extra Tools', 'author': 'Suherdy Yacob', - 'depends': ['base', 'stock', 'mrp', 'approvals'], + 'depends': ['base', 'stock', 'mrp', 'approvals', 'stock_account'], 'data': [ + 'security/ir.model.access.csv', + 'security/ir_rule.xml', 'views/res_users_views.xml', ], 'installable': True, diff --git a/models/__pycache__/restricted_models.cpython-312.pyc b/models/__pycache__/restricted_models.cpython-312.pyc index a6c7e60485a90a9423477b0217bdb4984be818c1..056312a307a85144bee24e69a4e942768f538009 100644 GIT binary patch literal 5895 zcmeHLO>7&-6`o!0@=rgMVo`M@yJBNG5fepBQKd1QxUFJIabuZsBR7T##f$ask|Mq0 z(z8oRq$$`2T$t_;EFB6t2#Pqp#DZE>N1uxJR-iz!tb)>*x~PGkdUGokO?~Q{S*}E> zQdJvOP9A`7X5PH{d+&Yk&GNTRO+f_Zm*w$vM>9fyp&hq~wZ>{UhtL92k;>^PL2F*; zCiw(E=}CAv+V|+fq?iyn#3K!58r=mpYR$I9&(>ecv6n=@8V zmpo1{(ZD2qAnD&lvXMy!Kr*M%q2p1Wcqa{2 z(@o-$bLl8Yg4#?DYo?htvWif5O{!vg(beAp0Tpv4E>lxfofIfs^(^rY=Od&FB_62w z6LD53p-hcmFQ0KuSH~;~B~OxbSK-hOGktYaYR#ouJ&10J3ZFs>{{cwNiX~C?J`ZE_ z{0{>HaA(Capd4#Wqo^-l^o`lcA%c`vO@fL6s3XJgjh>1W_eIX07 zxyK@hO-%0+6^IXOIbBvX!Yi2gv>8pwTN?2vHA|V0bv^1O9xXdXg2}X|t5Q~;)JV{h zFX)=n_SM!T;-$QX3xva_7Z#4N@>q#Y7?WDe%ui@oEyPY2tO>9Rm@8(ehVj)SF(q$W z#-yyOM%IkUiUM|%z<3r;D;5|~x=@hl1~JFPF?UE)C5O|OE09o1vm`jGF%4|EJEks9 zb!(0Txr!b(hvzcY_MS?6&)xRr=T_SL?eOc%=k68n>Gr!H*p26}4&4`gH-@hb--us} z&%J*8joUAOCLF%saq#08KYa1y*oU!|j#vKB&^z~?@<3Vs!Qk&3dTpWiUr@2D{(4{I zzzc!`Tdfz@?N;9g)(vnr4J9}gC3uxfcr+oy;=sBzYp9+wN^&ZHJ>a@P!dpf&T*5a- zt<*eb8Op`8GS(&xP)IQZYEv%uO}h-G-V3P#n5VxB{{3Taf%@O(-B@osZ#IiN$hudm zTPL%P|EioDe9Z4!0atkYH7U}zAIWUD+crvDs>#iYR+GC|214uBQsQPf6VQ?ZJgb1E zq$kCtc=x2UoYmsaxalpSA00-h#FhAxrzHH$>+S(&@WmguUXV?#FNKYKPBIIorA?Bi zbt5p~9Rwd`K5I(MM$*PG)^x(BRrqBWJ;ZAylcr`7QBO~%p)#Mt8^BBnTmH&5}|V% z>Tp5=lBDP|AWkx=DILsS#rvrAOF)Y4o4u~Dwh7gic^$~-0Itx!TQfIjZe9NV8z#UtgI8Ch2^XXSz{fTQ9q7? z$??mSY|gd#72uJO`(%}B37Mr6>LyOQjnwDc@Fqudaoi2U=FfpV5ssJR_TU9uov5mM zMb)e7rHXo~s#+D*TItA_Pd;ivt!;B-_glkrm+zdkTVA8B;+;3`me~E){kMDWB$l7I zyP^Bmqk!1eTpnF(MD3Bf4E;^J`}j(DaL2s78{Ut>g)k*FzHQ*Ws}Aoi8)=j_ofYYn zy~g_~oI7jaiwby#hKtRUIM+A5-rt1xXHRV~M}7IfJ+&Q7H*e^DE2_aNQr+lNWX|v= zJG*c@3fFm>v^i)G@4@qSHyC{zPKzmdgC08qgr&`T7;XC+rBn78MlA!m95$w8{kUvt zDFYXZt#Xai2dR{?o`DJMz{(f!7!AAXmt6HTOm%H!%KsF23RvymYIhe|gK$xE4#*QF zGQ0nzeJX3`tZHtilAEdKW-Gbbe6(0{!!eIGjCoqpQyGt4RHgFXO%WQ~BRhVg4410VHtBJ}7V zT0}fW|K?<$k?ft!k|%>cJK7?0LIwSLf9!wD`SAS)J_lX;$~Lb6dF0_Z?vJSX&*;FP zP}jp?XZfXSu(J~EynSLNc=)RC?}EU+y4L9DPIGhbFO1KRuOZrAYh#?Lh0=V<<+M?m a;f0a;ku^lyYrRaS#@RaSA8Z|Vz<&dQSL&w# literal 4224 zcmeH~O>7%Q6vtWO)~-n21oEJw~ybRHN7$B5OrT3`5lmvNJ75J>5#@Lsq!SB1TXWD=5h+ zILQ;w)8eA=n<#}9ZX>wUZJhLNqBWfKFQKT%8d)moa_*8uNk%Ulq#8D$9$R${vb#jk z*vEbl=FT5XzQ%P_Ls?epy|P@d1tH^XX|Ja&^wV?I@ESJQlBXF03iphD13isc^=VVi z4*%CL#iwza+riG0>$o)H`fPb?=*w3Ss^J<}<7=Mp`JHZ<4O%=YtXP~;rZ7W`7ZyIYJS>*fib$HKuM$Pv3#X_mY>`2{M!Cpb z{Gvf5DrXu#%VQ8NW%(36FR29zbD$v*7^xK$MOl*!Llg~&-V9vpkK}kp&y%=O&Je0p z;)|71h7rS1itCE5zx_^JF0=K_ONycwjJPDrj46?URidg~VsMF{RYVwR+`%vIK4L?5 zEU{vRPO$e?C-!p^>kgYGG%}J*9ZP){qFpENf667R9S&N$Wldh-!hwL@iNROUrA| z#-524>PAu~nkI@3OkZRk27vJaeTgZBIoSeDjTt5nH_$KPne|T}cmp>te|~wF5y&;>9&w-3OO^O znR9t_w$O^`&rAo0wJ8|j%OJ18E1#hEbufa!-tm~;SNqWmO^%q}kR7&pU6x?)sg5}4 zYTf!Vwg+N6?qci4YcOOZ`(p3%`T{UA;Px#y1-UH%wPqq?&Z*{XwiU@8n%6hk5GV*_ zR%eEZz1vRr;}x15HLvGr@sdt+GAWb@t&ZerF}Au_Kj!s7UME~$A4hCJV)sSgCH6F1 z_CbjyO@XupwJE4(B5Tg&%vr4!$sd~7x7ZLU$TSpUAol-1n2wmpQK49*`ii7|B$Y^7 zr=urUovsMZv;woq&eMKf{LoTKKf z(TbD~O=tp`1bG9-GQ-5)Q&0EXQ=!R1^n~SsuLsJrnsa;(Ks}}#E6x{=_Z)nzI_G5j zxMA<%c3MCWjcz``VfsWu;!*uI;m&sn2iE_p#Wm{;~V9)AC + + + + + + Stock Warehouse Permissive Access + + + [(1, '=', 1)] + + + + + + + + Stock Picking Type Permissive Access + + + [(1, '=', 1)] + + + + + + + + Stock Location Permissive Access + + + [(1, '=', 1)] + + + + + + + + MRP Workcenter Permissive Access + + + [(1, '=', 1)] + + + + + + + + Approval Category Permissive Access + + + [(1, '=', 1)] + + + + + + + + + Stock Valuation Layer Permissive Access + + + [(1, '=', 1)] + + + + + + + + Stock Quant Permissive Access + + + [(1, '=', 1)] + + + + + + + + Approval Request Permissive Access + + + [(1, '=', 1)] + + + + + + + +