Viewing File: /usr/local/cpanel/whostmgr/docroot/templates/external_auth/services/UsersService.js
/*
# templates/external_auth/services/UsersService.js Copyright 2022 cPanel, L.L.C.
# All rights reserved.
# copyright@cpanel.net http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited
*/
/* global define: false */
/* jshint -W100 */
// Then load the application dependencies
define(
[
"angular",
"lodash",
"cjt/core",
"cjt/util/parse",
"cjt/io/api",
"cjt/io/whm-v1-request",
"cjt/io/whm-v1",
"cjt/modules",
],
function(angular, _, CJT, PARSE, API, APIREQUEST) {
"use strict";
var app = angular.module("App");
function UsersServiceFactory($q) {
var users = [];
var UsersService = {};
UsersService.get_users = function() {
return users;
};
UsersService.fetch_users = function() {
var deferred = $q.defer();
var apiCall = new APIREQUEST.Class();
apiCall.initialize("", "get_users_authn_linked_accounts");
API.promise(apiCall.getRunArguments())
.done(function(response) {
response = response.parsedResponse;
if (response.status) {
deferred.resolve(response);
} else {
deferred.reject(response.error);
}
});
deferred.promise.then(function(result) {
users = [];
angular.forEach(result.data, function(row) {
var user = UsersService.get_user_by_username(row.username);
if (!user) {
user = {
username: row.username,
links: {}
};
users.push(user);
}
if (!user.links[row.provider_protocol]) {
user.links[row.provider_protocol] = {};
}
if (!user.links[row.provider_protocol][row.provider_id]) {
user.links[row.provider_protocol][row.provider_id] = {};
}
user.links[row.provider_protocol][row.provider_id][row.subject_unique_identifier] = {
link_type: row.link_type,
preferred_username: row.preferred_username
};
});
});
return deferred.promise;
};
UsersService.get_user_by_username = function(username) {
for (var i = 0; i < users.length; i++) {
if (users[i].username === username) {
return users[i];
}
}
};
UsersService.unlink_provider = function(username, subject_unique_identifier, provider) {
var deferred = $q.defer();
var apiCall = new APIREQUEST.Class();
apiCall.initialize("", "unlink_user_authn_provider");
apiCall.addArgument("username", username);
apiCall.addArgument("subject_unique_identifier", subject_unique_identifier);
apiCall.addArgument("provider_id", provider);
API.promise(apiCall.getRunArguments())
.done(function(response) {
response = response.parsedResponse;
if (response.status) {
deferred.resolve(response);
} else {
deferred.reject(response.error);
}
});
return deferred.promise;
};
return UsersService;
}
UsersServiceFactory.$inject = ["$q", "growl"];
return app.factory("UsersService", UsersServiceFactory);
});
Back to Directory
File Manager