lib/slack/smart-bot/utils/has_access.rb in slack-smart-bot-1.10.0 vs lib/slack/smart-bot/utils/has_access.rb in slack-smart-bot-1.11.0

- old
+ new

@@ -1,12 +1,28 @@ class SlackSmartBot - def has_access?(method, user=nil) - user = Thread.current[:user] if user.nil? - if config[:allow_access].key?(method) and !config[:allow_access][method].include?(user.name) and !config[:allow_access][method].include?(user.id) and - (!user.key?(:enterprise_user) or ( user.key?(:enterprise_user) and !config[:allow_access][method].include?(user[:enterprise_user].id))) - respond "You don't have access to use this command, please contact an Admin to be able to use it: <@#{config.admins.join(">, <@")}>" - return false + def has_access?(method, user = nil) + user = Thread.current[:user] if user.nil? + if config[:allow_access].key?(method) and !config[:allow_access][method].include?(user.name) and !config[:allow_access][method].include?(user.id) and + (!user.key?(:enterprise_user) or (user.key?(:enterprise_user) and !config[:allow_access][method].include?(user[:enterprise_user].id))) + respond "You don't have access to use this command, please contact an Admin to be able to use it: <@#{config.admins.join(">, <@")}>" + return false + 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 + if !@access_channels.key?(channel) or !@access_channels[channel].key?(method.to_s) or @access_channels[channel][method.to_s].include?(user.name) + return true + else + if @admins_channels.key?(channel) and !@admins_channels[channel].empty? + respond "You don't have access to use this command, please contact an Admin to be able to use it: <@#{@admins_channels[channel].join(">, <@")}>" else - return true - end + respond "You don't have access to use this command, please contact an Admin to be able to use it." + end + return false + end end -end \ No newline at end of file + end +end