|
|
|
@ -199,6 +199,53 @@ class User < Principal
|
|
|
|
|
end
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ======================================================================
|
|
|
|
|
# 集中处理 User 扩展表为空的问题
|
|
|
|
|
validate :valid_user_extensions
|
|
|
|
|
before_save :save_user_extensions
|
|
|
|
|
|
|
|
|
|
def extensions
|
|
|
|
|
self.user_extensions ||= self.create_user_extensions
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def respond_to?(m, include_private = false)
|
|
|
|
|
flag = extensions.respond_to? m.to_sym
|
|
|
|
|
if flag
|
|
|
|
|
flag
|
|
|
|
|
else
|
|
|
|
|
super
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def method_missing m, *args, &block
|
|
|
|
|
if extensions.respond_to? m.to_sym
|
|
|
|
|
self.class.send :define_method, m.to_sym, *args do
|
|
|
|
|
self.extensions.__send__ m.to_sym, *args
|
|
|
|
|
end
|
|
|
|
|
__send__ m.to_sym, *args, &block
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
super
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def valid_user_extensions
|
|
|
|
|
if !self.extensions.valid?
|
|
|
|
|
self.extensions.errors.messages.each do |key, values|
|
|
|
|
|
values.each do |value|
|
|
|
|
|
self.errors.add key, value
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def save_user_extensions
|
|
|
|
|
self.extensions.save
|
|
|
|
|
end
|
|
|
|
|
# 集中处理 User 扩展表为空的问题 < end
|
|
|
|
|
# ======================================================================
|
|
|
|
|
|
|
|
|
|
#选择项目成员时显示的用户信息文字
|
|
|
|
|
def userInfo
|
|
|
|
|
info=self.nickname + ' (' + self.realname + ')';
|
|
|
|
|