mirror of https://github.com/rancher/ui.git
78 lines
2.3 KiB
JavaScript
78 lines
2.3 KiB
JavaScript
import Ember from 'ember';
|
|
import Resource from 'ember-api-store/models/resource';
|
|
import C from 'ui/utils/constants';
|
|
|
|
var Identity = Resource.extend({
|
|
isUser: Ember.computed.equal('externalIdType', C.PROJECT.TYPE_USER),
|
|
isTeam: Ember.computed.equal('externalIdType', C.PROJECT.TYPE_TEAM),
|
|
isOrg: Ember.computed.equal('externalIdType', C.PROJECT.TYPE_ORG),
|
|
|
|
avatarSrc: function() {
|
|
if ( this.get('isGithub') && this.get('profilePicture') )
|
|
{
|
|
return this.get('profilePicture');
|
|
}
|
|
else
|
|
{
|
|
return 'data:image/png;base64,' + new Identicon(md5(this.get('externalId')), 80, 0.01).toString();
|
|
}
|
|
}.property('isGithub','externalId','profilePicture'),
|
|
|
|
isGithub: function() {
|
|
return [
|
|
C.PROJECT.TYPE_GITHUB_ORG,
|
|
C.PROJECT.TYPE_GITHUB_TEAM,
|
|
C.PROJECT.TYPE_GITHUB_USER
|
|
].indexOf(this.get('externalIdType')) >= 0;
|
|
}.property('externalIdType'),
|
|
|
|
isMyRancher: function() {
|
|
return this.get('externalIdType') === C.PROJECT.TYPE_RANCHER &&
|
|
this.get('externalId') === this.get('session').get(C.SESSION.ACCOUNT_ID);
|
|
}.property('{externalId,externalIdType}'),
|
|
|
|
logicalType: function() {
|
|
switch ( this.get('externalIdType') )
|
|
{
|
|
case C.PROJECT.TYPE_RANCHER:
|
|
case C.PROJECT.TYPE_GITHUB_USER:
|
|
case C.PROJECT.TYPE_LDAP_USER:
|
|
return C.PROJECT.PERSON;
|
|
|
|
case C.PROJECT.TYPE_GITHUB_TEAM:
|
|
return C.PROJECT.TEAM;
|
|
|
|
case C.PROJECT.TYPE_GITHUB_ORG:
|
|
case C.PROJECT.TYPE_LDAP_GROUP:
|
|
return C.PROJECT.ORG;
|
|
}
|
|
}.property('externalIdType'),
|
|
|
|
logicalTypeSort: function() {
|
|
switch (this.get('logicalType') )
|
|
{
|
|
case C.PROJECT.ORG: return 1;
|
|
case C.PROJECT.TEAM: return 2;
|
|
case C.PROJECT.PERSON: return 3;
|
|
default: return 4;
|
|
}
|
|
}.property('logicalType'),
|
|
|
|
displayType: function() {
|
|
switch ( this.get('externalIdType') )
|
|
{
|
|
case C.PROJECT.TYPE_GITHUB_USER:
|
|
case C.PROJECT.TYPE_LDAP_USER: return 'User';
|
|
|
|
case C.PROJECT.TYPE_GITHUB_TEAM:return 'Team';
|
|
case C.PROJECT.TYPE_GITHUB_ORG: return 'Organization';
|
|
case C.PROJECT.TYPE_LDAP_GROUP: return 'Group';
|
|
case C.PROJECT.TYPE_RANCHER: return 'Local User';
|
|
}
|
|
|
|
return this.get('externalIdType')+'?';
|
|
}.property('externalIdType'),
|
|
});
|
|
|
|
export default Identity;
|