Moved code to join default channels to outside setUsername method

pull/514/head
Marcelo Schmidt 11 years ago
parent 5538199c56
commit b2c71ed025
  1. 6
      client/views/username/username.coffee
  2. 1
      packages/rocketchat-lib/package.js
  3. 41
      packages/rocketchat-lib/server/methods/joinDefaultChannels.coffee
  4. 3
      packages/rocketchat-lib/server/methods/setUsername.coffee
  5. 57
      server/methods/setUsername.coffee
  6. 1
      server/restapi/restapi.coffee

@ -40,5 +40,7 @@ Template.username.events
else
username.error = true
username.username = value
RocketChat.Button.reset(button)
instance.username.set(username)
Meteor.call 'joinDefaultChannels', ->
RocketChat.Button.reset(button)
instance.username.set(username)

@ -25,6 +25,7 @@ Package.onUse(function(api) {
], ['server']);
api.addFiles([
'server/methods/joinDefaultChannels.coffee'
'server/methods/setUsername.coffee'
], ['server']);

@ -0,0 +1,41 @@
Meteor.methods
joinDefaultChannels: ->
if not Meteor.userId()
throw new Meteor.Error('invalid-user', "[methods] setUsername -> Invalid user")
console.log '[methods] joinDefaultChannels -> '.green, 'userId:', Meteor.userId(), 'arguments:', arguments
user = Meteor.user()
ChatRoom.find({default: true, t: {$in: ['c', 'p']}}).forEach (room) ->
# put user in default rooms
ChatRoom.update room._id,
$addToSet:
usernames: user.username
if not ChatSubscription.findOne(rid: room._id, 'u._id': user._id)?
# Add a subscription to this user
ChatSubscription.insert
rid: room._id
name: room.name
ts: new Date()
t: room.t
f: false
open: true
alert: true
unread: 1
u:
_id: user._id
username: user.username
# Insert user joined message
ChatMessage.insert
rid: room._id
ts: new Date()
t: 'uj'
msg: ''
u:
_id: user._id
username: user.username

@ -7,6 +7,9 @@ Meteor.methods
user = Meteor.user()
if user.username is username
return username
if not /^[0-9a-zA-Z-_.]+$/.test username
throw new Meteor.Error 'username-invalid'

@ -1,57 +0,0 @@
# Meteor.methods
# setUsername: (username) ->
# if not Meteor.userId()
# throw new Meteor.Error('invalid-user', "[methods] setUsername -> Invalid user")
# console.log '[methods] setUsername -> '.green, 'userId:', Meteor.userId(), 'arguments:', arguments
# user = Meteor.user()
# if not usernameIsAvaliable username
# throw new Meteor.Error 'username-unavailable'
# if not /^[0-9a-zA-Z-_.]+$/.test username
# throw new Meteor.Error 'username-invalid'
# if not user.username?
# ChatRoom.find({default: true, t: {$in: ['c', 'p']}}).forEach (room) ->
# # put user in default rooms
# ChatRoom.update room._id,
# $addToSet:
# usernames: username
# if not ChatSubscription.findOne(rid: room._id, 'u._id': user._id)?
# ChatSubscription.insert
# rid: room._id
# name: room.name
# ts: new Date()
# t: room.t
# f: false
# open: true
# alert: true
# unread: 1
# u:
# _id: user._id
# username: username
# ChatMessage.insert
# rid: room._id
# ts: new Date()
# t: 'uj'
# msg: ''
# u:
# _id: user._id
# username: username
# Meteor.users.update({_id: user._id}, {$set: {username: username}})
# return username
# slug = (text) ->
# text = slugify text, '.'
# return text.replace(/[^0-9a-z-_.]/g, '')
# usernameIsAvaliable = (username) ->
# if username.length < 1
# return false
# return not Meteor.users.findOne({username: {$regex : new RegExp("^" + username + "$", "i") }})

@ -110,6 +110,7 @@ Api.addRoute 'bulk/register', authRequired: true,
ids[i] = Meteor.call 'registerUser', incoming
Meteor.runAsUser ids[i].uid, () =>
Meteor.call 'setUsername', incoming.name
Meteor.call 'joinDefaultChannels'
status: 'success', ids: ids
catch e

Loading…
Cancel
Save