You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ak...@apache.org on 2015/04/03 13:58:29 UTC
ambari git commit: AMBARI-10328. No 'Manage Ambari' link on step 9 of
Install Wizard after relogin. (akovalenko)
Repository: ambari
Updated Branches:
refs/heads/trunk f34f2df9c -> 888a24daa
AMBARI-10328. No 'Manage Ambari' link on step 9 of Install Wizard after relogin. (akovalenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/888a24da
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/888a24da
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/888a24da
Branch: refs/heads/trunk
Commit: 888a24daa3260d011508bd11e2e36529b4e90a59
Parents: f34f2df
Author: Aleksandr Kovalenko <ak...@hortonworks.com>
Authored: Fri Apr 3 13:53:47 2015 +0300
Committer: Aleksandr Kovalenko <ak...@hortonworks.com>
Committed: Fri Apr 3 13:53:47 2015 +0300
----------------------------------------------------------------------
ambari-web/app/app.js | 1 +
ambari-web/app/router.js | 15 +++++--
ambari-web/app/templates/application.hbs | 12 +++---
ambari-web/test/router_test.js | 61 +++++++++++++++++++++++++++
4 files changed, 80 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/888a24da/ambari-web/app/app.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/app.js b/ambari-web/app/app.js
index 38ba4bd..60bc27c 100644
--- a/ambari-web/app/app.js
+++ b/ambari-web/app/app.js
@@ -34,6 +34,7 @@ module.exports = Em.Application.create({
}),
isAdmin: false,
isOperator: false,
+ isPermissionDataLoaded: false,
/**
* state of stack upgrade process
http://git-wip-us.apache.org/repos/asf/ambari/blob/888a24da/ambari-web/app/router.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/router.js b/ambari-web/app/router.js
index fe37e0e..a256fee 100644
--- a/ambari-web/app/router.js
+++ b/ambari-web/app/router.js
@@ -299,14 +299,17 @@ App.Router = Em.Router.extend({
var clusterName = clustersData.items[0].Clusters.cluster_name;
var clusterPermissions = privileges.filterProperty('PrivilegeInfo.cluster_name', clusterName).mapProperty('PrivilegeInfo.permission_name');
if (clusterPermissions.contains('CLUSTER.OPERATE')) {
- App.set('isAdmin', true);
- App.set('isOperator', true);
+ App.setProperties({
+ isAdmin: true,
+ isOperator: true
+ });
transitionToApp = true;
} else if (clusterPermissions.contains('CLUSTER.READ')) {
transitionToApp = true;
}
}
}
+ App.set('isPermissionDataLoaded', true);
if (transitionToApp) {
if (!Em.isNone(router.get('preferedPath'))) {
window.location = router.get('preferedPath');
@@ -384,8 +387,11 @@ App.Router = Em.Router.extend({
// otherwise, this.set('installerController.currentStep, 0) would have no effect
// since it's a computed property but we are not setting it as a dependent of App.db.
App.db.cleanUp();
- App.set('isAdmin', false);
- App.set('isOperator', false);
+ App.setProperties({
+ isAdmin: false,
+ isOperator: false,
+ isPermissionDataLoaded: false
+ });
this.set('loggedIn', false);
this.clearAllSteps();
console.log("Log off: " + App.router.getClusterName());
@@ -435,6 +441,7 @@ App.Router = Em.Router.extend({
if (user.operator) {
App.set('isOperator', true);
}
+ App.set('isPermissionDataLoaded', true);
}
}
},
http://git-wip-us.apache.org/repos/asf/ambari/blob/888a24da/ambari-web/app/templates/application.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/application.hbs b/ambari-web/app/templates/application.hbs
index 63da6e7..10897e9 100644
--- a/ambari-web/app/templates/application.hbs
+++ b/ambari-web/app/templates/application.hbs
@@ -68,11 +68,13 @@
{{/isAccessible}}
{{/if}}
{{else}}
- {{#isAccessible upgrade_ONLY_ADMIN}}
- <li><a href=""
- id="manage-ambari" {{action goToAdminView target="controller"}}>{{t app.manageAmbari}}</a>
- </li>
- {{/isAccessible}}
+ {{#if App.isPermissionDataLoaded}}
+ {{#isAccessible upgrade_ONLY_ADMIN}}
+ <li><a href=""
+ id="manage-ambari" {{action goToAdminView target="controller"}}>{{t app.manageAmbari}}</a>
+ </li>
+ {{/isAccessible}}
+ {{/if}}
{{/if}}
{{#if isClusterDataLoaded}}
{{#isAccessible upgrade_ADMIN}}
http://git-wip-us.apache.org/repos/asf/ambari/blob/888a24da/ambari-web/test/router_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/router_test.js b/ambari-web/test/router_test.js
index ec76aff..eefb35a 100644
--- a/ambari-web/test/router_test.js
+++ b/ambari-web/test/router_test.js
@@ -47,4 +47,65 @@ describe('App.Router', function () {
})
});
+ describe('#initAdmin()', function () {
+
+ var cases = [
+ {
+ user: {
+ admin: true
+ },
+ isAdmin: true,
+ isOperator: false,
+ isPermissionDataLoaded: true,
+ title: 'admin'
+ },
+ {
+ user: {
+ operator: true
+ },
+ isAdmin: false,
+ isOperator: true,
+ isPermissionDataLoaded: true,
+ title: 'operator'
+ },
+ {
+ user: {},
+ isAdmin: false,
+ isOperator: false,
+ isPermissionDataLoaded: true,
+ title: 'read only access'
+ },
+ {
+ user: null,
+ isAdmin: false,
+ isOperator: false,
+ isPermissionDataLoaded: false,
+ title: 'no user'
+ }
+ ];
+
+ beforeEach(function () {
+ App.setProperties({
+ isAdmin: false,
+ isOperator: false,
+ isPermissionDataLoaded: false
+ });
+ });
+
+ afterEach(function () {
+ App.db.getUser.restore();
+ });
+
+ cases.forEach(function (item) {
+ it(item.title, function () {
+ sinon.stub(App.db, 'getUser').returns(item.user);
+ router.initAdmin();
+ expect(App.get('isAdmin')).to.equal(item.isAdmin);
+ expect(App.get('isOperator')).to.equal(item.isOperator);
+ expect(App.get('isPermissionDataLoaded')).to.equal(item.isPermissionDataLoaded);
+ });
+ });
+
+ });
+
});