mirror of
https://github.com/bitwarden/browser.git
synced 2024-10-19 07:35:48 +02:00
88 lines
2.5 KiB
JavaScript
88 lines
2.5 KiB
JavaScript
|
function UserService(tokenService) {
|
|||
|
this.tokenService = tokenService;
|
|||
|
};
|
|||
|
|
|||
|
!function () {
|
|||
|
var _userProfile = null;
|
|||
|
|
|||
|
UserService.prototype.getUserProfile = function (callback) {
|
|||
|
if (!callback || typeof callback !== 'function') {
|
|||
|
throw 'callback function required';
|
|||
|
}
|
|||
|
|
|||
|
if (_userProfile) {
|
|||
|
callback(_userProfile);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
this.setUserProfile(null, function () {
|
|||
|
callback(_userProfile);
|
|||
|
});
|
|||
|
};
|
|||
|
|
|||
|
UserService.prototype.setUserProfile = function (profile, callback) {
|
|||
|
if (!callback || typeof callback !== 'function') {
|
|||
|
throw 'callback function required';
|
|||
|
}
|
|||
|
|
|||
|
this.tokenService.getToken(function (token) {
|
|||
|
if (!token) {
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
//var decodedToken = jwtHelper.decodeToken(token);
|
|||
|
var twoFactor = false;// decodedToken.authmethod === "TwoFactor";
|
|||
|
|
|||
|
_userProfile = {
|
|||
|
//id: decodedToken.nameid,
|
|||
|
//email: decodedToken.email,
|
|||
|
//twoFactor: twoFactor
|
|||
|
};
|
|||
|
|
|||
|
if (!twoFactor && profile) {
|
|||
|
loadProfile(profile, callback);
|
|||
|
}
|
|||
|
else if (!twoFactor && !profile) {
|
|||
|
loadProfile({}, callback);
|
|||
|
//apiService.accounts.getProfile({}, function (response) {
|
|||
|
// loadProfile(response, callback);
|
|||
|
//});
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
function loadProfile(profile, callback) {
|
|||
|
_userProfile.extended = {
|
|||
|
name: profile.Name,
|
|||
|
twoFactorEnabled: profile.TwoFactorEnabled,
|
|||
|
culture: profile.Culture
|
|||
|
};
|
|||
|
|
|||
|
callback();
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
UserService.prototype.clearUserProfile = function () {
|
|||
|
_userProfile = null;
|
|||
|
};
|
|||
|
|
|||
|
UserService.prototype.isAuthenticated = function (callback) {
|
|||
|
if (!callback || typeof callback !== 'function') {
|
|||
|
throw 'callback function required';
|
|||
|
}
|
|||
|
|
|||
|
this.getUserProfile(function (profile) {
|
|||
|
callback(profile !== null && !profile.twoFactor);
|
|||
|
});
|
|||
|
};
|
|||
|
|
|||
|
UserService.prototype.isTwoFactorAuthenticated = function (callback) {
|
|||
|
if (!callback || typeof callback !== 'function') {
|
|||
|
throw 'callback function required';
|
|||
|
}
|
|||
|
|
|||
|
this.getUserProfile(function (profile) {
|
|||
|
callback(profile !== null && profile.twoFactor);
|
|||
|
});
|
|||
|
};
|
|||
|
}();
|