diff options
Diffstat (limited to 'app/models/chat_room.rb')
-rw-r--r-- | app/models/chat_room.rb | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/app/models/chat_room.rb b/app/models/chat_room.rb new file mode 100644 index 0000000..17e3f19 --- /dev/null +++ b/app/models/chat_room.rb @@ -0,0 +1,27 @@ +class ChatRoom < ApplicationRecord + has_many :chat_messages + validates :gid, :name, presence: true, uniqueness: true + + attribute :permission_level, :integer, default: 1 + enum permission_level: { + banned: 0, + player: 1, + helper: 2, + builder: 3, + admin: 4, + developer: 5, + owner: 6 + } + + def self.accessible_to(user) + all.select { |x| x.accessible_to?(user) } + end + + def accessible_to?(user) + user.has_permission_or_higher?(self.permission_level) + end + + def short_name + self.name[0..6] + end +end |