From acdaa6c7260c93b02ead3852b2c8fb7bc3ee2e3a Mon Sep 17 00:00:00 2001 From: yongzy <635602689@qq.com> Date: Tue, 16 Jul 2019 18:43:07 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=9D=83=E9=99=90=E5=8F=AF=C3=A8=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E5=88=B0=E6=8C=89=E9=92=AE=E7=BA=A7=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.idea/workspace.xml" | 279 ++++++++---------- .../db.sqlite3" | Bin 72704 -> 76800 bytes .../rbac/__pycache__/models.cpython-36.pyc" | Bin 1981 -> 2038 bytes .../__pycache__/middleware.cpython-36.pyc" | Bin 1426 -> 1428 bytes .../rbac/middlewares/middleware.py" | 2 +- .../rbac/migrations/0007_permission_name.py" | 21 ++ .../migrations/0008_auto_20190716_1720.py" | 20 ++ .../0006_permission_parent.cpython-36.pyc" | Bin 765 -> 765 bytes .../0007_permission_name.cpython-36.pyc" | Bin 0 -> 715 bytes .../0008_auto_20190716_1720.cpython-36.pyc" | Bin 0 -> 693 bytes .../rbac/models.py" | 3 +- .../init_permission.cpython-36.pyc" | Bin 1101 -> 1143 bytes .../rbac/service/init_permission.py" | 13 +- .../__pycache__/my_tags.cpython-36.pyc" | Bin 1137 -> 1327 bytes .../rbac/templatetags/my_tags.py" | 10 +- .../web/__pycache__/urls.cpython-36.pyc" | Bin 782 -> 863 bytes .../web/templates/customer_list.html" | 31 +- .../web/urls.py" | 16 +- 18 files changed, 209 insertions(+), 186 deletions(-) create mode 100644 "DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/migrations/0007_permission_name.py" create mode 100644 "DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/migrations/0008_auto_20190716_1720.py" create mode 100644 "DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/migrations/__pycache__/0007_permission_name.cpython-36.pyc" create mode 100644 "DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/migrations/__pycache__/0008_auto_20190716_1720.cpython-36.pyc" diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/.idea/workspace.xml" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/.idea/workspace.xml" index 92aedae..13316b4 100644 --- "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/.idea/workspace.xml" +++ "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/.idea/workspace.xml" @@ -3,9 +3,7 @@ - - - + @@ -48,41 +46,20 @@ - - - - - - - - - - - - - - - - - - - - - - - + + - + - - + + @@ -90,8 +67,8 @@ - - + + @@ -99,50 +76,40 @@ - - - - - - - - - - + - - + + - + - - - - - - - - - - - + + - - + + + + + + + - + - - + + + + + @@ -170,7 +137,6 @@ - @@ -180,20 +146,22 @@ - + + + - + - - + + - - - + + + @@ -233,32 +201,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -370,22 +312,24 @@ + + - + - + - + - + @@ -393,10 +337,10 @@ - + - - + + @@ -404,7 +348,7 @@ - + @@ -434,13 +378,6 @@ - - - - - - - @@ -451,16 +388,6 @@ - - - - - - - - - - @@ -476,23 +403,37 @@ - - - - + + + + + + + + + + + - + + + + + + + + - + @@ -502,7 +443,7 @@ - + @@ -512,84 +453,102 @@ - - + + - + - - - - - - - - - + + - - + + - + - - + + - - + + - + - - + + + + + + + + + + + + - - + + - + + + + + + + + - - + + - + - + - - + + + + + - + - - + + + + + + + diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/db.sqlite3" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/db.sqlite3" index a9916497bfea781e82a6c4e2544667dfcfa80854..2b5dd7a562a39c6647bc7f0d89eb995e5caf7a54 100644 GIT binary patch delta 3376 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 Ms4}^YJ)e;e0N$M{EdT%j diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/middlewares/__pycache__/middleware.cpython-36.pyc" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/middlewares/__pycache__/middleware.cpython-36.pyc" index b9116d4883930c00b490afd5a5ee26256e9faa75..429abd4e15b74b5d1b844a2e86b057b463db60e5 100644 GIT binary patch delta 263 zcmbQlJ%yXon3tE!dWmlA=Z&0?80%};Qn)17LyzME!Kj(#N5=$8<^}E1tz~|l3~0xnTI)ZaustLqw?g3%%4P6fjWwmQ3;jF rFIWN@#U@*^YU!a%0af1Ou*uC&Da}c>V+8VwIe-KYqW~iZqX;tqVA4DF delta 257 zcmbQjJ&Bvsn3tC;u1zQQ#YWCYjP)gaH5|>1k_@$+HH=wIS^PDeDIAgvK$2UMA%$lS zQ!^tY15}0$EW?H@lc!L_Uc(sAh+9PpLoh>OPdGz~Knia&V=#jzpI<2(0|Ud$Wz$|R z+*&m`i^*;Bb|yPH!CRaKi6t5FnR#jXxA>Dwi;7b7O5$@<^Gf40Q=%pdGiS0e7nc-G nu4YbWRGR#l`ID#$(3B!2R6=?3E0#b;k;yi!S^^kSWvp@lvNAyv diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/middlewares/middleware.py" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/middlewares/middleware.py" index a1055c6..b80acfa 100644 --- "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/middlewares/middleware.py" +++ "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/middlewares/middleware.py" @@ -35,7 +35,7 @@ class AuthMiddleWare(MiddlewareMixin): if pid: # 当前访问的是一个子权限 request.current_menu_id = pid - p_permission = permissions_dict[str(pid)] + p_permission = permissions_dict[permission['pname']] request.breadcrumb_list.append({'url': p_permission['url'], 'title': p_permission['title']}) request.breadcrumb_list.append({'url': permission['url'], 'title': permission['title']}) diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/migrations/0007_permission_name.py" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/migrations/0007_permission_name.py" new file mode 100644 index 0000000..5a8dc07 --- /dev/null +++ "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/migrations/0007_permission_name.py" @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.10 on 2019-07-16 09:14 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('rbac', '0006_permission_parent'), + ] + + operations = [ + migrations.AddField( + model_name='permission', + name='name', + field=models.CharField(default='', max_length=50, verbose_name='url别名'), + preserve_default=False, + ), + ] diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/migrations/0008_auto_20190716_1720.py" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/migrations/0008_auto_20190716_1720.py" new file mode 100644 index 0000000..0a49321 --- /dev/null +++ "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/migrations/0008_auto_20190716_1720.py" @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.10 on 2019-07-16 09:20 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('rbac', '0007_permission_name'), + ] + + operations = [ + migrations.AlterField( + model_name='permission', + name='name', + field=models.CharField(max_length=50, unique=True, verbose_name='url别名'), + ), + ] diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/migrations/__pycache__/0006_permission_parent.cpython-36.pyc" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/migrations/__pycache__/0006_permission_parent.cpython-36.pyc" index 7c40277bad11ff212288bb393ef856e8abcfc9b1..85227874da45f616ed7ce8cfa591441a6f38d9f6 100644 GIT binary patch delta 15 Wcmey%`j?f>n3tDp*_4fJ-n3tC;rFosVi|iFuQ6GRivremItsTvHe!lr;_DR2=eE+d`_Sk3aFWWhs^h3JlfCMn` z6f3>V^PKK0zYMaV>z*EcNW5sfuw8C{(dTEtN@q zo0P>=%Vkkl#zrMMl^MJ6yAzXgNVf$?mU+N3A9_5syl=a2?+`54BRRGYhQr}gu|QoG#t^VrNR8FfCfi?@SF%LQZXD&N>x5R4y%=iGOD#j-ThVy2OvQexD!DWi_qepwv}SO>@;uCKo$%+FM`!UjO{F z{(70aIp*8VH={Y5cIQM+|?t880G>sg^NwaJ;k<#?=sBdVy g*oRR|t0mJ$ZyVoek6d*8Vl$wZZUn{=@A-q^KaujxQ2+n{ literal 0 HcmV?d00001 diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/migrations/__pycache__/0008_auto_20190716_1720.cpython-36.pyc" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/migrations/__pycache__/0008_auto_20190716_1720.cpython-36.pyc" new file mode 100644 index 0000000000000000000000000000000000000000..bc3227865265e4ff0f32c779b25fbe313989d09c GIT binary patch literal 693 zcmYjO!EV$r5Ov}tn}n^@15){g99m@;i3NnJqE>K$Uf>i38SmP=o5e}Cb^`PahjLhn z6B3_L@drqJ19x9hwdx0O;=)W;)z+3rGxqb$yf^oEcH-aP_TT(-2>C;9Ef4%7IA#b& z5aB3NI+^33?<%*X87;lcbI5ZdsPH}$;YqsiKhew={wtCM*YJ-dj@@mmVp0pqRMAMy zl}TJ1m&Hu;rl>1pgAyKiQ$^hCI# zB3e;+4Mhy4`!;%clizxJ%qRA4nx-SRl)5a8fwHXPrL^((!g_dfjbvZ95!hC%tBW63 zUsnl*cKJu9WHoE%HUK(jt+f63QjcpRyG$JhX>^gs|JI)tQi;>V)d7UM2PTPZ$T|pP zHf9W%w@QNFXY8!y3R}QP$fc}=tR{stnqso}sRHqyVMdLUvC;9IZ( zL&n>tX2W#wC>;$Ru)%1U9xTtb4@GcVCPs$_p69r*yZh55K$g?CX*KZDECoHGH{Lx&hfg*d9ij>bnfKjY`X4$-!oUCk literal 0 HcmV?d00001 diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/models.py" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/models.py" index 2e34d84..d693513 100644 --- "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/models.py" +++ "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/models.py" @@ -25,9 +25,10 @@ class Permission(models.Model): 没有menu_id 普通的权限 """ url = models.CharField('url地址', max_length=128) + name = models.CharField('url别名', max_length=50,unique=True) title = models.CharField('标题', max_length=32) menu = models.ForeignKey('Menu', blank=True, null=True) - parent = models.ForeignKey('self',blank=True,null=True) + parent = models.ForeignKey('self', blank=True, null=True) def __str__(self): return self.title diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/service/__pycache__/init_permission.cpython-36.pyc" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/service/__pycache__/init_permission.cpython-36.pyc" index 26acd17e0a3e8c643fc8a14a0e45bc8b24e115ac..bbf4ae13ec958836fada4955919695e3b6b46c9a 100644 GIT binary patch delta 442 zcmY*Vu}Z^G6utMoq)n5wwpwa~lY?M|s^C&2xajO+Q7P0~e6c3BX-!({kWT%AlC_iI zBDgyE4}x<*f5X+AR1taH^Ul5JymR5bDPM}Zm(8mDvD)0p%+$K70l*=ZFU@Y&FN7xa zsp{}4OqdN5P9@zx1?&i#4-+|%1vh{&lc1iUmY`&S$j;?JB2_iOj9rQWUTtv){5I{q z%sw`(+?;n%EX}2WFC-K0YQLO9@&-6@2n7<-I#HOjDI&Sffa1ZChbbpb3-}LLOc2X4 z7c0cz1S-XFjIY(g!18*w@7sOXZ?)WZ&uSR|MuWCzxx$q7EwW+rH~HWl=4`Xbkxx+lkd2~ oBTYDMx6|Lg>but-qhX?WrI`J}Dz%Yf_WEMfwGNOvKlbYU8|J)asQ>@~ delta 390 zcmY*VJxc>Y5S{(FWV0qQike##!9w)JMoeLmPO-ExAPC_QHt3xi&%F}@UbHyGI&6ET zrG%N7^I*QjyO6uJnp}O_?q*^nJF)@*``ED@U95F75wZ-1 zG=L$)=7X1%9zZuAI;o?X0>sJ$7DwjV-fWrarO1!Ek9rKB7R3}nB$(gxiqw4Or+ z$KcH$9eU){je6$V-jlbDr9uU99NhF{-;d5rub=pV_V}3HnX54k^q56~w$HRfr2U{< zB_}dLKd}xQkfwcLad{6P1*C4j+49N)5u{2>1dDF+263q#=-LX)XT97q*OPhQQeQ!fK#CNlvE5CGW?VmkwIu^f=7VaQ_0Vk}|GVs2)v zWvXGUVajGJl1gC=W=LTGI)%wEM3bdR2&k|~7({^d-x3RO4f6F24)*l-iw|~%(B7_* zn#^EpZ?WVh=B7sR7o-;DW)>IQX6EO`r(`CV6tRH}027=bQ}{9xi{qh+fNE5LV#Od? zpa+2-Dv}4XH2EgqWsVS*0y2w0-nhkbt F1^|c$NMis1 delta 187 zcmZ3_^^rr_n3tC;v0W#29Ww*NV+JGujk#TbwqZ}h6=j5qO-t4zn3yL!HN+v&Ga#WB4>SbW!V`gI%W8`8KVB}-u z0Adg+z{JB?Bt6-lIf7RPs78~iNCHR|$xL3ttivV?65*NL!xF(J4HA`|{GCNjfCtFr P0czu5GR2#J|xTA7@i)WI)Z+l2TFV89fK zPv|coG2<&dWf1WJ%sI#LqYx`QdwCz7Z0q`|W$EW%kKb}xl72}yJ|pxm@SFZb0SQ~L1`eg3IsS8gg|16`lIO?W>2mcRun=!;cuAizY zX4bsxHEQEsEu%@P)lnO^rIM~xyQu1P*v>YUZj82DF?%)HD{WYL(K4RS<7hF(gGfaW zPsJIo`Mc={pRZGaZ=xg=5|yM+qLBKXGZQ^Aa7g2gGiG2!4 z{=7svd*)u@p|4}{-aV_ToO4e^ezbIhe6iSECR~Jmn)-2cyuJRu{q|$~`IC$7Tq-+F bHl=nF#*hd6l;OJc0L5h0C68Ep^>*$r8};{w delta 392 zcmcc5*2ku7%*)G__(d&tFB1d9V+JI^17te@aq*Ig%HcuHOsR}1+^Ni2oM09Yki`XN z@d8=gU>090OBN59#Sdihf>{DU79W@;2xRd$Go^Dy38V-GGiVA=e3LF%#UGbkT3nK! zn_8rwn3AHeGP#jae)4)oIYppML1JZYYF>$cPG)h5zDgAzTmYg{oJmf$N*XShlA5Eh zVIN>qkeOl^lcKE&G%J_Mu0DzvW - - 添加客户 - + {% if request|has_permission:'customer_add' %} + + 添加客户 + + {% endif %} @@ -16,7 +19,9 @@ 年龄 邮箱 公司 - 选项 + {% if request|has_permission:'customer_edit' or request|has_permission:'customer_del' %} + 选项 + {% endif %} @@ -27,13 +32,19 @@ {{ row.age }} {{ row.email }} {{ row.company }} - - - - | - - + {% if request|has_permission:'customer_edit' or request|has_permission:'customer_del' %} + + {% if request|has_permission:'customer_edit' %} + + + {% endif %} + {% if request|has_permission:'customer_del' %} + + {% endif %} + + {% endif %} {% endfor %} diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/urls.py" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/urls.py" index 6658079..ff72fad 100644 --- "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/urls.py" +++ "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/urls.py" @@ -6,13 +6,13 @@ from web.views import auth urlpatterns = [ url(r'^index/$', auth.index, name='index'), url(r'^login/$', auth.login, name='login'), - url(r'^customer/list/$', customer.customer_list), - url(r'^customer/add/$', customer.customer_add), - url(r'^customer/edit/(?P\d+)/$', customer.customer_edit), - url(r'^customer/del/(?P\d+)/$', customer.customer_del), + url(r'^customer/list/$', customer.customer_list, name='customer_list'), + url(r'^customer/add/$', customer.customer_add, name='customer_add'), + url(r'^customer/edit/(?P\d+)/$', customer.customer_edit, name='customer_edit'), + url(r'^customer/del/(?P\d+)/$', customer.customer_del, name='customer_del'), - url(r'^payment/list/$', payment.payment_list), - url(r'^payment/add/$', payment.payment_add), - url(r'^payment/edit/(?P\d+)/$', payment.payment_edit), - url(r'^payment/del/(?P\d+)/$', payment.payment_del), + url(r'^payment/list/$', payment.payment_list, name='payment_list'), + url(r'^payment/add/$', payment.payment_add, name='payment_add'), + url(r'^payment/edit/(?P\d+)/$', payment.payment_edit, name='payment_edit'), + url(r'^payment/del/(?P\d+)/$', payment.payment_del, name='payment_del'), ] -- Gitee From 7513c90e89092043b5e2864be94c7e57dee49c29 Mon Sep 17 00:00:00 2001 From: yongzy <635602689@qq.com> Date: Tue, 16 Jul 2019 21:56:24 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E8=A7=92=E8=89=B2=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.idea/workspace.xml" | 273 +++++++++++------- .../db.sqlite3" | Bin 76800 -> 76800 bytes .../__pycache__/settings.cpython-36.pyc" | Bin 2592 -> 2544 bytes .../__pycache__/urls.cpython-36.pyc" | Bin 1002 -> 1045 bytes .../luffy_permission/settings.py" | 2 +- .../luffy_permission/urls.py" | 1 + .../rbac/__pycache__/forms.cpython-36.pyc" | Bin 0 -> 1042 bytes .../rbac/__pycache__/urls.cpython-36.pyc" | Bin 0 -> 400 bytes .../rbac/__pycache__/views.cpython-36.pyc" | Bin 0 -> 891 bytes .../rbac/forms.py" | 17 ++ .../rbac/templates/form.html" | 46 +++ .../rbac/templates/rbac/role_list.html" | 27 ++ .../rbac/urls.py" | 8 +- .../rbac/views.py" | 19 ++ .../web/templates/layout.html" | 7 +- 15 files changed, 290 insertions(+), 110 deletions(-) create mode 100644 "DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/__pycache__/forms.cpython-36.pyc" create mode 100644 "DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/__pycache__/urls.cpython-36.pyc" create mode 100644 "DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/__pycache__/views.cpython-36.pyc" create mode 100644 "DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/forms.py" create mode 100644 "DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/templates/form.html" create mode 100644 "DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/templates/rbac/role_list.html" create mode 100644 "DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/views.py" diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/.idea/workspace.xml" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/.idea/workspace.xml" index 13316b4..cd97e71 100644 --- "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/.idea/workspace.xml" +++ "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/.idea/workspace.xml" @@ -2,8 +2,15 @@ + + + - + + + + + @@ -49,8 +56,8 @@ - - + + @@ -58,69 +65,86 @@ - - + + - + - - - - - + + - + - - + + - + - + - - + + - - - + - + - - + + - + + + + + + + + + + + + + + + + + + + + + + + - + @@ -133,11 +157,9 @@ - - @@ -146,22 +168,30 @@ - - + + + + + + + + + - + + - + @@ -193,13 +223,14 @@ - + - + + @@ -218,12 +249,6 @@ - - - - - - @@ -246,11 +271,11 @@ + - @@ -313,15 +338,15 @@ - + - + - + @@ -329,7 +354,7 @@ - + @@ -364,20 +389,9 @@ - - - - - - - - - - - @@ -424,13 +438,6 @@ - - - - - - - @@ -458,96 +465,154 @@ - + + + + + + + + + + + + + + + - - + + + + + - + - - + + + + + - + - - + + + + + + + - + - - + + + + + - + - - + + + + + + + + + - + - - - - + + + + - + - - + + - + - + - - + + - + - - + + - + - + + + + + + + + + + + + + + + - - + + - + + - + - - + + - - - + + + + + + + + + + + diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/db.sqlite3" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/db.sqlite3" index 2b5dd7a562a39c6647bc7f0d89eb995e5caf7a54..36989560884d5b6c6404dfcaa95c9ca7f86f73c7 100644 GIT binary patch delta 610 zcmZp;!P0PpWr8&C83qOhZy*MPi5ljNXEr9(a4|A(zRShU$jG|+CAWlvAoF(yR_1*S z%x9S2Fh69z#=LK{pv)R(2_9Bv2KndxYoF}c{bcuU4n}4MaVLNOV8hAR^c7iv26Arx ztF`op};aKR@$i<-@9~D$Kr&h8bqbl}V=M<>k4CW|b8M z#mQy)=~?C}Ip)chnI&aa9Gi0wPiJ9fV|L%ne!_v-R*u<`(a6BiQrEy-*VsV8(9p`n z+{)BI&)n41(7=ELQ`*?n%E(;L$jrjb&}?(d=>`WbX67jj%o~_bF;4+HrHxreikX!` zRi5+N+~$`vCp=%b@cD$cv_##~;?yGD{Oud~8ACX>v#2n(G4mN(AsaSvV#Xu~mgOum zj4T{X3;_(xlNbUfPIQUuGv{FSon7ll$Y+sNp+f*> zu7m>2BQrVH!y&``^(u` zedpCq&sAVl^zt(bG>CHd%ZYOF1R4`q9+?|x>RaWN;RiH6Dk~$)FC@LvH!HN<&pout zKOCqw7o@hp+%wN9Cpp)!AlVpbq!$poPoJU4I0Ix&3iC7#Mwab2v=}uQK|!&NNiHqW J))sd(0061Aun7PF delta 650 zcmZ`$K~EE55Z&o)TLLPmQ4tXfh3G++Z@+GL*+vM2LS1Cr*tC@0g9=n?moAV%Lfd%Y zpcfJoN)M|hp7aOQY(f(cdLW9?JHbRvJQ))Y#ES zxubg=$6fmitXxuH@A<8}&ERoAHMaop?zfiqKr7>U+~@Eoe#bAk?;h`bgVp_kZr%^b zxxWT{TPN`<=fxn0HU{w{)^QuRnXDD7!QDQd?e|qL9|pkZ+Pe;qUR-efZ%1&55yO;- zYClo>LnJ^3BUFk|MIa$XCX&AkN8uk@B#{t}ge5_i2SuW|_ug-eGFE5t$XpR_}q-Dm^G+xe? zO*WgEiM(!ASAJOj`w72S-~8j#6Sk9gjLh|QJ*KVemJu@SG%=`NGAOf(rb9+*o|slT zY}(01Jr&O~eNYll9c7Gwz2T=cW(ZuB5bLTr7%-XpSbv8p7$)9204I)ymGq z$s836^Lcf3mi1E&BfGGuSY$E$QWqDFTC6vgb V^Y9`RjGe+^H$VTy}$fd}`RVy?zr6|r}%4CcZ zNKr~r2C7s_Q2~>xU{WoUF`Xq!FhxB|C`BVmIE5uj1c*g}SS&>|N?trgD@8j+C!IM; wB1IQyfn9{>OV delta 271 zcmew$yg)?Rn3tD}F;^pYA1?#LV+JI^0c1M>aq*Xl%8~UcBIz7a+$o|_JSk$Sj9E-s zys2y{;>}Fyj43QB5-E}?QYq3YGU+Utj485nSkf7z_)_Ge_*3Ll6yT~Ao0(FS<}hV4 zMhT=Sr>Fo`DyOJ|Ni{I3p2?Wb5+#_T5hawO86}*;5+wq}qChN`qNo)mo}!(ilcJl> z93_#W2ed#kML$X^#UM&Lg(;Xp({QsC<7{RPt)isFWWC(Xl$4y*^2DOlVkEYnV`)i- dFIXyk^G24NEQ~3WyE(O4m>AiZC-302004YhL+ttYR|qb5qOni?U-}vJ&&s^L9h0{)Yw&Rab+a%EF!C_-F!C@0 E0HEA1%K!iX delta 128 zcmbQr@rqs9n3tF9Tb5R|Au|KRV+JI^3S>I~ak0ZhWoxc+Uc~u{8--oO$qr)t}F)j8i-j1 zC5WJk3~53s+Me=;e&SQ|k_cb06C#+T1)KOu0G>dE;0a{_`%pA?NF4nF3=&ft^ea6y zV1&a;NM$ng&z65-n1^6Ul2Abs@09eZpu#(e691Gik}$yY?cDR7O+?rLybMxz3sXk9 z0b({l)ug6lGVuy;Ovm15NdA3yObQ=TCF^AO@dv*S#(ojjjUt+O`pLnPptvuZ!doE+ zORu3=d~WNwjfpR3Raxsw*&tJ?F>%WVX0$K0#z$?$d0yr<=Qix;QVCFcaL*^ zM*h42ko9N1x7AP{R(h|uUZmxqdL>g`=H;NLM*aQ~hXjYYF?m%kpPzj@|N8y>)5o5E zlV&|PjPCxCZU9aQVp^aGU7$DVJoV`D;*~CUXXV8KmRhDm38l6;he?hU+HKAcMyZ;f zI858Q$TpKoajtIxx>GUL3urH*!tMni273}wxBrhAYk1)Ss2MSUXh;hnD` zQ_JwK4IGVigzn4YrWTfF83H*vVv!LIseS~;R?PkdMfY_O`aT@YgUq^vdq~QL!VP;$ jB!=^xCf2ykXPN~`xz`y}|gkAxO zQ?O-as5k&S-w6Yj{QTbk&+l74?Q~kZ&%u3<67ogC z$-{o(SuwT(9ga*gzV$0Z0uc5ix9lU|_Np?6G!KtsI0>*@-L|FMpjjNjB9SvSoG3XR z;!LA!_<+LEkI6(cq}oA<{4#PfM=vjY^evM-=USRQ(Vlf#__;zDoyBvN@wL)V@u1oW)`_oo>cUuCvsbRLQ|%|9;qg99~~yJ1(~4hs#ajo@WYHf?wdT6XPPZX`6Lv Gm;M4N)^dpe literal 0 HcmV?d00001 diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/__pycache__/views.cpython-36.pyc" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/__pycache__/views.cpython-36.pyc" new file mode 100644 index 0000000000000000000000000000000000000000..53f89351f1b8d002d0cea78701aaa63a0a3972ac GIT binary patch literal 891 zcmYjP&2AGh5VqI*mrc@ElmkM%z#bY7+z>)YR22slP|9f)6s2pY+3o(MW2aTC^pqap z&sx*4>sIAmq3w6#Z3@+r%0^DzL z>t|>TD|zXaV$CkN@mI)NdMjS=wZQCRc)kq>)BHJLoJmz^GnkvYvhlR4CWNH{gc!v7 zl*mTyL5a+?75EO6D)orw@lt66G2X8k^zryh>33g_=WVS{TR0l;mec02eXpj_6wTqd zTFz!?lZAr1(7I@wotx_)H{X8VeEl*eI^&Z|7Y$K=Z*fFjC>m|1O|Go}@x%TnNAA2c!?xV1N$v!-OZ!eu=paQ% z(AaQRR0g{q%nCpWBZt+>%v%YM=n@xtax$$7X?;D#aiAFls`plYAA00((XRqCz&2f} z1-E8{9=cA%e2y(pT?91!&iG@V;J3kJ{7}-Th^2g(cI}pQ-5Th53npJ0?Q%UxOL>&ABp<>tW literal 0 HcmV?d00001 diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/forms.py" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/forms.py" new file mode 100644 index 0000000..ffc89fe --- /dev/null +++ "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/forms.py" @@ -0,0 +1,17 @@ +from django import forms +from rbac import models + + +class BSModelForm(forms.ModelForm): + def __init__(self, *args, **kwargs): + super(BSModelForm, self).__init__(*args, **kwargs) + for field in self.fields.values(): + if isinstance(field.widget, forms.RadioSelect): + continue + field.widget.attrs['class'] = 'form-control' + + +class RoleForm(BSModelForm): + class Meta: + model = models.Role + fields = ['name'] diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/templates/form.html" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/templates/form.html" new file mode 100644 index 0000000..50b3e9e --- /dev/null +++ "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/templates/form.html" @@ -0,0 +1,46 @@ +{% extends 'layout.html' %} +{% block css %} + +{% endblock %} + +{% block content %} + + + {% csrf_token %} + {% for field in form_obj %} + + {{ field.label }} + + {{ field }}{{ field.errors.0 }} + + {{ field.non_field_errors.0 }} + + {% endfor %} + + + 提交 + + + + + +{% endblock %} diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/templates/rbac/role_list.html" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/templates/rbac/role_list.html" new file mode 100644 index 0000000..1deda17 --- /dev/null +++ "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/templates/rbac/role_list.html" @@ -0,0 +1,27 @@ +{% extends 'layout.html' %} +{% block content %} + 角色管理 + 新增 + + + + 序号 + 角色名称 + 操作 + + + + {% for role in all_role %} + + {{ forloop.counter }} + {{ role.name }} + + 编辑 + 删除 + + + {% endfor %} + + + +{% endblock %} \ No newline at end of file diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/urls.py" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/urls.py" index 8325060..701a6e3 100644 --- "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/urls.py" +++ "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/urls.py" @@ -1,6 +1,8 @@ from django.conf.urls import url - +from rbac import views urlpatterns = [ - -] \ No newline at end of file + url(r'^role/list/$', views.role_list, name='role_list'), + url(r'^role/add/$', views.role_change, name='role_add'), + url(r'^role/edit/(\d+)/$', views.role_change, name='role_edit'), +] diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/views.py" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/views.py" new file mode 100644 index 0000000..ee0d60a --- /dev/null +++ "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/rbac/views.py" @@ -0,0 +1,19 @@ +from django.shortcuts import render, redirect, reverse, HttpResponse +from rbac import models +from rbac.forms import RoleForm + + +def role_list(request): + all_role = models.Role.objects.all() + return render(request, 'rbac/role_list.html', {'all_role': all_role}) + + +def role_change(request, pk=None): + obj = models.Role.objects.filter(pk=pk).first() + form_obj = RoleForm(instance=obj) + if request.method == 'POST': + form_obj = RoleForm(request.POST, instance=obj) + if form_obj.is_valid(): + form_obj.save() + return redirect(reverse('role_list')) + return render(request, 'form.html', {'form_obj': form_obj}) diff --git "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/templates/layout.html" "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/templates/layout.html" index fd07c94..756c539 100644 --- "a/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/templates/layout.html" +++ "b/DjangoLearning/luffy_permission-\347\251\272\347\231\275\347\211\210/web/templates/layout.html" @@ -58,6 +58,9 @@ + {% block css %} + + {% endblock %} @@ -127,12 +130,12 @@ {# #} {# 账单管理#} {% load my_tags %} - {% menu request %} + {# {% menu request %}#} - {% breadcrumb request %} + {# {% breadcrumb request %}#} {% block content %} {% endblock %} -- Gitee
{{ field.non_field_errors.0 }}