Skip to content

Commit

Permalink
refs #4564 #2589 do not allow to edit a users websites permissions if…
Browse files Browse the repository at this point in the history
… user is superuser. Reload page after successfully changing superuser permission to make sure it is afterwards possible to (edit / not edit) websites permissions
  • Loading branch information
tsteur committed Jan 22, 2014
1 parent e4b425b commit 743d7b8
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 31 deletions.
27 changes: 4 additions & 23 deletions plugins/UsersManager/javascripts/usersManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ function launchAjaxRequest(self, successCallback) {
);
}

function updateSuperUserAccess(login, isSuperUser, successCallback)
function updateSuperUserAccess(login, isSuperUser)
{
var parameters = {};
parameters.userLogin = login;
Expand All @@ -111,20 +111,7 @@ function updateSuperUserAccess(login, isSuperUser, successCallback)
method: 'UsersManager.setSuperUserAccess'
}, 'GET');
ajaxHandler.addParams(parameters, 'POST');
ajaxHandler.setCallback(function () {
successCallback();

var UI = require('piwik/UI');
var notification = new UI.Notification();
notification.show(_pk_translate('General_Done'), {
placeat: '#superUserAccessUpdated',
context: 'success',
noclear: true,
type: 'toast',
style: {display: 'inline-block', marginTop: '10px'},
id: 'usersManagerSuperUserAccessUpdated'
});
});
ajaxHandler.redirectOnSuccess();
ajaxHandler.setLoadingElement('#ajaxErrorSuperUsersManagement');
ajaxHandler.setErrorElement('#ajaxErrorSuperUsersManagement');
ajaxHandler.send(true);
Expand Down Expand Up @@ -270,18 +257,12 @@ $(document).ready(function () {

$('#superUserAccess .accessGranted').click(function () {
var login = $(this).parents('td').attr('login');
updateSuperUserAccess(login, 0, function () {
$('#superUserAccess .accessGranted').hide();
$('#superUserAccess .updateAccess').show();
});
updateSuperUserAccess(login, 0);
});

$('#superUserAccess .updateAccess').click(function () {
var login = $(this).parents('td').attr('login');
updateSuperUserAccess(login, 1, function () {
$('#superUserAccess .updateAccess').hide();
$('#superUserAccess .accessGranted').show();
});
updateSuperUserAccess(login, 1);
});

// when a site is selected, reload the page w/o showing the ajax loading element
Expand Down
28 changes: 20 additions & 8 deletions plugins/UsersManager/templates/index.twig
Original file line number Diff line number Diff line change
Expand Up @@ -47,24 +47,36 @@
<tbody>
{% set accesValid %}<img src='plugins/UsersManager/images/ok.png' class='accessGranted' />{% endset %}
{% set accesInvalid %}<img src='plugins/UsersManager/images/no-access.png' class='updateAccess' />{% endset %}
{% set superUserAccess %}<span title="{{ 'This_User_Has_SuperUser_Access_And_Therefore_Access_To_All_Websites_Remove_SuperUser_Permission_To_SetPermission'|translate }}">N/A</span>{% endset %}
{% for login,access in usersAccessByWebsite %}
<tr>
<td id='login'>{{ login }}</td>
<td>{{ usersAliasByLogin[login]|raw }}</td>

{% if access == 'superuser' %}
<td colspan="3"><span title="{{ 'Remove_SuperUser_Permission_To_ChangePermission'|translate }}">{{ 'Installation_SuperUser'|translate }}</span></td>
{% else %}
<td id='noaccess'>{% if access=='noaccess' and idSiteSelected != 'all' %}{{ accesValid }}{% else %}{{ accesInvalid }}{% endif %}&nbsp;</td>
<td id='view'>{% if access == 'view' and idSiteSelected != 'all' %}{{ accesValid }}{% else %}{{ accesInvalid }}{% endif %}&nbsp;</td>
<td id='noaccess'>
{% if login in superUserLogins %}
{{ superUserAccess }}
{% elseif access=='noaccess' and idSiteSelected != 'all' %}
{{ accesValid }}
{% else %}
{{ accesInvalid }}
{% endif %}&nbsp;</td>
<td id='view'>
{% if login in superUserLogins %}
{{ superUserAccess }}
{% elseif access == 'view' and idSiteSelected != 'all' %}
{{ accesValid }}
{% else %}
{{ accesInvalid }}
{% endif %}&nbsp;</td>
<td id='admin'>
{% if login == 'anonymous' %}
{% if login in superUserLogins %}
{{ superUserAccess }}
{% elseif login == 'anonymous' %}
N/A
{% else %}
{% if access == 'admin' and idSiteSelected != 'all' %}{{ accesValid }}{% else %}{{ accesInvalid }}{% endif %}&nbsp;
{% endif %}
</td>
{% endif %}
</tr>
{% endfor %}
</tbody>
Expand Down

0 comments on commit 743d7b8

Please sign in to comment.