diff options
author | diosmosis <diosmosis@users.noreply.github.com> | 2019-07-16 07:33:25 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-16 07:33:25 +0300 |
commit | e4c1f1f92114ca03947e9932935e4b4195ae1604 (patch) | |
tree | 86d3f38165ee87eb4c7f8a36dc8bdb779c04fb22 /plugins/UsersManager | |
parent | 75c4c9d3a8be5b9d035f086c3b2edb45afaed61a (diff) |
Keep top level nb_visits_converted metric (#14253)
* Do not remove nb_visits_converted when archiving goal reports since it should differ from sum of conversions.
* If metric is not available, compute dynamically by using max nb_visits_converted.
* Ignore abandoned cart conversions when calculating visit converted.
* In case goals column is empty.
* remove processed metric code since it is not correct
* do not remove visits converted metric for overview
* fix tests
* Fixing test
* fix test
* update test files
* update submodules
* Update expected screenshots & try to fix some random failures.
* Update expected UI test export results.
* two ui test fixes
* Fix couple UI test failures.
* fix random php test failure
Diffstat (limited to 'plugins/UsersManager')
3 files changed, 21 insertions, 1 deletions
diff --git a/plugins/UsersManager/UsersManager.php b/plugins/UsersManager/UsersManager.php index 4f72e98775..a844aee258 100644 --- a/plugins/UsersManager/UsersManager.php +++ b/plugins/UsersManager/UsersManager.php @@ -12,6 +12,7 @@ use Exception; use Piwik\Access\Role\Admin; use Piwik\Access\Role\Write; use Piwik\API\Request; +use Piwik\Auth\Password; use Piwik\Common; use Piwik\Option; use Piwik\Piwik; @@ -197,11 +198,27 @@ class UsersManager extends \Piwik\Plugin public static function getPasswordHash($password) { + self::checkBasicPasswordStrength($password); + // if change here, should also edit the installation process // to change how the root pwd is saved in the config file return md5($password); } + public static function checkBasicPasswordStrength($password) + { + $ex = new \Exception('This password is too weak, please supply another value or reset it.'); + + $numDistinctCharacters = strlen(count_chars($password, 3)); + if ($numDistinctCharacters < 2) { + throw $ex; + } + + if (strlen($password) < 6) { + throw $ex; + } + } + /** * Checks the password hash length. Used as a sanity check. * diff --git a/plugins/UsersManager/angularjs/user-edit-form/user-edit-form.component.html b/plugins/UsersManager/angularjs/user-edit-form/user-edit-form.component.html index 8c831c87c5..32e8d9dd84 100644 --- a/plugins/UsersManager/angularjs/user-edit-form/user-edit-form.component.html +++ b/plugins/UsersManager/angularjs/user-edit-form/user-edit-form.component.html @@ -56,6 +56,7 @@ ng-model="$ctrl.user.password" data-title="Password" data-disabled="$ctrl.isSavingUserInfo || ($ctrl.currentUserRole != 'superuser' && !$ctrl.isAdd)" + ng-change="$ctrl.isPasswordModified = true" > </div> diff --git a/plugins/UsersManager/angularjs/user-edit-form/user-edit-form.component.js b/plugins/UsersManager/angularjs/user-edit-form/user-edit-form.component.js index 852469dbc1..5c3a88d0a3 100644 --- a/plugins/UsersManager/angularjs/user-edit-form/user-edit-form.component.js +++ b/plugins/UsersManager/angularjs/user-edit-form/user-edit-form.component.js @@ -35,6 +35,7 @@ vm.firstSiteAccess = null; vm.isUserModified = false; vm.passwordConfirmation = ''; + vm.isPasswordModified = false; vm.$onInit = $onInit; vm.$onChanges = $onChanges; @@ -187,7 +188,7 @@ method: 'UsersManager.updateUser' }, { userLogin: vm.user.login, - password: vm.user.password ? vm.user.password : undefined, + password: (vm.isPasswordModified && vm.user.password) ? vm.user.password : undefined, passwordConfirmation: vm.passwordConfirmation ? vm.passwordConfirmation : undefined, email: vm.user.email, alias: vm.user.alias @@ -199,6 +200,7 @@ vm.isSavingUserInfo = false; vm.passwordConfirmation = false; vm.isUserModified = true; + vm.isPasswordModified = false; showUserSavedNotification(); }); |