Boxroom

Gem Version

This is a Rails engine built based on code of Boxroom project.

Features

It aims to be a simple interface for managing and sharing files in a web browser. It lets users

  • create folders
  • upload files
  • download files
  • share files
  • search folders and files
  • sort files and folders

Admins can:

  • manage users
  • manage groups
  • manage access permissions

Integrates with existing User model amd authentication system.

Boxroom

Install

  • add to Gemfile gem 'boxroom'
  • run rails boxroom:install:migrations
  • run rails db:migrate
  • mount engine in config/routes.rb ruby mount Boxroom::Engine => '/boxroom'

Config

  • Create config/initializers/boxroom.rb ruby Boxroom.configure do |config| config.site_name = 'Boxroom' config.logo = 'boxroom/logo.png' config.uploads_path = 'uploads' config.show_footer = true config.show_users = true config.show_groups = true config.show_settings = true config.show_shared_files = true config.show_search = true end

Integrate with existing User model and authentication

  • Create config/initializers/boxroom.rb ruby Boxroom.configure do |config| config.current_user_method = 'current_user' # a method in your application, which returns authenticated User, Boxroom's authentication is disabled config.sign_in_path = '/login' # pass string to redirect unauthenticated user to config.sign_out_path = '/logout' # pass string to redirect to after sign out, '/dashboard' for example. Or it could be sign out page of you main app end
  • add boxroom to your User model.
  • Remember you can provide User model methods names instead of fields names too. For example ```ruby # app/models/user.rb class User < ActiveRecord::Base # :username and :email are attributes of User model boxroom name: :username, email: :email, is_admin: :is_admin? # all params are required

def is_admin? email == '[email protected]' # Remember only 1 user can be a real admin end end

- if you modify your users without callbacks in any place you should also take care of `boxroom_users` table yourself.

## Contributing
Please feel free to leave an issue or PR.

## Testing
- run migrations `bin/rails db:migrate RAILS_ENV=test`
- run tests `bin/rails test`

## License
The engine is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).

## Roadmap:
- support s3
- batch actions
- tag files
- integrate with active_admin