summaryrefslogtreecommitdiff
path: root/app/models/chat_room.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/chat_room.rb')
-rw-r--r--app/models/chat_room.rb27
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