class FlitterProfileMapper { map = { nameIdentifier: 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier', email: 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress', name: 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name', givenname: 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname', surname: 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname', upn: 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn', groups: 'http://schemas.xmlsoap.org/claims/Group' } metadata = [ { id: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", optional: true, displayName: 'E-Mail Address', description: 'The e-mail address of the user' }, { id: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname", optional: true, displayName: 'Given Name', description: 'The given name of the user' }, { id: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", optional: true, displayName: 'Name', description: 'The unique name of the user' }, { id: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname", optional: true, displayName: 'Surname', description: 'The surname of the user' }, { id: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", optional: true, displayName: 'Name ID', description: 'The SAML name identifier of the user' }] constructor(user) { this.user = user } getClaims() { const claims = {} claims[this.map.nameIdentifier] = this.user.uid.toLowerCase() claims[this.map.email] = this.user.email claims[this.map.name] = `${this.user.first_name} ${this.user.last_name}` claims[this.map.givenname] = this.user.first_name claims[this.map.surname] = this.user.last_name // TODO groups return claims } getNameIdentifier() { return { nameIdentifier: this.user.uid.toLowerCase() } } } module.exports = exports = FlitterProfileMapper