Sha256: 4e5a622a96eb5686dd38183c1fb5fcaf275e05653caeb8a89427bbed7df7472e

Contents?: true

Size: 1.99 KB

Versions: 17

Compression:

Stored size: 1.99 KB

Contents

class SlackSmartBot
  def add_admin(user, admin_user)
    save_stats(__method__)
    if Thread.current[:dest][0]=='D'
      respond "This command cannot be called from a DM"
    else
      if Thread.current[:typem] == :on_call
        channel = Thread.current[:dchannel]
      elsif Thread.current[:using_channel].to_s==''
        channel = Thread.current[:dest]
      else
        channel = Thread.current[:using_channel]
      end
      messages = []
      admins = config.masters.dup
      channels = get_channels()
      channel_found = channels.detect { |c| c.id == channel }
      if !channel_found.nil? and channel_found.creator.to_s != ''
        creator_info = @users.select{|u| u.id == channel_found.creator or (u.key?(:enterprise_user) and u.enterprise_user.id == channel_found.creator)}[-1]
        admins << creator_info.name
      end
      if Thread.current[:typem] == :on_bot or Thread.current[:typem] == :on_master
        admins << config.admins.dup
      end
      if @admins_channels.key?(channel) and @admins_channels[channel].size > 0
        admins << @admins_channels[channel]
      end
      admins.flatten!
      admins.uniq!
      admins.delete(nil)
      if admins.include?(user.name)
        admin_info = @users.select{|u| u.id == admin_user or (u.key?(:enterprise_user) and u.enterprise_user.id == admin_user)}[-1]
        if admins.include?(admin_info.name)
          messages << "This user is already an admin of this channel."
        else
          @admins_channels[channel] ||= []
          @admins_channels[channel] << admin_info.name
          update_admins_channels()
          messages << "The user is an admin of this channel from now on."
          admins << admin_info.name
        end
        messages << "*Admins*: <@#{admins.join('>, <@')}>"
      else
        messages << "Only the creator of the channel, Master admins or admins can add a new admin for this channel."
        messages << "*Admins*: <@#{admins.join('>, <@')}>"
      end

      respond messages.join("\n")
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
slack-smart-bot-1.14.2 lib/slack/smart-bot/commands/general/add_admin.rb
slack-smart-bot-1.14.1 lib/slack/smart-bot/commands/general/add_admin.rb
slack-smart-bot-1.14.0 lib/slack/smart-bot/commands/general/add_admin.rb
slack-smart-bot-1.13.2 lib/slack/smart-bot/commands/general/add_admin.rb
slack-smart-bot-1.13.1 lib/slack/smart-bot/commands/general/add_admin.rb
slack-smart-bot-1.13.0 lib/slack/smart-bot/commands/general/add_admin.rb
slack-smart-bot-1.12.9 lib/slack/smart-bot/commands/general/add_admin.rb
slack-smart-bot-1.12.8 lib/slack/smart-bot/commands/general/add_admin.rb
slack-smart-bot-1.12.7 lib/slack/smart-bot/commands/general/add_admin.rb
slack-smart-bot-1.12.6 lib/slack/smart-bot/commands/general/add_admin.rb
slack-smart-bot-1.12.5 lib/slack/smart-bot/commands/general/add_admin.rb
slack-smart-bot-1.12.4 lib/slack/smart-bot/commands/general/add_admin.rb
slack-smart-bot-1.12.3 lib/slack/smart-bot/commands/general/add_admin.rb
slack-smart-bot-1.12.2 lib/slack/smart-bot/commands/general/add_admin.rb
slack-smart-bot-1.12.1 lib/slack/smart-bot/commands/general/add_admin.rb
slack-smart-bot-1.12.0 lib/slack/smart-bot/commands/general/add_admin.rb
slack-smart-bot-1.11.0 lib/slack/smart-bot/commands/general/add_admin.rb