Class | User |
In: |
app/models/user.rb
|
Parent: | ActiveRecord::Base |
# File app/models/user.rb, line 30 30: def self.current=(user) 31: Thread.current[:cms_user] = user 32: end
# File app/models/user.rb, line 34 34: def self.guest(options = {}) 35: GuestUser.new(options) 36: end
Expects a list of names of Permissions true if the user has any of the permissions
# File app/models/user.rb, line 98 98: def able_to?(*required_permissions) 99: perms = required_permissions.map(&:to_sym) 100: permissions.any? do |p| 101: perms.include?(p.name.to_sym) 102: end 103: end
Expects section to be a Section Returns true if any of the sections of the groups that have group_type = ‘CMS User’ that the user is in match the section.
# File app/models/user.rb, line 117 117: def able_to_edit?(section) 118: !!(editable_sections.include?(section) && able_to?(:edit_content)) 119: end
# File app/models/user.rb, line 121 121: def able_to_edit_or_publish_content? 122: able_to?(:edit_content, :publish_content) 123: end
Expects object to be an object or a section If it‘s a section, that will be used If it‘s not a section, it will call section on the object returns true if any of the sections of the groups the user is in matches the page‘s section.
# File app/models/user.rb, line 109 109: def able_to_view?(object) 110: section = object.is_a?(Section) ? object : object.section 111: !!(viewable_sections.include?(section) || groups.cms_access.count > 0) 112: end
# File app/models/user.rb, line 42 42: def disable 43: if self.class.count(:conditions => ["expires_at is null and id != ?", id]) > 0 44: self.expires_at = Time.now - 1.minutes 45: else 46: false 47: end 48: end
# File app/models/user.rb, line 50 50: def disable! 51: unless disable 52: raise "You must have at least 1 enabled user" 53: end 54: save! 55: end
# File app/models/user.rb, line 92 92: def editable_sections 93: @editable_sections ||= Section.find(:all, :include => {:groups => [:group_type, :users]}, :conditions => ["users.id = ? and group_types.cms_access = ?", id, true]) 94: end
# File app/models/user.rb, line 57 57: def expired? 58: expires_at && expires_at <= Time.now 59: end
This is to show a formated date on the input form. I‘m unsure that this is the best way to solve this, but it works.
# File app/models/user.rb, line 80 80: def expires_at_formatted 81: expires_at ? (expires_at.strftime '%m/%d/%Y' ): nil 82: end
# File app/models/user.rb, line 70 70: def full_name 71: [first_name, last_name].reject{|e| e.nil?}.join(" ") 72: end
# File app/models/user.rb, line 74 74: def full_name_with_login 75: "#{full_name} (#{login})" 76: end
# File app/models/user.rb, line 84 84: def permissions 85: @permissions ||= Permission.find(:all, :include => {:groups => :users}, :conditions => ["users.id = ?", id]) 86: end