Improve verification of new user as admin or user

pull/2629/head
Rodrigo Nascimento 10 years ago
parent 3662cd3bcb
commit 6157e7763c
  1. 2
      packages/rocketchat-lib/server/models/Users.coffee
  2. 8
      server/lib/accounts.coffee

@ -2,6 +2,8 @@ RocketChat.models.Users = new class extends RocketChat.models._Base
constructor: ->
@model = Meteor.users
@tryEnsureIndex { 'roles': 1 }, { sparse: 1 }
# FIND ONE
findOneById: (_id, options) ->

@ -83,11 +83,11 @@ Accounts.insertUserDoc = _.wrap Accounts.insertUserDoc, (insertUserDoc, options,
if roles.length is 0
# when inserting first user give them admin privileges otherwise make a regular user
firstUser = RocketChat.models.Users.findOne({ _id: { $ne: 'rocket.cat' }}, { sort: { createdAt: 1 }})
if firstUser?._id is _id
roles.push 'admin'
else
hasAdmin = RocketChat.models.Users.findOne({ roles: 'admin' }, {fields: {_id: 1}})
if hasAdmin?
roles.push 'user'
else
roles.push 'admin'
RocketChat.authz.addUserRoles(_id, roles)

Loading…
Cancel
Save