From 7749ebff9bf007e2e713c4ddc0b203f51a9b06a5 Mon Sep 17 00:00:00 2001 From: Friederich Loheide Date: Thu, 24 Sep 2026 04:30:13 +0000 Subject: [PATCH] Remove the login box frame and hide "Lost your password?" reliably MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - No border or shadow around the login box on wp-login.php (form and Microsoft block, also in button-only mode); the white area stays. - Button-only mode: the "Lost your password?" link is removed through lost_password_html_link instead of CSS only, the lostpassword, retrievepassword, rp and resetpass screens redirect to the login page and allow_password_reset refuses resets – all unless the fallback link is active. - The login stylesheet is also loaded when only the form is hidden (e.g. broken connection); before, the link and form showed there. Co-Authored-By: Claude Opus 5.5 (1M context) --- CHANGELOG.md | 4 + README.md | 4 +- assets/css/login.css | 23 ++-- includes/class-m365-login-auth.php | 95 ++++++++++---- includes/class-m365-login-button.php | 6 +- languages/m365-login-de_DE.mo | Bin 62619 -> 62815 bytes languages/m365-login-de_DE.po | 182 ++++++++++++++------------- languages/m365-login-de_DE_formal.mo | Bin 62736 -> 62937 bytes languages/m365-login-de_DE_formal.po | 182 ++++++++++++++------------- languages/m365-login.pot | 182 ++++++++++++++------------- 10 files changed, 377 insertions(+), 301 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e6e316d..c4f1263 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,7 +27,11 @@ All notable changes to this project are documented in this file. The format foll - "Link Microsoft account" on the profile screen (the signed-in user binds their own Microsoft account) and an administrator-assigned Microsoft account (UPN) per user – for administrators whose user principal name differs from their e-mail address. Sign-in finds bound accounts by object ID first, then by assigned UPN, then by e-mail. - Privacy exporter and eraser for the data the plugin copies. +### Changed +- No frame around the login box (form and Microsoft block) on wp-login.php. + ### Fixed +- Button-only mode: the "Lost your password?" link is removed server-side, the lost-password and reset screens redirect to the login page and password resets are refused (unless the fallback link is active); the login stylesheet is also loaded while the connection is broken, so the password form stays hidden. - Accounts whose WordPress e-mail is the user principal name (while the Microsoft mail differs) were not found at sign-in and got a duplicate account from the sync; sign-in and sync now try the mail address and the UPN. ### Security diff --git a/README.md b/README.md index c816895..fe76c76 100644 --- a/README.md +++ b/README.md @@ -258,7 +258,9 @@ Die Passwort-Anmeldung betrifft das nicht; wer auch die sperren will, kombiniert Im Tab *Sicherheit* → **Button-only mode**: -- Blendet Benutzername/Passwort-Felder und den „Passwort vergessen?“-Link aus. +- Blendet Benutzername/Passwort-Felder aus. Der „Passwort vergessen?“-Link wird serverseitig entfernt, die + Passwort-vergessen-Seite leitet zur Anmeldung um, und Passwort-Resets (auch „Passwort zurücksetzen“ in der + Benutzerliste) sind gesperrt – mit aktivem Fallback-Link funktioniert beides wie gewohnt. - **Sperrt Passwort-Logins serverseitig**, nicht nur per CSS – auf `wp-login.php` und in jedem eigenen Login-Formular (`authenticate`-Filter). - Unterschieden wird nach **Zugangsdaten, nicht nach Anfrage-Typ**: Das normale Passwort wird überall abgelehnt – auch über XML-RPC und in Login-Handlern anderer Plugins, die in `xmlrpc.php` oder einer REST-Anfrage laufen. Application Passwords diff --git a/assets/css/login.css b/assets/css/login.css index 4743224..9c2f374 100644 --- a/assets/css/login.css +++ b/assets/css/login.css @@ -12,13 +12,14 @@ background: #fff; padding: 0 24px 26px; margin: -1px 0 0; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04); - border: 1px solid #c3c4c7; - border-top: 0; + border: 0; + box-shadow: none; } +/* No frame around the login box: neither around the form nor around the Microsoft block. */ +body.m365-login-page #loginform, body.m365-login-attached #loginform { - border-bottom: 0; + border: 0; box-shadow: none; } @@ -26,8 +27,8 @@ body.m365-login-attached #loginform { background: #fff; padding: 24px; margin: 20px 0 0; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04); - border: 1px solid #c3c4c7; + border: 0; + box-shadow: none; } .m365-login--above .m365-login__divider { @@ -123,16 +124,18 @@ body.m365-login-attached #loginform { /* Button-only mode: the password form is hidden until the fallback key is used. */ body.m365-button-only #loginform, -body.m365-button-only #nav { - display: none; +body.m365-button-only #nav, +body.m365-button-only a[href*="action=lostpassword"], +body.m365-button-only .wp-login-lost-password { + display: none !important; } body.m365-button-only .m365-login--below, body.m365-button-only .m365-login--above { margin-top: 20px; padding: 26px 24px; - border: 1px solid #c3c4c7; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04); + border: 0; + box-shadow: none; } /* Custom login pages: wp_login_form() injection, shortcode and template function. */ diff --git a/includes/class-m365-login-auth.php b/includes/class-m365-login-auth.php index 5c23915..2defd7c 100644 --- a/includes/class-m365-login-auth.php +++ b/includes/class-m365-login-auth.php @@ -68,6 +68,12 @@ class M365_Login_Auth { // Track application-password sign-ins per authenticate pass (XML-RPC multicall runs several passes per request). add_filter( 'authenticate', array( $this, 'reset_app_password_user' ), 0 ); add_action( 'application_password_did_authenticate', array( $this, 'remember_app_password_user' ) ); + // Button-only mode: no "Lost your password?" link, no reset screen, no reset e-mails. + add_filter( 'lost_password_html_link', array( $this, 'hide_lost_password_link' ), 99 ); + add_filter( 'allow_password_reset', array( $this, 'block_password_reset' ), 99 ); + foreach ( array( 'lostpassword', 'retrievepassword', 'rp', 'resetpass' ) as $reset_action ) { + add_action( 'login_form_' . $reset_action, array( $this, 'block_reset_screen' ) ); + } // No session cookies from API contexts (XML-RPC, REST) while password sign-in is disabled. add_filter( 'send_auth_cookies', array( $this, 'block_api_auth_cookies' ), 99, 4 ); @@ -197,6 +203,50 @@ class M365_Login_Auth { return new WP_Error( 'm365_login_button_only', __( 'Password sign-in is disabled on this site. Please use the Microsoft button.', 'm365-login' ) ); } + /** + * Whether password resets are switched off (button-only mode without an active fallback). + * + * @return bool + */ + private function passwords_disabled() { + return $this->settings->button_only() && ! $this->fallback_active(); + } + + /** + * Removes the "Lost your password?" link from wp-login.php (server side, independent of CSS). + * + * @param string $html Link markup. + * @return string + */ + public function hide_lost_password_link( $html ) { + return $this->passwords_disabled() ? '' : $html; + } + + /** + * Refuses password resets (form, e-mails, "Send password reset" in the users list). + * + * @param bool|WP_Error $allow Whether the reset is allowed. + * @return bool|WP_Error + */ + public function block_password_reset( $allow ) { + if ( ! $this->passwords_disabled() ) { + return $allow; + } + return new WP_Error( 'm365_login_no_password_reset', __( 'Passwords are not used on this site. Please sign in with the Microsoft button.', 'm365-login' ) ); + } + + /** + * Sends the lost-password and reset screens back to the login page. + */ + public function block_reset_screen() { + if ( ! $this->passwords_disabled() ) { + return; + } + nocache_headers(); + wp_safe_redirect( add_query_arg( 'm365_error', 'password_reset_disabled', $this->settings->login_page_url() ) ); + exit; + } + /** * Starts a new authenticate pass (runs first on the authenticate filter). * @@ -1261,28 +1311,29 @@ class M365_Login_Auth { */ private function error_messages() { return array( - 'not_configured' => __( 'Microsoft login is not configured yet.', 'm365-login' ), - 'invalid_state' => __( 'The login request expired or was invalid. Please try again.', 'm365-login' ), - 'access_denied' => __( 'Microsoft sign-in was cancelled.', 'm365-login' ), - 'provider_error' => __( 'Microsoft returned an error. Please try again.', 'm365-login' ), - 'token_exchange' => __( 'Could not complete the sign-in with Microsoft. Please try again or contact an administrator.', 'm365-login' ), - 'invalid_token' => __( 'The Microsoft sign-in could not be verified.', 'm365-login' ), - 'no_email' => __( 'Your Microsoft account did not provide an e-mail address.', 'm365-login' ), - 'domain_not_allowed' => __( 'Your e-mail domain is not allowed to sign in here.', 'm365-login' ), - 'no_user' => __( 'No WordPress account exists for your Microsoft e-mail address.', 'm365-login' ), - 'oid_mismatch' => __( 'This WordPress account is linked to a different Microsoft account. Please contact an administrator.', 'm365-login' ), - 'not_allowed' => __( 'You are not allowed to sign in with this account.', 'm365-login' ), - 'not_in_group' => __( 'Your Microsoft account is not a member of a group that is allowed to sign in here.', 'm365-login' ), - 'group_check_failed' => __( 'Your group membership could not be verified. Please contact an administrator.', 'm365-login' ), - 'in_denied_group' => __( 'Your Microsoft account is a member of a group that is not allowed to sign in here.', 'm365-login' ), - 'fallback_invalid' => __( 'The fallback key is not valid.', 'm365-login' ), - 'fallback_locked' => __( 'Too many attempts. Please wait 15 minutes.', 'm365-login' ), - 'too_many_attempts' => __( 'Too many sign-in attempts from your connection. Please wait a few minutes and try again.', 'm365-login' ), - 'account_disabled' => __( 'This account has been deactivated.', 'm365-login' ), - 'privileged_unlinked' => __( 'For security reasons this administrator account is not linked automatically. Sign in once with your password and click "Link Microsoft account" on your profile page – or ask an administrator to enter your Microsoft account (user principal name) in your WordPress profile.', 'm365-login' ), - 'link_session' => __( 'The link could not be completed because you are no longer signed in to WordPress. Please sign in and try again.', 'm365-login' ), - 'link_other' => __( 'Your WordPress account is already linked to a different Microsoft account. An administrator can remove the link in your profile.', 'm365-login' ), - 'external_identity' => __( 'Guest and external accounts cannot sign in here.', 'm365-login' ), + 'not_configured' => __( 'Microsoft login is not configured yet.', 'm365-login' ), + 'invalid_state' => __( 'The login request expired or was invalid. Please try again.', 'm365-login' ), + 'access_denied' => __( 'Microsoft sign-in was cancelled.', 'm365-login' ), + 'provider_error' => __( 'Microsoft returned an error. Please try again.', 'm365-login' ), + 'token_exchange' => __( 'Could not complete the sign-in with Microsoft. Please try again or contact an administrator.', 'm365-login' ), + 'invalid_token' => __( 'The Microsoft sign-in could not be verified.', 'm365-login' ), + 'no_email' => __( 'Your Microsoft account did not provide an e-mail address.', 'm365-login' ), + 'domain_not_allowed' => __( 'Your e-mail domain is not allowed to sign in here.', 'm365-login' ), + 'no_user' => __( 'No WordPress account exists for your Microsoft e-mail address.', 'm365-login' ), + 'oid_mismatch' => __( 'This WordPress account is linked to a different Microsoft account. Please contact an administrator.', 'm365-login' ), + 'not_allowed' => __( 'You are not allowed to sign in with this account.', 'm365-login' ), + 'not_in_group' => __( 'Your Microsoft account is not a member of a group that is allowed to sign in here.', 'm365-login' ), + 'group_check_failed' => __( 'Your group membership could not be verified. Please contact an administrator.', 'm365-login' ), + 'in_denied_group' => __( 'Your Microsoft account is a member of a group that is not allowed to sign in here.', 'm365-login' ), + 'fallback_invalid' => __( 'The fallback key is not valid.', 'm365-login' ), + 'fallback_locked' => __( 'Too many attempts. Please wait 15 minutes.', 'm365-login' ), + 'too_many_attempts' => __( 'Too many sign-in attempts from your connection. Please wait a few minutes and try again.', 'm365-login' ), + 'account_disabled' => __( 'This account has been deactivated.', 'm365-login' ), + 'privileged_unlinked' => __( 'For security reasons this administrator account is not linked automatically. Sign in once with your password and click "Link Microsoft account" on your profile page – or ask an administrator to enter your Microsoft account (user principal name) in your WordPress profile.', 'm365-login' ), + 'link_session' => __( 'The link could not be completed because you are no longer signed in to WordPress. Please sign in and try again.', 'm365-login' ), + 'link_other' => __( 'Your WordPress account is already linked to a different Microsoft account. An administrator can remove the link in your profile.', 'm365-login' ), + 'external_identity' => __( 'Guest and external accounts cannot sign in here.', 'm365-login' ), + 'password_reset_disabled' => __( 'Passwords are not used on this site. Please sign in with the Microsoft button.', 'm365-login' ), ); } diff --git a/includes/class-m365-login-button.php b/includes/class-m365-login-button.php index 2ee3b79..db1d8f5 100644 --- a/includes/class-m365-login-button.php +++ b/includes/class-m365-login-button.php @@ -212,6 +212,9 @@ class M365_Login_Button { * @return string[] */ public function body_class( $classes ) { + if ( $this->should_render() ) { + $classes[] = 'm365-login-page'; + } if ( $this->form_hidden() ) { $classes[] = 'm365-button-only'; } @@ -222,7 +225,8 @@ class M365_Login_Button { * Enqueues login styles and the small positioning script. */ public function enqueue() { - if ( ! $this->should_render() ) { + // Also when only the form is hidden (e.g. broken connection): the stylesheet hides the password form and links. + if ( ! $this->should_render() && ! $this->form_hidden() ) { return; } wp_enqueue_style( 'm365-login', M365_LOGIN_URL . 'assets/css/login.css', array(), M365_LOGIN_VERSION ); diff --git a/languages/m365-login-de_DE.mo b/languages/m365-login-de_DE.mo index 421b3055f2cc74bad41186b53bdacaac93377637..7921062d9033e6df4aef668f15548f439d765cce 100644 GIT binary patch delta 6796 zcmYM(3s}x)AHeZD=^zzKrGt7pQA!8rGsRoVslzZ~lpZRDRWc1vj+^B;RM=$9gl$+3 z8<|7HGSP;O9P-+*g~`VCn!TI%``i6o*Xwfm+`s$z|L?=^zVH9@FPnd{Y-qGJ-EwNa zLGfp^g;HMl)Lx?h|2gljloMesrs8c3!e|er+T(Qe#pULB56b5?7=pi{bl~l&lnWlf zDm;fi7RsdFqSt6DcG8+1HliCo!{O-QtyDKmK^fp`?0_HRG`xiM*w;s?PUvb-sy{{{ zeJhjMO&CFZ5aqsmm`nd^B*Py{#Yw!3c795=#RlXW^%T3Ji@#Ei7>AblD)zw%C>@s~ zV^F71GI9r*gK8e2)ByCuNK8eUz&ebge|3a{%>2J7Gq(v;D%pa@&_JBW)kU}-RNzKy5Q0f&W>|Irl2g)(d0ixcoLw!pTX z^-R4{J`YA|FcKZG2g>zBP(J?vSK=;=C4)V~%o7M#%8L56Xosa}z-{5=za@ogDrBuL zqCGxBS&A1Zo6d=yBR7Vl?BYJiBvb;*_4CXwN4c&9B|{&e4D1-n-Z+h;@GeTf-A(L> zQVLO+fY)#Zc4FZSco?ODtLTKc(HDP5SvnVXCRtZr$U#uCXp2)(1~L=dkcmPZM7*M# zzOEK!kC+}(Xh*@KJLyCZT#Sh*DZ7Ga@j5bSwVjKG;ANB)yZ6)sN$sUGn1MBXz6?p8 zO6aZBLM%dAx@H`ichLsPh)HdtAR|741F;%2(Xy{nuVD_#=jTyAzk;$iT>2>$fIjGo zLr|_8kJ52E%603_Zb1%|s=!#hfXC(hyYjS<2EIp0=_8aieTs}wS#WsexcH)^Gy+aXxOxW9Z8$mtX_7#`Hl-t-;wi53RZR7A{5y`d4Yu`bjklor#N4E-Xi$AVzY49GVOiDk#VWH7GN` zi7c0DMA>`+F-ncLP%0EzcD0E7y@6k#47AHoecxUr391U^{Qrp_=n}_H#|V^urlMq~ zFpm7Q462w4Y4~dl#Fr?k4vg2wBm!Fy_rotS2CdO*m{Nz(9<#9;jTkXpAKMa?0ajvH zsUM-2Djg>g-x)#v(q_|76-dhV%>dUYI8!!mRm|o#2L_w69`;FF_7>ezr9wmik*b*zz2alsSHlQQ^ zjSlEAM%Q~{25}#p#L{g?wv)1aRbLl_vxrTvP?$^MG}__7ak`^;TuM9!?ePZkSN+02 zDL9yaWC^yQ3}gq&jK0E&_z2tKuByv2Ef%5ggnu$^Qrjq4QDMVf(vbstpa(9) z?&!=6s<0W>y~b>*zr+H{_1{hAC}IQ3fIL(64E<0(k3d`OkCLevWDIIF23oNG`zgqA z`GJif7v9JA*o3l69jEBc=YulCV3YwSVFc!&EX@{l#ohQBp2X>x&xVqAZletF3CexX zu?zjHV79C$PQdr@4V00(Of?@r97r6BGQey!;A|X>B`5=^M_Iyq=J*MQ690uE*l8Ml z;TV*R6`{$OLKOwM;1;qClwF2?<(h&y#AO(O)|vVN5`vr{m4ebx1xDgeI0#*{^qv@t zGl>hZ7Vn{4e}J?|e@)Xl|3fS|X4(4qq|%!oAAEvCunyOt%MAUc@ewX1?oF%icpOjT zHDt9^`7FKpn!T>?pNul09mr~^zfsyx%hlheOLNITZK^UVI-yOTzM%`YBrZm&FGX3~ zQ|N@(%s#|0;+N=vVfi}c{ZIy&i7jw3%D`9RYIL5h)cd&IM8S$eRDtd=7OjbsQ94e+ zJ-8IzFmet@5aZAhyS|}~#vtNE^ua=m#7!8F=dl9a=ITfL2}~k3y)YL>6zW&0tyshd ze_OO^LR5;An zH?&4cy&FpE{LOYo>8K~laT;i@PcYY~nCsK9EuZI^rdo5w2w5_rz_+tT1!c8a_yg*+Z%FgMAS-2R>@df%X(;a)irGHXNLRo@x^uo_k z9yC`l7p>psZ3yRLGCD3N|IaC;QIH$QzoQ>4`Phqi1KQ&SlqI>21Mog}#ty}LfUlq* zaRJIiHsVk`hT&+vLJy<|4kMn1EwOS1`FEvooQhmh^F2yKajSTB#%#1hN6w7g;Ev81 zh%2!--o>*h6ZnLOg)G4tl+E`Ca^n7ZU6Ru?d#$ctiPGNswdB7wg{@RbNBdFYDm;p{ zn2O8a)qCIpMiP6h(_c=*Q6_K+U9b@?QS!VEnqvj-#9&O=pkHna(Teyd69rD7YDC%X z=_Ps~GticJuGvK>BQ8evrz*wf=vvC)(G%y8!76kj?zU0iAB*^YPH{fM&LA7KPKY|;%3K*>}*O6JC+TsIYE;LA|t>z} z7>Hx!{9mE4hly+A~96vvl1`<&QG8xOeeN1 z*Y{_jGjS=p;~tEX^M9HGlT$WZ_2&2hn}{p04{l^9rr>2PqTz5BRtC6lyHXwTC^q1a z*b}QiACal6UC%p{Y7q%a@DaS=+YK0`Y^gEEkB zF$mpRuVReGyLbWls}6juAH9=5(KDWnBt->(%7DmRElNN2Yyc1Zc`x~IOTls6c@o~lk;J2G^xpUoC1aJi1jEirJFI^t1xfV@+==H< z)-3lM8p1W0inizVby+A&mXDpW40G@ddSka*{RWkclZh|mX6$}J|J3{~S`)`#WU1+2 zB~tLjRAhsz`53_r!s|GvIGF|a#-i`^nw4MD@BIf+8u|krQGRULpSu6xy)EB;`IRYu67YBV(~6rkX!rj@^kr!d7?#o$(se8S z8SomE4mM#VUcxSDbzMIfdZA1-2gC85>*PO!!VxO^qW=xOMw74u@l_1NmpBo_Zt8)p zz~00cFcxiZ>FX14E%6+DiY*#=%;MkJ4~O377ZNPNQcNRmX1b%_;f$C>#YWtU50R6k zR{lu3G4UsTI-VoRQXY5Z?C^U)OvSu=dbeLeBXPie{qy}h=tKM`N+vyj*1vCzL^(~S z8VXY=JVV($<9^Yp%R*Vh_fVd6`>-8WV^6$+(qP+0o$^lTMLY#%X^OA{SK%(~`9OF4 zZ?qwv`|zLl2$Nb!!J3Md7=Y`M4XVCCPh9ngmj+U{8)cWD{8ewhIt(JdjdJW-Jk|pb z!ffIctirR{2bVPI3?IiBVy7p(tVj;WQIIt|fwD$Pzv(C9YFtMA7;UlOcm3vL!WP8E z=z$whX1)()BDH2OqaE>elo{VcfBY4jqZ1p%Ue?f!LQ4!lxgi4OhQ27N9E@!+5$$n` z*;yz{HXogF70PwnP?qd~x&AD+CBBZ5(I!kn`)B+o#C(&X@`ig{?~ZwMX6B~n8B%kN zh8Z*S4YTu%>4upz4EY(Ed4{~qd}Ej)A={Xmw=OnKO)rgw(veIn{@9^SPkFm^;TfBi)!EW{A$r=gJ&ocDixhr6%9X JA=P6e{|C5VP)`5= delta 6677 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 ANdN!< delta 6677 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 rFG9)a`F2UtL`Mn%lo;xTtqde|#S?B)&V)Gse diff --git a/languages/m365-login-de_DE_formal.po b/languages/m365-login-de_DE_formal.po index 9d4b27a..713041b 100644 --- a/languages/m365-login-de_DE_formal.po +++ b/languages/m365-login-de_DE_formal.po @@ -128,7 +128,7 @@ msgstr "Sie haben ungespeicherte Änderungen. Der Sync verwendet die gespeichert msgid "Move up" msgstr "Nach oben" -#: includes/class-m365-login-admin.php:294 includes/class-m365-login-admin.php:333 includes/class-m365-login-admin.php:359 includes/class-m365-login-admin.php:392 includes/class-m365-login-admin.php:566 includes/class-m365-login-sync.php:2224 +#: includes/class-m365-login-admin.php:294 includes/class-m365-login-admin.php:333 includes/class-m365-login-admin.php:359 includes/class-m365-login-admin.php:392 includes/class-m365-login-admin.php:566 includes/class-m365-login-sync.php:2230 msgid "You are not allowed to do this." msgstr "Dafür fehlt die Berechtigung." @@ -1079,103 +1079,107 @@ msgstr "Button auf einer eigenen Login-Seite platzieren:" msgid "More options on the Button tab under \"Custom login page\"." msgstr "Weitere Optionen im Tab „Button“ unter „Eigene Login-Seite“." -#: includes/class-m365-login-auth.php:197 +#: includes/class-m365-login-auth.php:203 msgid "Password sign-in is disabled on this site. Please use the Microsoft button." msgstr "Die Anmeldung mit Passwort ist auf dieser Website deaktiviert. Bitte den Microsoft-Button verwenden." -#: includes/class-m365-login-auth.php:1224 +#: includes/class-m365-login-auth.php:235 includes/class-m365-login-auth.php:1336 +msgid "Passwords are not used on this site. Please sign in with the Microsoft button." +msgstr "Auf dieser Website werden keine Passwörter verwendet. Bitte melden Sie sich mit dem Microsoft-Button an." + +#: includes/class-m365-login-auth.php:1286 msgid "Microsoft sign-in is temporarily unavailable. Please contact an administrator." msgstr "Die Microsoft-Anmeldung ist vorübergehend nicht verfügbar. Bitte wenden Sie sich an einen Administrator." -#: includes/class-m365-login-auth.php:1231 +#: includes/class-m365-login-auth.php:1293 msgid "Password sign-in is temporarily enabled for this browser (30 minutes)." msgstr "Die Passwort-Anmeldung ist für diesen Browser vorübergehend aktiviert (30 Minuten)." -#: includes/class-m365-login-auth.php:1252 includes/class-m365-login-graph.php:63 +#: includes/class-m365-login-auth.php:1314 includes/class-m365-login-graph.php:63 msgid "Microsoft login is not configured yet." msgstr "Die Microsoft-Anmeldung ist noch nicht eingerichtet." -#: includes/class-m365-login-auth.php:1253 +#: includes/class-m365-login-auth.php:1315 msgid "The login request expired or was invalid. Please try again." msgstr "Die Anmeldeanfrage ist abgelaufen oder ungültig. Bitte erneut versuchen." -#: includes/class-m365-login-auth.php:1254 +#: includes/class-m365-login-auth.php:1316 msgid "Microsoft sign-in was cancelled." msgstr "Die Microsoft-Anmeldung wurde abgebrochen." -#: includes/class-m365-login-auth.php:1255 +#: includes/class-m365-login-auth.php:1317 msgid "Microsoft returned an error. Please try again." msgstr "Microsoft hat einen Fehler gemeldet. Bitte erneut versuchen." -#: includes/class-m365-login-auth.php:1256 +#: includes/class-m365-login-auth.php:1318 msgid "Could not complete the sign-in with Microsoft. Please try again or contact an administrator." msgstr "Die Anmeldung über Microsoft konnte nicht abgeschlossen werden. Bitte erneut versuchen oder einen Administrator kontaktieren." -#: includes/class-m365-login-auth.php:1257 +#: includes/class-m365-login-auth.php:1319 msgid "The Microsoft sign-in could not be verified." msgstr "Die Microsoft-Anmeldung konnte nicht verifiziert werden." -#: includes/class-m365-login-auth.php:1258 +#: includes/class-m365-login-auth.php:1320 msgid "Your Microsoft account did not provide an e-mail address." msgstr "Das Microsoft-Konto hat keine E-Mail-Adresse übermittelt." -#: includes/class-m365-login-auth.php:1259 +#: includes/class-m365-login-auth.php:1321 msgid "Your e-mail domain is not allowed to sign in here." msgstr "Diese E-Mail-Domain ist hier nicht zur Anmeldung zugelassen." -#: includes/class-m365-login-auth.php:1260 +#: includes/class-m365-login-auth.php:1322 msgid "No WordPress account exists for your Microsoft e-mail address." msgstr "Für die E-Mail-Adresse des Microsoft-Kontos existiert kein WordPress-Konto." -#: includes/class-m365-login-auth.php:1261 +#: includes/class-m365-login-auth.php:1323 msgid "This WordPress account is linked to a different Microsoft account. Please contact an administrator." msgstr "Dieses WordPress-Konto ist mit einem anderen Microsoft-Konto verknüpft. Bitte einen Administrator kontaktieren." -#: includes/class-m365-login-auth.php:1262 +#: includes/class-m365-login-auth.php:1324 msgid "You are not allowed to sign in with this account." msgstr "Die Anmeldung mit diesem Konto ist nicht erlaubt." -#: includes/class-m365-login-auth.php:1263 +#: includes/class-m365-login-auth.php:1325 msgid "Your Microsoft account is not a member of a group that is allowed to sign in here." msgstr "Das Microsoft-Konto ist in keiner Gruppe, die sich hier anmelden darf." -#: includes/class-m365-login-auth.php:1264 +#: includes/class-m365-login-auth.php:1326 msgid "Your group membership could not be verified. Please contact an administrator." msgstr "Die Gruppenmitgliedschaft konnte nicht geprüft werden. Bitte einen Administrator kontaktieren." -#: includes/class-m365-login-auth.php:1265 +#: includes/class-m365-login-auth.php:1327 msgid "Your Microsoft account is a member of a group that is not allowed to sign in here." msgstr "Ihr Microsoft-Konto ist Mitglied einer Gruppe, die sich hier nicht anmelden darf." -#: includes/class-m365-login-auth.php:1266 +#: includes/class-m365-login-auth.php:1328 msgid "The fallback key is not valid." msgstr "Der Fallback-Schlüssel ist ungültig." -#: includes/class-m365-login-auth.php:1267 +#: includes/class-m365-login-auth.php:1329 msgid "Too many attempts. Please wait 15 minutes." msgstr "Zu viele Versuche. Bitte 15 Minuten warten." -#: includes/class-m365-login-auth.php:1268 +#: includes/class-m365-login-auth.php:1330 msgid "Too many sign-in attempts from your connection. Please wait a few minutes and try again." msgstr "Zu viele Anmeldeversuche von dieser Verbindung. Bitte ein paar Minuten warten und erneut versuchen." -#: includes/class-m365-login-auth.php:1269 includes/class-m365-login-sync.php:2132 +#: includes/class-m365-login-auth.php:1331 includes/class-m365-login-sync.php:2138 msgid "This account has been deactivated." msgstr "Dieses Konto wurde deaktiviert." -#: includes/class-m365-login-auth.php:1270 +#: includes/class-m365-login-auth.php:1332 msgid "For security reasons this administrator account is not linked automatically. Sign in once with your password and click \"Link Microsoft account\" on your profile page – or ask an administrator to enter your Microsoft account (user principal name) in your WordPress profile." msgstr "Aus Sicherheitsgründen wird dieses Administrator-Konto nicht automatisch verknüpft. Melden Sie sich einmal mit Ihrem Passwort an und klicken Sie in Ihrem Profil auf „Mit Microsoft-Konto verknüpfen“ – oder bitten Sie einen Administrator, Ihr Microsoft-Konto (Benutzerprinzipalname) in Ihrem WordPress-Profil einzutragen." -#: includes/class-m365-login-auth.php:1271 +#: includes/class-m365-login-auth.php:1333 msgid "The link could not be completed because you are no longer signed in to WordPress. Please sign in and try again." msgstr "Die Verknüpfung konnte nicht abgeschlossen werden, weil Sie nicht mehr bei WordPress angemeldet sind. Bitte melden Sie sich an und versuchen Sie es erneut." -#: includes/class-m365-login-auth.php:1272 +#: includes/class-m365-login-auth.php:1334 msgid "Your WordPress account is already linked to a different Microsoft account. An administrator can remove the link in your profile." msgstr "Ihr WordPress-Konto ist bereits mit einem anderen Microsoft-Konto verknüpft. Ein Administrator kann die Verknüpfung in Ihrem Profil aufheben." -#: includes/class-m365-login-auth.php:1273 +#: includes/class-m365-login-auth.php:1335 msgid "Guest and external accounts cannot sign in here." msgstr "Gast- und externe Konten können sich hier nicht anmelden." @@ -1399,294 +1403,294 @@ msgid "Microsoft 365 returned no users at all while accounts are linked. Nothing msgstr "Microsoft 365 hat überhaupt keine Benutzer geliefert, obwohl Konten verknüpft sind. Es wurde nichts geändert. Prüfen Sie den Tenant und die Sync-Gruppen." #. translators: %d: number of accounts -#: includes/class-m365-login-sync.php:584 +#: includes/class-m365-login-sync.php:585 msgid "%d linked account belongs to another (or an unknown) tenant and was not deactivated or deleted. Unlink it by hand if it is no longer needed." msgid_plural "%d linked accounts belong to another (or an unknown) tenant and were not deactivated or deleted. Unlink them by hand if they are no longer needed." msgstr[0] "%d verknüpftes Konto gehört zu einem anderen (oder unbekannten) Tenant und wurde nicht deaktiviert oder gelöscht. Verknüpfung bei Bedarf von Hand aufheben." msgstr[1] "%d verknüpfte Konten gehören zu einem anderen (oder unbekannten) Tenant und wurden nicht deaktiviert oder gelöscht. Verknüpfung bei Bedarf von Hand aufheben." #. translators: 1: number of accounts, 2: limit -#: includes/class-m365-login-sync.php:595 +#: includes/class-m365-login-sync.php:596 msgid "Safety stop: %1$d accounts would be deactivated or deleted, more than the limit of %2$d per run. No account was deactivated or deleted. Check the sync groups and the tenant, then run the sync again (the limit can be changed with the m365_login_sync_deprovision_limit filter)." msgstr "Sicherheitsstopp: %1$d Konten würden deaktiviert oder gelöscht, mehr als das Limit von %2$d pro Lauf. Es wurde kein Konto deaktiviert oder gelöscht. Prüfen Sie die Sync-Gruppen und den Tenant und starten Sie den Sync dann erneut (das Limit lässt sich mit dem Filter m365_login_sync_deprovision_limit ändern)." -#: includes/class-m365-login-sync.php:721 includes/class-m365-login-sync.php:779 includes/class-m365-login-sync.php:1227 includes/class-m365-login-sync.php:2277 +#: includes/class-m365-login-sync.php:722 includes/class-m365-login-sync.php:785 includes/class-m365-login-sync.php:1233 includes/class-m365-login-sync.php:2283 msgid "disabled in Microsoft 365" msgstr "in Microsoft 365 deaktiviert" #. translators: %s: user principal name -#: includes/class-m365-login-sync.php:732 +#: includes/class-m365-login-sync.php:733 msgid "%s: no usable e-mail address, skipped." msgstr "%s: keine verwendbare E-Mail-Adresse, übersprungen." #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:739 +#: includes/class-m365-login-sync.php:740 msgid "%s: e-mail domain is not on the allow-list, skipped." msgstr "%s: E-Mail-Domain steht nicht auf der Liste erlaubter Domains, übersprungen." #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:755 +#: includes/class-m365-login-sync.php:761 msgid "%s: the WordPress account with this e-mail address is linked to a different Microsoft account, skipped." msgstr "%s: Das WordPress-Konto mit dieser E-Mail-Adresse ist mit einem anderen Microsoft-Konto verknüpft, übersprungen." #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:760 +#: includes/class-m365-login-sync.php:766 msgid "%s: privileged WordPress account – linked only when the Microsoft user principal name equals its e-mail address or the Microsoft account assigned in its profile, or when the person links it from the profile. Skipped." msgstr "%s: privilegiertes WordPress-Konto – wird nur verknüpft, wenn der Microsoft-Benutzerprinzipalname seiner E-Mail-Adresse oder dem im Profil zugewiesenen Microsoft-Konto entspricht, oder wenn die Person es im Profil selbst verknüpft. Übersprungen." #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:764 +#: includes/class-m365-login-sync.php:770 msgid "%s: existing account linked." msgstr "%s: bestehendes Konto verknüpft." #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:790 +#: includes/class-m365-login-sync.php:796 msgid "%s: added to this site." msgstr "%s: zu dieser Website hinzugefügt." #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:799 +#: includes/class-m365-login-sync.php:805 msgid "%s: reactivated (active in Microsoft 365 again)." msgstr "%s: reaktiviert (in Microsoft 365 wieder aktiv)." #. translators: 1: e-mail address, 2: list of changed fields -#: includes/class-m365-login-sync.php:810 +#: includes/class-m365-login-sync.php:816 msgid "%1$s: updated (%2$s)." msgstr "%1$s: aktualisiert (%2$s)." #. translators: 1: e-mail address, 2: role names -#: includes/class-m365-login-sync.php:837 +#: includes/class-m365-login-sync.php:843 msgid "%1$s: account created (%2$s)." msgstr "%1$s: Konto angelegt (%2$s)." #. translators: 1: e-mail address, 2: error message -#: includes/class-m365-login-sync.php:864 +#: includes/class-m365-login-sync.php:870 msgid "%1$s: account could not be created: %2$s" msgstr "%1$s: Konto konnte nicht angelegt werden: %2$s" #. translators: 1: current e-mail address, 2: e-mail address in Microsoft 365 -#: includes/class-m365-login-sync.php:923 +#: includes/class-m365-login-sync.php:929 msgid "%1$s: the e-mail address in Microsoft 365 changed to %2$s. It is not changed automatically for privileged accounts – update it by hand if intended." msgstr "%1$s: Die E-Mail-Adresse in Microsoft 365 wurde zu %2$s geändert. Bei privilegierten Konten wird sie nicht automatisch geändert – bei Bedarf von Hand anpassen." #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:926 +#: includes/class-m365-login-sync.php:932 msgid "%s: e-mail address is used by another WordPress account and was not changed." msgstr "%s: Die E-Mail-Adresse gehört bereits einem anderen WordPress-Konto und wurde nicht geändert." #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:929 +#: includes/class-m365-login-sync.php:935 msgid "e-mail" msgstr "E-Mail" #. translators: %s: profile field -#: includes/class-m365-login-sync.php:979 +#: includes/class-m365-login-sync.php:985 msgid "%s removed" msgstr "%s entfernt" #. translators: 1: e-mail address, 2: error message -#: includes/class-m365-login-sync.php:989 +#: includes/class-m365-login-sync.php:995 msgid "%1$s: profile could not be updated: %2$s" msgstr "%1$s: Profil konnte nicht aktualisiert werden: %2$s" #. translators: %s: role names -#: includes/class-m365-login-sync.php:1098 +#: includes/class-m365-login-sync.php:1104 msgid "roles: %s" msgstr "Rollen: %s" #. translators: 1: number of accounts, 2: limit -#: includes/class-m365-login-sync.php:1168 +#: includes/class-m365-login-sync.php:1174 msgid "Safety stop: %1$d accounts would lose administrative rights, more than the limit of %2$d per run (or all of them). Nothing was demoted, deactivated or deleted. Check the group → role mapping, then run the sync again (filter m365_login_sync_demotion_limit)." msgstr "Sicherheitsstopp: %1$d Konten würden Administrationsrechte verlieren, mehr als das Limit von %2$d pro Lauf (oder alle). Es wurde nichts herabgestuft, deaktiviert oder gelöscht. Prüfen Sie die Gruppen-Rollen-Zuordnung und starten Sie den Sync dann erneut (Filter m365_login_sync_demotion_limit)." -#: includes/class-m365-login-sync.php:1219 includes/class-m365-login-sync.php:2278 +#: includes/class-m365-login-sync.php:1225 includes/class-m365-login-sync.php:2284 msgid "deleted in Microsoft 365" msgstr "in Microsoft 365 gelöscht" -#: includes/class-m365-login-sync.php:1230 includes/class-m365-login-sync.php:2279 +#: includes/class-m365-login-sync.php:1236 includes/class-m365-login-sync.php:2285 msgid "no longer a member of the sync groups" msgstr "kein Mitglied der Sync-Gruppen mehr" #. translators: 1: e-mail address, 2: reason -#: includes/class-m365-login-sync.php:1262 +#: includes/class-m365-login-sync.php:1268 msgid "%1$s: %2$s, but the account is protected (administrator or your own account) and was not changed." msgstr "%1$s: %2$s, das Konto ist aber geschützt (Administrator oder Ihr eigenes Konto) und wurde nicht geändert." #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:1406 +#: includes/class-m365-login-sync.php:1412 msgid "%s: no valid user to receive the content is selected, so the account is deactivated instead of deleted." msgstr "%s: Es ist kein gültiger Benutzer für die Übernahme der Inhalte ausgewählt, deshalb wird das Konto deaktiviert statt gelöscht." #. translators: 1: e-mail address, 2: reason -#: includes/class-m365-login-sync.php:1415 +#: includes/class-m365-login-sync.php:1421 msgid "%1$s: account deleted (%2$s)." msgstr "%1$s: Konto gelöscht (%2$s)." #. translators: 1: e-mail address, 2: reason -#: includes/class-m365-login-sync.php:1424 +#: includes/class-m365-login-sync.php:1430 msgid "%1$s: account deactivated (%2$s)." msgstr "%1$s: Konto deaktiviert (%2$s)." -#: includes/class-m365-login-sync.php:1503 +#: includes/class-m365-login-sync.php:1509 msgid "Microsoft Graph refused the request. Grant the application permissions \"User.Read.All\" and \"GroupMember.Read.All\" with admin consent in Entra ID." msgstr "Microsoft Graph hat die Anfrage abgelehnt. Erteilen Sie in Entra ID die Anwendungsberechtigungen „User.Read.All“ und „GroupMember.Read.All“ mit Administratorzustimmung." #. translators: %s: error message -#: includes/class-m365-login-sync.php:1506 +#: includes/class-m365-login-sync.php:1512 msgid "Microsoft Graph error: %s" msgstr "Microsoft-Graph-Fehler: %s" -#: includes/class-m365-login-sync.php:1524 +#: includes/class-m365-login-sync.php:1530 msgid "Log truncated." msgstr "Protokoll gekürzt." #. translators: 1: e-mail address, 2: error message -#: includes/class-m365-login-sync.php:1607 +#: includes/class-m365-login-sync.php:1613 msgid "%1$s: profile photo could not be read: %2$s" msgstr "%1$s: Profilbild konnte nicht gelesen werden: %2$s" #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:1631 includes/class-m365-login-sync.php:1674 +#: includes/class-m365-login-sync.php:1637 includes/class-m365-login-sync.php:1680 msgid "%s: profile photo updated." msgstr "%s: Profilbild aktualisiert." #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:1650 +#: includes/class-m365-login-sync.php:1656 msgid "%s: profile photo could not be downloaded." msgstr "%s: Profilbild konnte nicht heruntergeladen werden." #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:1657 +#: includes/class-m365-login-sync.php:1663 msgid "%s: profile photo is not a valid image or could not be saved." msgstr "%s: Profilbild ist kein gültiges Bild oder konnte nicht gespeichert werden." #. translators: %d: number of photos -#: includes/class-m365-login-sync.php:1680 +#: includes/class-m365-login-sync.php:1686 msgid "%d changed profile photo will be downloaded in the next run (download limit per run reached)." msgid_plural "%d changed profile photos will be downloaded in the next run (download limit per run reached)." msgstr[0] "%d geändertes Profilbild wird im nächsten Lauf heruntergeladen (Download-Limit pro Lauf erreicht)." msgstr[1] "%d geänderte Profilbilder werden im nächsten Lauf heruntergeladen (Download-Limit pro Lauf erreicht)." #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:1695 +#: includes/class-m365-login-sync.php:1701 msgid "%s: profile photo removed." msgstr "%s: Profilbild entfernt." #. translators: %d: number of photos -#: includes/class-m365-login-sync.php:1723 +#: includes/class-m365-login-sync.php:1729 msgid "Profile photo sync is off: %d stored photo removed." msgid_plural "Profile photo sync is off: %d stored photos removed." msgstr[0] "Profilbild-Sync ist aus: %d gespeichertes Profilbild entfernt." msgstr[1] "Profilbild-Sync ist aus: %d gespeicherte Profilbilder entfernt." -#: includes/class-m365-login-sync.php:1895 includes/class-m365-login-sync.php:1909 +#: includes/class-m365-login-sync.php:1901 includes/class-m365-login-sync.php:1915 msgid "Microsoft 365 (M365 Login)" msgstr "Microsoft 365 (M365 Login)" -#: includes/class-m365-login-sync.php:1927 +#: includes/class-m365-login-sync.php:1933 msgid "Microsoft object ID" msgstr "Microsoft-Objekt-ID" -#: includes/class-m365-login-sync.php:1928 +#: includes/class-m365-login-sync.php:1934 msgid "Microsoft tenant ID" msgstr "Microsoft-Tenant-ID" -#: includes/class-m365-login-sync.php:1939 +#: includes/class-m365-login-sync.php:1945 msgid "Profile photo" msgstr "Profilbild" -#: includes/class-m365-login-sync.php:1943 includes/class-m365-login-sync.php:2294 +#: includes/class-m365-login-sync.php:1949 includes/class-m365-login-sync.php:2300 msgid "Last sync" msgstr "Letzter Sync" -#: includes/class-m365-login-sync.php:1957 includes/class-m365-login-sync.php:2161 includes/class-m365-login-sync.php:2308 +#: includes/class-m365-login-sync.php:1963 includes/class-m365-login-sync.php:2167 includes/class-m365-login-sync.php:2314 msgid "Microsoft 365" msgstr "Microsoft 365" -#: includes/class-m365-login-sync.php:1998 +#: includes/class-m365-login-sync.php:2004 msgid "The link to the Microsoft account and a possible deactivation were kept because they secure the account. The next user sync copies selected profile fields again unless the person is excluded from the sync." msgstr "Die Verknüpfung mit dem Microsoft-Konto und eine eventuelle Deaktivierung wurden behalten, weil sie das Konto absichern. Der nächste Benutzer-Sync überträgt ausgewählte Profilfelder erneut, sofern die Person nicht vom Sync ausgenommen ist." -#: includes/class-m365-login-sync.php:2179 +#: includes/class-m365-login-sync.php:2185 msgid "Deactivated" msgstr "Deaktiviert" -#: includes/class-m365-login-sync.php:2182 +#: includes/class-m365-login-sync.php:2188 msgid "Imported" msgstr "Importiert" -#: includes/class-m365-login-sync.php:2184 includes/class-m365-login-sync.php:2314 +#: includes/class-m365-login-sync.php:2190 includes/class-m365-login-sync.php:2320 msgid "Linked" msgstr "Verknüpft" -#: includes/class-m365-login-sync.php:2212 +#: includes/class-m365-login-sync.php:2218 msgid "Reactivate" msgstr "Reaktivieren" -#: includes/class-m365-login-sync.php:2212 +#: includes/class-m365-login-sync.php:2218 msgid "Deactivate" msgstr "Deaktivieren" -#: includes/class-m365-login-sync.php:2241 +#: includes/class-m365-login-sync.php:2247 msgid "Your Microsoft account is now linked. From now on you can sign in with the Microsoft button." msgstr "Ihr Microsoft-Konto ist jetzt verknüpft. Ab sofort können Sie sich mit dem Microsoft-Button anmelden." -#: includes/class-m365-login-sync.php:2255 +#: includes/class-m365-login-sync.php:2261 msgid "The account has been deactivated and signed out everywhere." msgstr "Das Konto wurde deaktiviert und überall abgemeldet." -#: includes/class-m365-login-sync.php:2256 +#: includes/class-m365-login-sync.php:2262 msgid "The account has been reactivated." msgstr "Das Konto wurde reaktiviert." #. translators: 1: date, 2: reason -#: includes/class-m365-login-sync.php:2283 +#: includes/class-m365-login-sync.php:2289 msgid "Deactivated since %1$s (%2$s)" msgstr "Deaktiviert seit %1$s (%2$s)" #. translators: 1: date, 2: reason -#: includes/class-m365-login-sync.php:2285 +#: includes/class-m365-login-sync.php:2291 msgid "manually" msgstr "manuell" #. translators: 1: date, 2: reason -#: includes/class-m365-login-sync.php:2287 +#: includes/class-m365-login-sync.php:2293 msgid "Status" msgstr "Status" -#: includes/class-m365-login-sync.php:2290 +#: includes/class-m365-login-sync.php:2296 msgid "Object ID" msgstr "Objekt-ID" -#: includes/class-m365-login-sync.php:2311 +#: includes/class-m365-login-sync.php:2317 msgid "Microsoft account" msgstr "Microsoft-Konto" -#: includes/class-m365-login-sync.php:2316 +#: includes/class-m365-login-sync.php:2322 msgid "Not linked" msgstr "Nicht verknüpft" -#: includes/class-m365-login-sync.php:2319 +#: includes/class-m365-login-sync.php:2325 msgid "Link Microsoft account" msgstr "Mit Microsoft-Konto verknüpfen" -#: includes/class-m365-login-sync.php:2320 +#: includes/class-m365-login-sync.php:2326 msgid "You sign in with Microsoft once; afterwards this WordPress account is bound to that Microsoft account, even if its user principal name differs from your e-mail address." msgstr "Sie melden sich einmal bei Microsoft an; danach ist dieses WordPress-Konto an dieses Microsoft-Konto gebunden – auch wenn dessen Benutzerprinzipalname von Ihrer E-Mail-Adresse abweicht." -#: includes/class-m365-login-sync.php:2326 +#: includes/class-m365-login-sync.php:2332 msgid "Assigned Microsoft account (UPN)" msgstr "Zugewiesenes Microsoft-Konto (UPN)" -#: includes/class-m365-login-sync.php:2329 +#: includes/class-m365-login-sync.php:2335 msgid "Optional. The user principal name of the Microsoft account that belongs to this user. Sign-in and user sync link exactly this account – needed for administrators whose user principal name differs from their WordPress e-mail address." msgstr "Optional. Der Benutzerprinzipalname des Microsoft-Kontos, das zu diesem Benutzer gehört. Anmeldung und Benutzer-Sync verknüpfen genau dieses Konto – nötig für Administratoren, deren Benutzerprinzipalname von ihrer WordPress-E-Mail-Adresse abweicht." -#: includes/class-m365-login-sync.php:2331 +#: includes/class-m365-login-sync.php:2337 msgid "Remove the link to the Microsoft account" msgstr "Verknüpfung mit dem Microsoft-Konto aufheben" -#: includes/class-m365-login-sync.php:2344 +#: includes/class-m365-login-sync.php:2350 msgid "These values are managed by the Microsoft 365 user sync and overwritten on the next run." msgstr "Diese Werte verwaltet der Microsoft-365-Benutzer-Sync; sie werden beim nächsten Lauf überschrieben." diff --git a/languages/m365-login.pot b/languages/m365-login.pot index d4061ce..fa0240c 100644 --- a/languages/m365-login.pot +++ b/languages/m365-login.pot @@ -126,7 +126,7 @@ msgstr "" msgid "Move up" msgstr "" -#: includes/class-m365-login-admin.php:294 includes/class-m365-login-admin.php:333 includes/class-m365-login-admin.php:359 includes/class-m365-login-admin.php:392 includes/class-m365-login-admin.php:566 includes/class-m365-login-sync.php:2224 +#: includes/class-m365-login-admin.php:294 includes/class-m365-login-admin.php:333 includes/class-m365-login-admin.php:359 includes/class-m365-login-admin.php:392 includes/class-m365-login-admin.php:566 includes/class-m365-login-sync.php:2230 msgid "You are not allowed to do this." msgstr "" @@ -1077,103 +1077,107 @@ msgstr "" msgid "More options on the Button tab under \"Custom login page\"." msgstr "" -#: includes/class-m365-login-auth.php:197 +#: includes/class-m365-login-auth.php:203 msgid "Password sign-in is disabled on this site. Please use the Microsoft button." msgstr "" -#: includes/class-m365-login-auth.php:1224 +#: includes/class-m365-login-auth.php:235 includes/class-m365-login-auth.php:1336 +msgid "Passwords are not used on this site. Please sign in with the Microsoft button." +msgstr "" + +#: includes/class-m365-login-auth.php:1286 msgid "Microsoft sign-in is temporarily unavailable. Please contact an administrator." msgstr "" -#: includes/class-m365-login-auth.php:1231 +#: includes/class-m365-login-auth.php:1293 msgid "Password sign-in is temporarily enabled for this browser (30 minutes)." msgstr "" -#: includes/class-m365-login-auth.php:1252 includes/class-m365-login-graph.php:63 +#: includes/class-m365-login-auth.php:1314 includes/class-m365-login-graph.php:63 msgid "Microsoft login is not configured yet." msgstr "" -#: includes/class-m365-login-auth.php:1253 +#: includes/class-m365-login-auth.php:1315 msgid "The login request expired or was invalid. Please try again." msgstr "" -#: includes/class-m365-login-auth.php:1254 +#: includes/class-m365-login-auth.php:1316 msgid "Microsoft sign-in was cancelled." msgstr "" -#: includes/class-m365-login-auth.php:1255 +#: includes/class-m365-login-auth.php:1317 msgid "Microsoft returned an error. Please try again." msgstr "" -#: includes/class-m365-login-auth.php:1256 +#: includes/class-m365-login-auth.php:1318 msgid "Could not complete the sign-in with Microsoft. Please try again or contact an administrator." msgstr "" -#: includes/class-m365-login-auth.php:1257 +#: includes/class-m365-login-auth.php:1319 msgid "The Microsoft sign-in could not be verified." msgstr "" -#: includes/class-m365-login-auth.php:1258 +#: includes/class-m365-login-auth.php:1320 msgid "Your Microsoft account did not provide an e-mail address." msgstr "" -#: includes/class-m365-login-auth.php:1259 +#: includes/class-m365-login-auth.php:1321 msgid "Your e-mail domain is not allowed to sign in here." msgstr "" -#: includes/class-m365-login-auth.php:1260 +#: includes/class-m365-login-auth.php:1322 msgid "No WordPress account exists for your Microsoft e-mail address." msgstr "" -#: includes/class-m365-login-auth.php:1261 +#: includes/class-m365-login-auth.php:1323 msgid "This WordPress account is linked to a different Microsoft account. Please contact an administrator." msgstr "" -#: includes/class-m365-login-auth.php:1262 +#: includes/class-m365-login-auth.php:1324 msgid "You are not allowed to sign in with this account." msgstr "" -#: includes/class-m365-login-auth.php:1263 +#: includes/class-m365-login-auth.php:1325 msgid "Your Microsoft account is not a member of a group that is allowed to sign in here." msgstr "" -#: includes/class-m365-login-auth.php:1264 +#: includes/class-m365-login-auth.php:1326 msgid "Your group membership could not be verified. Please contact an administrator." msgstr "" -#: includes/class-m365-login-auth.php:1265 +#: includes/class-m365-login-auth.php:1327 msgid "Your Microsoft account is a member of a group that is not allowed to sign in here." msgstr "" -#: includes/class-m365-login-auth.php:1266 +#: includes/class-m365-login-auth.php:1328 msgid "The fallback key is not valid." msgstr "" -#: includes/class-m365-login-auth.php:1267 +#: includes/class-m365-login-auth.php:1329 msgid "Too many attempts. Please wait 15 minutes." msgstr "" -#: includes/class-m365-login-auth.php:1268 +#: includes/class-m365-login-auth.php:1330 msgid "Too many sign-in attempts from your connection. Please wait a few minutes and try again." msgstr "" -#: includes/class-m365-login-auth.php:1269 includes/class-m365-login-sync.php:2132 +#: includes/class-m365-login-auth.php:1331 includes/class-m365-login-sync.php:2138 msgid "This account has been deactivated." msgstr "" -#: includes/class-m365-login-auth.php:1270 +#: includes/class-m365-login-auth.php:1332 msgid "For security reasons this administrator account is not linked automatically. Sign in once with your password and click \"Link Microsoft account\" on your profile page – or ask an administrator to enter your Microsoft account (user principal name) in your WordPress profile." msgstr "" -#: includes/class-m365-login-auth.php:1271 +#: includes/class-m365-login-auth.php:1333 msgid "The link could not be completed because you are no longer signed in to WordPress. Please sign in and try again." msgstr "" -#: includes/class-m365-login-auth.php:1272 +#: includes/class-m365-login-auth.php:1334 msgid "Your WordPress account is already linked to a different Microsoft account. An administrator can remove the link in your profile." msgstr "" -#: includes/class-m365-login-auth.php:1273 +#: includes/class-m365-login-auth.php:1335 msgid "Guest and external accounts cannot sign in here." msgstr "" @@ -1397,294 +1401,294 @@ msgid "Microsoft 365 returned no users at all while accounts are linked. Nothing msgstr "" #. translators: %d: number of accounts -#: includes/class-m365-login-sync.php:584 +#: includes/class-m365-login-sync.php:585 msgid "%d linked account belongs to another (or an unknown) tenant and was not deactivated or deleted. Unlink it by hand if it is no longer needed." msgid_plural "%d linked accounts belong to another (or an unknown) tenant and were not deactivated or deleted. Unlink them by hand if they are no longer needed." msgstr[0] "" msgstr[1] "" #. translators: 1: number of accounts, 2: limit -#: includes/class-m365-login-sync.php:595 +#: includes/class-m365-login-sync.php:596 msgid "Safety stop: %1$d accounts would be deactivated or deleted, more than the limit of %2$d per run. No account was deactivated or deleted. Check the sync groups and the tenant, then run the sync again (the limit can be changed with the m365_login_sync_deprovision_limit filter)." msgstr "" -#: includes/class-m365-login-sync.php:721 includes/class-m365-login-sync.php:779 includes/class-m365-login-sync.php:1227 includes/class-m365-login-sync.php:2277 +#: includes/class-m365-login-sync.php:722 includes/class-m365-login-sync.php:785 includes/class-m365-login-sync.php:1233 includes/class-m365-login-sync.php:2283 msgid "disabled in Microsoft 365" msgstr "" #. translators: %s: user principal name -#: includes/class-m365-login-sync.php:732 +#: includes/class-m365-login-sync.php:733 msgid "%s: no usable e-mail address, skipped." msgstr "" #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:739 +#: includes/class-m365-login-sync.php:740 msgid "%s: e-mail domain is not on the allow-list, skipped." msgstr "" #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:755 +#: includes/class-m365-login-sync.php:761 msgid "%s: the WordPress account with this e-mail address is linked to a different Microsoft account, skipped." msgstr "" #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:760 +#: includes/class-m365-login-sync.php:766 msgid "%s: privileged WordPress account – linked only when the Microsoft user principal name equals its e-mail address or the Microsoft account assigned in its profile, or when the person links it from the profile. Skipped." msgstr "" #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:764 +#: includes/class-m365-login-sync.php:770 msgid "%s: existing account linked." msgstr "" #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:790 +#: includes/class-m365-login-sync.php:796 msgid "%s: added to this site." msgstr "" #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:799 +#: includes/class-m365-login-sync.php:805 msgid "%s: reactivated (active in Microsoft 365 again)." msgstr "" #. translators: 1: e-mail address, 2: list of changed fields -#: includes/class-m365-login-sync.php:810 +#: includes/class-m365-login-sync.php:816 msgid "%1$s: updated (%2$s)." msgstr "" #. translators: 1: e-mail address, 2: role names -#: includes/class-m365-login-sync.php:837 +#: includes/class-m365-login-sync.php:843 msgid "%1$s: account created (%2$s)." msgstr "" #. translators: 1: e-mail address, 2: error message -#: includes/class-m365-login-sync.php:864 +#: includes/class-m365-login-sync.php:870 msgid "%1$s: account could not be created: %2$s" msgstr "" #. translators: 1: current e-mail address, 2: e-mail address in Microsoft 365 -#: includes/class-m365-login-sync.php:923 +#: includes/class-m365-login-sync.php:929 msgid "%1$s: the e-mail address in Microsoft 365 changed to %2$s. It is not changed automatically for privileged accounts – update it by hand if intended." msgstr "" #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:926 +#: includes/class-m365-login-sync.php:932 msgid "%s: e-mail address is used by another WordPress account and was not changed." msgstr "" #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:929 +#: includes/class-m365-login-sync.php:935 msgid "e-mail" msgstr "" #. translators: %s: profile field -#: includes/class-m365-login-sync.php:979 +#: includes/class-m365-login-sync.php:985 msgid "%s removed" msgstr "" #. translators: 1: e-mail address, 2: error message -#: includes/class-m365-login-sync.php:989 +#: includes/class-m365-login-sync.php:995 msgid "%1$s: profile could not be updated: %2$s" msgstr "" #. translators: %s: role names -#: includes/class-m365-login-sync.php:1098 +#: includes/class-m365-login-sync.php:1104 msgid "roles: %s" msgstr "" #. translators: 1: number of accounts, 2: limit -#: includes/class-m365-login-sync.php:1168 +#: includes/class-m365-login-sync.php:1174 msgid "Safety stop: %1$d accounts would lose administrative rights, more than the limit of %2$d per run (or all of them). Nothing was demoted, deactivated or deleted. Check the group → role mapping, then run the sync again (filter m365_login_sync_demotion_limit)." msgstr "" -#: includes/class-m365-login-sync.php:1219 includes/class-m365-login-sync.php:2278 +#: includes/class-m365-login-sync.php:1225 includes/class-m365-login-sync.php:2284 msgid "deleted in Microsoft 365" msgstr "" -#: includes/class-m365-login-sync.php:1230 includes/class-m365-login-sync.php:2279 +#: includes/class-m365-login-sync.php:1236 includes/class-m365-login-sync.php:2285 msgid "no longer a member of the sync groups" msgstr "" #. translators: 1: e-mail address, 2: reason -#: includes/class-m365-login-sync.php:1262 +#: includes/class-m365-login-sync.php:1268 msgid "%1$s: %2$s, but the account is protected (administrator or your own account) and was not changed." msgstr "" #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:1406 +#: includes/class-m365-login-sync.php:1412 msgid "%s: no valid user to receive the content is selected, so the account is deactivated instead of deleted." msgstr "" #. translators: 1: e-mail address, 2: reason -#: includes/class-m365-login-sync.php:1415 +#: includes/class-m365-login-sync.php:1421 msgid "%1$s: account deleted (%2$s)." msgstr "" #. translators: 1: e-mail address, 2: reason -#: includes/class-m365-login-sync.php:1424 +#: includes/class-m365-login-sync.php:1430 msgid "%1$s: account deactivated (%2$s)." msgstr "" -#: includes/class-m365-login-sync.php:1503 +#: includes/class-m365-login-sync.php:1509 msgid "Microsoft Graph refused the request. Grant the application permissions \"User.Read.All\" and \"GroupMember.Read.All\" with admin consent in Entra ID." msgstr "" #. translators: %s: error message -#: includes/class-m365-login-sync.php:1506 +#: includes/class-m365-login-sync.php:1512 msgid "Microsoft Graph error: %s" msgstr "" -#: includes/class-m365-login-sync.php:1524 +#: includes/class-m365-login-sync.php:1530 msgid "Log truncated." msgstr "" #. translators: 1: e-mail address, 2: error message -#: includes/class-m365-login-sync.php:1607 +#: includes/class-m365-login-sync.php:1613 msgid "%1$s: profile photo could not be read: %2$s" msgstr "" #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:1631 includes/class-m365-login-sync.php:1674 +#: includes/class-m365-login-sync.php:1637 includes/class-m365-login-sync.php:1680 msgid "%s: profile photo updated." msgstr "" #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:1650 +#: includes/class-m365-login-sync.php:1656 msgid "%s: profile photo could not be downloaded." msgstr "" #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:1657 +#: includes/class-m365-login-sync.php:1663 msgid "%s: profile photo is not a valid image or could not be saved." msgstr "" #. translators: %d: number of photos -#: includes/class-m365-login-sync.php:1680 +#: includes/class-m365-login-sync.php:1686 msgid "%d changed profile photo will be downloaded in the next run (download limit per run reached)." msgid_plural "%d changed profile photos will be downloaded in the next run (download limit per run reached)." msgstr[0] "" msgstr[1] "" #. translators: %s: e-mail address -#: includes/class-m365-login-sync.php:1695 +#: includes/class-m365-login-sync.php:1701 msgid "%s: profile photo removed." msgstr "" #. translators: %d: number of photos -#: includes/class-m365-login-sync.php:1723 +#: includes/class-m365-login-sync.php:1729 msgid "Profile photo sync is off: %d stored photo removed." msgid_plural "Profile photo sync is off: %d stored photos removed." msgstr[0] "" msgstr[1] "" -#: includes/class-m365-login-sync.php:1895 includes/class-m365-login-sync.php:1909 +#: includes/class-m365-login-sync.php:1901 includes/class-m365-login-sync.php:1915 msgid "Microsoft 365 (M365 Login)" msgstr "" -#: includes/class-m365-login-sync.php:1927 +#: includes/class-m365-login-sync.php:1933 msgid "Microsoft object ID" msgstr "" -#: includes/class-m365-login-sync.php:1928 +#: includes/class-m365-login-sync.php:1934 msgid "Microsoft tenant ID" msgstr "" -#: includes/class-m365-login-sync.php:1939 +#: includes/class-m365-login-sync.php:1945 msgid "Profile photo" msgstr "" -#: includes/class-m365-login-sync.php:1943 includes/class-m365-login-sync.php:2294 +#: includes/class-m365-login-sync.php:1949 includes/class-m365-login-sync.php:2300 msgid "Last sync" msgstr "" -#: includes/class-m365-login-sync.php:1957 includes/class-m365-login-sync.php:2161 includes/class-m365-login-sync.php:2308 +#: includes/class-m365-login-sync.php:1963 includes/class-m365-login-sync.php:2167 includes/class-m365-login-sync.php:2314 msgid "Microsoft 365" msgstr "" -#: includes/class-m365-login-sync.php:1998 +#: includes/class-m365-login-sync.php:2004 msgid "The link to the Microsoft account and a possible deactivation were kept because they secure the account. The next user sync copies selected profile fields again unless the person is excluded from the sync." msgstr "" -#: includes/class-m365-login-sync.php:2179 +#: includes/class-m365-login-sync.php:2185 msgid "Deactivated" msgstr "" -#: includes/class-m365-login-sync.php:2182 +#: includes/class-m365-login-sync.php:2188 msgid "Imported" msgstr "" -#: includes/class-m365-login-sync.php:2184 includes/class-m365-login-sync.php:2314 +#: includes/class-m365-login-sync.php:2190 includes/class-m365-login-sync.php:2320 msgid "Linked" msgstr "" -#: includes/class-m365-login-sync.php:2212 +#: includes/class-m365-login-sync.php:2218 msgid "Reactivate" msgstr "" -#: includes/class-m365-login-sync.php:2212 +#: includes/class-m365-login-sync.php:2218 msgid "Deactivate" msgstr "" -#: includes/class-m365-login-sync.php:2241 +#: includes/class-m365-login-sync.php:2247 msgid "Your Microsoft account is now linked. From now on you can sign in with the Microsoft button." msgstr "" -#: includes/class-m365-login-sync.php:2255 +#: includes/class-m365-login-sync.php:2261 msgid "The account has been deactivated and signed out everywhere." msgstr "" -#: includes/class-m365-login-sync.php:2256 +#: includes/class-m365-login-sync.php:2262 msgid "The account has been reactivated." msgstr "" #. translators: 1: date, 2: reason -#: includes/class-m365-login-sync.php:2283 +#: includes/class-m365-login-sync.php:2289 msgid "Deactivated since %1$s (%2$s)" msgstr "" #. translators: 1: date, 2: reason -#: includes/class-m365-login-sync.php:2285 +#: includes/class-m365-login-sync.php:2291 msgid "manually" msgstr "" #. translators: 1: date, 2: reason -#: includes/class-m365-login-sync.php:2287 +#: includes/class-m365-login-sync.php:2293 msgid "Status" msgstr "" -#: includes/class-m365-login-sync.php:2290 +#: includes/class-m365-login-sync.php:2296 msgid "Object ID" msgstr "" -#: includes/class-m365-login-sync.php:2311 +#: includes/class-m365-login-sync.php:2317 msgid "Microsoft account" msgstr "" -#: includes/class-m365-login-sync.php:2316 +#: includes/class-m365-login-sync.php:2322 msgid "Not linked" msgstr "" -#: includes/class-m365-login-sync.php:2319 +#: includes/class-m365-login-sync.php:2325 msgid "Link Microsoft account" msgstr "" -#: includes/class-m365-login-sync.php:2320 +#: includes/class-m365-login-sync.php:2326 msgid "You sign in with Microsoft once; afterwards this WordPress account is bound to that Microsoft account, even if its user principal name differs from your e-mail address." msgstr "" -#: includes/class-m365-login-sync.php:2326 +#: includes/class-m365-login-sync.php:2332 msgid "Assigned Microsoft account (UPN)" msgstr "" -#: includes/class-m365-login-sync.php:2329 +#: includes/class-m365-login-sync.php:2335 msgid "Optional. The user principal name of the Microsoft account that belongs to this user. Sign-in and user sync link exactly this account – needed for administrators whose user principal name differs from their WordPress e-mail address." msgstr "" -#: includes/class-m365-login-sync.php:2331 +#: includes/class-m365-login-sync.php:2337 msgid "Remove the link to the Microsoft account" msgstr "" -#: includes/class-m365-login-sync.php:2344 +#: includes/class-m365-login-sync.php:2350 msgid "These values are managed by the Microsoft 365 user sync and overwritten on the next run." msgstr ""