Module: Sufia::User

Extended by:
ActiveSupport::Concern
Defined in:
app/models/concerns/sufia/user.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#abilityObject



63
64
65
# File 'app/models/concerns/sufia/user.rb', line 63

def ability
  @ability ||= ::Ability.new(self)
end

#as_json(opts = nil) ⇒ Object

Format the json for select2 which requires just an id and a field called text. If we need an alternate format we should probably look at a json template gem



29
30
31
# File 'app/models/concerns/sufia/user.rb', line 29

def as_json(opts = nil)
  {id: user_key, text: display_name ? "#{display_name} (#{user_key})" : user_key}
end

#email_addressObject



33
34
35
# File 'app/models/concerns/sufia/user.rb', line 33

def email_address
  return self.email
end

#get_all_user_activity(since = DateTime.now.to_i - 8640) ⇒ Object



67
68
69
70
71
# File 'app/models/concerns/sufia/user.rb', line 67

def get_all_user_activity( since = DateTime.now.to_i - 8640)
  events = self.events.reverse.collect { |event| event if event[:timestamp].to_i > since }.compact
  profile_events = self.profile_events.reverse.collect { |event| event if event[:timestamp].to_i > since }.compact
  events.concat(profile_events).sort { |a, b| b[:timestamp].to_i <=> a[:timestamp].to_i }
end

#groupsObject

The basic groups method, override or will fallback to Sufia::Ldap::User



59
60
61
# File 'app/models/concerns/sufia/user.rb', line 59

def groups
  @groups ||= self.group_list ? self.group_list.split(";?;") : []
end

#mailboxer_email(obj = nil) ⇒ Object

method needed for messaging



54
55
56
# File 'app/models/concerns/sufia/user.rb', line 54

def mailboxer_email(obj=nil)
  return nil
end

#nameObject



37
38
39
# File 'app/models/concerns/sufia/user.rb', line 37

def name
  return self.display_name.titleize || self.user_key rescue self.user_key
end

#to_paramObject

Redefine this for more intuitive keys in Redis



42
43
44
45
# File 'app/models/concerns/sufia/user.rb', line 42

def to_param
  # hack because rails doesn't like periods in urls.
  user_key.gsub(/\./, '-dot-')
end

#trophy_filesObject



47
48
49
50
51
# File 'app/models/concerns/sufia/user.rb', line 47

def trophy_files
  trophies.map do |t|
    ::GenericFile.load_instance_from_solr(Sufia::Noid.namespaceize(t.generic_file_id))
  end
end