44 lines
1.1 KiB
Ruby
44 lines
1.1 KiB
Ruby
class User < ActiveRecord::Base
|
|
include Gravtastic
|
|
|
|
before_create :set_default_role
|
|
|
|
belongs_to :role
|
|
|
|
gravtastic :size => 165, :filetype => :png, :rating => 'R'
|
|
|
|
# Include default devise modules. Others available are:
|
|
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
|
|
devise :database_authenticatable, :registerable,
|
|
:recoverable, :rememberable, :trackable, :validatable
|
|
|
|
validates :username, :presence => true, :uniqueness => true
|
|
|
|
# Setup accessible (or protected) attributes for your model
|
|
attr_accessible :username, :email, :password, :password_confirmation, :remember_me, :role_id
|
|
|
|
has_many :topics, :dependent => :destroy
|
|
has_many :posts, :dependent => :destroy
|
|
|
|
def registered?
|
|
self.role == Role.find_by_name('registered')
|
|
end
|
|
|
|
def banned?
|
|
self.role == Role.find_by_name('banned')
|
|
end
|
|
|
|
def moderator?
|
|
self.role == Role.find_by_name('moderator')
|
|
end
|
|
|
|
def admin?
|
|
self.role == Role.find_by_name('admin')
|
|
end
|
|
|
|
private
|
|
def set_default_role
|
|
self.role ||= Role.find_by_name('registered')
|
|
end
|
|
end
|