Module: Bpluser::User::InstanceMethods

Defined in:
app/models/bpluser/user.rb

Overview

The following methods will be included in any active model object that calls “is_blacklight_user”

Instance Method Summary collapse

Instance Method Details

#collectionsObject



183
184
185
186
# File 'app/models/bpluser/user.rb', line 183

def collections
  query="rightsMetadata_edit_access_machine_person_t:#{uid} AND NOT title_t:Uploads AND NOT title_t:Details AND has_model_s:info\\:fedora/afmodel\\:DILCollection"
  ActiveFedora::SolrService.query(query, {:fl=>'id title_t'})
end

#default_user_groupsObject



168
169
170
171
# File 'app/models/bpluser/user.rb', line 168

def default_user_groups
  # # everyone is automatically a member of the group 'public'
  #['public', 'test']
end

#email_not_required?Boolean

Returns:

  • (Boolean)


204
205
206
207
208
209
# File 'app/models/bpluser/user.rb', line 204

def email_not_required?
  if self.provider != 'digital_stacks_temporary' and self.provider != 'polaris'
    return true
  end
  return false
end

#existing_folder_item_for(document_id) ⇒ Object



188
189
190
191
192
193
194
# File 'app/models/bpluser/user.rb', line 188

def existing_folder_item_for (document_id)
  self.folders.find do |fldr|
    fldr.folder_items.find do |fldr_itm|
      return fldr_itm if fldr_itm.document_id == document_id
    end
  end
end

#get_details_collectionObject



178
179
180
181
# File 'app/models/bpluser/user.rb', line 178

def get_details_collection
  query="rightsMetadata_edit_access_machine_person_t:#{uid} AND title_s:Details AND has_model_s:info\\:fedora/afmodel\\:DILCollection"
  ActiveFedora::SolrService.query(query, {:fl=>'id title_t'})
end

#get_uploads_collectionObject



173
174
175
176
# File 'app/models/bpluser/user.rb', line 173

def get_uploads_collection
  query="rightsMetadata_edit_access_machine_person_t:#{uid} AND title_s:Uploads AND has_model_s:info\\:fedora/afmodel\\:DILCollection"
  ActiveFedora::SolrService.query(query, {:fl=>'id title_t'})
end

#ldap_groupsObject



157
158
159
160
161
162
# File 'app/models/bpluser/user.rb', line 157

def ldap_groups
  #Hydra::LDAP.groups_for_user(username + ",dc=psu,dc=edu")
  #['archivist', 'admin_policy_object_editor']

  Hydra::LDAP.groups_for_user(Net::LDAP::Filter.eq('samaccountname', self.username), ['memberOf'])  { |result| result.first[:memberOf].select{ |y| y.starts_with? 'CN=' }.map{ |x| x.sub(/^CN=/, '').sub(/,OU=Private Groups,DC=private,DC=bpl,DC=org/, '').sub(/,OU=Distribution Lists/, '').sub(/,OU=Security Groups/, '') } } rescue []
end

#nameObject



148
149
150
# File 'app/models/bpluser/user.rb', line 148

def name
  return self.username rescue self.display_name.titleize
end

#permanent_account?Boolean

Returns:

  • (Boolean)


200
201
202
# File 'app/models/bpluser/user.rb', line 200

def permanent_account?
  return self.provider != 'digital_stacks_temporary'
end

#populate_attributesObject



164
165
166
# File 'app/models/bpluser/user.rb', line 164

def populate_attributes

end

#superuser?Boolean

Returns:

  • (Boolean)


196
197
198
# File 'app/models/bpluser/user.rb', line 196

def superuser?
  roles.where(name: 'superuser').exists?
end

#to_sObject



144
145
146
# File 'app/models/bpluser/user.rb', line 144

def to_s
  self.username
end

#user_keyObject



152
153
154
# File 'app/models/bpluser/user.rb', line 152

def user_key
  send(Devise.authentication_keys.first)
end