diff --git a/frontend-js/src/main/js/ServerConnector.js b/frontend-js/src/main/js/ServerConnector.js index bbe3b449f418e5566d969295e438d166d17f87a6..78dcb9718134f79c60e82d1161d1282156fc30e6 100644 --- a/frontend-js/src/main/js/ServerConnector.js +++ b/frontend-js/src/main/js/ServerConnector.js @@ -1233,19 +1233,29 @@ ServerConnector.updateUser = function (user) { connectedToLdap: user.isConnectedToLdap() } }; + var canModifyPrivileges = false; - return self.sendPatchRequest(self.getUserUrl(queryParams), filterParams).then(function (response) { - canModifyPrivileges = JSON.parse(response).privileges.some(function (privilege) { - return privilege.type === PrivilegeType.USER_MANAGEMENT - || privilege.type === PrivilegeType.PROJECT_MANAGEMENT; + return self.sendPatchRequest(self.getUserUrl(queryParams), filterParams) + + .then(function () { + var currentLogin = ServerConnector.getSessionData().getLogin(); + return self.sendGetRequest(self.getUserUrl({login: currentLogin}, {})); + }) + + .then(function (response) { + canModifyPrivileges = JSON.parse(response).privileges.some(function (privilege) { + return privilege.type === PrivilegeType.USER_MANAGEMENT + || privilege.type === PrivilegeType.PROJECT_MANAGEMENT; + }); + return self.getConfiguration(); + }) + + .then(function (configuration) { + if (!canModifyPrivileges) { + return Promise.resolve(user); + } + return self.updateUserPrivileges({user: user, privileges: user.privilegesToExport(configuration)}); }); - return self.getConfiguration(); - }).then(function (configuration) { - if (!canModifyPrivileges) { - return Promise.resolve(user); - } - return self.updateUserPrivileges({user: user, privileges: user.privilegesToExport(configuration)}); - }); }; /** diff --git a/frontend-js/testFiles/apiCalls/users/anonymous/token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/users/anonymous/token=MOCK_TOKEN_ID& new file mode 100644 index 0000000000000000000000000000000000000000..7915593b4ec674e1dfefd572e50506fc2942bed2 --- /dev/null +++ b/frontend-js/testFiles/apiCalls/users/anonymous/token=MOCK_TOKEN_ID& @@ -0,0 +1 @@ +{"connectedToLdap":"Unknown column","email":"test_user","id":6,"ldapAccountAvailable":"Unknown column","login":"test_user","maxColor":null,"minColor":null,"name":"test_user","neutralColor":null,"privileges":[{"objectId":4,"type":"VIEW_PROJECT","value":1},{"objectId":4,"type":"EDIT_COMMENTS_PROJECT","value":0},{"objectId":4,"type":"LAYOUT_MANAGEMENT","value":0},{"objectId":null,"type":"VIEW_PROJECT","value":1},{"objectId":null,"type":"EDIT_COMMENTS_PROJECT","value":0},{"objectId":null,"type":"LAYOUT_MANAGEMENT","value":0},{"type":"CUSTOM_LAYOUTS","value":5},{"type":"CUSTOM_LAYOUTS_AVAILABLE","value":5}],"removed":false,"simpleColor":null,"surname":"test_user","termsOfUseConsent":true} \ No newline at end of file