Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/UsersManager')
-rw-r--r--plugins/UsersManager/UsersManager.php7
-rw-r--r--plugins/UsersManager/angularjs/manage-user-access/manage-user-access.controller.js36
-rw-r--r--plugins/UsersManager/lang/en.json8
-rw-r--r--plugins/UsersManager/lang/et.json1
-rw-r--r--plugins/UsersManager/lang/uk.json5
-rw-r--r--plugins/UsersManager/stylesheets/usersManager.less23
-rw-r--r--plugins/UsersManager/templates/index.twig25
7 files changed, 92 insertions, 13 deletions
diff --git a/plugins/UsersManager/UsersManager.php b/plugins/UsersManager/UsersManager.php
index e4c3673fa4..f22d2b63ed 100644
--- a/plugins/UsersManager/UsersManager.php
+++ b/plugins/UsersManager/UsersManager.php
@@ -190,5 +190,12 @@ class UsersManager extends \Piwik\Plugin
$translationKeys[] = "UsersManager_ConfirmProhibitMySuperUserAccess";
$translationKeys[] = "UsersManager_ExceptionUserHasViewAccessAlready";
$translationKeys[] = "UsersManager_ExceptionNoValueForUsernameOrEmail";
+ $translationKeys[] = "UsersManager_GiveUserAccess";
+ $translationKeys[] = "UsersManager_PrivAdmin";
+ $translationKeys[] = "UsersManager_PrivView";
+ $translationKeys[] = "UsersManager_RemoveUserAccess";
+ $translationKeys[] = "UsersManager_UserHasPermission";
+ $translationKeys[] = "UsersManager_UserHasNoPermission";
+ $translationKeys[] = "UsersManager_PrivNone";
}
}
diff --git a/plugins/UsersManager/angularjs/manage-user-access/manage-user-access.controller.js b/plugins/UsersManager/angularjs/manage-user-access/manage-user-access.controller.js
index 4ed851d68d..55d2f34b64 100644
--- a/plugins/UsersManager/angularjs/manage-user-access/manage-user-access.controller.js
+++ b/plugins/UsersManager/angularjs/manage-user-access/manage-user-access.controller.js
@@ -43,13 +43,32 @@
};
this.setAccess = function (login, access) {
-
+ login=piwik.helper.escape(piwik.helper.htmlEntities(login));
+ if ( $('[data-login="' + login + '"]').find("#"+access).has('.accessGranted').length ){
+ return;
+ }
// callback called when the ajax request Update the user permissions is successful
function successCallback(response) {
var mainDiv = $('[data-login="' + login + '"]');
- mainDiv.find('.accessGranted')
- .attr("src", "plugins/UsersManager/images/no-access.png")
+ var grantedDiv = mainDiv.find('.accessGranted');
+ var currentSite = $(".sites_autocomplete").attr("sitename");
+ currentSite = piwik.helper.escape(piwik.helper.htmlEntities(currentSite));
+
+ grantedDiv.attr("src", "plugins/UsersManager/images/no-access.png")
.attr("class", "updateAccess")
+ .attr("title", function(){
+ var access = grantedDiv.parents('[id]').attr('id');
+ if (access =="noaccess"){
+ return _pk_translate('UsersManager_RemoveUserAccess', [login,currentSite])
+ }
+ else if (access =="view") {
+ return _pk_translate('UsersManager_GiveUserAccess', [login,_pk_translate('UsersManager_PrivView'),currentSite]);
+ }
+ else if (access =="admin") {
+ return _pk_translate('UsersManager_GiveUserAccess', [login,_pk_translate('UsersManager_PrivAdmin'),currentSite]);
+ }
+ })
+ .off('click')
.click(function () {
var access = $(this).parent().attr('id')
self.setAccess(login, access);
@@ -58,7 +77,14 @@
mainDiv.find('#' + access + ' img')
.attr('src', "plugins/UsersManager/images/ok.png")
.attr('class', "accessGranted")
- ;
+ .attr("title",function(){
+ if(access=="noaccess"){
+ return _pk_translate('UsersManager_UserHasNoPermission', [login,_pk_translate('UsersManager_PrivNone'),currentSite]);
+ }else {
+ return _pk_translate('UsersManager_UserHasPermission', [login,access,currentSite]);
+ }}
+ )
+ ;
var UI = require('piwik/UI');
var notification = new UI.Notification();
@@ -93,4 +119,4 @@
}
}
}
-})(); \ No newline at end of file
+})();
diff --git a/plugins/UsersManager/lang/en.json b/plugins/UsersManager/lang/en.json
index 3fdedcc01f..976cc83afd 100644
--- a/plugins/UsersManager/lang/en.json
+++ b/plugins/UsersManager/lang/en.json
@@ -36,6 +36,7 @@
"ExceptionNoValueForUsernameOrEmail": "Please enter a username or email address.",
"ExcludeVisitsViaCookie": "Exclude your visits using a cookie",
"ForAnonymousUsersReportDateToLoadByDefault": "For anonymous users, report date to load by default",
+ "GiveUserAccess":"Give '%1$s' %2$s access for %3$s.",
"GiveViewAccess": "Give view access for %1$s",
"GiveViewAccessTitle": "Give an existing user access to view reports for %s",
"GiveViewAccessInstructions": "To give an existing user view access for %s enter the username or email address of an existing user",
@@ -55,6 +56,7 @@
"PrivAdmin": "Admin",
"PrivNone": "No access",
"PrivView": "View",
+ "RemoveUserAccess":"Remove access for '%1$s' for %2$s.",
"ReportDateToLoadByDefault": "Report date to load by default",
"ReportToLoadByDefault": "Report to load by default",
"SuperUserAccessManagement": "Manage Super User access",
@@ -63,12 +65,14 @@
"TheLoginScreen": "The login screen",
"ThereAreCurrentlyNRegisteredUsers": "There are currently %s registered users.",
"TokenAuth": "API Authentication Token",
- "TokenRegenerateConfirm": "Changing the API authentication token will invalidate the user's current token. If the user is currently logged in, he may be required to log in again. Do you really want to continue?",
+ "TokenRegenerateConfirm": "Changing the API authentication token will invalidate the user's current token. If the user is currently logged in, they may be required to log in again. Do you really want to continue?",
"TokenRegenerateConfirmSelf": "Changing the API authentication token will invalidate your own token. You may be required to log in again if you proceed. Do you really want to change your authentication token?",
"TokenRegenerateLogoutWarning": "When you re-generate your token you will be logged out and need to log in again.",
"TokenRegenerateTitle": "Regenerate",
"TypeYourPasswordAgain": "Type your new password again.",
"User": "User",
+ "UserHasPermission":"%1$s currently has %2$s access for %3$s.",
+ "UserHasNoPermission":"%1$s currently has %2$s to %3$s",
"UsersManagement": "Users Management",
"UsersManagementMainDescription": "Create new users or update the existing users. You can then set their permissions above.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "When users are not logged in and visit Piwik, they should access",
@@ -76,4 +80,4 @@
"YourVisitsAreIgnoredOnDomain": "%1$sYour visits are ignored by Piwik on %2$s %3$s (the Piwik ignore cookie was found in your browser).",
"YourVisitsAreNotIgnored": "%1$sYour visits are not ignored by Piwik%2$s (the Piwik ignore cookie was not found in your browser)."
}
-} \ No newline at end of file
+}
diff --git a/plugins/UsersManager/lang/et.json b/plugins/UsersManager/lang/et.json
index dfad50ee8e..eb81f77c62 100644
--- a/plugins/UsersManager/lang/et.json
+++ b/plugins/UsersManager/lang/et.json
@@ -3,6 +3,7 @@
"AddUser": "Lisa uus kasutaja",
"Alias": "Alias",
"AllWebsites": "Kõik veebilehed",
+ "AnonymousUser": "Anonüümne kasutaja",
"ApplyToAllWebsites": "Laienda kõigile veebilehtedele",
"ClickHereToSetTheCookieOnDomain": "Vajuta siia, et käesolevasse veebisirvikusse tekitada küpsis, mis ei lase sinu külastusi arvestada veebilehel %s",
"DeleteConfirm": "Kas oled kindel, et soovid %s kustutada?",
diff --git a/plugins/UsersManager/lang/uk.json b/plugins/UsersManager/lang/uk.json
index b5206ff070..af8fa1b298 100644
--- a/plugins/UsersManager/lang/uk.json
+++ b/plugins/UsersManager/lang/uk.json
@@ -62,6 +62,11 @@
"SuperUserAccessManagementMainDescription": "Суперкористувачі мають найвищі дозволи. Вони можуть виконувати всі адміністративні завдання, такі як додавання нових сайтів для моніторингу, додавання користувачів, зміна прав доступу користувачів, активація і деактивація плагінів і навіть встановлення нових плагінів з Маркету.",
"TheLoginScreen": "Сторінка входу",
"ThereAreCurrentlyNRegisteredUsers": "Зараз налічується %s зареєстрованих користувачів.",
+ "TokenAuth": "API перевірка автентичності Токенів",
+ "TokenRegenerateConfirm": "Зміна токену аутентифікації API анулює поточний маркер користувача. Якщо користувач в даний час увійшов в систему, йому може знадобитися знову увійти в систему. Ви дійсно хочете продовжити?",
+ "TokenRegenerateConfirmSelf": "Зміна токену аутентифікації API анулює свій власний маркер. Можливо, вам буде потрібно знову увійти в систему, якщо ви продовжите. Ви дійсно хочете змінити свій маркер аутентифікації?",
+ "TokenRegenerateLogoutWarning": "Коли ви повторно згенерували токен, ви будете виведені із системи і вам необхідно знову увійти в систему.",
+ "TokenRegenerateTitle": "Регенерувати",
"TypeYourPasswordAgain": "Введіть ваш новий пароль знову.",
"User": "Користувач",
"UsersManagement": "Керування користувачами",
diff --git a/plugins/UsersManager/stylesheets/usersManager.less b/plugins/UsersManager/stylesheets/usersManager.less
index f4b22ced4a..11294a2f84 100644
--- a/plugins/UsersManager/stylesheets/usersManager.less
+++ b/plugins/UsersManager/stylesheets/usersManager.less
@@ -11,6 +11,27 @@
cursor: pointer;
}
+#manageUserAccess .icon-help,
+#super_user_access .icon-help {
+ color: @theme-color-text-contrast;
+}
+
+#manageUserAccess .icon-help:hover,
+#super_user_access .icon-help:hover {
+ color: @theme-color-text;
+ text-decoration: none;
+}
+
+#manageUserAccess .helpLink,
+#super_user_access .helpLink {
+ outline: none;
+}
+
+#manageUserAccess .helpLink:hover,
+#super_user_access .helpLink:hover {
+ text-decoration: none;
+}
+
#users .addNewUserRow td {
padding: 0 16px;
}
@@ -68,4 +89,4 @@
#user_invite {
min-width: 300px;
}
-} \ No newline at end of file
+}
diff --git a/plugins/UsersManager/templates/index.twig b/plugins/UsersManager/templates/index.twig
index 4b232c63e5..cad99a0436 100644
--- a/plugins/UsersManager/templates/index.twig
+++ b/plugins/UsersManager/templates/index.twig
@@ -54,16 +54,28 @@
<th class='first'>{{ 'UsersManager_User'|translate }}</th>
<th>{{ 'UsersManager_Alias'|translate }}</th>
<th>{{ 'UsersManager_PrivNone'|translate }}</th>
- <th>{{ 'UsersManager_PrivView'|translate }}</th>
- <th>{{ 'UsersManager_PrivAdmin'|translate }}</th>
+ <th>{{ 'UsersManager_PrivView'|translate }} <a href="https://piwik.org/faq/general/faq_70/" rel="noreferrer" target="_blank" class="helpLink"><span class="icon-help"></span></a></th>
+ <th>{{ 'UsersManager_PrivAdmin'|translate }} <a href="https://piwik.org/faq/general/faq_69/" rel="noreferrer" target="_blank" class="helpLink"><span class="icon-help"></span></a></th>
</tr>
</thead>
<tbody>
- {% set accesValid %}<img src='plugins/UsersManager/images/ok.png' class='accessGranted' />{% endset %}
- {% set superUserAccess %}<span title="{{ 'UsersManager_ExceptionSuperUserAccess'|translate }}">N/A</span>{% endset %}
{% for login,access in usersAccessByWebsite %}
+
+ {% set accesValid %}
+ <img src='plugins/UsersManager/images/ok.png' class='accessGranted'
+ {% if access == 'noaccess' %}
+ title="{{'UsersManager_UserHasNoPermission'|translate(login,'UsersManager_PrivNone'|translate,defaultReportSiteName)}}"
+ {% elseif access == 'view' %}
+ title="{{'UsersManager_UserHasPermission'|translate(login,'UsersManager_PrivView'|translate,defaultReportSiteName)}}"
+ {% elseif access == 'admin' %}
+ title="{{'UsersManager_UserHasPermission'|translate(login,'UsersManager_PrivAdmin'|translate,defaultReportSiteName)}}"
+ {% endif %}
+ />
+ {% endset %}
+ {% set superUserAccess %}<span title="{{ 'UsersManager_ExceptionSuperUserAccess'|translate }}">N/A</span>{% endset %}
+
{% if userIsSuperUser or (hasOnlyAdminAccess and (access!='noaccess' or idSiteSelected == 'all')) %}
<tr data-login="{{ login|e('html_attr') }}">
<td id='login'>{{ login }}</td>
@@ -76,6 +88,7 @@
{% else %}
<img src='plugins/UsersManager/images/no-access.png' class='updateAccess'
ng-click='manageUserAccess.setAccess({{ login|json_encode}}, "noaccess")'
+ title="{{'UsersManager_RemoveUserAccess'|translate(login,defaultReportSiteName)|e('html_attr')}}"
/>
{% endif %}&nbsp;</td>
<td id='view'>
@@ -86,6 +99,7 @@
{% else %}
<img src='plugins/UsersManager/images/no-access.png' class='updateAccess'
ng-click='manageUserAccess.setAccess({{ login|json_encode}}, "view")'
+ title="{{'UsersManager_GiveUserAccess'|translate(login,'UsersManager_PrivView'|translate,defaultReportSiteName)|e('html_attr')}}"
/>
{% endif %}&nbsp;</td>
<td id='admin'>
@@ -99,6 +113,7 @@
{% else %}
<img src='plugins/UsersManager/images/no-access.png' class='updateAccess'
ng-click='manageUserAccess.setAccess({{ login|json_encode}}, "admin")'
+ title="{{'UsersManager_GiveUserAccess'|translate(login,'UsersManager_PrivAdmin'|translate,defaultReportSiteName)|e('html_attr')}}"
/>
{% endif %}&nbsp;
{% endif %}
@@ -247,7 +262,7 @@
<tr>
<th class='first'>{{ 'UsersManager_User'|translate }}</th>
<th>{{ 'UsersManager_Alias'|translate }}</th>
- <th>{{ 'Installation_SuperUser'|translate }}</th>
+ <th>{{ 'Installation_SuperUser'|translate }} <a href="https://piwik.org/faq/general/faq_35/" rel="noreferrer" target="_blank" class="helpLink"><span class="icon-help"></span></a></th>
</tr>
</thead>