@ -1,17 +1,17 @@
/ *
* Copyright ( c ) 201 6 , WSO2 Inc . ( http : //www.wso2.org) All Rights Reserved.
* Copyright ( c ) 201 5 , WSO2 Inc . ( http : //www.wso2.org) All Rights Reserved.
*
* WSO2 Inc . licenses this file to you under the Apache License ,
* Version 2.0 ( the "License" ) ; you may not use this file except
* in compliance with the License .
* You may obtain a copy of the License at
*
* http : //www.apache.org/licenses/LICENSE-2.0
* http : //www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing ,
* software distributed under the License is distributed on an
* "AS IS" BASIS , WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied . See the License for the
* "AS IS" BASIS , WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND ,
* either express or implied . See the License for the
* specific language governing permissions and limitations
* under the License .
* /
@ -25,32 +25,30 @@ var userModule = function () {
var constants = require ( "/app/modules/constants.js" ) ;
var utility = require ( "/app/modules/utility.js" ) [ "utility" ] ;
var devicemgtProps = require ( "/app/conf/devicemgt-props.js" ) . config ( ) ;
var serviceInvokers = require ( "/app/modules/backend-service-invoker.js" ) .backendServiceInvoker ;
var serviceInvokers = require ( "/app/modules/backend-service-invoker.js" ) ["backendServiceInvoker" ] ;
/* Initializing user manager */
var carbon = require ( 'carbon' ) ;
var tenantId = carbon . server . tenantId ( ) ;
var url = carbon . server . address ( 'https' ) + "/admin/services" ;
var carbon = require ( "carbon" ) ;
var url = carbon . server . address ( "https" ) + "/admin/services" ;
var server = new carbon . server . Server ( url ) ;
var userManager = new carbon . user . UserManager ( server , tenantId ) ;
var deviceManagementService = utility . getDeviceManagementService ( ) ;
var EmailMessageProperties = Packages . org . wso2 . carbon . device . mgt . common . EmailMessageProperties ;
//var deviceManagementService = utility.getDeviceManagementService();
//var EmailMessageProperties = Packages.org.wso2.carbon.device.mgt.common.EmailMessageProperties;
var publicMethods = { } ;
var privateMethods = { } ;
/ * *
* Get the carbon user object from the session . If not found - it will throw a user not found error .
* @ returns { carbon user object }
* Get the carbon user object from the session . If not found - it will throw a user not found error .
* @ returns { object} carbon user object
* /
privateMethods . getCarbonUser = function ( ) {
var carbon = require ( 'carbon' ) ;
var carbonUser = session . get ( constants .USER _SESSION _KEY ) ;
var utility = require ( '/app/modules/utility.js' ) . utility ;
var carbon = require ( "carbon" ) ;
var carbonUser = session . get ( constants ["USER_SESSION_KEY" ] ) ;
var utility = require ( "/modules/utility.js" ) [ "utility" ] ;
if ( ! carbonUser ) {
log . error ( "User object was not found in the session" ) ;
throw constants .ERRORS . USER _NOT _FOUND ;
throw constants ["ERRORS" ] [ "USER_NOT_FOUND" ] ;
}
return carbonUser ;
} ;
@ -59,31 +57,25 @@ var userModule = function () {
* Only GET method is implemented for now since there are no other type of methods used this method .
* @ param url - URL to call the backend without the host
* @ param method - HTTP Method ( GET , POST )
* @ returns {
* 'status' : 'success' | 'error' ,
* 'content' : { }
* }
* @ returns An object with 'status' : 'success' | 'error' , 'content' : { }
* /
privateMethods . callBackend = function ( url , method ) {
if ( constants . HTTP _GET == method ) {
var response = serviceInvokers . XMLHttp . get ( url , function ( responsePayload ) {
var response = { } ;
response . content = responsePayload [ "responseContent" ] ;
if ( responsePayload [ "responseContent" ] == null && responsePayload != null ) {
response . content = responsePayload ;
if ( constants [ "HTTP_GET" ] == method ) {
return serviceInvokers . XMLHttp . get ( url ,
function ( backendResponse ) {
var response = { } ;
response . content = backendResponse . responseText ;
if ( backendResponse . status == 200 ) {
response . status = "success" ;
} else if ( backendResponse . status == 400 || backendResponse . status == 401 ||
backendResponse . status == 404 || backendResponse . status == 500 ) {
response . status = "error" ;
}
return response ;
}
response . status = "success" ;
return response ;
} ,
function ( responsePayload ) {
var response = { } ;
response . content = responsePayload ;
response . status = "error" ;
return response ;
} ) ;
return response ;
) ;
} else {
log . error ( " Programming error : This method only support HTTP GET requests.") ;
log . error ( "Runtime error : This method only support HTTP GET requests." ) ;
}
} ;
@ -101,43 +93,43 @@ var userModule = function () {
*
* @ returns { number } HTTP Status code 201 if succeeded , 409 if user already exists
* /
publicMethods . addUser = function ( username , firstname , lastname , emailAddress , userRoles ) {
var statusCode , carbon = require ( 'carbon' ) ;
var carbonUser = session . get ( constants . USER _SESSION _KEY ) ;
var utility = require ( '/app/modules/utility.js' ) . utility ;
if ( ! carbonUser ) {
log . error ( "User object was not found in the session" ) ;
throw constants . ERRORS . USER _NOT _FOUND ;
}
try {
utility . startTenantFlow ( carbonUser ) ;
var tenantId = carbon . server . tenantId ( ) ;
var userManager = new carbon . user . UserManager ( server , tenantId ) ;
if ( userManager . userExists ( username ) ) {
if ( log . isDebugEnabled ( ) ) {
log . debug ( "A user with name '" + username + "' already exists." ) ;
}
// http status code 409 refers to - conflict.
statusCode = 409 ;
} else {
var initialUserPassword = privateMethods . generateInitialUserPassword ( ) ;
var defaultUserClaims = privateMethods . buildDefaultUserClaims ( firstname , lastname , emailAddress ) ;
userManager . addUser ( username , initialUserPassword , userRoles , defaultUserClaims , "default" ) ;
privateMethods . inviteUserToEnroll ( username , initialUserPassword ) ;
if ( log . isDebugEnabled ( ) ) {
log . debug ( "A new user with name '" + username + "' was created." ) ;
}
// http status code 201 refers to - created.
statusCode = 201 ;
}
return statusCode ;
} catch ( e ) {
throw e ;
} finally {
utility . endTenantFlow ( ) ;
}
} ;
// publicMethods.addUser = function (username, firstname, lastname, emailAddress, userRoles) {
// var statusCode, carbon = require("carbon");
// var carbonUser = session.get(constants["USER_SESSION_KEY"]);
// var utility = require("/app/modules/utility.js")["utility"];
// if (!carbonUser) {
// log.error("User object was not found in the session");
// throw constants["ERRORS"]["USER_NOT_FOUND"];
// }
// try {
// utility.startTenantFlow(carbonUser);
// var tenantId = carbon.server.tenantId();
// var userManager = new carbon.user.UserManager(server, tenantId);
// if (userManager.userExists(username)) {
// if (log.isDebugEnabled()) {
// log.debug("A user with name '" + username + "' already exists.");
// }
// // http status code 409 refers to - conflict.
// statusCode = 409;
// } else {
// var initialUserPassword = privateMethods.generateInitialUserPassword();
// var defaultUserClaims = privateMethods.buildDefaultUserClaims(firstname, lastname, emailAddress);
//
// userManager.addUser(username, initialUserPassword, userRoles, defaultUserClaims, "default");
// privateMethods.inviteUserToEnroll(username, initialUserPassword);
// if (log.isDebugEnabled()) {
// log.debug("A new user with name '" + username + "' was created.");
// }
// // http status code 201 refers to - created.
// statusCode = 201;
// }
// return statusCode;
// } catch (e) {
// throw e;
// } finally {
// utility.endTenantFlow();
// }
// };
/ * *
* Register user to dc - user - store .
@ -188,39 +180,39 @@ var userModule = function () {
* @ param username Username of the user
* @ returns { number } HTTP Status code 200 if succeeded , 409 if the user does not exist
* /
publicMethods . removeUser = function ( username ) {
var statusCode , carbon = require ( 'carbon' ) ;
var carbonUser = session . get ( constants . USER _SESSION _KEY ) ;
var utility = require ( '/app/modules/utility.js' ) . utility ;
if ( ! carbonUser ) {
log . error ( "User object was not found in the session" ) ;
throw constants . ERRORS . USER _NOT _FOUND ;
}
try {
utility . startTenantFlow ( carbonUser ) ;
var tenantId = carbon . server . tenantId ( ) ;
var userManager = new carbon . user . UserManager ( server , tenantId ) ;
if ( userManager . userExists ( username ) ) {
userManager . removeUser ( username ) ;
if ( log . isDebugEnabled ( ) ) {
log . debug ( "An existing user with name '" + username + "' was removed." ) ;
}
// http status code 200 refers to - success.
statusCode = 200 ;
} else {
if ( log . isDebugEnabled ( ) ) {
log . debug ( "A user with name '" + username + "' does not exist to remove." ) ;
}
// http status code 409 refers to - conflict.
statusCode = 409 ;
}
return statusCode ;
} catch ( e ) {
throw e ;
} finally {
utility . endTenantFlow ( ) ;
}
} ;
// publicMethods.removeUser = function (username) {
// var statusCode, carbon = require('carbon');
// var carbonUser = session.get(constants.USER_SESSION_KEY);
// var utility = require("/app/modules/utility.js").utility;
// if (!carbonUser) {
// log.error("User object was not found in the session");
// throw constants.ERRORS.USER_NOT_FOUND;
// }
// try {
// utility.startTenantFlow(carbonUser);
// var tenantId = carbon.server.tenantId();
// var userManager = new carbon.user.UserManager(server, tenantId);
// if (userManager.userExists(username)) {
// userManager.removeUser(username);
// if (log.isDebugEnabled()) {
// log.debug("An existing user with name '" + username + "' was removed.");
// }
// // http status code 200 refers to - success.
// statusCode = 200;
// } else {
// if (log.isDebugEnabled()) {
// log.debug("A user with name '" + username + "' does not exist to remove.");
// }
// // http status code 409 refers to - conflict.
// statusCode = 409;
// }
// return statusCode;
// } catch (e) {
// throw e;
// } finally {
// utility.endTenantFlow();
// }
// };
/ *
@ Deprecated
@ -232,25 +224,25 @@ var userModule = function () {
*
* @ returns { string } Initial User Password
* /
privateMethods . generateInitialUserPassword = function ( ) {
var passwordLength = 6 ;
//defining the pool of characters to be used for initial password generation
var lowerCaseCharset = "abcdefghijklmnopqrstuvwxyz" ;
var upperCaseCharset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ;
var numericCharset = "0123456789" ;
var totalCharset = lowerCaseCharset + upperCaseCharset + numericCharset ;
var totalCharsetLength = totalCharset . length ;
var initialUserPassword = "" ;
for ( var i = 0 ; i < passwordLength ; ++ i ) {
initialUserPassword += totalCharset . charAt ( Math . floor ( Math . random ( ) * totalCharsetLength ) ) ;
}
if ( log . isDebugEnabled ( ) ) {
log . debug ( "Initial password created for new user : " + initialUserPassword ) ;
}
return String ( initialUserPassword ) ;
} ;
// privateMethods.generateInitialUserPassword = function () {
// var passwordLength = 6;
// //defining the pool of characters to be used for initial password generation
// var lowerCaseCharset = "abcdefghijklmnopqrstuvwxyz";
// var upperCaseCharset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
// var numericCharset = "0123456789";
//
// var totalCharset = lowerCaseCharset + upperCaseCharset + numericCharset;
// var totalCharsetLength = totalCharset.length;
//
// var initialUserPassword = "";
// for (var i = 0; i < passwordLength; ++i) {
// initialUserPassword += totalCharset.charAt(Math.floor(Math.random() * totalCharsetLength));
// }
// if (log.isDebugEnabled()) {
// log.debug("Initial password created for new user : " + initialUserPassword);
// }
// return String(initialUserPassword);
// };
/ *
@ Deprecated
@ -264,17 +256,17 @@ var userModule = function () {
*
* @ returns { Object } Default user claims to be provided
* /
privateMethods . buildDefaultUserClaims = function ( firstname , lastname , emailAddress ) {
var defaultUserClaims = {
"http://wso2.org/claims/givenname" : firstname ,
"http://wso2.org/claims/lastname" : lastname ,
"http://wso2.org/claims/emailaddress" : emailAddress
} ;
if ( log . isDebugEnabled ( ) ) {
log . debug ( "ClaimMap created for new user : " + stringify ( defaultUserClaims ) ) ;
}
return defaultUserClaims ;
} ;
// privateMethods.buildDefaultUserClaims = function (firstname, lastname, emailAddress) {
// var defaultUserClaims = {
// "http://wso2.org/claims/givenname": firstname,
// "http://wso2.org/claims/lastname": lastname,
// "http://wso2.org/claims/emailaddress": emailAddress
// };
// if (log.isDebugEnabled()) {
// log.debug("ClaimMap created for new user : " + stringify(defaultUserClaims));
// }
// return defaultUserClaims;
// };
/ *
@ Deprecated
@ -286,89 +278,89 @@ var userModule = function () {
* @ param username Username of the user
* @ param password Password of the user
* /
privateMethods . inviteUserToEnroll = function ( username , password ) {
var carbon = require ( 'carbon' ) ;
var enrollmentURL = devicemgtProps . generalConfig . host + devicemgtProps . webAgentContext + "download-agent" ;
var carbonUser = session . get ( constants . USER _SESSION _KEY ) ;
var utility = require ( '/app/modules/utility.js' ) . utility ;
if ( ! carbonUser ) {
log . error ( "User object was not found in the session" ) ;
throw constants . ERRORS . USER _NOT _FOUND ;
}
//var user = userManagementService.getUser(username, carbonUser.tenantId);
try {
utility . startTenantFlow ( carbonUser ) ;
var tenantId = carbon . server . tenantId ( ) ;
var userManager = new carbon . user . UserManager ( server , tenantId ) ;
var emailTo = [ ] ;
var user = userManager . getUser ( username ) ;
emailTo [ 0 ] = privateMethods . getEmail ( username , userManager ) ;
var emailMessageProperties = new EmailMessageProperties ( ) ;
emailMessageProperties . setMailTo ( emailTo ) ;
emailMessageProperties . setFirstName ( privateMethods . getFirstName ( username , userManager ) ) ;
emailMessageProperties . setUserName ( username ) ;
emailMessageProperties . setPassword ( password ) ;
emailMessageProperties . setEnrolmentUrl ( enrollmentURL ) ;
deviceManagementService . sendRegistrationEmail ( emailMessageProperties ) ;
} catch ( e ) {
throw e ;
} finally {
utility . endTenantFlow ( ) ;
}
} ;
// privateMethods.inviteUserToEnroll = function (username, password) {
// var carbon = require('carbon');
// var enrollmentURL = devicemgtProps.generalConfig.host + devicemgtProps.webAgentContext + "download-agent";
// var carbonUser = session.get(constants.USER_SESSION_KEY);
// var utility = require('/app/modules/utility.js').utility;
// if (!carbonUser) {
// log.error("User object was not found in the session");
// throw constants.ERRORS.USER_NOT_FOUND;
// }
// //var user = userManagementService.getUser(username, carbonUser.tenantId);
// try {
// utility.startTenantFlow(carbonUser);
// var tenantId = carbon.server.tenantId();
// var userManager = new carbon.user.UserManager(server, tenantId);
// var emailTo = [];
// var user = userManager.getUser(username);
// emailTo[0] = privateMethods.getEmail(username, userManager);
// var emailMessageProperties = new EmailMessageProperties();
// emailMessageProperties.setMailTo(emailTo);
// emailMessageProperties.setFirstName(privateMethods.getFirstName(username, userManager));
// emailMessageProperties.setUserName(username);
// emailMessageProperties.setPassword(password);
// emailMessageProperties.setEnrolmentUrl(enrollmentURL);
// deviceManagementService.sendRegistrationEmail(emailMessageProperties);
// } catch (e) {
// throw e;
// } finally {
// utility.endTenantFlow();
// }
// };
/ *
@ Deprecated
* /
privateMethods . getEmail = function ( username , userManager ) {
return userManager . getClaim ( username , "http://wso2.org/claims/emailaddress" , null )
} ;
// privateMethods.getEmail = function (username, userManager) {
// return userManager.getClaim(username, "http://wso2.org/claims/emailaddress", null)
// };
/ *
@ Deprecated
* /
privateMethods . getFirstName = function ( username , userManager ) {
return userManager . getClaim ( username , "http://wso2.org/claims/givenname" , null )
} ;
// privateMethods.getFirstName = function (username, userManager) {
// return userManager.getClaim(username, "http://wso2.org/claims/givenname", null)
// };
/ *
@ Deprecated
* /
privateMethods . getLastName = function ( username , userManager ) {
return userManager . getClaim ( username , "http://wso2.org/claims/lastname" , null )
} ;
// privateMethods.getLastName = function (username, userManager) {
// return userManager.getClaim(username, "http://wso2.org/claims/lastname", null)
// };
/ *
@ Deprecated
* /
publicMethods . inviteUser = function ( username ) {
var carbonUser = session . get ( constants . USER _SESSION _KEY ) ;
var utility = require ( '/app/modules/utility.js' ) . utility ;
if ( ! carbonUser ) {
log . error ( "User object was not found in the session" ) ;
throw constants . ERRORS . USER _NOT _FOUND ;
}
var enrollmentURL = devicemgtProps . generalConfig . host + devicemgtProps . webAgentContext + "download-agent" ;
try {
utility . startTenantFlow ( carbonUser ) ;
var tenantId = carbon . server . tenantId ( ) ;
var userManager = new carbon . user . UserManager ( server , tenantId ) ;
var user = userManager . getUser ( username ) ;
var emailProperties = new EmailMessageProperties ( ) ;
var emailTo = [ ] ;
emailTo [ 0 ] = privateMethods . getEmail ( username , userManager ) ;
emailProperties . setMailTo ( emailTo ) ;
//emailProperties.setFirstName(user.getFirstName());
emailProperties . setFirstName ( privateMethods . getFirstName ( username , userManager ) ) ;
emailProperties . setEnrolmentUrl ( enrollmentURL ) ;
deviceManagementService . sendEnrolmentInvitation ( emailProperties ) ;
} catch ( e ) {
throw e ;
} finally {
utility . endTenantFlow ( ) ;
}
} ;
// publicMethods.inviteUser = function (username) {
// var carbonUser = session.get(constants.USER_SESSION_KEY);
// var utility = require('/app/modules/utility.js').utility;
// if (!carbonUser) {
// log.error("User object was not found in the session");
// throw constants.ERRORS.USER_NOT_FOUND;
// }
// var enrollmentURL = devicemgtProps.generalConfig.host + devicemgtProps.webAgentContext + "download-agent";
//
// try {
// utility.startTenantFlow(carbonUser);
// var tenantId = carbon.server.tenantId();
// var userManager = new carbon.user.UserManager(server, tenantId);
// var user = userManager.getUser(username);
// var emailProperties = new EmailMessageProperties();
// var emailTo = [];
// emailTo[0] = privateMethods.getEmail(username, userManager);
// emailProperties.setMailTo(emailTo);
// //emailProperties.setFirstName(user.getFirstName());
// emailProperties.setFirstName(privateMethods.getFirstName(username, userManager));
// emailProperties.setEnrolmentUrl(enrollmentURL);
// deviceManagementService.sendEnrolmentInvitation(emailProperties);
// } catch (e) {
// throw e;
// } finally {
// utility.endTenantFlow();
// }
// };
/ *
@ Updated
@ -382,9 +374,12 @@ var userModule = function () {
}
try {
utility . startTenantFlow ( carbonUser ) ;
var url = devicemgtProps [ "httpsURL" ] + constants . ADMIN _SERVICE _CONTEXT + "/users" ;
return privateMethods . callBackend ( url , constants . HTTP _GET ) ;
var url = devicemgtProps [ "httpsURL" ] + devicemgtProps [ "backendRestEndpoints" ] [ "deviceMgt" ] + "/users?offset=0&limit=100" ;
var response = privateMethods . callBackend ( url , constants [ "HTTP_GET" ] ) ;
if ( response . status == "success" ) {
response . content = parse ( response . content ) . users ;
}
return response ;
} catch ( e ) {
throw e ;
} finally {
@ -395,22 +390,16 @@ var userModule = function () {
/ * *
* Return a User object from the backend by calling the JAX - RS
* @ param username
* @ returns {
* 'status' : 'success' | 'error' ,
* 'content' : {
"username" : "abc" ,
"firstname" : "abc" ,
"lastname" : "efj" ,
"emailAddress" : "abc@abc.com"
}
* }
* @ returns { object } a response object with status and content on success .
* /
publicMethods . getUser = function ( username ) {
var carbonUser = privateMethods . getCarbonUser ( ) ;
try {
utility . startTenantFlow ( carbonUser ) ;
var url = devicemgtProps [ "httpsURL" ] + constants . ADMIN _SERVICE _CONTEXT + "/users/view?username=" + username ;
var response = privateMethods . callBackend ( url , constants . HTTP _GET ) ;
var url = devicemgtProps [ "httpsURL" ] + devicemgtProps [ "backendRestEndpoints" ] [ "deviceMgt" ] + "/users/" +
encodeURIComponent ( username ) ;
var response = privateMethods . callBackend ( url , constants [ "HTTP_GET" ] ) ;
response [ "content" ] = parse ( response . content ) ;
response [ "userDomain" ] = carbonUser . domain ;
return response ;
} catch ( e ) {
@ -419,18 +408,19 @@ var userModule = function () {
utility . endTenantFlow ( ) ;
}
} ;
/ * *
* TODO: comment
* Returns a set of roles assigned to a particular user
* @ param username
* @ returns { * }
* @ returns { object } a response object with status and content on success .
* /
publicMethods . getRolesByUsername = function ( username ) {
var carbonUser = privateMethods . getCarbonUser ( ) ;
try {
utility . startTenantFlow ( carbonUser ) ;
var url = devicemgtProps [ "httpsURL" ] + constants. ADMIN _SERVICE _CONTEXT + "/users/roles?username=" + username ;
var response = privateMethods . callBackend ( url , constants . HTTP _GET ) ;
return response ;
var url = devicemgtProps [ "httpsURL" ] + devicemgtProps[ "backendRestEndpoints" ] [ "deviceMgt" ] + "/users/" +
encodeURIComponent ( username ) + "/roles" ;
return privateMethods. callBackend ( url , constants [ "HTTP_GET" ] ) ;
} catch ( e ) {
throw e ;
} finally {
@ -450,8 +440,8 @@ var userModule = function () {
}
try {
utility . startTenantFlow ( carbonUser ) ;
var url = devicemgtProps [ "httpsURL" ] + constants . ADMIN _SERVICE _CONTEXT + " /users/users-by-username";
return privateMethods . callBackend ( url , constants .HTTP _GET )
var url = devicemgtProps [ "httpsURL" ] + " /mdm-admin /users/users-by-username";
return privateMethods . callBackend ( url , constants ["HTTP_GET" ] ) ;
} catch ( e ) {
throw e ;
} finally {
@ -467,15 +457,19 @@ var userModule = function () {
* /
publicMethods . getRoles = function ( ) {
var carbonUser = session . get ( constants [ "USER_SESSION_KEY" ] ) ;
var utility = require ( '/app/modules/utility.js' ) [ "utility" ] ;
var utility = require ( "/app/modules/utility.js" ) [ "utility" ] ;
if ( ! carbonUser ) {
log . error ( "User object was not found in the session" ) ;
throw constants [ "ERRORS" ] [ "USER_NOT_FOUND" ] ;
}
try {
utility . startTenantFlow ( carbonUser ) ;
var url = devicemgtProps [ "httpsURL" ] + constants . ADMIN _SERVICE _CONTEXT + "/roles" ;
return privateMethods . callBackend ( url , constants . HTTP _GET ) ;
var url = devicemgtProps [ "httpsURL" ] + devicemgtProps [ "backendRestEndpoints" ] [ "deviceMgt" ] + "/roles" ;
var response = privateMethods . callBackend ( url , constants [ "HTTP_GET" ] ) ;
if ( response . status == "success" ) {
response . content = parse ( response . content ) . roles ;
}
return response ;
} catch ( e ) {
throw e ;
} finally {
@ -488,18 +482,24 @@ var userModule = function () {
* /
/ * *
* Get User Roles from user store ( Internal roles not included ) .
* @ returns { object } a response object with status and content on success .
* /
publicMethods . getRolesByUserStore = function ( userStore ) {
publicMethods . getRolesByUserStore = function ( ) {
var ROLE _LIMIT = devicemgtProps [ "pageSize" ] ;
var carbonUser = session . get ( constants [ "USER_SESSION_KEY" ] ) ;
var utility = require ( '/app/modules/utility.js' ) [ "utility" ] ;
var utility = require ( "/app/modules/utility.js" ) [ "utility" ] ;
if ( ! carbonUser ) {
log . error ( "User object was not found in the session" ) ;
throw constants [ "ERRORS" ] [ "USER_NOT_FOUND" ] ;
}
try {
utility . startTenantFlow ( carbonUser ) ;
var url = devicemgtProps [ "httpsURL" ] + constants . ADMIN _SERVICE _CONTEXT + "/roles/" + encodeURIComponent ( userStore ) ;
return privateMethods . callBackend ( url , constants . HTTP _GET ) ;
var url = devicemgtProps [ "httpsURL" ] + devicemgtProps [ "backendRestEndpoints" ] [ "deviceMgt" ] + "/roles?limit=" + ROLE _LIMIT ;
var response = privateMethods . callBackend ( url , constants [ "HTTP_GET" ] ) ;
if ( response . status == "success" ) {
response . content = parse ( response . content ) . roles ;
}
return response ;
} catch ( e ) {
throw e ;
} finally {
@ -510,17 +510,22 @@ var userModule = function () {
/ * *
* Get Platforms .
* /
//TODO Move this piece of logic out of user.js to somewhere else appropriate.
publicMethods . getPlatforms = function ( ) {
var carbonUser = session . get ( constants [ "USER_SESSION_KEY" ] ) ;
var utility = require ( '/app/modules/utility.js' ) [ "utility" ] ;
var utility = require ( "/app/modules/utility.js" ) [ "utility" ] ;
if ( ! carbonUser ) {
log . error ( "User object was not found in the session" ) ;
throw constants [ "ERRORS" ] [ "USER_NOT_FOUND" ] ;
}
try {
utility . startTenantFlow ( carbonUser ) ;
var url = devicemgtProps [ "httpsURL" ] + constants . ADMIN _SERVICE _CONTEXT + "/devices/types" ;
return privateMethods . callBackend ( url , constants . HTTP _GET ) ;
var url = devicemgtProps [ "httpsURL" ] + devicemgtProps [ "backendRestEndpoints" ] [ "deviceMgt" ] + "/admin/device-types" ;
var response = privateMethods . callBackend ( url , constants [ "HTTP_GET" ] ) ;
if ( response . status == "success" ) {
response . content = parse ( response . content ) ;
}
return response ;
} catch ( e ) {
throw e ;
} finally {
@ -535,15 +540,17 @@ var userModule = function () {
* /
publicMethods . getRole = function ( roleName ) {
var carbonUser = session . get ( constants [ "USER_SESSION_KEY" ] ) ;
var utility = require ( '/app/modules/utility.js' ) [ "utility" ] ;
var utility = require ( "/app/modules/utility.js" ) [ "utility" ] ;
if ( ! carbonUser ) {
log . error ( "User object was not found in the session" ) ;
throw constants [ "ERRORS" ] [ "USER_NOT_FOUND" ] ;
}
try {
utility . startTenantFlow ( carbonUser ) ;
var url = devicemgtProps [ "httpsURL" ] + constants . ADMIN _SERVICE _CONTEXT + "/roles/role?rolename=" + encodeURIComponent ( roleName ) ;
var response = privateMethods . callBackend ( url , constants . HTTP _GET ) ;
var url = devicemgtProps [ "httpsURL" ] + devicemgtProps [ "backendRestEndpoints" ] [ "deviceMgt" ] +
"/roles/" + encodeURIComponent ( roleName ) ;
var response = privateMethods . callBackend ( url , constants [ "HTTP_GET" ] ) ;
response . content = parse ( response . content ) ;
return response ;
} catch ( e ) {
throw e ;
@ -776,24 +783,29 @@ var userModule = function () {
* retrieve secondary user stores .
* This needs Authentication since the method access admin services .
*
* @ returns { string array } Array of secondary user stores .
* @ returns Array of secondary user stores .
* /
publicMethods . getSecondaryUserStores = function ( ) {
var returnVal = [ ] ;
var endpoint = devicemgtProps .adminService + constants . USER _STORE _CONFIG _ADMIN _SERVICE _END _POINT ;
var endpoint = devicemgtProps ["adminService" ] + constants [ "USER_STORE_CONFIG_ADMIN_SERVICE_END_POINT" ] ;
var wsPayload = "<xsd:getSecondaryRealmConfigurations xmlns:xsd='http://org.apache.axis2/xsd'/>" ;
serviceInvokers . WS . soapRequest (
"urn:getSecondaryRealmConfigurations" , endpoint , wsPayload , function ( wsResponse ) {
"urn:getSecondaryRealmConfigurations" ,
wsPayload ,
endpoint ,
function ( wsResponse ) {
var domainIDs = stringify ( wsResponse . * : : [ 'return' ] . * : : domainId . text ( ) ) ;
if ( domainIDs != "\"\"" ) {
var regExpForSearch = new RegExp ( constants . USER _STORES _NOISY _CHAR , "g" ) ;
var regExpForSearch = new RegExp ( constants ["USER_STORES_NOISY_CHAR" ] , "g" ) ;
domainIDs = domainIDs . replace ( regExpForSearch , "" ) ;
returnVal = domainIDs . split ( constants .USER _STORES _SPLITTING _CHAR ) ;
returnVal = domainIDs . split ( constants ["USER_STORES_SPLITTING_CHAR" ] ) ;
}
} , function ( e ) {
log . error ( "Error retrieving secondary user stores" , e ) ;
} , constants . SOAP _VERSION ) ;
} ,
constants [ "SOAP_VERSION" ] ) ;
return returnVal ;
} ;
return publicMethods ;
} ( ) ;