# hydra-role-management Code: [![Gem Version](https://badge.fury.io/rb/hydra-role-management.svg)](https://badge.fury.io/rb/hydra-role-management) [![Build Status](https://circleci.com/gh/samvera/hydra-role-management.svg?style=svg)](https://circleci.com/gh/samvera/hydra-role-management) [![Coverage Status](https://coveralls.io/repos/github/samvera/hydra-role-management/badge.svg?branch=main)](https://coveralls.io/github/samvera/hydra-role-management?branch=main) Docs: [![Contribution Guidelines](http://img.shields.io/badge/CONTRIBUTING-Guidelines-blue.svg)](./CONTRIBUTING.md) [![Apache 2.0 License](http://img.shields.io/badge/APACHE2-license-blue.svg)](./LICENSE.md) Community Support: [![Samvera Community Slack](https://img.shields.io/badge/samvera-slack-blueviolet)](http://slack.samvera.org/) # What is hydra-role-management? An engine gem to provide a RDBMS backed list of roles and their associated user. This replaces the hydra default role mapper. As of version 1.0, this gem only supports Rails 5. ## Product Owner & Maintenance `hydra-role-management` was a Core Component of the Samvera Community. Given a decline in available labor required for maintenance, this project no longer has a dedicated Product Owner. The documentation for what this means can be found [here](http://samvera.github.io/core_components.html#requirements-for-a-core-component). ### Product Owner **Vacant** _Until a Product Owner has been identified, we ask that you please direct all requests for support, bug reports, and general questions to the [`#dev` Channel on the Samvera Slack](https://samvera.slack.com/app_redirect?channel=dev)._ # Help The Samvera community is here to help. Please see our [support guide](./SUPPORT.md). ## Installing: - Add: `gem 'hydra-role-management'` to your Gemfile and then `bundle install` - `rails generate roles` - `rake db:migrate` - Add the following [cancan](https://github.com/ryanb/cancan) abilities: ``` # app/models/ability.rb if current_user.admin? can [:create, :show, :add_user, :remove_user, :index, :edit, :update, :destroy], Role end ``` ## Testing: - Install a system javascript runtime or uncomment therubyracer in spec/support/Gemfile - Ensure that the testing app does not exist: `bundle exec rake engine_cart:clean` - Set Rails version you want to test against. For example: - `export RAILS_VERSION=5.1.4` - Ensure that the correct version of Rails is installed: `bundle update` - Build test app: `bundle exec rake engine_cart:generate` - And run tests: `bundle exec rake ci` ## Releasing 1. `bundle install` 2. Increase the version number in `lib/hydra/role_management/version.rb` 3. Increase the same version number in `.github_changelog_generator` 4. Update `CHANGELOG.md` by running this command: ``` github_changelog_generator --user samvera --project hydra-role-management --token YOUR_GITHUB_TOKEN_HERE ``` 5. Commit these changes to the main branch 6. Run `rake release` # Acknowledgments This software has been developed by and is brought to you by the Samvera community. Learn more at the [Samvera website](http://samvera.org/). ![Samvera Logo](https://wiki.duraspace.org/download/thumbnails/87459292/samvera-fall-font2-200w.png?version=1&modificationDate=1498550535816&api=v2)