mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-28 18:26:21 +00:00
38 lines
712 B
Ruby
38 lines
712 B
Ruby
# frozen_string_literal: true
|
|
|
|
# Define el rol que tiene una usuaria en un sitio
|
|
#
|
|
# Un rol puede ser temporal, es decir que aun no se ha aceptado y
|
|
# necesita del consentimiento de le usuarie :)
|
|
class Rol < ApplicationRecord
|
|
ROLES = %w[usuarie invitade].freeze
|
|
USUARIE = 'usuarie'
|
|
INVITADE = 'invitade'
|
|
|
|
belongs_to :usuarie
|
|
belongs_to :site
|
|
has_many :deploys
|
|
|
|
validates_inclusion_of :rol, in: ROLES
|
|
|
|
before_save :add_token_if_missing!
|
|
|
|
def invitade?
|
|
rol == INVITADE
|
|
end
|
|
|
|
def usuarie?
|
|
rol == USUARIE
|
|
end
|
|
|
|
def self.role?(rol)
|
|
ROLES.include? rol
|
|
end
|
|
|
|
private
|
|
|
|
# Asegurarse que tenga un token
|
|
def add_token_if_missing!
|
|
self.token ||= SecureRandom.hex(64)
|
|
end
|
|
end
|