Index: admin_templates/login.tpl =================================================================== --- admin_templates/login.tpl (revision 14610) +++ admin_templates/login.tpl (working copy) @@ -153,6 +153,18 @@ + + + + + +

401 Authentication Required

Index: install/english.lang =================================================================== --- install/english.lang (revision 14610) +++ install/english.lang (working copy) @@ -1498,6 +1498,8 @@ QXV0by1EZXRlY3Q= Q29va2llcw== UXVlcnkgU3RyaW5nIChTSUQp + UmVzZXQgInJvb3QiIHBhc3N3b3Jk + WW91ciAicm9vdCIgcGFzc3dvcmQgaGFzIGJlZW4gcmVzZXQuIFBsZWFzZSByZW1vdmUgREJHX1JFU0VUX1JPT1QgY29uc3RhbnQgYW5kIGNoZWNrIHlvdXIgZS1tYWlsIGFkZHJlc3Mu U3ViamVjdDogTmV3IENhdGVnb3J5ICI8aW5wMjpjX0ZpZWxkIG5hbWU9Ik5hbWUiLz4iIC0gQWRkZWQKCllvdXIgc3VnZ2VzdGVkIGNhdGVnb3J5ICI8aW5wMjpjX0ZpZWxkIG5hbWU9Ik5hbWUiLz4iIGhhcyBiZWVuIGFkZGVkLg== @@ -1535,6 +1537,7 @@ U3ViamVjdDogVXNlciBVbnN1YnNyaWJlZCBmcm9tIE1haWxpbmcgTGlzdAoKQSB1c2VyICI8aW5wMjp1X0ZpZWxkIG5hbWU9IkVtYWlsIi8+IiBoYXMgdW5zdWJzY3JpYmVkIGZyb20gdGhlIG1haWxpbmcgbGlzdCBvbiA8YSBocmVmPSI8aW5wMjptX0Jhc2VVcmwvPiI+PGlucDI6bV9CYXNlVXJsLz48L2E+Lg== U3ViamVjdDogVXNlciBSZWdpc3RyYXRpb24gaXMgVmFsaWRhdGVkCgpXZWxjb21lIHRvIEluLXBvcnRhbCE8YnIvPjxici8+DQoNCllvdXIgdXNlciByZWdpc3RyYXRpb24gaGFzIGJlZW4gYXBwcm92ZWQuIFlvdSBjYW4gbG9naW4gbm93IDxhIGhyZWY9IjxpbnAyOm1fQmFzZVVybC8+Ij48aW5wMjptX0Jhc2VVcmwvPjwvYT4gdXNpbmcgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjo8YnIvPjxici8+DQoNCj09PT09PT09PT09PT09PT09PTxici8+DQpVc2VybmFtZTogIjxpbnAyOnVfRmllbGQgbmFtZT0iTG9naW4iLz4iPGJyLz4NClBhc3N3b3JkOiAiPGlucDI6dV9GaWVsZCBuYW1lPSJQYXNzd29yZF9wbGFpbiIvPiI8YnIvPg0KPT09PT09PT09PT09PT09PT09PGJyLz48YnIvPg0K U3ViamVjdDogTmV3IFVzZXIgUmVnaXN0cmF0aW9uIGlzIFZhbGlkYXRlZAoKVXNlciAiPGlucDI6dV9GaWVsZCBuYW1lPSJMb2dpbiIvPiIgaGFzIGJlZW4gdmFsaWRhdGVkLg== + U3ViamVjdDogUm9vdCBSZXNldCBQYXNzd29yZAoKWW91ciBuZXcgcGFzc3dvcmQgaXM6IDxpbnAyOm1fR2V0IG5hbWU9InJvb3RfcGFzc3dvcmQiLz4= Index: install/install_data.sql =================================================================== --- install/install_data.sql (revision 14610) +++ install/install_data.sql (working copy) @@ -171,7 +171,9 @@ INSERT INTO Events (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'FORM.SUBMISSION.REPLY.FROM.USER.BOUNCED', NULL, 1, 0, 'Core', 'Form Submission Admin Reply Delivery Failure', 1, 1, 1); INSERT INTO Events (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'USER.NEW.PASSWORD', NULL, 1, 0, 'Core', 'Sends new password to an existing user', 0, 1, 0); INSERT INTO Events (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'USER.ADD.BYADMIN', NULL, 1, 0, 'Core', 'Sends password to a new user', 0, 1, 0); +INSERT INTO Events (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, Module, Description, Type, AllowChangingSender, AllowChangingRecipient) VALUES(DEFAULT, 'ROOT.RESET.PASSWORD', NULL, 1, 0, 'Core', 'Root Reset Password', 1, 0, 0); + INSERT INTO IdGenerator VALUES ('100'); INSERT INTO PortalGroup VALUES (15, 'Everyone', 'Everyone', 0, 1, 0, 1, 0); Index: install/upgrades.sql =================================================================== --- install/upgrades.sql (revision 14610) +++ install/upgrades.sql (working copy) @@ -2107,6 +2107,8 @@ SET DirectLinkAuthKey = SUBSTRING( MD5( CONCAT(CategoryId, ':', ParentId, ':', l<%PRIMARY_LANGUAGE%>_Name, ':b38') ), 1, 20) WHERE DirectLinkAuthKey = ''; +INSERT INTO Events (EventId, Event, ReplacementTags, Enabled, FrontEndOnly, FromUserId, Module, Description, Type) VALUES(DEFAULT, 'ROOT.RESET.PASSWORD', NULL, 1, 0, NULL, 'Core:Category', 'Root Reset Password', 1); + INSERT INTO ConfigurationValues VALUES(DEFAULT, 'ExcludeTemplateSectionsFromSearch', '0', 'In-Portal', 'in-portal:configure_categories', 'la_title_General', 'la_config_ExcludeTemplateSectionsFromSearch', 'checkbox', '', '', 10.15, 0, 0, NULL); ALTER TABLE Agents Index: units/users/users_event_handler.php =================================================================== --- units/users/users_event_handler.php (revision 14610) +++ units/users/users_event_handler.php (working copy) @@ -128,6 +128,10 @@ // permission is checked in OnLogin event directly return true; } + + if ( $event->Name == 'OnResetRootPassword' ) { + return defined('DBG_RESET_ROOT') && DBG_RESET_ROOT; + } if ( !$this->Application->isAdminUser ) { $user_id = $this->Application->RecallVar('user_id'); @@ -1689,4 +1693,24 @@ } } } + + /** + * Generates new Root password and email it + * + * @param kEvent $event + */ + function OnResetRootPassword(&$event) + { + $new_root_password = kUtil::generatePassword(); + $password_formatter =& $this->Application->recallObject('kPasswordFormatter'); + /* @var $password_formatter kPasswordFormatter */ + + $new_root_password_encrypted = $password_formatter->EncryptPassword($new_root_password, 'b38'); + + $this->Application->SetConfigValue('RootPass', $new_root_password_encrypted); + $this->Application->SetVar('root_password', $new_root_password); + $this->Application->EmailEventAdmin('ROOT.RESET.PASSWORD'); + + $event->SetRedirectParam('reset', 1); + } }