Files
cdtestplant_v1/apps/user/__pycache__/controllers.cpython-313.pyc

58 lines
13 KiB
Plaintext
Raw Normal View History

2025-04-29 18:09:00 +08:00
<EFBFBD>
2025-11-18 10:52:10 +08:00
<00><>7hK$<00><00>
2025-04-29 18:09:00 +08:00
<00>%SSKJr SSKJrJrJr SSKJrJrJr SSK J
r
SSK J r SSK JrJr SSKJr SSKJr SS KJr SS
KJr SS KJr SS KJr SS KJr SSKJr SSKJ r SSK!J"r" SSK#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-J.r.J/r/ SSK0J1r1J2r3 SSK4J5r5 SSK6J7r7J8r8 SSK9J:r: SSK;J<r< \"5r2\3\=S'\"SS/S9"SS\55r>\"SS/\"5S9"S S!\55r?\"S"S#/\"5S9"S$S%\55r@g&)'<27>)<01>get_user_model)<03>datetime<6D> timedelta<74>timezone)<03>api_controller<65>ControllerBase<73>route)<01>paginate)<01> MyPagination)<02>IsAuthenticated<65> IsAdminUser)<01>Query)<01> transaction)<01> authenticate)<01>get_object_or_404)<01> RefreshToken)<01>JWTAuth)<01>TokenObtainPairController)<01>schema)<01>List<73><01> ChenResponse) <0C>UserInfoOutSchema<6D>CreateUserSchema<6D>CreateUserOutSchema<6D>UserRetrieveInputSchema<6D>UserRetrieveOutSchema<6D>UpdateDeleteUserSchema<6D>UpdateDeleteUserOutSchema<6D>DeleteUserSchema<6D> LogOutSchema<6D>LogInputSchema<6D>LogDeleteInSchema<6D>AdminModifyPasswordSchema)<02>TableOperationLog<6F>Users)<01>Project)<02>update<74> multi_delete)<01>load_ldap_users)<01>save_login_logr&z/systemu 用户token控制和登录接口)<01>tagsc<00><><00>\rSrSrSr\R "SSS9S\R4Sj5r \R"S\ S \ "5S
2025-11-18 10:52:10 +08:00
9S 5r \R "S S \ "5S9S5rSrg)<12>UserTokenController<65> Tz/login<69>login<69><01>url_name<6D>
2025-04-29 18:09:00 +08:00
user_tokenc
<00>f<00>URnU(a9URS:Xa [SSSS9$[URR
US9 [ R"U5nURn[S[U5[U5[R"US[RS9S .S
2025-11-18 10:52:10 +08:00
9$) u!新版本有特性后期修改<E4BFAE>2<><32>u*账号已被禁用,请联系管理员...<2E><03>status<75>code<64>message)<02>request<73>user<65><72><00>exp)<01>tz)<03>token<65>refresh<73>token_exp_data)r9<00>data)<0E>_userr8rr+<00>contextr;r<00>for_user<65> access_token<65>strr<00> fromtimestampr<00>utc)<05>selfr3r<rAr@s <20>:E:\pycharmProjects\cdtestplant_v1\apps\user\controllers.py<70> obtain_token<65> UserTokenController.obtain_token$s<><00><00>%<25>*<2A>*<2A><04> <0F><13>{<7B>{<7B>c<EFBFBD>!<21>#<23>3<EFBFBD>S<EFBFBD>Bn<42>o<>o<> <1A>4<EFBFBD><<3C><<3C>#7<>#7<>d<EFBFBD> C<><1E>'<27>'<27><04>-<2D><07><17>$<24>$<24><05><1B><13>+.<2E>u<EFBFBD>:<3A>#<23>g<EFBFBD>,<2C>4<<3C>4J<34>4J<34>5<EFBFBD>QV<51><<3C>\d<>\h<>\h<>4i<34>"k<01>l<01> l<01>z/getInfo<66>get_info<66><03>responser2<00>authc<00>B<00>URRR$<00>N)rEr;rS<00>rKs rL<00> get_user_info<66>!UserTokenController.get_user_info4s<00><00><14>|<7C>|<7C>#<23>#<23>(<28>(<28>(rOz/logout<75>logout)r2rSc<00><00>[SSS9$)Nr=u退出登录成功)r9r:rrVs rLrY<00>UserTokenController.logout9s<00><00><1B><13>.B<>C<>CrO<00>N)<10>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__firstlineno__<5F> auto_importr <00>postr<00>TokenObtainPairSerializerrM<00>getrrrWrY<00>__static_attributes__r\rOrLr.r. s<><00><00><16>K<EFBFBD>
2025-04-29 18:09:00 +08:00
<EFBFBD>Z<EFBFBD>Z<EFBFBD><08>7<EFBFBD>+<2B> l<01>v<EFBFBD>'G<>'G<> l<01>,<2C> l<01> <0B>Y<EFBFBD>Y<EFBFBD>z<EFBFBD>$5<>
<EFBFBD>QX<EFBFBD>QZ<EFBFBD>[<5B>)<29>\<01>)<29> <0B>Z<EFBFBD>Z<EFBFBD> <09>H<EFBFBD>7<EFBFBD>9<EFBFBD>=<3D>D<01>><3E>DrOr.z /system/useru 用户管理)r,rSc<00>b<00>\rSrSr\R
"S\S\"5\\ /S9S\
4Sj5r \R"S\ \SS S
9\R S+S \4S jj55r\R"S \ \S9\"\5\"S54S\4Sjj55r\R0"S\\\ /SS9S\S\4Sj5r\R8"S\\ /SS9S\4Sj5r\R"S\"5\\ /SS9S \S!\4S"j5r \R
2025-11-18 10:52:10 +08:00
"S#\"5\\ /S$9S\!4S%j5r"\R"S&S'S(9S)5r#S*r$g ),<2C>UserManageController<65>>z/save<76> user_create)rRr2rS<00> permissions<6E> user_schemac<00>&<00>UR5nU$rU)<01>create)rKrkr<s rL<00> create_user<65> UserManageController.create_userAs<00><00><1B>!<21>!<21>#<23><04><13> rOz/list<73> user_listNrQ<00>
2025-04-29 18:09:00 +08:00
project_idc<00><00>[RR5nUb^[[US9nUR
nUR UR
;aURUR 5 URUS9nU$)uC如果传了project_id则返回项目中的成员而非全部用户<E794A8><01>id)<01>name__in) r&<00>objects<74>allrr'<00>member<65> duty_person<6F>append<6E>filter)rKrq<00>qs<71> project_obj<62>
2025-11-18 10:52:10 +08:00
all_members rL<00> list_user<65>UserManageController.list_userHsp<00><00><13>]<5D>]<5D> <1E> <1E> <20><02> <15> !<21>+<2B>G<EFBFBD>
2025-04-29 18:09:00 +08:00
<EFBFBD>C<>K<EFBFBD>*<2A>1<>1<>J<EFBFBD><1A>&<26>&<26>k<EFBFBD>.@<40>.@<40>@<40><1A>!<21>!<21>+<2B>"9<>"9<>:<3A><13><19><19>J<EFBFBD><19>/<2F>B<EFBFBD><11> rOz/index)rR.<2E>filtersc<00><00>URR5Hup#[X5bM[XS5 M! URR
R RS5nUcSnURR
R RS5nUcSnXE/n[RRURURURURUS9RS5nU$)N<>zcreate_datetime[0]z
2000-01-01zcreate_datetime[1]z
8000-01-01)<05>name__icontains<6E>username__icontains<6E>phone__icontains<6E>status__contains<6E>create_datetime__range<67>-create_datetime)<10>__dict__<5F>items<6D>getattr<74>setattrrEr;<00>GETrdr&rvr{<00>name<6D>username<6D>phoner8<00>order_by)rKr<><00>attr<74>value<75>
start_time<EFBFBD>end_time<6D> date_listr|s rL<00>
2025-11-18 10:52:10 +08:00
index_user<EFBFBD>UserManageController.index_userWs<><00><00>#<23>+<2B>+<2B>1<>1<>3<>K<EFBFBD>D<EFBFBD><16>w<EFBFBD>%<25>-<2D><17><07>r<EFBFBD>*<2A>4<><1A>\<5C>\<5C>)<29>)<29>-<2D>-<2D>1<>1<>2F<32>G<>
2025-04-29 18:09:00 +08:00
<EFBFBD> <15> <1D>%<25>J<EFBFBD><17><<3C><<3C>'<27>'<27>+<2B>+<2B>/<2F>/<2F>0D<30>E<><08> <13> <1B>#<23>H<EFBFBD><1F>*<2A> <09> <12>]<5D>]<5D> !<21> !<21>'<27>,<2C>,<2C>T[<5B>Td<54>Td<54>3:<3A>=<3D>=<3D>SZ<53>Sa<53>Sa<53>9B<39>"<22>D<01>DL<44>H<EFBFBD>M_<4D>D`<60> <0B><12> rOz/update/{user_id}z user-update)rRrjr2<00>user_id<69>payloadc<00><><00>URS:Xa [SSSS9$URU5 [URR
X[ 5nSS0$)N<>
2025-11-18 10:52:10 +08:00
superAdmin<EFBFBD><EFBFBD>u$无法编辑唯一管理员账号<E8B4A6>r9r8r:r:u用户更新成功)r<>r<00>validate_unique_usernamer(rEr;r&)rKr<>r<><00> update_users rLr<><00> UserManageController.update_userjsT<00><00> <13> <1B> <1B>|<7C> +<2B><1F>S<EFBFBD><13>>d<>e<> e<><0F>(<28>(<28><17>1<><1C>T<EFBFBD>\<5C>\<5C>1<>1<>7<EFBFBD>U<EFBFBD>K<> <0B><19>/<2F>0<>0rOz/deletez user-delete)rjr2rCc<00><><00>URnUHnUS:XdM URU5 M [U[5 [ SSSS9$)N<>r=u 删除成功r<E58A9F>)<05>ids<64>popr)r&r)rKrCr<><00>items rL<00> delete_user<65> UserManageController.delete_usertsB<00><00><12>h<EFBFBD>h<EFBFBD><03><17>D<EFBFBD><13>q<EFBFBD>y<EFBFBD><13><07><07><04> <0A><18> <15>S<EFBFBD>%<25> <20><1B><13>S<EFBFBD>.<2E>I<>IrOz/change_statusz user-change)rSrjr2<00> user_status<75>userIdc<00><><00>[RRUS9R5nU(d [ SSSS9$UR
S:Xa [ SSSS9$XlUR5 UR $)Nrsr<>u用户未找到r7r<>u*管理员不能被禁用,此操作无效)r&rvr{<00>firstrrtr8<00>save)rKr<>r<>r<s rL<00>change_user_status<75>'UserManageController.change_user_statussj<00><00><15>}<7D>}<7D>#<23>#<23>v<EFBFBD>#<23>.<2E>4<>4<>6<><04><13><1F>s<EFBFBD><13>>O<>P<> P<> <0F>7<EFBFBD>7<EFBFBD>a<EFBFBD><<3C><1F>s<EFBFBD><13>>j<>k<> k<>!<21> <0B> <0C> <09> <09> <0B><13>{<7B>{<7B>rOz/modifyPassword)rSrjc<00><00>URRRnU(af[URUR
2025-04-29 18:09:00 +08:00
S9nU(d [ SSSS9$URUR5 UR5 [ SSSS9$g)N)r<><00>passwordr6u旧密码错误请检查r7r=u管理员修改密码成功)
2025-11-18 10:52:10 +08:00
rEr;r<rr<><00> oldPasswordr<00> set_password<72> newPasswordr<64>)rKr<>r<<00>user_olds rL<00>modify_password<72>$UserManageController.modify_password<72>ss<00><00><1E>,<2C>,<2C>.<2E>.<2E>3<>3<><04> <0F>#<23>T<EFBFBD>]<5D>]<5D>W<EFBFBD>EX<45>EX<45>Y<>H<EFBFBD><1B>#<23>3<EFBFBD>S<EFBFBD>B_<42>`<60>`<60> <10> <1D> <1D>g<EFBFBD>1<>1<> 2<> <10>I<EFBFBD>I<EFBFBD>K<EFBFBD><1F>s<EFBFBD><13>>[<5B>\<5C> \<5C>rOz/ldapz user-ldapr1c<00><><00>[5 [SSSS9$![a n[U5 [SSSS9sSnA$SnAff=f)Nr=u.连接LDAP服务器成功同步用户数据r7u欢迎您,正在外网访问)r*r<00> Exception<6F>print)rK<00>excs rL<00> load_ldap<61>UserManageController.load_ldap<61>sG<00><00> `<01> <1B> <1D><1F>s<EFBFBD><13>>n<>o<> o<><6F><18> `<01> <11>#<23>J<EFBFBD><1F>s<EFBFBD><13>>^<5E>_<> _<><5F> `<01>s<00><00>
2025-04-29 18:09:00 +08:00
A<03><<03>A<03>Ar\rU)%r]r^r_r`r rbrrr r rrnrdrrr<00>atomic<69>intrr
2025-11-18 10:52:10 +08:00
r rrr<><00>putrrr<><00>deleter r<>rHr<>r$r<>r<>rer\rOrLrgrg>s<><00><00> <0B>Z<EFBFBD>Z<EFBFBD><07>"5<> <0A>T[<5B>T]<5D>,<2C>k<EFBFBD>:<3A><<3C><14>'7<><14><<3C><14>
2025-04-29 18:09:00 +08:00
 <0B>Y<EFBFBD>Y<EFBFBD>w<EFBFBD><14>&;<3B>!<<3C>{<7B>Y]<5D>^<5E><10><17><17>
<12>C<EFBFBD>
<12><18>_<01>
2025-11-18 10:52:10 +08:00
<12> <0B>Y<EFBFBD>Y<EFBFBD>x<EFBFBD>$<24>'<<3C>"=<3D>><3E> <0A>l<EFBFBD><1B><A<>#<23>J<EFBFBD><12>"9<><12><1C>?<3F><12>" <0B>Y<EFBFBD>Y<EFBFBD>"<22>-F<>+<2B>[<5B>9<>%<25>'<27>1<>3<EFBFBD>1<>1G<31>1<>'<27>1<> <0B>\<5C>\<5C>)<29>/<2F>;<3B>)G<>R_<52>`<60>J<01> 0<>J<01>a<01>J<01> <0B>Y<EFBFBD>Y<EFBFBD><1F>g<EFBFBD>i<EFBFBD>o<EFBFBD>{<7B>=[<5B>%<25>'<27><1B>c<EFBFBD><1B>3<EFBFBD><1B>'<27><1B> <0B>Z<EFBFBD>Z<EFBFBD>!<21><07> <09><0F>Q\<5C>?]<5D>^<5E>
<14>'@<40>
<14>_<01>
<14> <0B>Y<EFBFBD>Y<EFBFBD>w<EFBFBD><1B>-<2D>`<01>.<2E>`rOrgz /system/logu 日志记录c<00><><00>\rSrSr\R
2025-04-29 18:09:00 +08:00
"SS\\SS9\"\ 5S\
\ 4Sj55r \R
"SS \ \/\"5S
9\
2025-11-18 10:52:10 +08:00
"S 54S\4S jj5rS rg)<0E> LogController<65><72>z/operation_list<73>log_listN)r2rRrSrCc<00>4<00>UR5R5Hup#[X5bM[XS5 M! [R
2025-04-29 18:09:00 +08:00
R SSSSS5RS5nURURURS9nU$) Nr<4E>rt<00>user__username<6D> operate_obj<62>create_datetime<6D> operate_desr<73>)<02>user__username__icontainsr<73>) <0B>
2025-11-18 10:52:10 +08:00
model_dumpr<EFBFBD>r<>r<>r%rv<00>valuesr<73>r{r<r<>)rKrCr<>r<><00>logss rLr<><00>LogController.log_list<73>s<><00><00> <20>?<3F>?<3F>,<2C>2<>2<>4<>K<EFBFBD>D<EFBFBD><16>t<EFBFBD>"<22>*<2A><17><04>B<EFBFBD>'<27>5<>!<21>(<28>(<28>/<2F>/<2F><04>6F<36> <0A>Wh<57>0=<3D>?<3F>?G<>x<EFBFBD> <1E>@ <20> <0A><14>{<7B>{<7B>T<EFBFBD>Y<EFBFBD>Y<EFBFBD>W[<5B>Wk<57>Wk<57>{<7B>l<><04><13> rOz/operation_delete<74>
2025-04-29 18:09:00 +08:00
log_delete)r2rjrS.c<00><00>[R"5[URS9-
n[R
2025-11-18 10:52:10 +08:00
R US9nUR5 URS:<3A>a[SURS3S9$[SS9$)N)<01>days)<01>create_datetime__ltru删除u天前数据成功)r:u全部日志删除成功) r<00>nowr<00>dayr%rvr{r<>r)rKrC<00>time<6D>log_qss rLr<><00>LogController.log_delete<74>so<00><00><18>|<7C>|<7C>~<7E> <09>t<EFBFBD>x<EFBFBD>x<EFBFBD> 8<>8<><04>"<22>*<2A>*<2A>1<>1<>d<EFBFBD>1<>K<><06><0E> <0A> <0A><0F> <0F>8<EFBFBD>8<EFBFBD>a<EFBFBD><<3C><1F>&<26><14><18><18>
2025-04-29 18:09:00 +08:00
<EFBFBD>:L<>(M<>N<> N<><1F>(B<>C<> CrOr\)r]r^r_r`r rdrr!r
2025-11-18 10:52:10 +08:00
r rr"r<>r r rr#r<>rer\rOrLr<>r<><00>s<><00><00>
<EFBFBD>Y<EFBFBD>Y<EFBFBD> <20>:<3A><04>\<5C>@R<>Y]<5D>^<5E> <0A>l<EFBFBD><1B> <14>U<EFBFBD>><3E>2<> <14><1C>_<01> <14> <0B>Y<EFBFBD>Y<EFBFBD>"<22>\<5C><0F>Yd<59>Ge<47><1B>I<EFBFBD><1F>38<33><13>:<3A>D<01>0<>D<01><1F>DrOr<>N)A<>django.contrib.authrrrr<00> ninja_extrarrr <00>ninja.paginationr
<00>utils.chen_paginationr <00>ninja_extra.permissionsr r <00>ninjar<00> django.dbrr<00>django.shortcutsr<00>ninja_jwt.tokensr<00>ninja_jwt.authenticationr<00>ninja_jwt.controllerr<00> ninja_jwtr<00>typingr<00>utils.chen_responser<00>apps.user.schemarrrrrrrr r!r"r#r$<00>apps.user.modelsr%r&<00> UserClass<73>apps.project.modelsr'<00>utils.chen_crudr(r)<00>apps.user.tools.ldap_toolsr*<00>utils.log_util.request_utilr+<00>__annotations__r.rgr<>r\rOrL<00><module>r<>s<><00><01>.<2E>2<>2<>=<3D>=<3D>%<25>.<2E>@<40><17>!<21>,<2C>.<2E>)<29>,<2C>:<3A><1C><17>,<2C>A<01>A<01>A<01>A<01>C<01>'<27>0<>6<>6<>!<21>#<23><05>y<EFBFBD>#<23><10> <09>!C<> D<>E<>D<01>3<>D<01>F<01>D<01>:<10><0E>n<EFBFBD>%5<>G<EFBFBD>I<EFBFBD>F<>a`<01>><3E>a`<01>G<01>a`<01>H<10> <0A>^<5E>$4<>7<EFBFBD>9<EFBFBD>E<>D<01>N<EFBFBD>D<01>F<01>DrO