Code Monkey home page Code Monkey logo

devise-neo4j's Introduction

Devise-Neo4j Build Status

A gem for Neo4j integration with the Devise authentication framework.

Neo4j: https://github.com/neo4jrb/neo4j Devise: https://github.com/plataformatec/devise

Usage

Installation

Add the neo4j and devise-neo4j gems to your Gemfile:

gem "neo4j"
gem "devise-neo4j"

Run the bundle install command:

bundle install

Then run the Devise install generator and optionally update or create a devise-neo4j model:

rails g devise:install --orm=neo4j
# Make sure the model file is created ahead of time!
rails g neo4j:devise MODEL  # (Where MODEL is something like User)

Add the Devise route to your config/routes.rb:

devise_for :users

Now the model is set up like a default Devise model, meaning you can do things like adding a before_action in a controller to restrict access to logged-in users only:

before_action :authenticate_<your model name>!

Example App

You can see a very simple app that demonstrates Neo4j and devise here:

gem install rails
rails new myapp -m http://neo4jrb.io/neo4j/rails.rb -O
cd myapp

# Add the gem to your Gemfile, then run bundle:
gem 'devise-neo4j'
bundle

rails generate devise:install --orm=neo4j

# Install the database unless you already have a Neo4j database, or use JRuby Embedded Neo4j db
rake neo4j:install[community-2.2.2] # check which one is the latest
rake neo4j:start

rails g neo4j:devise User

# Add to your config/routes.rb:
devise_for :users
root :to => "secrets#show"

# Generate a controller for the protected content
rails g controller secrets show

# In app/controllers/secrets_controller.rb add:
before_action :authenticate_user!

# In app/views/secrets/show.html.erb add:
<p>Shhhh... this page is only visible to logged-in users!</p>
<%= link_to "Log out", destroy_user_session_path, method: :delete  %>

# Start the application and visit http://localhost:3000/users/sign_up
rails s

Developing

For JRuby

JRUby neo4j has an embedded server as part of the gem, so nothing else is needed to get set up and running.

For Ruby

There is a Vagrant setup that installs neo4j so that you can easily get started:

$ vagrant up

The neo4j web interface is forward to port 7474 on your local machine: http://localhost:7474.

Note on testing

To run all test, simply type rake If you want to run a specific Devise test (see the devise github repository) set the DEVISE_TEST_PATH.

Example: rake DEVISE_TEST_PATH=integration/confirmable_test.rb

Note on Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.

Copyright

Copyright (c) 2011 Ben Jackson. See LICENSE for details.

devise-neo4j's People

Contributors

andreasronge avatar andrewhavens avatar benjackson avatar cfitz avatar cheerfulstoic avatar gauravtiwari avatar jamilabreu avatar markburns avatar ni-ka avatar staymanhou avatar subvertallchris avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.