From b3266e1593a5cc2d36606e8ef018f0eba7298281 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B0=D1=81=D0=B8=D0=BB=D1=8C=20=D0=A1=D0=B2=D1=96?= =?UTF-8?q?=D0=B4=D1=80=D1=96=D0=BA?= Date: Wed, 21 Jun 2023 16:09:48 +0300 Subject: [PATCH] add menu for roleid --- .gitignore | 1 - README.md | 1 + __pycache__/main.cpython-310.pyc | Bin 814 -> 807 bytes __pycache__/routes.cpython-310.pyc | Bin 371 -> 532 bytes components/__pycache__/__init__.cpython-310.pyc | Bin 173 -> 166 bytes components/k2adm/.gitignore | 5 + components/k2adm/__init__.py | 0 components/k2adm/k2adm/__init__.py | 0 .../k2adm/languages/en/LC_MESSAGES/messages.mo | Bin 0 -> 409 bytes .../k2adm/languages/en/LC_MESSAGES/messages.po | 23 ++++ .../k2adm/languages/uk/LC_MESSAGES/messages.mo | Bin 0 -> 510 bytes .../k2adm/languages/uk/LC_MESSAGES/messages.po | 24 ++++ components/k2adm/k2adm/models.py | 98 ++++++++++++++ components/k2adm/k2adm/views.py | 143 +++++++++++++++++++++ components/k2adm/reguirments-components.txt | 0 components/k2adm/requirements.txt | 47 +++++++ components/k2adm/setup.py | 15 +++ components/k2auth/.gitignore | 8 ++ components/k2auth/README.md | 45 +++++++ components/k2auth/__init__.py | 0 components/k2auth/k2auth/__init__.py | 0 components/k2auth/k2auth/models.py | 129 +++++++++++++++++++ components/k2auth/k2auth/views.py | 63 +++++++++ components/k2auth/reguirments-components.txt | 0 components/k2auth/requirements.txt | 47 +++++++ components/k2auth/setup.py | 15 +++ .../k2test/__pycache__/__init__.cpython-310.pyc | Bin 180 -> 173 bytes .../k2test/__pycache__/__init__.cpython-310.pyc | Bin 187 -> 180 bytes .../k2test/__pycache__/views.cpython-310.pyc | Bin 2084 -> 2065 bytes .../k2test/languages/en/LC_MESSAGES/messages.mo | Bin 549 -> 549 bytes .../k2test/languages/uk/LC_MESSAGES/messages.mo | Bin 643 -> 643 bytes components/k2test/k2test/views.py | 2 +- db/database.db | Bin 36864 -> 36864 bytes k2/__pycache__/__init__.cpython-310.pyc | Bin 165 -> 158 bytes k2/__pycache__/k2admmenu.cpython-310.pyc | Bin 2404 -> 3221 bytes k2/__pycache__/k2cfg.cpython-310.pyc | Bin 2764 -> 2757 bytes k2/__pycache__/k2comp.cpython-310.pyc | Bin 1985 -> 1978 bytes k2/__pycache__/k2obj.cpython-310.pyc | Bin 516 -> 509 bytes k2/__pycache__/k2rout.cpython-310.pyc | Bin 13905 -> 14294 bytes k2/k2admmenu.py | 19 ++- k2/k2rout.py | 25 +++- languages/babel_translation_directories.yml | 2 +- routes.py | 4 + 43 files changed, 707 insertions(+), 9 deletions(-) create mode 100644 components/k2adm/.gitignore create mode 100644 components/k2adm/__init__.py create mode 100644 components/k2adm/k2adm/__init__.py create mode 100644 components/k2adm/k2adm/languages/en/LC_MESSAGES/messages.mo create mode 100644 components/k2adm/k2adm/languages/en/LC_MESSAGES/messages.po create mode 100644 components/k2adm/k2adm/languages/uk/LC_MESSAGES/messages.mo create mode 100644 components/k2adm/k2adm/languages/uk/LC_MESSAGES/messages.po create mode 100644 components/k2adm/k2adm/models.py create mode 100644 components/k2adm/k2adm/views.py create mode 100644 components/k2adm/reguirments-components.txt create mode 100644 components/k2adm/requirements.txt create mode 100644 components/k2adm/setup.py create mode 100644 components/k2auth/.gitignore create mode 100644 components/k2auth/README.md create mode 100644 components/k2auth/__init__.py create mode 100644 components/k2auth/k2auth/__init__.py create mode 100644 components/k2auth/k2auth/models.py create mode 100644 components/k2auth/k2auth/views.py create mode 100644 components/k2auth/reguirments-components.txt create mode 100644 components/k2auth/requirements.txt create mode 100644 components/k2auth/setup.py diff --git a/.gitignore b/.gitignore index 2da5d63..0340f63 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ -/components/adm/ /components/grid/ /components/vue/ diff --git a/README.md b/README.md index e69de29..53935b8 100644 --- a/README.md +++ b/README.md @@ -0,0 +1 @@ +open http://127.0.0.1:5000/dashboard \ No newline at end of file diff --git a/__pycache__/main.cpython-310.pyc b/__pycache__/main.cpython-310.pyc index f2bf289dc07ac04f7b3277f5df5cf8d94a25fadf..6e824b9f3d9fa325138547f36d78314ca86668a9 100644 GIT binary patch delta 41 vcmZ3-ww#SSpO=@50SH_UPTI)5f{D>;@)jmVu56>C{QQ#mywvi^&zL*_<5UcJ delta 48 zcmZ3^wvLTEpO=@50SK0Sn7EO91rwv=TMm0JM-&GmLn>nyODabSdkSkW z6C*g6k-LkQgW-< zKq4u*en6!gL&BoulJj#5^7B&jN{aO$N?}x4W@>qH5gX8LQ8K8CQgT6RfFwi-J5b3= uh9ZzRz{D?`$-<0^T-ioN`S~UBd8y@-T^SX`gn-gKj6957K+FflLW}^6SVCL? delta 100 zcmbQj@|lS*pO=@50SGF0OiFpoFp*D&(P5&t11noFgC_gLC3ehyn(UJ~8AJG1G8AzD vm4S(0&XYGYDhigQ7MJLzq~@fSr0SOBrzBQRzQ?G*2QrO^k%y5Bh=mvd?~xax diff --git a/components/__pycache__/__init__.cpython-310.pyc b/components/__pycache__/__init__.cpython-310.pyc index 1ddedf0c4726d35adcb45315086c2b7fdeef6df4..2c6022b0f8981b580235efa8fedbbaa4c843dd0b 100644 GIT binary patch delta 38 scmZ3>xQvlIpO=@50SH_UPMXMV!{|BDLy;@ns3-d}5U`0JpXZ`2YX_ delta 45 zcmZ3+xR#MSpO=@50SK0Sm^hK!hB08GhoWFfYH^8fN@`AONvdv1eoA8H#A0IrAlVKw diff --git a/components/k2adm/.gitignore b/components/k2adm/.gitignore new file mode 100644 index 0000000..04cda04 --- /dev/null +++ b/components/k2adm/.gitignore @@ -0,0 +1,5 @@ + idea +__pycache__/ +*/__pycache__/ +*.py[cod] +.pyc diff --git a/components/k2adm/__init__.py b/components/k2adm/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/components/k2adm/k2adm/__init__.py b/components/k2adm/k2adm/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/components/k2adm/k2adm/languages/en/LC_MESSAGES/messages.mo b/components/k2adm/k2adm/languages/en/LC_MESSAGES/messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..54827c7cb4840029cbf751cf499f2be860d9d3fe GIT binary patch literal 409 zcmZXPJx&8L5Jo3t1Cb~~LXn2THC;%cp`u1Y2$F_oWqC(gOJ1+!ag-C#(Q+5=z#Vc2 zZop^75=b8T&67X*_b{tI33Udpz#5!`4=@8?+27fR?4Rsva9lTsFOXfs6Zjq;!;kO? zUc*!PEzcdC&JXY<{0?K#2^fM3qe%mU8@ZF(wAMBCf{N&-jFx4zDx=#n zx}#{L`Dh####1J=%sfo^k58&sMxF6vP$RC RD?Xxh(^+pN1|4nh=@+^jT^0ZU literal 0 HcmV?d00001 diff --git a/components/k2adm/k2adm/languages/en/LC_MESSAGES/messages.po b/components/k2adm/k2adm/languages/en/LC_MESSAGES/messages.po new file mode 100644 index 0000000..207f11b --- /dev/null +++ b/components/k2adm/k2adm/languages/en/LC_MESSAGES/messages.po @@ -0,0 +1,23 @@ +msgid "title_menu_items" +msgstr "Site administration" + +msgid "menu_items_child_1" +msgstr "Password change" + +msgid "menu_items_child_2" +msgstr "New user" + +msgid "menu_items_child_3" +msgstr "Users" + + +msgid "menu_items_child_4" +msgstr "Users are clients" + + +msgid "menu_items_child_5" +msgstr "Roles" + + +msgid "menu_items_child_6" +msgstr "Access to the menu" \ No newline at end of file diff --git a/components/k2adm/k2adm/languages/uk/LC_MESSAGES/messages.mo b/components/k2adm/k2adm/languages/uk/LC_MESSAGES/messages.mo new file mode 100644 index 0000000000000000000000000000000000000000..0272e33ca3ff8f5de9e63fc604d398233613b8b6 GIT binary patch literal 510 zcmZ{eyGjF55QaxxFJL1n42a-qEVT35_!!!6p$je~Hd*^57J`Uc=n8`1BOF9w*JL*j zkmesqop-d}5Uq0J=d76#xJL delta 45 zcmZ3>xP_5BpO=@50SK0Sm^hK!hB17ihoWFfYH^8fN@`AONvdv1eoA8H#9}J|BliwY diff --git a/components/k2test/k2test/__pycache__/__init__.cpython-310.pyc b/components/k2test/k2test/__pycache__/__init__.cpython-310.pyc index 04a70d01aee477c99040089912fa43ed4af335b2..d22ac90da52074b0a15633ba5a76ca2268b9ef81 100644 GIT binary patch delta 38 scmdnZxP_5BpO=@50SH_UPMXMV!x%o%Ly;@ns3-d}5U&0KCi#F#rGn delta 45 zcmdnOxSNqXpO=@50SK0Sm^hK!hB0oUhoWFfYH^8fN@`AONvdv1eoA8H#9~JPClwBA diff --git a/components/k2test/k2test/__pycache__/views.cpython-310.pyc b/components/k2test/k2test/__pycache__/views.cpython-310.pyc index ecfef4d5877b0d235cef5eb64b2124ed7b049187..bf1b147fd30ca3ddb8a5a628deb30aa36e1b4722 100644 GIT binary patch delta 485 zcmZXQze~eF6vw^%Zfn{&D5asaf=g2SD@qjvopcn3PA(xdu`NxLdTA+kad36f8(kc_ z=pcxr|4G2r$;nBSqW98b1@GW<@7~WZZ>(G?vMuh4_J?;1I72<3b@IWi#ybY~{l4irL!z_eluRQbZx6b?Kof9|ys$F7;d`kgWF ztCCATEmR;GONuO0ZrXXPo-LJ6Qtw8$To{eOfi;zMsD zl$NN?tLoBj2^ve@qib-UkF*<2Qh+&Cx(@wdui-9#tWhlp--bY$->G)G4kb%C=n~x| z_^Y~Y9GI-dT!KB~cQBt%-X2zky8?*xqm!2FP~y`hv=)lD_%$^in2M7vM!awtT%ovq zT}dKc($V0RK9w)!TglKGpVrpLG%y^D9=nb36uUvQ<#Vh}m}yYyoPZ&a;TKx2o`o{f kG4>lC!I+w&RcX*+gsuu#QNR``3)BRL_c8c4{8iih0a=EAV*mgE diff --git a/components/k2test/k2test/languages/en/LC_MESSAGES/messages.mo b/components/k2test/k2test/languages/en/LC_MESSAGES/messages.mo index edaecf87f18eff792777f2a358e0343c1c6145cc..fcfa15300724b032eda7f1719eb6d968c1eee2c2 100644 GIT binary patch delta 19 acmZ3=vXo`Q84e>u1w&IS6O)Zs0vQ25mZDyTthQr8E!O+yo#AM@@^^5>It_C## delta 19 acmZo>ZDyTthQrWI!O+;s#CYSC^^5>I#0EA1 diff --git a/components/k2test/k2test/views.py b/components/k2test/k2test/views.py index 04ac4b5..9cad8a6 100644 --- a/components/k2test/k2test/views.py +++ b/components/k2test/k2test/views.py @@ -38,7 +38,7 @@ def new_component4(): def menu_items(): data = [ { - 'title': f"{gettext('title_menu_items')}", + 'title': 'Test items', 'icon': {'icon': 'mdi-chart-timeline-variant'}, 'children': [ {'title': 'Test 3', 'to': 'k2test-new3'}, diff --git a/db/database.db b/db/database.db index 84bc56352e28e81e92db0ac84fa385bfcd2ac641..4b1e95354da149713d3cec02bc62da2dda4c3338 100644 GIT binary patch delta 405 zcmZozz|^pSX@WFk(L@<%#-fc0OXPW&dD9vAJ^8|T)4AVm78H2Ez4?Q7Iip)+4l|dp zxU0CoBWI((Sz4l@iCLmSs#%JmNm^Q}g`uITk)@HTfw7TMQmRQxwozhAu1jiha#3bM zNoIbYLVlV8SZuPHj)r$iu3ma(iIIVkv95ucu92aFp@Eg5sgeqL%`NwFSSCzLG9Of4@~$OOt2l>m*LJW*HL4=k^vP+F7|Ur>~qmRVt|t`8Pd z*K90c;_{WW7Y_uwI?^~PE!o1t&@weKCDp{l&?3>)*w_rnFiuNMH8oB%1nMa*$(X!L zPj0faj~S+w7^o+kk_ae-Z=#cK%75c@oC00;1P^Dt4VB11vZ90XCfEZ=P=BBCM__6)8csnof3bkliLFM>B^FW|uk zPd<0W(8;XR4 zsq|~BZ*DRvq#Y)43;1!X6Sq~n*M)A-`k9xJ>UTk;^P~p`04`nYn-aK4&QCgt3Ztu? z^@>i`Hw?qPs~7hdX7&oVhXHY@LQHD0& z>+`!BJ$bv0WuUEY=wqpv-d}5V00JP2u*#H0l delta 45 zcmbQoxRjAQpO=@50SK0Sm^hK!hS6i9hoWFfYH^8fN@`AONvdv1eoA8H#A0m#9Z3!n diff --git a/k2/__pycache__/k2admmenu.cpython-310.pyc b/k2/__pycache__/k2admmenu.cpython-310.pyc index f666096b092511aed6bfd4fb752e33a450546b9f..54a30233e15665d135d9dfe94d142cc7198395e5 100644 GIT binary patch delta 1111 zcma)*&rcIU6vt;~ciW{%O*quhR9FlIs~kce)!r2pKYjEaM=`$615$rz zE9Ka>n=8`CJT1j=jNg@>;(q=`I#)9Y$hJ%oUl_AuuuB3auHZMwByXiEanVCu7pzMa z(!dQ|mm8=mnUX2*ql%Of;j3~*7NM0zJ%$kqX>C|d(^j$z+1WcfV zIoon{Y>PH^hRVZ3;4kw3uNk74e+=3MEm{$SMFloc1>Ntcibk2J2h~N(8u);^MZ^rmbZ&uknU2W8@Mz z)OG3_o4RF*gOXt}FW?txH3U`8?UbmqC-x{SS+3{rHG}?p@iQmfX#lc-Bnct1`ZE#; zV;PqRTlr}It2rs5cpv{EjVlg_@Ra;H+-X=kV+HDN+NP7>M7a=9A;1V9SB8UD377&* v17-l%0Otkx3pLscKkTuBz`JmuolZtzlz&hsaptfiA?}py7*nKf5*hvlRqO}b delta 316 zcmbO#`9z2>pO=@50SNfFOiB^qoX9tw(P85Mn{lYKu>J z=z$1*5Mcl!3_*kukhsNGl%JEDnKF4Vx0IYINR$UoNP$=~Ai@ktC{6y#Z4GphA&)MQ OjOQ_AWfEc%lLi26$VaIF diff --git a/k2/__pycache__/k2cfg.cpython-310.pyc b/k2/__pycache__/k2cfg.cpython-310.pyc index b73e145bbc53e74bab5e52f1e96468dc2e21b61d..ab9106e190b5edcb86e7b1c250fcda23631d6493 100644 GIT binary patch delta 42 wcmX>jdQ_Ak0PqdPbBxpO=@50SK0Sn7ENUg^AI1asiW~U`c9miEc`2PHIW2Zb^PhV&&%9Oj;ZO DXv_~z diff --git a/k2/__pycache__/k2comp.cpython-310.pyc b/k2/__pycache__/k2comp.cpython-310.pyc index 95db396c58ffd31887842980f91c03e7e8ed23c1..9199e9a7150246aa64e5a15acc6dfb8392c4a711 100644 GIT binary patch delta 70 zcmX@ezl)zcpO=@50SH_UPTI)r#;9ZOY!wq)oLW>IQ(UH7o?nz56Hu9)kyw-)P?VpQ Ynp{#GlWkO#pI;K6ms-BLh0&G`00IsdxBvhE delta 77 zcmdnRe~_O$pO=@50SK0Sn7EPKjnUZ6*(xTqIJKxarnpSEJijPACZIAoBe5tqpeR2p fHMyiXrX;nvL^mZhC$%J1wJLu CvkvwE diff --git a/k2/__pycache__/k2rout.cpython-310.pyc b/k2/__pycache__/k2rout.cpython-310.pyc index 3afa439518d51aec65606fe5dcc71177689d71a6..d901934e6e21cb5474667617f3ca5bb301972726 100644 GIT binary patch delta 3787 zcmbVPdu)@}75BA2KkzGt#3^|>b{>wMhZCHH0tt@*AwYq`f(9}LV{*SF4vrnJKPQDc zBwER< zV?q3KzTY|b+;h%7-}!ESk@`)>opHJB2KX`k{cHT#scY_f_SI`0KU?4i?o9cn8)J>k zpqjW#^>a6`c*ztCsNUr!wV8XC*b0lasIIBjSSw%8H(W8qg1nMf!S6OTFcsonUOmD1 zQ!g3$MqYEpu*70v;%j*|ubVKUMh)_M-hevLwv*OJ+67YcM((GD9co}X!~-jgH}Pg- zI*DmnVc?>b2iIJ55!(iKAs!~X2r=!zbns4Mx{2umCc?Xk>7k8#is5eJ(FIa$BGX(e!D)h4^0Lw-)(re1P~q@-PSi z0W9Ef(cL~iLW(V9x*tpr@Pou`<G`av`zG$7O=_~d{&%>1jW zxso}WiaMWMvV4U#OOLh1LB^!=$(`0Hi%Mbr2lL95ZKR+h1E0KSi?ChtFSf%$B1+%` zx4JT!nO2X1lr;j_Ok$5byY7Z%2)EoQ&Gv7w7J0+oRJRd{y#TtB%c`Of>e>#!w@27P z>2RE3!*a?I@jQdJW&6lC94(f^NbZ)ubUbP-sal_~#K(~Q$ayA&HaD3Vz+XlYM8yt- z(pn53j5XKGy=b*hcW^a3CXzE+GLwcQFsCwe5Gdvbjz)`%*Vb)zZ-rvbxI^`*(ru|k zdLoyYP{S_WCe#Z#HLGPsi@fD-_HMzoTM^bF)F2#^AG(8%lPG!-PRNFe8qXmVDa6mB zW$>;J|q6fXu)9}x-E zo+}z-EP__hS}N5zaNk6JLSC!vW&`q_$}1g5kvI;ZTW3{~g^C})X`$01R$M^+d4!Cd zshSJ_wW~v_l(F)sbgAvJd@&ZsAY-D zd)|Y+J!qtiWw@#<#Kt7}dFPeuNKxlPE1+N)5J zH);dU01%gy$V5^TY576z$=VcJ%peqtRj7!NBXxf|`9CWnG+dWM7(|!@&^;oN%&JfV z5zlG~EteIYNIR37Dj?0Y2E8L*kYA{8XS4GA^&5MsZ}Yf*9^o>A4PgPH?1=C&i?Ap^ zsXre19Ejn{LQ5?nT~=;*j5!iwY%)2k#&aSiF38IbE!8gqubamvbLsOj>!svOT&Uxs zS>A34HsaZcFCy$f_!2^SXFh897P~H2e6KR^>fS~tbCl&SPx<}qqRjjEJ~qHMf-<#qa`t)JbJ(U1<4 z)D>P_DD6SHm5zm)coufkE!oMOmQ3juF|7$zEj1_dbjX;Z?kJ2Qm_0C)Pvc^nuJDAGpaSaaW`sH$pH|a3(I)S7 zH+TylO0X+WM1I(PguN>VdIAeJP~qon5B$%59Y8ZI8RiWd%fpqG8S)0sY7Fyi!Z2^t zjLRlXnKHj(;Ku956*h0uEX&qBT$1ONylL6CV%Tdq9hx_TttD^frW$;9&0F(UuGARv z%B(^3Aq3%z|jLGTpv%yH00UlzLVYC*bjoFyOHZVJL8WrY*e|BbERDiWJ zH%K<4Se8HU`ItSBKi$+<_ve4X4_v7%7y{gDHloV_Lc6Ss4zbJfbTrUG-=jrjHz2$R z5Vna2DE|oI#|YS9VyC>1KEOxvkI`WZO5$zV)BCFBhbZ2Y4|_XLkoa4C zzKehh!>r)%aZkFvRH;h14`)4KYBXDz4e~aAsytFYRUG0Wt{)Uqp6ZKOXvY0OzTCIj zLuYyscW@(g$q)K=dN+)x64~?grvTj6)HGMQsFI%khJ^?k;TK%&N4SjOM~DLGW|7Ik zDegi7-v@CJfiBT!QJO-yif|p_HH4c8s|dFcZX>*fa0lUCgk^;L2q8?P?69d4SWewG hIGy3Sl)3{>-H^@8U-!2vPUg1CkNc0Ay|z|2`!_n9bmag5 delta 3569 zcma)9YfN0n72a8PFAK}A!Mi{TEG(~u3oKxs#x};!IDXf)Thq1UWz7t*cwd=&*LG+f zl9;r06DzVuRn-K`CP^i`Rr@1Yik-Gf)5JMNz^lL?icb@70n> zlc>HG6wQ3YWwyd1Ey6S38foQ~ylTl7Y2zEY5B|1`ruh)}^Xgf~Yp&XPEq`puc9}&w zi2nkw=5@1nl!!K7&l^w%(oT{F3R2$4n?Sb6BD!e072?4a#+!Ky9o0ol>k5M-+Iaig z5#7XwK(B*$l3ounIxt$J-~!{FEPDzabMoue!hwLKGGam1l2)4L{vYi4(C-z z_$cw4h~J#&$M_cF2k3~caKbh|PRt-N+ku(jJBS$~W+yPa_-9jp-r;XeBUj8@< zMo4uZs6N5>6En&W@Pm-@%_KPllEeH6Nya!kZqtvdpWA=6dZWa{*yHMlj^-*;7-pD@ zgfKLW+Ix*n=78xa~1>JS3zgi~ittIs%n%-x)q1=O7U zkld;M;{LR$AZlBuiQ5iU>N(SiI(L}df`9C?9R=eE1zU6k5FSG~sGJ)@ zLnm?RNB9ar#5WU9m_iC3olYk+>6A#p83$2J4t^O|0Ttb_jYZY+h8NjkHRWqidn&_0 zlIL8tD)PqBIL}!I)V0dw-mjv4D}oy#f^Z7Ja-_sXQ#xU(J0wT?NrW>9vj}wjG_C?_ zcU4G>!*U_49@h9)pRf9uX%qr_6Bw96tr$YyCrOsHrQ`{aE~CZ_z=EzaRW<5?&kqT= zd`sO&QF0u>Dm^cx5l^R1+|j6H#L5iH=MhrsivPln{}z>;!!zt@!*XO|=A7J$TTNVy zLt!jeGImbzxHM$9+ELxdMpdSIUl2pLycwCE7t>~RCY|8WlSQdekE#!B?n5QVbeapx z0re8pK@m?%Tqsn{Vxl-_Xi-C9rfW{KE33b*sVgbUS$GN*{*Rpf5!GhYNZq#~Rqxg{ zR|J7raP-c`O_@}Gt(&YnhZ<>wd=_)5dP+^z|9SF%rb-%UXCh##IFc7s4|L zMdie;L|9bSffK#Y!BY3-`tfrUM zU5IC*Qq0H}^)L`>!m`P4AdDk?3xQg4t*vVsUuVne?Z(%bfAz_x3g#|Khcbgfc2RvN zxaTu7@K3>B_J;B`f2alFw14{HdGKFvxjj{|yoI+=#vD?_xK(as5^*yTPYFZji=jK^ z>!26$6hF6y#8`?RM)H*)pj@p_u-mK0S`$o5qE--|JimI>*0U8Abi3s=Oc~F}6zyov zSq{7v1{p=4I|ofW0HO>Qooah~nCU9fKC?&_Yeg|m%ABV-GAxa!ld*Uz7g8C9M6p=q z7bJ8k%iyY4$Ep|H=X(;YL%3(jJ=hC@EUGzS{pd#KvQ}g(=S$rkh+*c#v4t9U_ zOn8Nbk03)n(e%RC*?N6!*Y~kqkEx!%u4Zf~y<&ar6!92ZpHdh4I&#%R-z|4;h{5E7 z$$lD*U6uoyFGiWM$}&=%k0wPbD=|M-84fYp!%H=mG2va5ljdL9>-@9aG0vlAnzZhN zpT>~QrULyV?14Jb-;5n#!&2;qUjx4bOxrDH+UHANwQ+XCzQULdb`JQ;vmcQ^06ENt z{G2GtGP+)LHRTK+7I_okW4sq{*=W}oG1DcmgCDhb;BV|bH8MCRo$QkOV6eHHCN%Z!MihMjpu6OIxc&vg`v~OBcI6xD^phh6Z{7j%AJoyI zy&A6M+v=5}*R-GD@@Hz-aL-9veu(>@BA}tpa_4>aB&!_VjKYjb8YOlJuM$-44vo3& zE@uCi<5S1K9p&=(Xum~XR}Y4JHF`$xs!xVTDk*~(@dhtKkD3^nSae0BRNbgmn7c;w zY(|Dr2WPh2hj0m@31Jg}<&^0xy!$4Q*oCkkfj&c{xWX?Zc?Dq^;SGe_2yY^+BD{sL x^B&@Tga-&W5#B+-C_b;YmTOxw&9e!y9qMZ{7SzencDvW5o*g~rbh_HT>^~FiKLY>& diff --git a/k2/k2admmenu.py b/k2/k2admmenu.py index 682b05c..a1cd578 100644 --- a/k2/k2admmenu.py +++ b/k2/k2admmenu.py @@ -2,6 +2,7 @@ import hashlib import uuid from .k2cfg import k2 + db = k2.db class K2admin_menus(db.Model): @@ -23,13 +24,26 @@ class K2admin_menus(db.Model): caption = db.Column(db.String(1024)) url = db.Column(db.String(2048)) + def __init__(self, **kwargs): self.menuid = hashlib.md5(str(uuid.uuid4()).encode()).hexdigest() super(K2admin_menus, self).__init__(**kwargs) + + def __repr__(self): return f"{self.namemenu}')" - + @classmethod + def get_menu_items_by_roles(cls, roleid): + menu_query = f""" + SELECT menus.namemenu + FROM k2admin_menus menus + JOIN k2admin_menus_prava prava ON menus.menuid = prava.menuid + WHERE prava.roleid = '{roleid}' + """ + result = db.session.execute(db.text(menu_query)).fetchall() + menu_items = [item[0].decode('utf-8') for item in result] + return menu_items class K2admin_Menus_Prava(db.Model): __tablename__ = 'k2admin_menus_prava' @@ -59,4 +73,5 @@ class K2admin_Menus_Prava(db.Model): def __init__(self, **kwargs): self.pravrepid = hashlib.md5(str(uuid.uuid4()).encode()).hexdigest() - super(K2admin_Menus_Prava, self).__init__(**kwargs) \ No newline at end of file + super(K2admin_Menus_Prava, self).__init__(**kwargs) + diff --git a/k2/k2rout.py b/k2/k2rout.py index 1ce3771..f085ae6 100644 --- a/k2/k2rout.py +++ b/k2/k2rout.py @@ -15,7 +15,7 @@ import os import sys from .k2admmenu import K2admin_menus, K2admin_Menus_Prava from sqlalchemy import text - +from flask_jwt_extended import get_jwt_identity @@ -471,8 +471,24 @@ def add_to_menu(): @components_bp.route('/api/main-menu/') def get_admin_menu(): - requests.get(f"{k2.domain}api/add-to-menu") - return k2.menu + current_user = get_jwt_identity() + print(current_user) + role_id = current_user['user_role'] + filter_menu = [] + response = requests.get(f"{k2.domain}api/add-to-menu") + menu_items_list = K2admin_menus.get_menu_items_by_roles(role_id) + + for item in response.json(): + filtered_children = [] + for im in item['children']: + if im['to'] in menu_items_list: + filtered_children.append(im) + if filtered_children: + item['children'] = filtered_children + filter_menu.append(item) + filter_menu.append({"heading": 'APPS & PAGES'}) + + return jsonify(filter_menu) def add_menu_with_permissions_db(name_menu, prev_menu, caption_menu): @@ -505,7 +521,7 @@ def add_menu_with_permissions_db(name_menu, prev_menu, caption_menu): settable=0, cutpast=0, enable=0, - roleid=1 + roleid=-1 ) # Додавання об'єкта k2admin_menus_prava до сесії db.session.add(new_prava) @@ -515,6 +531,7 @@ def add_menu_with_permissions_db(name_menu, prev_menu, caption_menu): @components_bp.route('/menu-admin-items') def menu_items(): menu = [ + { "title": 'Add components', "icon": {"icon": 'mdi-account-circle-outline'}, diff --git a/languages/babel_translation_directories.yml b/languages/babel_translation_directories.yml index d603fa0..03e7ce4 100644 --- a/languages/babel_translation_directories.yml +++ b/languages/babel_translation_directories.yml @@ -1 +1 @@ -babel_translation_directories: languages;components/k2test/k2test/languages;components/grid/grid/languages;components/adm/adm/languages;components/k2auth/k2auth/languages +babel_translation_directories: languages;components/k2test/k2test/languages;components/k2auth/k2auth/languages;components/k2adm/k2adm/languages diff --git a/routes.py b/routes.py index 9fbc182..a3ac1c1 100644 --- a/routes.py +++ b/routes.py @@ -4,3 +4,7 @@ from k2.k2rout import components_bp app.register_blueprint(components_bp) from components.k2test.k2test.views import k2test app.register_blueprint(k2test, url_prefix='/k2test') +from components.k2auth.k2auth.views import k2auth +app.register_blueprint(k2auth, url_prefix='/k2auth') +from components.k2adm.k2adm.views import k2adm +app.register_blueprint(k2adm, url_prefix='/k2adm') \ No newline at end of file -- 1.9.1