diff options
author | David Gay <david@davidgay.org> | 2021-05-19 22:53:38 -0400 |
---|---|---|
committer | David Gay <david@davidgay.org> | 2021-05-19 22:53:38 -0400 |
commit | 9415011b5fd192f1bafeaa9b6eacbb7921382a00 (patch) | |
tree | f25d9d633237cae5d7b73166e6612a9b53312714 /app/models/chat_room.rb | |
parent | da678b22b5db05554b44234b341fabc9d83ff700 (diff) |
Chat
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 |