From d11866a89175e86c008ad21a1eb83f456da1f888 Mon Sep 17 00:00:00 2001 From: Christopher Rogos Date: Tue, 14 Nov 2023 12:47:15 +0000 Subject: [PATCH] [ADD] auth_oidc_portal: Link OAuth provider on portal user create --- auth_oidc_portal/README.rst | 35 ++++++++++++++++ auth_oidc_portal/__init__.py | 3 ++ auth_oidc_portal/__manifest__.py | 19 +++++++++ auth_oidc_portal/readme/DESCRIPTION.rst | 3 ++ .../static/description/oauth-portal-user.png | Bin 0 -> 15522 bytes auth_oidc_portal/tests/__init__.py | 1 + auth_oidc_portal/tests/test_portal_wizard.py | 39 ++++++++++++++++++ auth_oidc_portal/wizard/__init__.py | 3 ++ auth_oidc_portal/wizard/portal_wizard.py | 29 +++++++++++++ .../wizard/portal_wizard_views.xml | 14 +++++++ password_security/tests/test_signup.py | 4 +- .../odoo/addons/auth_oidc_portal | 1 + setup/auth_oidc_portal/setup.py | 6 +++ 13 files changed, 154 insertions(+), 3 deletions(-) create mode 100644 auth_oidc_portal/README.rst create mode 100644 auth_oidc_portal/__init__.py create mode 100644 auth_oidc_portal/__manifest__.py create mode 100644 auth_oidc_portal/readme/DESCRIPTION.rst create mode 100644 auth_oidc_portal/static/description/oauth-portal-user.png create mode 100644 auth_oidc_portal/tests/__init__.py create mode 100644 auth_oidc_portal/tests/test_portal_wizard.py create mode 100644 auth_oidc_portal/wizard/__init__.py create mode 100644 auth_oidc_portal/wizard/portal_wizard.py create mode 100644 auth_oidc_portal/wizard/portal_wizard_views.xml create mode 120000 setup/auth_oidc_portal/odoo/addons/auth_oidc_portal create mode 100644 setup/auth_oidc_portal/setup.py diff --git a/auth_oidc_portal/README.rst b/auth_oidc_portal/README.rst new file mode 100644 index 0000000000..a8aba25d77 --- /dev/null +++ b/auth_oidc_portal/README.rst @@ -0,0 +1,35 @@ +**This file is going to be generated by oca-gen-addon-readme.** + +*Manual changes will be overwritten.* + +Please provide content in the ``readme`` directory: + +* **DESCRIPTION.rst** (required) +* INSTALL.rst (optional) +* CONFIGURE.rst (optional) +* **USAGE.rst** (optional, highly recommended) +* DEVELOP.rst (optional) +* ROADMAP.rst (optional) +* HISTORY.rst (optional, recommended) +* **CONTRIBUTORS.rst** (optional, highly recommended) +* CREDITS.rst (optional) + +Content of this README will also be drawn from the addon manifest, +from keys such as name, authors, maintainers, development_status, +and license. + +A good, one sentence summary in the manifest is also highly recommended. + + +Automatic changelog generation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +`HISTORY.rst` can be auto generated using `towncrier `_. + +Just put towncrier compatible changelog fragments into `readme/newsfragments` +and the changelog file will be automatically generated and updated when a new fragment is added. + +Please refer to `towncrier` documentation to know more. + +NOTE: the changelog will be automatically generated when using `/ocabot merge $option`. +If you need to run it manually, refer to `OCA/maintainer-tools README `_. \ No newline at end of file diff --git a/auth_oidc_portal/__init__.py b/auth_oidc_portal/__init__.py new file mode 100644 index 0000000000..14cd1b0579 --- /dev/null +++ b/auth_oidc_portal/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import wizard diff --git a/auth_oidc_portal/__manifest__.py b/auth_oidc_portal/__manifest__.py new file mode 100644 index 0000000000..e52735f0a9 --- /dev/null +++ b/auth_oidc_portal/__manifest__.py @@ -0,0 +1,19 @@ +# Copyright 2023 glueckkanja AG (https://www.glueckkanja.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +{ + "name": "Authentication OpenID Connect on Portal", + "summary": "Allow portal users to login through OpenID Connect Provider", + "version": "16.0.1.0.0", + "author": ("CRogos (glueckkanja AG), Odoo Community Association (OCA)"), + "license": "AGPL-3", + "maintainers": ["CRogos"], + "category": "hr", + "website": "https://github.com/OCA/server-auth", + "depends": ["auth_oauth", "portal"], + "data": [ + "wizard/portal_wizard_views.xml", + ], + "auto_install": False, + "installable": True, +} diff --git a/auth_oidc_portal/readme/DESCRIPTION.rst b/auth_oidc_portal/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..bc983123ff --- /dev/null +++ b/auth_oidc_portal/readme/DESCRIPTION.rst @@ -0,0 +1,3 @@ +Select a OAuth provider for a portal user. The email address is also used as oauth_id and the first active OAuth provider is selected as default when creating a new portal user. + +.. image:: ..static/description/oauth-portal-user.png diff --git a/auth_oidc_portal/static/description/oauth-portal-user.png b/auth_oidc_portal/static/description/oauth-portal-user.png new file mode 100644 index 0000000000000000000000000000000000000000..c78b275c367ebadc923f425792b9fdf2779a0089 GIT binary patch literal 15522 zcmeHu2~<<(x;D1Q+RCvwVyg^Ctz$(*MFvT7oQN$}M5+`5$x$j%0>&64WbV;Yp+G3D zf-)p(R3?)YW5SrEtwJ1t6oEt%NGc$~Y?25e2}wxuZ?LDgJ@?$T?*0FJ*T2@k{;ZX? z_qT^{zu&vx?|Yti*f|Fez~{|fHrK<$W8O#m_8ju?c(dEXW0w5wx4ga5+{m$uq@puo9ckfUCXGyV@pMwV%p56P|*;s7K z*^HxSj(fn*96x>ve*$|JdH8McmWcO1+OzZ1Or*Y_e&-w}!GGep*C1@yb=T2P+IN2Z zmS@SXkJ*(ump}XD??K-b9!beuzcn`ehpEs1cIB%4t#0o(E_rva>{>7Qa?QNUdApZ< zB)FI0vwl&`vE-=pg1k4&j~)7GMb&NGw*d;W8fYVM8x$fr9wt*8)iM|5+dwjh;7$aH z9co9o40``Vs5Xmkh}^U3vTWgkhRYOT_QUsWoRtMzc+KXBfXZ1O9$ySD2DRbw{a<&^ z12>-kh{t-@gO5ACr~B#LRB$J>@cc4xR3=!K-x@vi3pbJwxq1TKhg|NmR%V_Z~ zLEuyfOQ06T&ee@9bx^Zi!y0?TZdtf7$o{5>N1_rLLw$5CypOcgX`@f zt^$c^;=7k6tSOs>YASF^3Ltt@C;gQdGyk)tvk8H^fvJUi%_j^HxTh}R8?pOMscX-3 zXqAJto|!@i`@#v0|&r1a&20{Mv3zKr1C z3zI~Shskly-mlV@3#7z6p5qDBwjXmN5Pa$Ty*o7yk%s(X%h~$x&f9ZcY$Lhq3)gM; zlrtJ1H=E$SW-Pb>bM#Q|Et22f1HmObxaNWHEjcD=bTM$N^U7yyjVq3`Iw3vO9jt%1Ws_y ze!N1V9hI%OeB+SO5IRw7Jyek50<-am=TZS>f>PK{gMx zgjYD*I|T0@xEqyPK5)cS=LQrs{qRzkOCz!UWOS+9&xb2-L{C8Cyu*S8@8t}9kSo~0 zJ-%S;2Ij87vrkX7f0}zYpi{CGj|;F~-TSPFL!MiE&QMk1O~9#hg_L&-A?#f^j9Y+u zXesg8L83MAQi0%XFSHeQkAKMTY(fD$YmzksnkJ$qn)WK*Xc}D-6#q-l8@HAwu?N;q0AXQY_;ccMMliYZ5CAfm$6#K@&mbcYp^(4V>y5 z3A7T07e8BNTt9S0xmLkBh6=+bZS6r{)(H|TG;|S*=Dsf5K?0%ehqcNNZ+ETE)qyJs z%6)-u7%rw09FhWta0LGjdu2tg2DX+I$=&Lpm}euv3tqUfz;-p)#J?y#Y?2P`?=1h_M~-`>1S zA~yyeV!xOT@b^gGuYr~!IQ^&yt z>-2`%!Exym=w4?u4?J^ZU1dY6Q<8sVKR6GHZ(IY1^Tq5Lp!n>SQbD^l0~QC&*eNbO zY6iC|NYA@qv9EXSW%TFxCDWjGdINpBa}UoOMMn;TJ^hgL-vn>J+&XXH4Ks!8dHoyu z8)etOM^Eu+4~jb@dMw2GWq9>8&iztfG26Uc{VG^?U>bW@{U_yNF6oxIUnAz1{|+es zfto*dowq+hI$!+SHPgF$j1E5XzX9M4dv`ipQ1+5i)KrVaF*<6yqFprYHj2#1&+M;7H1EC&6iezSG80ZGp{K5-at z%qC3jUKUbhWB`;A zdK_Da^RF}CIZ%$~xx*Zd-4K0_|GC;D(asf_OC9z1eiMq&`~-Cj6sK&5+vG>Dj=Gbf zAR8=liP2GGNae{KSNp!IuQ;pF6xWlj=3rXFL3&S|Q;eN_JTN zUqw+a{MV%_KXz}}^h~-s@r;Iy@7JQwD#%TGb4R(GSODu;EpGxK8Dv0Xbso+TD74P~ zr*`+nHnutjUl;())V*soa2A+)UpCe^Obs24x+lFb;>BiR&7Nab8A6e94sGPt;KPwc zWA#VepF~bP2^+*Pa)8c2ZMA#LHO4yxuiijLU28$!@Y`k*or&Xc7f5S)5d}leZdzd| zPZy4m)yis**Pwh9Lf3waK>#(8)GA#>Z6ua=Bi$%wh@-6*lp<$P_mDXl;n*`yc!w|O zl23**MVk;-jhVQzzY{&t8bTe6a;|JpKML2i$Yeuc#uFd-!QNfE#Vjvq|c&}c*EksDZAyAL&bLQ8lIJuVya`iW1j@lqs1}wgc7usg|WbilNj6!zD=8-q1$r zL8)2HCs*RTgSH}^19myBpbw*oVk!oq(Ph@!!}rWCgd;mFRh8D?>Ect3>VnY*p`O!k z9^;F88tl#t0&{aCuNUf={Mnk|u!=0=!|64^L|7wKn>Jb{t2R{l6?8*abs`m|5I|fP zZcR(wo@b~~-w%_WlV{wEwD@wak`O*x7k~>XWy63_9$qhy;^^;^t$Ta{X>uTsnIXwv9rV%Zirozuh#c9y_c9cr46sE;!TCEZg{Wz4v?SXK2i3>Av=!N0(j^v6OBj%-t}Xq3~*!i5vc z)kkD#pqoa<$OjL~2B9Y8U_v=M1rxZcQ%vyZn;q1aXPcMDYPmwLHsYuy{Nf3ob1>8r zx^;P%F;JPR`Ah;;(2(uS!zKMFERaIZ2|Gq9lMUC;}pab@?x7S_hm2UsP-qRA( zcPM$vM!x})VYS8k(b8b?sdkZ|f=zy=TgvEIFpyBfsSQSlKh4uA} z#J3OcLnyi`soRZ@9id!*o0|AQ9&T2qp(>ia>I}i7<#B>^AXBEUj}l(&6;*J6emUtR zmZ_#q1oxHHp;#RHSq4W-xQFWDvBIVD=I0~e#Ji>qicv?tF%?`qpoakfqDGvdOMo$oX%&Am6>I6$W*Eo`51^G8VP75b=_Gum_QCXwo zODFcZa$CM1r>D7t0sh8E6*|<{?uFAzuq*_Ek@ixDVKMt08q+qVWArKR9i4% z6tIDc=8hGb?{FgVTC}kB!Bl^mvy=Ap1owM8)L^l)06P$?hHUGN0w_FzC_&z(rqpQCrlze>&$0B-xel|)+*R0c|6@rt z3PxZ=-Fbf?L8mu2`=NBfFF~zQc-WHsmyvp0fIgo$?m#Y{jVn_e5o7b@{mLg*ymnpq z^GgjvB}wxA7TNk^iOSMsf|DZ@nV+gBFVo+G8y`Us$&n_hpj!oZcFB=(8fpI>EG3_? z63%*bEAh@XM!wYZ)1K12rKf@7@7Ycg0(z(Sf|qUAuxlWqwfkbfwo=P?rt7b>;t==; z0{d5hlVJ!lhO|%>7LFNBhT4bkI8z+`O^Opw6g5Wrxjk9G*W0^6P3X59G9y=*Fj?{17VYF_Im8Nt2t)wAV%X~dSFD~v? z+aYa8Hf7!cn>uWZu8U`;rt2l8=5o%0@u^GJ1lB5jd#Ck%X~n$)xjtFgZ9O6&Kpr%k zY4!w!Y(=_W->tpm002FQrGuQ(uWz#)Gz&S-@-1*5nW4hUv*I6PK9vDuw~*hR64ENQ zwKN**B@kyeN8F|LXGjWY;tH0Y^~i$V_f2uW<5+P|X`Rf!pzvi;P(^!r>(;wrJ+1S%$-4QZQUDL5}8 z7)4<5nO5{ct-r`t5Ft$~*rO`q&~Q-l8a_E6avY(dL*8{FN#rHzVW^wD<##!CQd_6f zDt1m?f>;%++vEoOq*y)@v9)xE(#m|XUbb#RB-dU_4@=nwZMV0#_7C%y=_?oof>;f_ z*ohxKp-%(!AR{vTdpNzhKPAj!cvR^QeXS<+XCu@ z%y~y-{iGN6)Ch^yAP@@p0jIX^NiCHklC6@hpMW}>AJ-Pr3IrS&59+Q&y{8W}vRzwC zsVm9&2Z~;k59j>@#C#o5gDrQDV74@Bt7SnuWa#-X0j)VL3NDvH3tg05!gN7g?Ew_V z(kEo>rZYvN@W#jyZN(kFby*sxOO=A@kiXsQokKiijN6MSF?))rXPH&NMH&iZBqBd+ ziIA(XS($X5@zF?^wLf1iUBP`}r!qte&T>ditbqp_JJmr=@7Ja`oY*<9Y?FAwgOD#T zrdZ~AdHi6UTeo&@YeJtC7w{Bre{a+7o%3YzQ;4Rfsk#%z0~bH=*gTk#r3$idUPCJ` zg8-c~S7dAyKW_=S*S34(?cJmOULSe}UHANq$J#xRC5;Yi9?)~)sXzH4}<1bu+ z0$vov(L_rDqbu_x>@b^n&yStjY?H&V&{}R8ZX8M|KCN=RG-+NqHF71mZWUYq?BOBH zJ#T+QGFkBT6^G&5*)nxvaU!tr6d6W!H8s0c365@}VVpV3;};^R8ejTb%Ov~II#$*& z5$l+CQn0j1IBnu3E*rqo98Iip>WvW=z8eR|(^$Z9vX3;-LG;TRyKc!Hg2pCksjyeO z1A$Wf1Dwv({y@w}1%7RJIfy!-M;Iz2PBW)f6Nj7$ft61p~!j1 z5a2_FJ*W?b*^#m!VxlpG(KJ%3FKj&Li%@v+$u+5D2p6w4lb8&&|Lw~MLNqC)U|dPI5j5A zV4)I>XA}0b#2-?5Ugp27lKq4X8AANlG}VW`Icf*qg;{Av*uW%MDt^ z2H*-qI@!AUkRxv>!uHPaK1)@va&UBN1alBXcGizodTM{YJk~KJa7_tc1A8Y;hx-}? zd-p#5A{~fb=Ee>=r5~w*Vr7Lyvcw00y4aft1{?x59XTis>~b!u6QO=GMYKlZ7G(7y zaog;xsb?YFTfIv2WH%WkXif2wSf#Kdx|hyc#fi8OC6uL^OF^i_0-@#M86yh7_LxlF zj;d2+Y&W(Q;%e}3di=1P00KGfaf8|O9IT*L^bK%heici1eCI-i?wJ}ZJO@!XUF4V@ zQ;1^*&dO?8QoF?;gaySlS>XZdTR6(cjuZXRlqYi2ju#Cb7Q7Brq2ao$OO`A#zhBU1 z309(&078bg%6o7KK%qE_^#{i@4;;_M$*gc1j!~9y(BJt&%#F#de6LhNu6?Sg);7oz z$>+R|-lMVDkHv)}A+ZiQ8D!b~8W16|z8MwJ3$aSF=8|)jQ@zz}OHc9-Yh;lUUp(8_ zj~KyUq@>tr*@NNOM1N6Sb@=T9qqaw_WSjO&>Z%!l^r}64R1XGixIcncf`1UGj{oL| zU=wnV#}~lqz`44~p$*U<&ttTrcRf55gAGf&$4-{R=DY}cHFL%Iy=$(!adaC$b~@;i zO&(jT0e4>g{JZ?ZKf)$6$%g-##*dzX&DUN>fcksacEiS9{!O+Xlv9942QE#QOh)-r z&z+;+83p>tS0NP;8D@07A+Lmz0WGI#BJf=C6(iJjm-vUM_x_TBC${Gwv|$4pa8 zxLJl9oRT<KjrR=#X&j|QTs)pIB-Xg)rb-1FQKoG+*8})ZD@KEqrie2W zSHI#YPJCdW5Y%)slU+)lutgzOTrz1Xg{Oqp`l3Pi0Ntz+cL#opvDoS?y=EZ^sxlQS zwi%PRgE$sk-*vvx{q5ycH(PSn96V6`WNP+St^&1xFjSrgAOJ>L6E9TVs9kqc=f{Rj zj1lPO<^p5Z^HJhxzWxkzGg%)=B9~zy-}N$^;x)a?D%4~nN->XLd%aF(+1^xf>i1r- z8o$&My^Nr~Z+I>D3 zH(uj^pT{HY7YOQ_g+0vI9w$jvh;!OUgXbYkU`i}^hx5xuWQ~?B+!sJ=;sgZ?M6|o# zl33h2Z8O{&ybPs^?08?JA~P8J8<~}+ZZRJR>ZD_^9*r@?Ye+sMgu)R=cA}GaV_D@= zoJ`)w7n?)dIts)>bLIz93;k#hKUi~zvpip)g3oJJ2*`H>a-|#ZusJl}s=?U6T}|OB z+r%h@Q_HW*?^spCJNcN#Hi1~={{2*yas%aYOK7d<9&$& z9L|xk=DT0)gDc(vwIL3P3kJx#Wfg5pK*xMWL9Y*;ZI4B&pwc3CGD)=_)82Z!UU+;v zZCl)9$>}QAeub$}B;p9Q0=&yMnvS5xX#tCJmWSUBa?(NT8}+*6fnp^Gm4;`Ipy;-~ zgpl$k9u)NBox>DC^qoa4Xx7x?R1C#OrmPXw9(HGmjLDcpot|%+F{D^|_MlqwwT0xS zPNk(?(XVc^Y~Koy{~?iG)~fTf%60nM*3oGzlC=(-9@EzhMzjt)8GFd(Jej|=LM+h< zVv+Z`>L~xXy^_m{do`v}^K6gIb%vy!zS65x$FU#KXN^iIDdWX$F3-O~{M%#ps;V5i zWT7GKfgir3Gq3~~pn^+YS;j;V)k<5$Q}wfIi{9~!{FO+=mcp*RQBKN%~$!mdt-TQha!4WJXl)l?vYEe79bCkG6fuk)GZ!7V?(?3beH^_*M! z`#o@(|9uwu|JBBiAOy@L52iCG;FveQnnAefG=5@LTz29*50B)zslR-jKX+B(We<HkX{IdE(?4S01zWV?24Z|_^yf~VrJ$mZ0 z#Qt$PPAhwV* zVM{StyCLOU3{Qznj0Wj<`?4{;c#@WRmXRR_yrAvt?R|A)PRCQcy47!1Jx4PVfMVBg0i&Y=)RM-{Q#w=4bX7tCV)f z^Kgc)z;6n?cy+a-b;PZCY8e#Np55juL#9;`QngM&cu11V@O7N$0IU*~LkDf0jq$SFr4M@6ojmg*M`}P-(7hp}oVYAzThKW&&1i6r&_#Qw5J`sl*4;^LKl~?=S)C-( z&SxqeadCEM$kW`Gn4?!g$njydpoQkqc9nHO3s&Tvh4UV-J>rK(ct0bkq42;;pbW>c z`08J}hL0-kV2G5QoGtE!aTP2!A(1ddPHkI6wU=El;DKGawyx0YshGYK`4Jj>(!eEj zcqz{iwnxLEzHu7Xm%7szw%H=KS^c+NXS~##Dcgi#*cSV)0ol9;vYr6|f(&Gjkdw@P zRJl1JYVm~_4~BB3AbT_`*$0g7{`{9zh zcCo+3w9X*3-xd+r9PdIx$7a?2I{|I>4hwX72u5|LgMtfaZv{n(utrzH_2xOPqZdEI z=F+>CD^gQ6h02SLqn45hVXsZ?IC^$w?f_Spe9>7XjcFUMXkdc{6cCmmzXNlFbGy!r z6GbDR(8eB}p&aUmakx~=aP}ZmDYu@bn>MFYu{-Rdpa~j6Z~G{HgxdHS>|49-M1HR; zg-T|$@fF+8=(d)(XPn*WVZA?Ns9yqJ%2N~fue-ju>fBrfW>TCX>Z3JS0ij%ro|cJY zidB12-{rP|s)?pFCU_3+UtH$w`Xwfn9Pj~PyOVwvi3cf&AfjVexFL*zVfoaB7%L%L zF->&hl}L^1fHR&r;TTL~Y*NBM!Ziyn#v`tnIS1aa3(t?$tHdLL{Yg01=3Cu>`M~# zH(7}}Z)~3XV~NtQWpE^Rw7w|oxcBoyGOrwcwlbo7fm7mS8(N7%UqooeTcnsrF9)| ze#5~?W8i`X3mU#E18%Sm(npj17cFR5OU!zhwS`2_$IUJ=|?G0LZo$XJ=<8?(VpC&Aaf!_Gy58G~!$hUZ?m5zrJ$s(8pV+2l`*` z&is>S;5zX3Wxw72F!;-hQlO3pUDYdVpzI1*8CMc>^n<(Kb~>W=a92b`ASG1u`;TZH z=AlQ6W(%?tlOwYVAAUSNz=p40y~=c2de9#@!ir(GKgg+=@8`$Ui0yfw!?YyOIdFc2 zrI^|sZY|4Kn3G+`ia9z#83)t&Uzd8(GyB$ft(YEg;_l4MW|~8{^;>5d04~kz$}p~n z1lYb97AoLQ>%wFsAX2A@C!2mi5DfmvYtk!An+N$Va2L>6`z<-f?(dSztkY^!|oVFNk4&oXrgeAn_ttX7vz z@+wEczGBEaK9PTZ)52sDE=~pC`w~h11cf;(k}Xgi)AagDoy`_w4k4A~D1?AP61@Q0 z1g4y*n$99^;gua=#}2nJoQPK9Lp9Z>Y=bYp9iNwi@GBVB56b%Q z-_bucp_0{>V)v`|x~ZXzd8$^BG66X&(||>?gll`Rf0p}GC@+~zUQCIf@IA?UN#)O1 zm#(sWr;k68LS~{hF~`#SqHl5+g*8^hS`t`fh=0Gd62;Vxy?kFJ*)z0k%OVNFJk_Uh zyg+kQdX()=x@GuHm_q^u%s5Yk$vTju8Y{m?EGVv*tIjauRYfYAQ#esu*onleKf@ZS2etdd#LJRO zt7Q8ucrMxWj`;{{pZ9Yj$5LJ{b$cXq6!s?I&oPrRshSuP3ree@8j)nsU9?Ob+_GUi zIZ_|9QGpRfQ}ST|*S+ddxyA7yZ!X*1Huvs{ z<-Q7x;O89`;AjMyB}6wi8vH0 zr&0G)29~#+01K}eY?KeYFbUQm&WCh^bJHupErZ$VSfs7Ob-7eCMP+4}q9pdtVy^X= z-9a0ciPQQbW;pXlX#qZ4W6FA>)9U6nh<5S(WJ-rwodMX>@!u~)Sr9Cz?}N+8Hn)Pv(qyTUS&p{n{)EWUkH~4mIHS{8&a;`=Z#8;XD9WmVQM>-d$I`(--7sj?mA|BJm zf<2p3v0mWN12#B_Nf|@?9EG9>B?x@G@@bNYmee2TzZ|dS`v_WypWnN9>K?CCaCHXH z8_nkvhM=q6ZB4_==03&j3#^uXcze}vv?XzO3TeS2x|sZ!^=J6s56AYraYx5GF}$oW z)UemQKI_PY@9LID_6-PFZ<7eOZYjlJ%bQ5fM*E$}WK#mRROF>AJGtE&Go$Kh_Cx*- z`6+Mdw0-=>O16@-+L48e(qnugNs`clF~RA)K`0s`3qt6(24#%0Yg#Z|lyx!QKV74Y zx>qpwkxx^P@C6qs*<`Qid`5wa0vL7bIfRaFCFFmY_2TZ8XLw*uyr=u6mKDDr{yUb_ zmiP6Qb*{T_f6apkp8YvyPfzsTnk!8O#({+X-QMZ(U&?E*iZ9M5k7Qx8F$6j_TJ$zc zpa8D+MNKSE^5P2%n<&m|5FYxp?~ZMRrz4CP!qLm}3osDANIpZI{>b`%PlBR${)cqz zpLpT#`PQL>xeqU=eEMF_ozMT7+5C|?{(<^UE8rH0BP&0gM#nuMKAzb$&G%0JrimFs z`%fb60Xd@fj}Kh1pb+!0;Xm0OaAUUlB5XWnK_U6u=}6IUyqC~9Q(Nli`7hF~|8XMr zf8xyfwb9I(RLw7+zOMTHC0hL3havyzkX|B~1bPLBZU7lP_#6Mr8E&q3x4+|=^w+Xo zzdh4bA9NZ(^}(-BQ~a3|LovhCp2EzJcxlE%m^tou{QqD6f1()$n8$nVu+6*=ua(+H zu#^CdT^3}$u4!(5^^@o8uYoQ{&wK~;yCCPUh1^q*LZ*YAzuMfd2me*^^?$Ok`oDD9 z^ruTIsMYjuB?mBDEY$q3>ayKm&3w)TRwWF&L4iG_N&jq%(-VE>7x5VMSZ8Kjg!gM> zf1NV?wch=Iz7frgh?yy~sCuo9A6S&>TKPW|U7QEY*4NS>S3q}6e-Ot2i!bPpiko%6 z4jpFuU4j08m%xEby8Z1}B`ao(W#!5_gNvpM=s)}K>i$1gb+o5W(L4-R=qspC>!v#4 z3&6*|Jy*8~REo#Woz!FC<}d3iqrt)uk3Y>e=S%oJp_rUGjfuLo#e|V!Bs;Hc7Zk;}pX@5s>-ku5W{w0DqzGo-(_+w+Finp$r@`;<3CBK0T)A4O5S- zNcZLqq&hAd;RoL-I{fLJ8H3a|nxZS&Ai?w}bvA`;>JA$F=-fz_d0)E56TI(B?f6;^ z*?E5?c8CM?Zf|5}5ttV_VT?b4=Y9fL)4|w5J8YvId@MFk<-k_LtAO-&>NfD~d}h>6 z-cvY5c$Rx_)YzF^0_j|6(xR2%_fOiiFl`F~>C`Diqjs!YFUiPso;Vgrz^*I^<7I*|KB|eEAp(X=CALzm+SZYw zrgVi+ySgZYA+*8v9qKVg@%TK=t9diP=rO*8M?GUQquj%#JbD*+!^G{nzUG(hfy3=s z8jwqTA~hA&HGlG(7+o+k`4lLObH~~j8d{J4dmWdFPY`OFDV|5spB~*o+9V5}*+STa&bKnvJ)|sic%j=%_u0^ss zf$dMwt|CR>)ORe)i?uI4LAfmzM01VAuxK1Co*1q$(K?qp{~rCGwO3*mgrFvQlIO!2 zZUe8uRxJ620Di?O6I1lhqBN|B!E1o$F+t8lJDp5xv-agq?`}~gH*03$?Q=H|e@NFv zWt|PUhT5Q0TgIC8>6*V}lx0#Qd8&<)L6gL;$nDkOLs72+MXs0iyvYpBwlsIMjEeI@ zIRsexOQmtD96M>YwudyQ^*;oanjaF)Y_<*Kp^isgwAx}dd}vuLW? + + + + Grant oidc portal access + portal.wizard + + + + + + + + diff --git a/password_security/tests/test_signup.py b/password_security/tests/test_signup.py index b600f4cd12..bd3829852f 100644 --- a/password_security/tests/test_signup.py +++ b/password_security/tests/test_signup.py @@ -60,9 +60,7 @@ def test_02_signup_user_success(self): response = self.signup("jackoneill", "!asdQWE12345_3") # Ensure we were logged in - self.assertEqual( - response.request.path_url, "/web/login_successful?account_created=True" - ) + self.assertNotEqual(response.request.path_url, "/web/signup") self.assertEqual(response.status_code, 200) def test_03_create_user_signup(self): diff --git a/setup/auth_oidc_portal/odoo/addons/auth_oidc_portal b/setup/auth_oidc_portal/odoo/addons/auth_oidc_portal new file mode 120000 index 0000000000..62a7117dc8 --- /dev/null +++ b/setup/auth_oidc_portal/odoo/addons/auth_oidc_portal @@ -0,0 +1 @@ +../../../../auth_oidc_portal \ No newline at end of file diff --git a/setup/auth_oidc_portal/setup.py b/setup/auth_oidc_portal/setup.py new file mode 100644 index 0000000000..28c57bb640 --- /dev/null +++ b/setup/auth_oidc_portal/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)