summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--client/components/users/userAvatar.jade4
-rw-r--r--models/users.js13
-rw-r--r--sandstorm.js15
3 files changed, 16 insertions, 16 deletions
diff --git a/client/components/users/userAvatar.jade b/client/components/users/userAvatar.jade
index 44e899a7..e08666e5 100644
--- a/client/components/users/userAvatar.jade
+++ b/client/components/users/userAvatar.jade
@@ -1,7 +1,7 @@
template(name="userAvatar")
a.member.js-member(title="{{userData.profile.fullname}} ({{userData.username}})")
- if userData.getAvatarUrl
- img.avatar.avatar-image(src=userData.getAvatarUrl)
+ if userData.profile.avatarUrl
+ img.avatar.avatar-image(src=userData.profile.avatarUrl)
else
+userAvatarInitials(userId=userData._id)
diff --git a/models/users.js b/models/users.js
index cf4c4193..8dd5ed78 100644
--- a/models/users.js
+++ b/models/users.js
@@ -47,19 +47,6 @@ Users.helpers({
return _.contains(invitedBoards, boardId);
},
- getAvatarUrl() {
- // Although we put the avatar picture URL in the `profile` object, we need
- // to support Sandstorm which put in the `picture` attribute by default.
- // XXX Should we move both cases to `picture`?
- if (this.picture) {
- return this.picture;
- } else if (this.profile && this.profile.avatarUrl) {
- return this.profile.avatarUrl;
- } else {
- return null;
- }
- },
-
getInitials() {
const profile = this.profile || {};
if (profile.initials)
diff --git a/sandstorm.js b/sandstorm.js
index 5148095f..85124f04 100644
--- a/sandstorm.js
+++ b/sandstorm.js
@@ -65,11 +65,23 @@ if (isSandstorm && Meteor.isServer) {
// accesses the document, but in case a already known user comes back, we
// need to update his associated document to match the request HTTP headers
// informations.
+ // XXX We need to update this document even if the initial route is not `/`.
+ // Unfortuanlty I wasn't able to make the Webapp.rawConnectHandlers solution
+ // work.
const user = Users.findOne({
'services.sandstorm.id': req.headers['x-sandstorm-user-id'],
});
if (user) {
- updateUserPermissions(user._id, user.permissions);
+ // XXX At this point the user.services.sandstorm credentials haven't been
+ // updated, which mean that the user will have to restart the application
+ // a second time to see its updated name and avatar.
+ Users.update(user._id, {
+ $set: {
+ 'profile.fullname': user.services.sandstorm.name,
+ 'profile.avatarUrl': user.services.sandstorm.picture,
+ },
+ });
+ updateUserPermissions(user._id, user.services.sandstorm.permissions);
}
});
@@ -109,6 +121,7 @@ if (isSandstorm && Meteor.isServer) {
$set: {
username: generateUniqueUsername(username, appendNumber),
'profile.fullname': doc.services.sandstorm.name,
+ 'profile.avatarUrl': doc.services.sandstorm.picture,
},
});