CS-15349: Fix incorrect result when Make owner in New project/Add account.

This commit is contained in:
olgasmola 2012-07-27 17:32:54 +03:00 committed by chip.childers@gmail.com
parent 12c7fb3625
commit 82bb1e5592
2 changed files with 32 additions and 2 deletions

View File

@ -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,

View File

@ -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