Skip to content

samvera-labs/samvera-persona

Repository files navigation

Samvera::Persona

A simple user management engine that provides the ability for admins to invite users, reset user passwords, archive users, and log in as users.

Samvera::Persona is currently configured to run in Hyku and Avalon applications.

Installation

Add this line to your application's Gemfile:

gem 'samvera-persona'

Then execute:

$ bundle

Mount the engine in config/routes.rb

  mount Samvera::Persona::Engine => '/'

Run migrations:

$ bundle exec rake db:migrate

Add a link to the persona admin section

<% if defined?(Samvera::Persona) %>
  <% if can? :manage, User %>
    <li class=<%= active_for_controller('samvera/persona/users') %>><%= link_to 'Manage Users', main_app.persona_users_path %></li>
  <% end %>
<% end %>

Requirements

Samvera::Persona requires Rails 6.0 or greater, Devise for user authentication and expects that your application has the Rails default mailer configured.

How it Works

Once you have Samvera::Persona installed, you will have access to user management features of inviting users, editing user passwords, becoming users, and archiving users. Features are available at the manage users dashboard.

Invite User

From the Manage Users dashboard, type email address into the 'Add or Invite user via email' form and click the 'Invite user' button. New users will receive an email to create an account.

Edit User

From the Manage Users dashboard, click 'Edit' in the 'Action' column. You will be able to reset the user's password.

Become User

From the Manage Users dashboard, click 'Become' in the 'Action' column. You will now be logged in as the user. This will be helpful for those occasions when you need to see exactly what your user sees. To end the user session, click 'Back to admin' at the top of the page.

Archive User

From the Manage Users dashboard, click 'Delete'. The user will now be archived. This feature can be disabled by adding the following initializer

Samvera::Persona.setup do |config|
  config.soft_delete = false
end

Omniauth Notes

External user edit is currently disabled by default. If you are using omniauth and the common provider column on your user table, edit will be disabled for users with a value in that column.

Contributing

See CONTRIBUTING.md for contributing guidelines.

We encourage everyone to help improve this project. Bug reports and pull requests are welcome on GitHub at https://github.com/samvera-labs/samvera-persona.

This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

All Contributors should have signed the Hydra Contributor License Agreement (CLA)

Questions

Questions can be sent to [email protected]. Please make sure to include "Samvera::Persona" in the subject line of your email.

License

The gem is available as open source under the terms of the Apache 2.0 License.