Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # app/models/user.rb
- class User < ActiveRecord::Base
- has_many :posts, :class_name => "Forem::Post", :dependent => :destroy
- has_many :topics, :class_name => "Forem::Topic", :dependent => :destroy
- # Include default devise modules. Others available are:
- # :token_authenticatable, :confirmable,
- # :lockable, :timeoutable and :omniauthable
- devise :database_authenticatable, :registerable,
- :recoverable, :rememberable, :trackable, :validatable
- # Setup accessible (or protected) attributes for your model
- attr_accessible :email, :name, :username, :country, :gender, :password, :password_confirmation, :remember_me, :persistence_token
- def to_s
- name
- end
- # Creates an anonymous user. An anonymous user is basically an auto-generated +User+ account that is created for the guest user
- def self.anonymous!
- token = User.generate_token(:persistence_token)
- User.create(:email => "#{token}@example.net", :password => token, :password_confirmation => token, :persistence_token => token, :username => "#{token}", :gender => "male", :name => "#{token}")
- end
- def anonymous?
- email =~ /@example.net$/
- end
- # override default permission to support allow_anonymous flag
- def can_create_forem_topics?(forum)
- self.anonymous? ? forum.allow_anonymous : true
- end
- private
- # Generate a friendly string randomically to be used as token.
- def self.friendly_token
- SecureRandom.base64(15).tr('+/=', '-_ ').strip.delete("\n")
- end
- # Generate a token by looping and ensuring does not already exist.
- def self.generate_token(column)
- loop do
- token = friendly_token
- break token unless find(:first, :conditions => { column => token })
- end
- end
- end
Add Comment
Please, Sign In to add comment