3 * Copyright 2016 RIFT.IO Inc
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
18 // DescriptorModelMeta API (NSD + VNFD)
21 var UserManagement
= {};
22 var Promise
= require('bluebird');
23 var rp
= require('request-promise');
24 var Promise
= require('promise');
25 var constants
= require('../../api_utils/constants');
26 var utils
= require('../../api_utils/utils');
27 var _
= require('lodash');
29 UserManagement
.get = function(req
) {
31 var api_server
= req
.query
['api_server'];
33 return new Promise(function(resolve
, reject
) {
36 uri
: utils
.confdPort(api_server
) + '/api/operational/user-config/user',
38 headers
: _
.extend({}, constants
.HTTP_HEADERS
.accept
.data
, {
39 'Authorization': req
.session
&& req
.session
.authorization
41 forever
: constants
.FOREVER_ON
,
42 rejectUnauthorized
: false,
43 resolveWithFullResponse
: true
45 ]).then(function(result
) {
47 response
['data'] = {};
49 response
['data']['user'] = JSON
.parse(result
[0].body
)['rw-user:user'];
51 response
.statusCode
= constants
.HTTP_RESPONSE_CODES
.SUCCESS
.OK
54 }).catch(function(error
) {
56 console
.log('Problem with UserManagement.get', error
);
57 response
.statusCode
= error
.statusCode
|| 500;
58 response
.errorMessage
= {
59 error
: 'Failed to get UserManagement' + error
66 UserManagement
.getProfile = function(req
) {
68 var api_server
= req
.query
['api_server'];
69 return new Promise(function(resolve
, reject
) {
72 userId
: req
.session
.userdata
.username
,
73 projectId
: req
.session
.projectId
75 // if (result[0].body) {
76 // response['data']['users'] = JSON.parse(result[0].body)['rw-user:users'];
78 response
.statusCode
= constants
.HTTP_RESPONSE_CODES
.SUCCESS
.OK
83 UserManagement
.create = function(req
) {
85 var api_server
= req
.query
['api_server'];
90 return new Promise(function(resolve
, reject
) {
93 uri
: utils
.confdPort(api_server
) + '/api/config/user-config',
95 headers
: _
.extend({}, constants
.HTTP_HEADERS
.accept
.data
, {
96 'Authorization': req
.session
&& req
.session
.authorization
98 forever
: constants
.FOREVER_ON
,
100 rejectUnauthorized
: false,
101 resolveWithFullResponse
: true
103 ]).then(function(result
) {
105 response
['data'] = {};
106 if (result
[0].body
) {
107 response
['data'] = result
[0].body
;
109 response
.statusCode
= constants
.HTTP_RESPONSE_CODES
.SUCCESS
.OK
112 }).catch(function(error
) {
114 console
.log('Problem with UserManagement.create', error
);
115 response
.statusCode
= error
.statusCode
|| 500;
116 response
.errorMessage
= {
117 error
: 'Failed to create user' + error
123 UserManagement
.update = function(req
) {
125 var api_server
= req
.query
['api_server'];
126 var bodyData
= req
.body
;
130 var updateTasks
= [];
131 if(bodyData
.hasOwnProperty('old-password')) {
133 uri
: utils
.confdPort(api_server
) + '/api/operations/change-password',
135 headers
: _
.extend({}, constants
.HTTP_HEADERS
.accept
.data
, {
136 'Authorization': req
.session
&& req
.session
.authorization
138 forever
: constants
.FOREVER_ON
,
141 'user-name' : bodyData
['user-name'],
142 'user-domain' : bodyData
['user-domain'],
143 'old-password' : bodyData
['old-password'],
144 'new-password' : bodyData
['new-password'],
145 'confirm-password' : bodyData
['confirm-password'],
148 rejectUnauthorized
: false,
149 resolveWithFullResponse
: true
151 updateTasks
.push(changePW
);
153 var updateUser
= rp({
154 uri
: utils
.confdPort(api_server
) + '/api/config/user-config',
156 headers
: _
.extend({}, constants
.HTTP_HEADERS
.accept
.data
, {
157 'Authorization': req
.session
&& req
.session
.authorization
159 forever
: constants
.FOREVER_ON
,
161 rejectUnauthorized
: false,
162 resolveWithFullResponse
: true
164 updateTasks
.push(updateUser
)
165 return new Promise(function(resolve
, reject
) {
168 ]).then(function(result
) {
170 response
['data'] = {};
171 if (result
[0].body
) {
172 response
['data'] = result
[0].body
;
174 response
.statusCode
= constants
.HTTP_RESPONSE_CODES
.SUCCESS
.OK
177 }).catch(function(error
) {
179 console
.log('Problem with UserManagement.passwordChange', error
);
180 response
.statusCode
= error
.statusCode
|| 500;
181 response
.errorMessage
= {
182 error
: 'Failed to passwordChange user' + error
189 UserManagement
.delete = function(req
) {
191 var username
= req
.params
.username
;
192 var domain
= req
.params
.domain
;
193 var api_server
= req
.query
["api_server"];
194 var requestHeaders
= {};
195 var url
= `${utils.confdPort(api_server)}/api/config/user-config/user/${username},${domain}`
196 return new Promise(function(resolve
, reject
) {
197 _
.extend(requestHeaders
,
198 constants
.HTTP_HEADERS
.accept
.data
,
199 constants
.HTTP_HEADERS
.content_type
.data
, {
200 'Authorization': req
.session
&& req
.session
.authorization
205 headers
: requestHeaders
,
206 forever
: constants
.FOREVER_ON
,
207 rejectUnauthorized
: false,
208 }, function(error
, response
, body
) {
209 if (utils
.validateResponse('UserManagement.DELETE', error
, response
, body
, resolve
, reject
)) {
211 statusCode
: response
.statusCode
,
212 data
: JSON
.stringify(response
.body
)
218 module
.exports
= UserManagement
;