@knapsack/app
Version:
Build Design Systems on top of knapsack, by Basalt
61 lines (50 loc) • 1.84 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getUserInfo = getUserInfo;
var _auth = _interopRequireDefault(require("@aws-amplify/auth"));
var _core = require("@knapsack/core");
async function getUserInfo() {
let groups = [];
let ksRepoAccess = [];
let canEdit = false;
let username;
const user = await _auth.default.currentUserInfo();
if (user) {
const authedUser = await _auth.default.currentAuthenticatedUser();
username = authedUser.getUsername();
const {
'cognito:groups': cognitoGroups,
'cognito:roles': cognitoArnRoles,
'cognito:preferred_role': cognitoArnPreferredRole,
'custom:ks-github-repos': ksGithubRepos
} = authedUser.signInUserSession.getIdToken().payload; // console.log({
// authedUser,
// cognitoGroups,
// cognitoArnRoles,
// cognitoArnPreferredRole,
// ksGithubRepos,
// });
groups = cognitoGroups;
ksRepoAccess = ksGithubRepos === null || ksGithubRepos === void 0 ? void 0 : ksGithubRepos.split(',');
}
const role = groups.length === 0 ? _core.KS_USER_ROLES.anonymous : _core.ksRolesOrdered.find(r => groups.includes(r.id));
canEdit = role.permissions.includes(_core.PERMISSIONS.WRITE);
let token;
try {
var _session$getAccessTok;
// token = getClientToken();
const session = await _auth.default.currentSession();
token = session === null || session === void 0 ? void 0 : (_session$getAccessTok = session.getAccessToken()) === null || _session$getAccessTok === void 0 ? void 0 : _session$getAccessTok.getJwtToken(); // eslint-disable-next-line no-empty
} catch (e) {}
return {
user,
username,
canEdit,
role,
ksRepoAccess,
token
};
}