Module: Ums::ApplicationHelper
- Defined in:
- app/helpers/ums/application_helper.rb
Instance Method Summary collapse
-
#authorize ⇒ Object
用户访问权限检查.
-
#log_error(log_type, log_content) ⇒ Object
记录错误日志.
-
#log_info(log_type, log_content) ⇒ Object
记录信息日志.
-
#operate_log ⇒ Object
操作日志,主要针对model的增删改.
-
#set_current_session ⇒ Object
为ActiveRecord类设置session变量.
-
#validate_permission(path) ⇒ Object
根据访问路径判断访问权限.
Instance Method Details
#authorize ⇒ Object
用户访问权限检查
43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'app/helpers/ums/application_helper.rb', line 43 def #unless Account.find_by_id(session[:account_id]) if session[:user_id].nil? session[:original_uri] = request.url #flash[:notice] = "Please log in" redirect_to ums.users_login_url return end path = params[:controller] + "/" + params[:action] unless (path) render status: :forbidden,plain: "对不起,您没有访问该地址的权限" end end |
#log_error(log_type, log_content) ⇒ Object
记录错误日志
83 84 85 86 87 88 89 90 91 |
# File 'app/helpers/ums/application_helper.rb', line 83 def log_error(log_type,log_content) log = Ums::Log.new log.level="error" log.log_type=log_type log.data=log_content log.ip=request.remote_ip log.operator = session[:user_account] unless session[:user_account].blank? log.save end |
#log_info(log_type, log_content) ⇒ Object
记录信息日志
72 73 74 75 76 77 78 79 80 |
# File 'app/helpers/ums/application_helper.rb', line 72 def log_info(log_type,log_content) log = Ums::Log.new log.level="info" log.log_type=log_type log.data=log_content log.ip=request.remote_ip log.operator = session[:user_account] unless session[:user_account].blank? log.save end |
#operate_log ⇒ Object
操作日志,主要针对model的增删改
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'app/helpers/ums/application_helper.rb', line 18 def operate_log log = Ums::Log.new log.level="info" log.log_type= action_name log.ip= request.remote_ip log.operator = session[:user_account] unless session[:user_account].blank? model_class = self.class.name.sub("Controller", "") #logger.debug("model_class:"+ model_class) log.model_class = model_class model_var_name = model_class.singularize.sub("::", "_").downcase model_var = instance_variable_get("@"+model_var_name) if model_var && model_var.kind_of?(ActiveRecord::Base) log.model_id = model_var.id log.data = "" log.data = model_var.name if model_var.has_attribute?(:name) && model_var.name log.data = model_var.title if model_var.has_attribute?(:title) && model_var.title if !model_var.errors.blank? log.level="error" log.data += model_var.errors..to_s end end log.save end |
#set_current_session ⇒ Object
为ActiveRecord类设置session变量
5 6 7 8 9 10 11 12 13 14 15 |
# File 'app/helpers/ums/application_helper.rb', line 5 def set_current_session # Define an accessor. The session is always in the current controller # instance in @_request.session. So we need a way to access this in # our model accessor = instance_variable_get(:@_request) # This defines a method session in ActiveRecord::Base. If your model # inherits from another Base Class (when using MongoMapper or similar), # insert the class here. ActiveRecord::Base.send(:define_method, "session", proc {accessor.session}) end |
#validate_permission(path) ⇒ Object
根据访问路径判断访问权限
59 60 61 62 63 64 65 66 67 68 69 |
# File 'app/helpers/ums/application_helper.rb', line 59 def (path) = session[:user_permission] logger.debug("user_permission:" + .to_s) logger.debug("user_path:" + path.to_s) return false if .nil? || path.nil? is_validated = path.match() is_validated = (path + "/index").match() unless is_validated #增加模块默认地址检测 return is_validated end |