简单的分析一下,发觉有了文档什么问题都不是问题!
model代码中我发觉user.rb代码比较丰富多彩一些,那就拿user.rb拿分析一下.
ruby 代码
- require 'digest/sha1'
-
- class User < ActiveRecord::Base
- has_many :moderatorships, :dependent => :destroy
- has_many :forums, :through => :moderatorships, :order => 'forums.name'
-
- has_many :posts
- has_many :topics
- has_many :monitorships
- has_many :monitored_topics, :through => :monitorships, :conditions => ['monitorships.active = ?', true], :order => 'topics.replied_at desc', :source => :topic
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- validates_presence_of :login, :email
- validates_length_of :login, :minimum => 2
-
- with_options :if => :password_required? do |u|
- u.validates_presence_of :password_hash
- u.validates_length_of :password, :minimum => 5, :allow_nil => true
- u.validates_confirmation_of :password, :on => :create
- u.validates_confirmation_of :password, :on => :update, :allow_nil => true
- end
-
-
-
- validates_format_of :login, :with => /^[a-z]{2}(?:\w+)?$/i
- validates_format_of :identity_url, :with => /^https?:\/\//i, :allow_nil => true
-
-
- validates_format_of :display_name, :with => /^[a-z]{2}(?:[.'\-\w ]+)?$/i, :allow_nil => true
-
- validates_format_of :email, :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i, :message => "Please check the e-mail address"[:check_email_message]
-
- validates_uniqueness_of :login, :email, :case_sensitive => false
- validates_uniqueness_of :display_name, :identity_url, :case_sensitive => false, :allow_nil => true
- before_validation { |u| u.identity_url = nil if u.identity_url.blank? }
- before_validation { |u| u.display_name = u.login if u.display_name.blank? }
-
- before_create { |u| u.admin = u.activated = true if User.count == 0 }
- format_attribute :bio
-
- attr_reader :password
- attr_protected :admin, :posts_count, :login, :created_at, :updated_at, :last_login_at, :topics_count, :activated
-
- def self.currently_online
- User.find(:all, :conditions => ["last_seen_at > ?", Time.now.utc-5.minutes])
- end
-
-
-
- def self.authenticate(login, password, activated=true)
- find_by_login_and_password_hash_and_activated(login, Digest::SHA1.hexdigest(password + PASSWORD_SALT), activated)
- end
-
- def self.search(query, options = {})
- with_scope :find => { :conditions => build_search_conditions(query) } do
- find :all, options
- end
- end
-
- def self.build_search_conditions(query)
- query && ['LOWER(display_name) LIKE :q OR LOWER(login) LIKE :q', {:q => "%#{query}%"}]
- end
-
- def password=(value)
- return if value.blank?
- write_attribute :password_hash, Digest::SHA1.hexdigest(value + PASSWORD_SALT)
- @password = value
- end
-
- def reset_login_key!
- self.login_key = Digest::SHA1.hexdigest(Time.now.to_s + password_hash.to_s + rand(123456789).to_s).to_s
-
- self.login_key_expires_at = Time.now.utc+1.year
- save!
- login_key
- end
-
- def moderator_of?(forum)
- moderatorships.count(:all, :conditions => ['forum_id = ?', (forum.is_a?(Forum) ? forum.id : forum)]) == 1
- end
-
- def to_xml(options = {})
- options[:except] ||= []
- options[:except] << :email << :login_key << :login_key_expires_at << :password_hash << :identity_url
- super
- end
-
- def password_required?
- identity_url.nil?
- end
- end
分享到:
相关推荐
蝙蝠怪物怪兽动物带动画模型
php-beast是一个源码加密模块...使用模块提供的beast_encode_file($input_file, $output_file);来加密文件,$input_file为要加密的文件,$output_file为要输出的加密文件。5)把加密好的文件放到服务器上运行。
#### 二、BEAST概述 **BEAST**由以下几个关键组件构成: 1. **BEAST程序**:这是核心程序,用于执行分子进化的贝叶斯推断。 2. **BEAUti**:即Bayesian Evolutionary Analysis Utility,是用于设置进化模型和MCMC...
"beast-1.0"可能是指Beast的一个特定版本,这个版本号表示了软件的稳定性和功能特性。在不同版本之间,Beast可能会添加新功能、修复错误或改进性能。因此,选择适合你研究需求的版本至关重要。 总的来说,Beast是一...
**二、贝叶斯算法基础** 贝叶斯算法是一种统计推断方法,基于贝叶斯定理。在生物进化分析中,贝叶斯方法能够处理复杂的进化模型,并给出所有可能树形结构的概率分布。通过马尔科夫链蒙特卡洛(MCMC)方法,BEAST...
这个扩展是基于著名的“BEAST”(Block Cipher for Efficient and Secure Transports)算法,它是一种对称加密算法,旨在提供高效且安全的数据传输。在PHP环境中,这个DLL扩展使得开发者可以更方便地在Windows平台上...
Boost.Beast的核心在于它的设计,它将网络通信的复杂性封装起来,使得开发者能够更专注于业务逻辑。Boost.Beast使用了Asio库,这是一个强大的、跨平台的C++网络编程库,提供了异步I/O功能。在Boost.Beast中,HTTP...
在Windows环境下编译PHP-beast扩展是一个较为复杂的过程,涉及到选择合适的编译器、设置编译环境、准备编译文件、以及执行具体的编译步骤。本文将详细说明如何在Windows系统中编译PHP-beast扩展,同时会提供必要的...
【标题】"Beast-Super-Signal_super_indicator_mt4indicator_mt4_beastsupersi" 指的是一个专门用于MetaTrader 4 (MT4) 平台的交易指标,名为"BEAST SUPER SIGNAL"。这个高级指标设计的目的是帮助交易者在金融市场中...
Beast2.07软件 Beast2.07软件 Beast2.07软件
beast2, 基于抽样树的贝叶斯进化分析 Beast 2 Beast 是一种基于分子序列MCMC的贝叶斯推理交叉平台程序。 它完全向根的方向推导,时间测量phylogenies使用严格或者松松的分子时钟模型推断出来。 它可以以作为一种重构...
BEAST是一个基于贝叶斯MCMC(马尔可夫链蒙特卡洛)分析的跨平台分子序列分析程序,其设计目标是用于推断具有根的、基于严格或松弛分子钟模型的时间测定的系统发育树。BEAST不仅是一个重建系统发育树的方法,也是一个...
#### 二、国语音轨的数字化提取 1. **正版音像制品中的国语音轨提取**: - **软件准备**:使用ANYDVD,这是一种自动解密DVD电影的驱动程序,用于去除CSS加密保护和全区码。此外,DVDDecrypter用于提取DVD中的视频...
PHP Beast是一个源码加密模块,使用这个模块可以把PHP源码加密并在此模块下运行。 为什么要用PHP-Beast? ... 有时候我们的代码会放到... 可见, 使用缓存的beast模块比原来还要快一点. 标签:phpbeast
php代码加密扩展 完安装php-beast后可以使用tools目录下的encode_files.php来加密你的项目使用。encode_files.php之前先修改tools目录下的configure.ini文件
BEAST攻击是利用了TLS 1.0中的CBC(Cipher Block Chaining)模式的一个漏洞,通过中间人攻击来获取用户敏感信息。php-beast扩展则为PHP提供了抵抗这种攻击的工具。 该扩展可能包括以下功能: 1. **TLS 1.2支持**:...
标题 "TB+Beast_deZenderphp.ini_dezender_" 暗示这是一个与 PHP 相关的项目,其中可能包含解码或处理 Zender 类的工具。描述 "decoder fo zender class php" 明确指出这是一个用于解码 Zender 类的 PHP 解码器。...
HP源码加密工具(php-beast)php7版简介php-beast是一个源码加密模块,使用这个模块可以把PHP源码加密并在此模块下运行。PHP源码加密工具(php-beast)php7版主要支持PHP7,选择php7分支然后编译安装即可。使用方法:1)...
《PHP源码加密模块——深入理解php-beast_liexusong.tar.gz》 在Web开发领域,PHP作为一种开源、跨平台的脚本语言,因其简洁、高效的特点被广泛应用。然而,随着互联网安全问题日益凸显,如何保护PHP源码不被轻易...
beast 7版作为一款高效的加密工具,提供了强大的加密算法和优化策略,能够有效提升代码的安全性。 1. **加密原理**:beast 7版可能采用了混淆、编码和加密等多种技术,使得原始的PHP代码变得难以理解。混淆技术通过...