Page Menu
Home
In-Portal Phabricator
Search
Configure Global Search
Log In
Files
F772881
D288.id705.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sat, Feb 1, 8:40 PM
Size
28 KB
Mime Type
text/x-diff
Expires
Sun, Feb 2, 8:40 PM (14 h, 38 m)
Engine
blob
Format
Raw Data
Handle
556167
Attached To
D288: INP-1681 Add "Forgot Password" functionality to Admin Console
D288.id705.diff
View Options
Index: core/admin_templates/designs/without_login_design.tpl
===================================================================
--- /dev/null
+++ core/admin_templates/designs/without_login_design.tpl
@@ -0,0 +1,143 @@
+<inp2:m_Set skip_last_template="1"/>
+<inp2:adm_HTTPAuth result_to_var="http_auth"/>
+<inp2:m_include t="incs/header" nobody="yes"/>
+
+<body topmargin="0" leftmargin="0" marginheight="0" marginwidth="0" bgcolor="#FFFFFF">
+<style type="text/css">
+ <!--
+ html, body {
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ }
+
+ #header-div {
+ position: absolute;
+ top: 0px;
+ height: 160px;
+ left: 0px;
+ right: 0px;
+ background: url('img/login/login-top.png') no-repeat right top #007bf4;
+ z-index: 2;
+ }
+
+ #body-div {
+ position: absolute;
+ top: 160px;
+ bottom: 160px;
+ width: 100%;
+ text-align: center;
+ z-index: 5;
+ }
+
+ #footer-div {
+ position: absolute;
+ bottom: 0px;
+ height: 160px;
+ left: 0px;
+ right: 0px;
+ background: url('img/login/login-bottom.png') no-repeat left bottom #007bf4;
+ z-index: 2;
+ }
+
+ #outer {
+ position: absolute;
+ top: 50%;
+ left: 0px;
+ width: 100%;
+ height: 1px;
+ overflow: visible;
+ z-index: 10;
+ }
+
+ #inner {
+ text-align: left;
+ width: 100%;
+ height: 300px;
+ margin-left: -50%; /*** width / 2 ***/
+ position: absolute;
+ top: -150px; /*** height / 2 ***/
+ left: 50%;
+ z-index: 5;
+ /* border: 1px solid #000000; */
+ }
+
+ #form table {
+ border-radius: 20px;
+ -moz-border-radius: 20px;
+ -webkit-border-radius: 20px;
+ border: 1px solid #CCCCCC;
+ font-weight: normal;
+ background-color: #ECECEC;
+ z-index: 5;
+ }
+
+ #form table td {
+ padding: 2px 15px 2px 15px;
+ }
+
+ .login-table {
+ background: #ECECEC;
+ }
+
+ .roundbutton {
+ border-radius: 11px;
+ -moz-border-radius: 11px;
+ -webkit-border-radius: 11px;
+ cursor: pointer;
+ padding: 2px 5px;
+ text-decoration: none;
+ }
+ -->
+</style>
+
+<div id="header-div"></div>
+
+<div id="body-div">
+
+ <div id="outer">
+
+ <div id="inner" align="center">
+
+ <div id="logo" align="center" style="margin-bottom: 20px;">
+ <table class="head-table" style="background: none;">
+ <tr>
+ <inp2:m_if check="adm_AdminSkin" type="LogoLogin">
+ <td align="center"><img src="<inp2:adm_AdminSkin type='LogoLogin'/>" alt="<inp2:m_GetConfig var='Site_Name' html_escape='1'/>"></td>
+ <inp2:m_else/>
+ <inp2:m_if check="adm_AdminSkin" type="Logo">
+ <td>
+ <img src="<inp2:adm_AdminSkin type='Logo'/>" alt="<inp2:m_GetConfig var='Site_Name' html_escape='1'/>"><br/>
+ <inp2:m_if check="adm_AdminSkin" type="LogoBottom">
+ <img src="<inp2:adm_AdminSkin type='LogoBottom'/>" alt="<inp2:m_GetConfig var='Site_Name' html_escape='1'/>">
+ </inp2:m_if>
+ </td>
+ </inp2:m_if>
+
+ <td align="left" valign="middle">
+ <span style="font-size: 48px; color: black;"><inp2:m_GetConfig var="Site_Name"/></span>
+ </td>
+ </inp2:m_if>
+ </tr>
+ </table>
+ </div>
+
+ <div id="form" align="center">
+ <inp2:m_if check="m_Param" name="http_auth">
+ <inp2:m_RenderElement name="content"/>
+ <inp2:m_else/>
+ <h1 style="color: red;">401 Authentication Required</h1>
+ </inp2:m_if>
+ </div>
+
+ </div>
+
+ </div>
+
+</div>
+
+<div id="footer-div"></div>
+
+<inp2:m_include t="incs/footer"/>
Index: core/admin_templates/login.tpl
===================================================================
--- core/admin_templates/login.tpl
+++ core/admin_templates/login.tpl
@@ -1,265 +1,131 @@
-<inp2:m_Set skip_last_template="1"/>
-<inp2:adm_HTTPAuth result_to_var="http_auth"/>
-<inp2:m_include t="incs/header" nobody="yes"/>
-
-<body topmargin="0" leftmargin="0" marginheight="0" marginwidth="0" bgcolor="#FFFFFF">
- <style type="text/css">
- <!--
- html, body {
- margin: 0;
- padding: 0;
- width: 100%;
- height: 100%;
- overflow: hidden;
- }
-
- #header-div {
- position: absolute;
- top: 0px;
- height: 160px;
- left: 0px;
- right: 0px;
- background: url('img/login/login-top.png') no-repeat right top #007bf4;
- z-index: 2;
- }
-
- #body-div {
- position: absolute;
- top: 160px;
- bottom: 160px;
- width: 100%;
- text-align: center;
- z-index: 5;
- }
-
- #footer-div {
- position: absolute;
- bottom: 0px;
- height: 160px;
- left: 0px;
- right: 0px;
- background: url('img/login/login-bottom.png') no-repeat left bottom #007bf4;
- z-index: 2;
- }
-
- #outer {
- position: absolute;
- top: 50%;
- left: 0px;
- width: 100%;
- height: 1px;
- overflow: visible;
- z-index: 10;
- }
-
- #inner {
- text-align: left;
- width: 100%;
- height: 300px;
- margin-left: -50%; /*** width / 2 ***/
- position: absolute;
- top: -150px; /*** height / 2 ***/
- left: 50%;
- z-index: 5;
- /* border: 1px solid #000000; */
- }
-
- #form table {
- border-radius: 20px;
- -moz-border-radius: 20px;
- -webkit-border-radius: 20px;
- border: 1px solid #CCCCCC;
- font-weight: normal;
- background-color: #ECECEC;
- z-index: 5;
- }
-
- #form table td {
- padding: 2px 15px 2px 15px;
- }
-
- .login-table {
- background: #ECECEC;
- }
-
- .roundbutton {
- border-radius: 11px;
- -moz-border-radius: 11px;
- -webkit-border-radius: 11px;
- cursor: pointer;
- padding: 2px 5px;
- text-decoration: none;
- }
- -->
- </style>
-
- <div id="header-div"></div>
-
- <div id="body-div">
-
- <div id="outer">
-
- <div id="inner" align="center">
-
- <div id="logo" align="center" style="margin-bottom: 20px;">
- <table class="head-table" style="background: none;">
- <tr>
- <inp2:m_if check="adm_AdminSkin" type="LogoLogin">
- <td align="center"><img src="<inp2:adm_AdminSkin type='LogoLogin'/>" alt="<inp2:m_GetConfig var='Site_Name' html_escape='1'/>"></td>
- <inp2:m_else/>
- <inp2:m_if check="adm_AdminSkin" type="Logo">
- <td>
- <img src="<inp2:adm_AdminSkin type='Logo'/>" alt="<inp2:m_GetConfig var='Site_Name' html_escape='1'/>"><br/>
- <inp2:m_if check="adm_AdminSkin" type="LogoBottom">
- <img src="<inp2:adm_AdminSkin type='LogoBottom'/>" alt="<inp2:m_GetConfig var='Site_Name' html_escape='1'/>">
- </inp2:m_if>
- </td>
- </inp2:m_if>
-
- <td align="left" valign="middle">
- <span style="font-size: 48px; color: black;"><inp2:m_GetConfig var="Site_Name"/></span>
- </td>
- </inp2:m_if>
- </tr>
- </table>
- </div>
-
- <div id="form" align="center">
- <inp2:m_if check="m_Param" name="http_auth">
- <inp2:u.login-admin_FormName name="login"/>
-
- <inp2:m_if check="m_MaintenanceMode">
- <inp2:m_GetConfig name="MaintenanceMessageAdmin"/>
- <inp2:m_else/>
- <table class="login-table">
- <tr>
- <td colspan="2" style="text-align: center">
- <inp2:m_if check="u.login-admin_HasError" field="any">
- <span class="error-cell"><inp2:u.login-admin_Error field="UserLogin"/></span>
- </inp2:m_if><br/>
- </td>
- </tr>
- <tr>
- <td class="text"><inp2:m_phrase name="la_fld_EmailOrUsername"/>:</td>
- <td><input type="text" id="user_login" name="<inp2:u.login-admin_InputName name='UserLogin'/>" class="text" value="<inp2:u.login-admin_CookieUsername field='UserLogin'/>" style="width: 150px;"></td>
- </tr>
- <tr>
- <td class="text"><inp2:m_phrase name="la_fld_Password"/>:</td>
- <td><input type="password" name="<inp2:u.login-admin_InputName name='UserPassword'/>" class="text" style="width: 150px;"></td>
- </tr>
- <tr>
- <td colspan="2">
- <input type="checkbox" id="save_username" name="cb_save_username"<inp2:m_if check="m_GetEquals" name="save_username" value="" inverse="inverse"> checked="checked"</inp2:m_if>/>
- <label for="save_username"><inp2:m_Phrase label="la_SaveLogin"/></label>
- </td>
- </tr>
- <tr>
- <td colspan="2" align="center" style="padding: 5px 15px 10px 15px;">
- <input type="submit" name="login_button" value="<inp2:m_phrase name='la_Login' no_editing='1'/>" class="kx-login-button roundbutton"></td>
- </tr>
- </table>
- </inp2:m_if>
-
- <inp2:m_if check="m_GetConst" name="DBG_RESET_ROOT">
- <inp2:m_if check="m_Get" var="reset">
- <script type="text/javascript">
- $(document).ready(
- function () {
- alert('<inp2:m_Phrase label="la_msg_RootPasswordWasReset" js_escape="1"/>');
- }
- );
- </script>
- <inp2:m_else/>
- <br/>
- <a href="<inp2:m_Link template='login' u_event='OnResetRootPassword' pass='m,u'/>"><inp2:m_Phrase label="la_btn_ResetRootPassword"/></a>
- </inp2:m_if>
- </inp2:m_if>
- <inp2:m_else/>
- <h1 style="color: red;">401 Authentication Required</h1>
- </inp2:m_if>
- </div>
-
- </div>
-
- </div>
-
- </div>
-
- <div id="footer-div"></div>
-
- <inp2:m_if check="m_Param" name="http_auth">
- <input type="hidden" name="next_template" value="<inp2:m_if check='m_GetEquals' name='next_template' value="">index<inp2:m_else/><inp2:m_get var='next_template'/></inp2:m_if>"/>
- <input type="hidden" name="skip_last_template" value="1"/>
-
- <script type="text/javascript">
-
- $(document).ready(
- function() {
- $('#user_login').focus();
- Application.SetVar('events[u.login-admin]', 'OnLogin');
- }
- );
-
- var a_parent = window.parent;
- var to_close = new Array();
-
- function redirect() {
- // alert('running redirect in "' + window.name + '"');
- // window.name = 'redirect';
- var $main_frame = getFrame('main');
- a_parent = window;
-
- try {
- var i = 0;
- while (i < 10) {
- i++;
- var $opener = $main_frame.getWindowOpener(a_parent);
- // console.log('window: ', a_parent.name, '; opener: ', $opener ? $opener.name : null);
-
- if ($opener) {
- to_close.push(a_parent);
- a_parent = $opener;
- continue;
- }
-
- if (a_parent.name == 'main_frame') {
- break;
- }
-
- if (a_parent.parent && a_parent.parent.name != a_parent.name) {
- a_parent = a_parent.parent;
- continue;
- }
- }
- }
- catch (err) {
- // another website is opened in parent window
- alert('Error while trying to access window opener: [' + err.message + ']');
- i = 10;
- }
-
- if (i < 10) {
- // console.log('to close: ', to_close);
- setTimeout(close_windows, 100);
- }
- }
-
- function close_windows() {
- page = '<inp2:m_t t="index" expired="1" m_wid="" no_amp="1" js_escape="1"/>'; // a_parent.location.href + '?expired=1';
- // alert('redirecting ' + a_parent.name + ' to ' + page);
- a_parent.location.href = page;
-
- // alert('closing ' + to_close.length + ' windows');
- for (var c = (to_close.length - 1); c >= 0; c--) {
- // alert('closing ' + to_close[c].name);
- window_close(to_close[c]);
- }
- }
-
- if (window.top.frames.length > 0) {
- redirect();
- }
- </script>
- </inp2:m_if>
+<inp2:m_DefineElement name="content">
+ <inp2:u.login-admin_FormName name="login"/>
-<inp2:m_include t="incs/footer"/>
\ No newline at end of file
+ <inp2:m_if check="m_MaintenanceMode">
+ <inp2:m_GetConfig name="MaintenanceMessageAdmin"/>
+ <inp2:m_else/>
+ <table class="login-table">
+ <tr>
+ <td colspan="2" style="text-align: center">
+ <inp2:m_if check="u.login-admin_HasError" field="any">
+ <span class="error-cell"><inp2:u.login-admin_Error field="UserLogin"/></span>
+ </inp2:m_if><br/>
+ </td>
+ </tr>
+ <tr>
+ <td class="text"><inp2:m_phrase name="la_fld_EmailOrUsername"/>:</td>
+ <td><input type="text" id="user_login" name="<inp2:u.login-admin_InputName name='UserLogin'/>" class="text" value="<inp2:u.login-admin_CookieUsername field='UserLogin'/>" style="width: 150px;"></td>
+ </tr>
+ <tr>
+ <td class="text"><inp2:m_phrase name="la_fld_Password"/>:</td>
+ <td><input type="password" name="<inp2:u.login-admin_InputName name='UserPassword'/>" class="text" style="width: 150px;"></td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <input type="checkbox" id="save_username" name="cb_save_username"<inp2:m_if check="m_GetEquals" name="save_username" value="" inverse="inverse"> checked="checked"</inp2:m_if>/>
+ <label for="save_username"><inp2:m_Phrase label="la_SaveLogin"/></label>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" align="center" style="padding: 5px 15px 5px 15px;">
+ <input type="submit" name="login_button" value="<inp2:m_phrase name='la_Login' no_editing='1'/>" class="kx-login-button roundbutton"><br/>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" align="center" style="padding: 0 15px 10px 15px;">
+ <a href="<inp2:m_Link template='login/forgot_password'/>"><inp2:m_Phrase name="la_text_ForgotPassword"/></a>
+ </td>
+ </tr>
+ </table>
+ </inp2:m_if>
+
+ <inp2:m_if check="m_GetConst" name="DBG_RESET_ROOT">
+ <inp2:m_if check="m_Get" var="reset">
+ <script type="text/javascript">
+ $(document).ready(
+ function () {
+ alert('<inp2:m_Phrase label="la_msg_RootPasswordWasReset" js_escape="1"/>');
+ }
+ );
+ </script>
+ <inp2:m_else/>
+ <br/>
+ <a href="<inp2:m_Link template='login' u_event='OnResetRootPassword' pass='m,u'/>"><inp2:m_Phrase label="la_btn_ResetRootPassword"/></a>
+ </inp2:m_if>
+ </inp2:m_if>
+
+ <input type="hidden" name="next_template" value="<inp2:m_if check='m_GetEquals' name='next_template' value="">index<inp2:m_else/><inp2:m_get var='next_template'/></inp2:m_if>"/>
+ <input type="hidden" name="skip_last_template" value="1"/>
+
+ <script type="text/javascript">
+
+ $(document).ready(
+ function() {
+ $('#user_login').focus();
+ Application.SetVar('events[u.login-admin]', 'OnLogin');
+ }
+ );
+
+ var a_parent = window.parent;
+ var to_close = new Array();
+
+ function redirect() {
+// alert('running redirect in "' + window.name + '"');
+// window.name = 'redirect';
+ var $main_frame = getFrame('main');
+ a_parent = window;
+
+ try {
+ var i = 0;
+ while (i < 10) {
+ i++;
+ var $opener = $main_frame.getWindowOpener(a_parent);
+// console.log('window: ', a_parent.name, '; opener: ', $opener ? $opener.name : null);
+
+ if ($opener) {
+ to_close.push(a_parent);
+ a_parent = $opener;
+ continue;
+ }
+
+ if (a_parent.name == 'main_frame') {
+ break;
+ }
+
+ if (a_parent.parent && a_parent.parent.name != a_parent.name) {
+ a_parent = a_parent.parent;
+ continue;
+ }
+ }
+ }
+ catch (err) {
+ // another website is opened in parent window
+ alert('Error while trying to access window opener: [' + err.message + ']');
+ i = 10;
+ }
+
+ if (i < 10) {
+// console.log('to close: ', to_close);
+ setTimeout(close_windows, 100);
+ }
+ }
+
+ function close_windows() {
+ page = '<inp2:m_t t="index" expired="1" m_wid="" no_amp="1" js_escape="1"/>'; // a_parent.location.href + '?expired=1';
+// alert('redirecting ' + a_parent.name + ' to ' + page);
+ a_parent.location.href = page;
+
+// alert('closing ' + to_close.length + ' windows');
+ for (var c = (to_close.length - 1); c >= 0; c--) {
+// alert('closing ' + to_close[c].name);
+ window_close(to_close[c]);
+ }
+ }
+
+ if (window.top.frames.length > 0) {
+ redirect();
+ }
+ </script>
+</inp2:m_DefineElement>
+
+<inp2:m_include template="designs/without_login_design" page_class="inner"/>
Index: core/admin_templates/login/forgot_password.tpl
===================================================================
--- /dev/null
+++ core/admin_templates/login/forgot_password.tpl
@@ -0,0 +1,43 @@
+<inp2:m_DefineElement name="content" prefix="u.forgot">
+ <inp2:u.forgot_FormName name="forgot_password"/>
+
+ <table class="login-table">
+ <tr>
+ <td colspan="2" style="text-align: center">
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" style="text-align: center">
+ <inp2:m_Phrase label="la_text_EnterForgotUserEmail"/>
+ </td>
+ </tr>
+ <tr>
+ <td class="text"><inp2:m_Phrase name="la_fld_EmailOrUsername"/>:</td>
+ <td>
+ <inp2:m_if check="{$prefix}_HasError" field="ForgotLogin">
+ <span class="error-cell"><inp2:$prefix_Error field="ForgotLogin"/><br></span>
+ </inp2:m_if>
+
+ <input type="text" class="input-text" name="<inp2:$prefix_InputName field='ForgotLogin'/>" id="<inp2:$prefix_InputName field='ForgotLogin'/>" value="<inp2:$prefix_Field name='ForgotLogin'/>" />
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" align="center" style="padding: 5px 15px 10px 15px;">
+ <input type="submit" name="login_button" value="<inp2:m_Phrase label='la_btn_SendPassword' no_editing='1'/>" class="kx-login-button roundbutton">
+ <input type="hidden" name="template_success" value="login/forgot_password_reset_notice"/>
+ <input type="hidden" name="reset_confirm_template" value="login/forgot_password_reset"/>
+ </td>
+ </tr>
+ </table>
+
+ <script type="text/javascript">
+ $(document).ready(
+ function() {
+ $('#' + jq('<inp2:$prefix_InputName field="ForgotLogin"/>')).focus();
+ Application.SetVar('events[<inp2:m_Param name="prefix"/>]', 'OnForgotPassword');
+ }
+ );
+ </script>
+</inp2:m_DefineElement>
+
+<inp2:m_include template="designs/without_login_design" page_class="inner"/>
Index: core/admin_templates/login/forgot_password_reset.tpl
===================================================================
--- /dev/null
+++ core/admin_templates/login/forgot_password_reset.tpl
@@ -0,0 +1,61 @@
+<inp2:m_DefineElement name="content" prefix="u.forgot">
+ <table class="login-table">
+ <tr>
+ <td colspan="2" style="text-align: center">
+ </td>
+ </tr>
+
+ <inp2:m_if check="u_TestCodeIsValid">
+ <tr>
+ <td colspan="2" style="text-align: center">
+ <inp2:m_Phrase label="la_text_PasswordRequestConfirm"/>
+ </td>
+ </tr>
+ <tr>
+ <td class="text"><inp2:m_Phrase name="la_fld_Password"/>:</td>
+ <td>
+ <inp2:m_if check="{$prefix}_HasError" field="Password">
+ <span class="error-cell"><inp2:$prefix_Error field="Password"/><br></span>
+ </inp2:m_if>
+
+ <input type="password" class="input-text" name="<inp2:$prefix_InputName field='Password'/>" id="<inp2:$prefix_InputName field='Password'/>" value="<inp2:$prefix_Field name='Password_plain'/>" />
+ </td>
+ </tr>
+ <tr>
+ <td class="text"><inp2:m_Phrase name="la_fld_VerifyPassword"/>:</td>
+ <td>
+ <inp2:m_if check="{$prefix}_HasError" field="VerifyPassword">
+ <span class="error-cell"><inp2:$prefix_Error field="VerifyPassword"/><br></span>
+ </inp2:m_if>
+
+ <input type="password" class="input-text" name="<inp2:$prefix_InputName field='VerifyPassword'/>" id="<inp2:$prefix_InputName field='VerifyPassword'/>" value="<inp2:$prefix_Field name='VerifyPassword_plain'/>" />
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" align="center" style="padding: 5px 15px 10px 15px;">
+ <input type="submit" name="login_button" value="<inp2:m_phrase name='la_btn_Update' no_editing='1'/>" class="kx-login-button roundbutton">
+ <input type="hidden" name="next_template" value="index"/>
+ </td>
+ </tr>
+ <inp2:m_else/>
+ <tr>
+ <td colspan="2" style="text-align: center">
+ <span class="error-cell"><inp2:u_Error field="PwResetConfirm"/></span>
+ <br /> <br />
+ <a href="<inp2:m_Link template='index'/>"><inp2:m_Phrase label="la_btn_ReturnToHome"/></a>
+ </td>
+ </tr>
+ </inp2:m_if>
+ </table>
+
+ <script type="text/javascript">
+ $(document).ready(
+ function() {
+ $('#' + jq('<inp2:$prefix_InputName field="Password"/>')).focus();
+ Application.SetVar('events[<inp2:m_Param name="prefix"/>]', 'OnResetLostPassword');
+ }
+ );
+ </script>
+</inp2:m_DefineElement>
+
+<inp2:m_include template="designs/without_login_design" page_class="inner"/>
Index: core/admin_templates/login/forgot_password_reset_notice.tpl
===================================================================
--- /dev/null
+++ core/admin_templates/login/forgot_password_reset_notice.tpl
@@ -0,0 +1,14 @@
+<inp2:m_DefineElement name="content">
+ <table class="login-table">
+ <tr>
+ <td class="text"><inp2:m_Phrase label="la_text_ForgotPassResetEmailSent"/></td>
+ </tr>
+ <tr>
+ <td align="center" style="padding: 5px 15px 10px 15px;">
+ <input type="button" name="login_button" value="<inp2:m_phrase name='lu_btn_Ok' no_editing='1'/>" class="kx-login-button roundbutton" onclick="redirect('<inp2:m_Link template="index" no_amp="1" js_escape="1"/>');">
+ </td>
+ </tr>
+ </table>
+</inp2:m_DefineElement>
+
+<inp2:m_include template="designs/without_login_design" page_class="inner"/>
Index: core/install/english.lang
===================================================================
--- core/install/english.lang
+++ core/install/english.lang
@@ -51,16 +51,19 @@
<PHRASE Label="la_btn_Reset" Module="Core" Type="1">UmVzZXQ=</PHRASE>
<PHRASE Label="la_btn_ResetAndValidateConfigFiles" Module="Core" Type="1">UmVzZXQgJmFtcDsgVmFsaWRhdGUgQ29uZmlnIEZpbGVz</PHRASE>
<PHRASE Label="la_btn_ResetRootPassword" Module="Core" Type="1">UmVzZXQgInJvb3QiIHBhc3N3b3Jk</PHRASE>
+ <PHRASE Label="la_btn_ReturnToHome" Module="Core" Type="1">UmV0dXJuIHRvIEhvbWU=</PHRASE>
<PHRASE Label="la_btn_Save" Module="Core" Type="1">U2F2ZQ==</PHRASE>
<PHRASE Label="la_btn_SaveChanges" Module="Core" Type="1">U2F2ZSBDaGFuZ2Vz</PHRASE>
<PHRASE Label="la_btn_SectionProperties" Module="Core" Type="1">U2VjdGlvbiBQcm9wZXJ0aWVz</PHRASE>
<PHRASE Label="la_btn_SectionTemplate" Module="Core" Type="1">U2VjdGlvbiBUZW1wbGF0ZQ==</PHRASE>
<PHRASE Label="la_btn_SelectAll" Module="Core" Type="1">U2VsZWN0IEFsbA==</PHRASE>
+ <PHRASE Label="la_btn_SendPassword" Module="Core" Type="1">U2VuZCBQYXNzd29yZA==</PHRASE>
<PHRASE Label="la_btn_SetValue" Module="Core" Type="1">U2V0IFZhbHVl</PHRASE>
<PHRASE Label="la_btn_ShowStructure" Module="Core" Type="1">U2hvdyBTdHJ1Y3R1cmU=</PHRASE>
<PHRASE Label="la_btn_Synchronize" Module="Core" Type="1">U3luY2hyb25pemU=</PHRASE>
<PHRASE Label="la_btn_Unselect" Module="Core" Type="1">VW5zZWxlY3Q=</PHRASE>
<PHRASE Label="la_btn_Up" Module="Core" Type="1">VXA=</PHRASE>
+ <PHRASE Label="la_btn_Update" Module="Core" Type="1">VXBkYXRl</PHRASE>
<PHRASE Label="la_btn_UseDraft" Module="Core" Type="1">VXNl</PHRASE>
<PHRASE Label="la_By" Module="Core" Type="1">Ynk=</PHRASE>
<PHRASE Label="la_Cancel" Module="Core" Type="1">Q2FuY2Vs</PHRASE>
@@ -1369,7 +1372,10 @@
<PHRASE Label="la_text_disclaimer_part2" Module="Core" Type="1">UGxlYXNlIG1ha2Ugc3VyZSB0byBCQUNLVVAgeW91ciBkYXRhYmFzZShzKSBiZWZvcmUgcnVubmluZyB0aGlzIHV0aWxpdHkh</PHRASE>
<PHRASE Label="la_Text_Edit" Module="Core" Type="1">RWRpdA==</PHRASE>
<PHRASE Label="la_Text_Email" Module="Core" Type="1">RW1haWw=</PHRASE>
+ <PHRASE Label="la_text_EnterForgotUserEmail" Module="Core" Type="1">RW50ZXIgeW91ciBVc2VybmFtZSBvciBFbWFpbCBBZGRyZXNzIGJlbG93IHRvIGhhdmUgeW91ciBhY2NvdW50IGluZm9ybWF0aW9uIHNlbnQgdG8gdGhlIGVtYWlsIGFkZHJlc3Mgb2YgeW91ciBhY2NvdW50Lg==</PHRASE>
<PHRASE Label="la_text_FollowingLinesWereNotImported" Module="Core" Type="1">Rm9sbG93aW5nIGxpbmVzIHdlcmUgTk9UIGltcG9ydGVk</PHRASE>
+ <PHRASE Label="la_text_ForgotPassResetEmailSent" Module="Core" Type="1">QW4gYXV0b21hdGljIGVtYWlsIGhhcyBiZWVuIHNlbnQgdG8geW91ciBlbWFpbCBhZGRyZXNzIG9uIGZpbGUuIFBsZWFzZSBmb2xsb3cgdGhlIGxpbmsgaW4gdGhlIGVtYWlsIGluIG9yZGVyIHRvIHJlY2VpdmUgYSBuZXcgcGFzc3dvcmQuIA==</PHRASE>
+ <PHRASE Label="la_text_ForgotPassword" Module="Core" Type="1">Rm9yZ290IHBhc3N3b3JkPw==</PHRASE>
<PHRASE Label="la_Text_FrontOnly" Module="Core" Type="1">RnJvbnQtRW5kIE9ubHk=</PHRASE>
<PHRASE Label="la_Text_General" Module="Core" Type="1">R2VuZXJhbA==</PHRASE>
<PHRASE Label="la_Text_Hot" Module="Core" Type="1">SG90</PHRASE>
@@ -1387,6 +1393,7 @@
<PHRASE Label="la_Text_None" Module="Core" Type="1">Tm9uZQ==</PHRASE>
<PHRASE Label="la_text_NoPermission" Module="Core" Type="1">Tm8gUGVybWlzc2lvbg==</PHRASE>
<PHRASE Label="la_text_Or" Module="Core" Type="1">b3I=</PHRASE>
+ <PHRASE Label="la_text_PasswordRequestConfirm" Module="Core" Type="1">UGxlYXNlIGNvbmZpcm0gdGhhdCB5b3Ugd2FudCB0byByZXNldCB5b3VyIHBhc3N3b3JkLiA=</PHRASE>
<PHRASE Label="la_Text_Phone" Module="Core" Type="1">UGhvbmU=</PHRASE>
<PHRASE Label="la_Text_Pop" Module="Core" Type="1">UG9wdWxhcg==</PHRASE>
<PHRASE Label="la_text_popularity" Module="Core" Type="1">UG9wdWxhcml0eQ==</PHRASE>
Index: core/units/users/users_event_handler.php
===================================================================
--- core/units/users/users_event_handler.php
+++ core/units/users/users_event_handler.php
@@ -865,6 +865,13 @@
$min_pwd_reset_delay = $this->Application->ConfigValue('Users_AllowReset');
$found = ($user->GetDBField('Status') == STATUS_ACTIVE) && strlen($user->GetDBField('Password'));
+ if ( $this->Application->isAdmin ) {
+ $found = $found && $user->GetDBField('UserType') == UserType::ADMIN;
+ }
+ else {
+ $found = $found && $user->GetDBField('UserType') == UserType::USER;
+ }
+
if ( !$user->GetDBField('PwResetConfirm') ) {
// no reset made -> allow
$allow_reset = true;
@@ -1936,6 +1943,8 @@
$user_helper->loginUserById( $user->GetID() );
}
}
+
+ $this->setNextTemplate($event);
}
/**
Event Timeline
Log In to Comment