2020-05-04 01:16:54 +00:00
|
|
|
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 = {}
|
|
|
|
|
2020-10-19 04:27:23 +00:00
|
|
|
claims[this.map.nameIdentifier] = this.user.uid.toLowerCase()
|
2020-05-04 01:16:54 +00:00
|
|
|
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() {
|
2020-10-19 04:27:23 +00:00
|
|
|
return { nameIdentifier: this.user.uid.toLowerCase() }
|
2020-05-04 01:16:54 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = exports = FlitterProfileMapper
|