Row striping for platform roles, users, and projects
[osm/UI.git] / skyquake / framework / core / modules / api / userManagementAPI.js
index 873ab19..1aee575 100644 (file)
@@ -70,21 +70,27 @@ UserManagement.getProfile = function(req) {
     var api_server = req.query['api_server'];
     return new Promise(function(resolve, reject) {
         var response = {};
-        var userId = req.session.userdata.username
-        response['data'] = {
-            userId: userId,
-            projectId: req.session.projectId
-        };
-        UserManagement.getUserInfo(req, userId).then(function(result) {
-            response.statusCode = constants.HTTP_RESPONSE_CODES.SUCCESS.OK;
-            response.data.data =result.data
-            resolve(response);
-        }, function(error) {
-            console.log('Error retrieving getUserInfo');
+        try {
+            var userId = req.session.userdata.username
+            response['data'] = {
+                userId: userId,
+                projectId: req.session.projectId
+            };
+            UserManagement.getUserInfo(req, userId).then(function(result) {
+                response.statusCode = constants.HTTP_RESPONSE_CODES.SUCCESS.OK;
+                response.data.data = result.data
+                resolve(response);
+            }, function(error) {
+                console.log('Error retrieving getUserInfo');
+                response.statusCode = constants.HTTP_RESPONSE_CODES.ERROR.INTERNAL_SERVER_ERROR;
+                reject(response);
+            })
+        } catch (e) {
+            response.data.data = e;
             response.statusCode = constants.HTTP_RESPONSE_CODES.ERROR.INTERNAL_SERVER_ERROR;
             reject(response);
-        })
-
+            reject()
+        }
     });
 };
 UserManagement.getUserInfo = function(req, userId, domain) {
@@ -107,6 +113,8 @@ UserManagement.getUserInfo = function(req, userId, domain) {
 
                         }
                     },
+                    //id/key values for each project
+                    projectId:[],
                     project: {
                         /**
                          *  [projectId] : {
@@ -123,13 +131,17 @@ UserManagement.getUserInfo = function(req, userId, domain) {
                 var userProjects = [];
                 projects && projects.map(function(p, i) {
                     var users = p['project-config'] && p['project-config'].user;
+                    userData.projectId.push(p.name);
                     users && users.map(function(u) {
                         if(u['user-name'] == id) {
                             userData.project[p.name] = {
                                 data: p,
                                 role: {}
                             }
-                            u.role.map(function(r) {
+                            u.role && u.role.map(function(r) {
+                                userData.project[p.name].role[r.role] = true
+                            });
+                            u["rw-project-mano:mano-role"] && u["rw-project-mano:mano-role"] .map(function(r) {
                                 userData.project[p.name].role[r.role] = true
                             });
                         }
@@ -199,7 +211,7 @@ UserManagement.update = function(req) {
     var api_server = req.query['api_server'];
     var bodyData = req.body;
     data = {
-        "user":[bodyData]
+        "rw-user:user": bodyData
     }
     var updateTasks = [];
     if(bodyData.hasOwnProperty('old-password')) {
@@ -225,7 +237,7 @@ UserManagement.update = function(req) {
         updateTasks.push(changePW);
     };
     var updateUser = rp({
-                uri: utils.confdPort(api_server) + '/api/config/user-config',
+                uri: utils.confdPort(api_server) + '/api/config/user-config/user/' + bodyData['user-name'] + ',' +  bodyData['user-domain'],
                 method: 'PUT',
                 headers: _.extend({}, constants.HTTP_HEADERS.accept.data, {
                     'Authorization': req.session && req.session.authorization