mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
CS-15349: Fix incorrect result when Make owner in New project/Add account.
This commit is contained in:
parent
12c7fb3625
commit
82bb1e5592
@ -15,6 +15,7 @@
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
(function(cloudStack) {
|
||||
var getProjectAdmin;
|
||||
cloudStack.projects = {
|
||||
requireInvitation: function(args) {
|
||||
return g_capabilities.projectinviterequired;
|
||||
@ -447,12 +448,28 @@
|
||||
return ['destroy'];
|
||||
}
|
||||
|
||||
if (args.context.multiRule[0].role != 'Admin') {
|
||||
if (args.context.multiRule[0].role != 'Admin' &&
|
||||
(cloudStack.context.users[0].account == getProjectAdmin || isAdmin() || isDomainAdmin())) { // This is for the new project wizard: check if current logged in User is the Project Owner
|
||||
return args.context.actions;
|
||||
}
|
||||
|
||||
return [];
|
||||
},
|
||||
readOnlyCheck: function(args) { // check if current logged in User is the Project Owner
|
||||
if (isAdmin() || isDomainAdmin())
|
||||
return true;
|
||||
|
||||
var projectOwner, currentUser = cloudStack.context.users[0].account;
|
||||
$(args.data).each(function() {
|
||||
var data = this;
|
||||
if (data.role == 'Admin')
|
||||
projectOwner = data.username;
|
||||
});
|
||||
if (projectOwner == currentUser)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
},
|
||||
actions: {
|
||||
destroy: {
|
||||
label: 'label.remove.project.account',
|
||||
@ -497,7 +514,12 @@
|
||||
success: function(data) {
|
||||
args.response.success({
|
||||
_custom: {
|
||||
jobId: data.updateprojectresponse.jobid
|
||||
jobId: data.updateprojectresponse.jobid,
|
||||
onComplete: function(){
|
||||
setTimeout(function() {
|
||||
$(window).trigger('cloudStack.fullRefresh');
|
||||
}, 500);
|
||||
}
|
||||
},
|
||||
notification: {
|
||||
label: 'label.make.project.owner',
|
||||
@ -522,6 +544,8 @@
|
||||
success: function(data) {
|
||||
args.response.success({
|
||||
data: $.map(data.listprojectaccountsresponse.projectaccount, function(elem) {
|
||||
if (elem.role == 'Owner' || elem.role == 'Admin')
|
||||
getProjectAdmin = elem.account;
|
||||
return {
|
||||
id: elem.accountid,
|
||||
role: elem.role,
|
||||
|
||||
@ -675,6 +675,7 @@
|
||||
var context = args.context;
|
||||
var ignoreEmptyFields = args.ignoreEmptyFields;
|
||||
var actionPreFilter = args.actionPreFilter;
|
||||
var readOnlyCheck = args.readOnlyCheck;
|
||||
|
||||
var $thead = $('<tr>').appendTo(
|
||||
$('<thead>').appendTo($inputTable)
|
||||
@ -935,6 +936,11 @@
|
||||
).appendTo($dataBody);
|
||||
});
|
||||
|
||||
if (readOnlyCheck && !readOnlyCheck(args)) {
|
||||
$multi.find('th.add-user, td.add-user').detach();
|
||||
$multiForm.find('tbody').detach();
|
||||
}
|
||||
|
||||
_medit.refreshItemWidths($multi);
|
||||
},
|
||||
error: cloudStack.dialog.error
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user