You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by al...@apache.org on 2012/07/27 23:01:32 UTC
[15/50] [abbrv] git commit: CS-15349: Fix incorrect result when Make
owner in New project/Add account.
CS-15349: Fix incorrect result when Make owner in New project/Add account.
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/7fc3adba
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/7fc3adba
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/7fc3adba
Branch: refs/heads/vpc
Commit: 7fc3adbacc74850634b6b926d1552cfa00ea0bea
Parents: c1989a5
Author: olgasmola <ol...@gmail.com>
Authored: Fri Jul 27 17:32:54 2012 +0300
Committer: olgasmola <ol...@gmail.com>
Committed: Fri Jul 27 17:32:54 2012 +0300
----------------------------------------------------------------------
ui/scripts/projects.js | 28 ++++++++++++++++++++++++++--
ui/scripts/ui/widgets/multiEdit.js | 6 ++++++
2 files changed, 32 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/7fc3adba/ui/scripts/projects.js
----------------------------------------------------------------------
diff --git a/ui/scripts/projects.js b/ui/scripts/projects.js
index 2ece194..cbbb4ce 100644
--- a/ui/scripts/projects.js
+++ b/ui/scripts/projects.js
@@ -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,
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/7fc3adba/ui/scripts/ui/widgets/multiEdit.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui/widgets/multiEdit.js b/ui/scripts/ui/widgets/multiEdit.js
index 140b889..9334214 100644
--- a/ui/scripts/ui/widgets/multiEdit.js
+++ b/ui/scripts/ui/widgets/multiEdit.js
@@ -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