Merge branch 'master' of github.com:zyphlar/Open-Source-Access-Control-Web-Interface

Conflicts:
	.gitignore
	Gemfile
	Gemfile.lock
	app/controllers/door_logs_controller.rb
	app/controllers/users_controller.rb
	app/models/user.rb
	app/views/door_logs/download.html.erb
	app/views/door_logs/show.html.erb
	app/views/layouts/application.html.erb
	app/views/users/show.html.erb
	app/views/users/upload.html.erb
	app/views/users/upload_all.html.erb
	config/environments/development.rb
	config/environments/production.rb
	config/routes.rb
	db/schema.rb
This commit is contained in:
2012-09-15 17:34:55 -07:00
39 changed files with 757 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/

View File

@@ -0,0 +1,3 @@
// Place all the styles related to the home controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/

View File

@@ -1,4 +1,10 @@
class DoorLogsController < ApplicationController
<<<<<<< HEAD
=======
authorize_resource
before_filter :authenticate_user!
>>>>>>> 03d99741e5b661e63f6281115d2db333082a09b1
# GET /door_logs
# GET /door_logs.json
def index

View File

@@ -0,0 +1,9 @@
class HomeController < ApplicationController
def index
respond_to do |format|
format.html # index.html.erb
end
end
end

View File

@@ -1,8 +1,19 @@
class UsersController < ApplicationController
<<<<<<< HEAD
# GET /users
# GET /users.json
def index
@users = User.all
=======
load_and_authorize_resource
before_filter :authenticate_user!
# GET /users
# GET /users.json
def index
#@users = User.all
#authorize! :read, @users
>>>>>>> 03d99741e5b661e63f6281115d2db333082a09b1
respond_to do |format|
format.html # index.html.erb
@@ -13,7 +24,11 @@ class UsersController < ApplicationController
# GET /users/1
# GET /users/1.json
def show
<<<<<<< HEAD
@user = User.find(params[:id])
=======
#@user = User.find(params[:id])
>>>>>>> 03d99741e5b661e63f6281115d2db333082a09b1
respond_to do |format|
format.html # show.html.erb
@@ -23,7 +38,11 @@ class UsersController < ApplicationController
# PUT /users/1/upload
def upload
<<<<<<< HEAD
@user = User.find(params[:id])
=======
#@user = User.find(params[:id])
>>>>>>> 03d99741e5b661e63f6281115d2db333082a09b1
@upload_result = @user.upload_to_door
respond_to do |format|
@@ -45,7 +64,11 @@ class UsersController < ApplicationController
# GET /users/new
# GET /users/new.json
def new
<<<<<<< HEAD
@user = User.new
=======
#@user = User.new
>>>>>>> 03d99741e5b661e63f6281115d2db333082a09b1
respond_to do |format|
format.html # new.html.erb
@@ -55,13 +78,21 @@ class UsersController < ApplicationController
# GET /users/1/edit
def edit
<<<<<<< HEAD
@user = User.find(params[:id])
=======
#@user = User.find(params[:id])
>>>>>>> 03d99741e5b661e63f6281115d2db333082a09b1
end
# POST /users
# POST /users.json
def create
<<<<<<< HEAD
@user = User.new(params[:user])
=======
#@user = User.new(params[:user])
>>>>>>> 03d99741e5b661e63f6281115d2db333082a09b1
respond_to do |format|
if @user.save
@@ -77,7 +108,11 @@ class UsersController < ApplicationController
# PUT /users/1
# PUT /users/1.json
def update
<<<<<<< HEAD
@user = User.find(params[:id])
=======
#@user = User.find(params[:id])
>>>>>>> 03d99741e5b661e63f6281115d2db333082a09b1
respond_to do |format|
if @user.update_attributes(params[:user])
@@ -93,7 +128,11 @@ class UsersController < ApplicationController
# DELETE /users/1
# DELETE /users/1.json
def destroy
<<<<<<< HEAD
@user = User.find(params[:id])
=======
#@user = User.find(params[:id])
>>>>>>> 03d99741e5b661e63f6281115d2db333082a09b1
@user.destroy
respond_to do |format|

View File

@@ -0,0 +1,2 @@
module HomeHelper
end

35
app/models/ability.rb Normal file
View File

@@ -0,0 +1,35 @@
class Ability
include CanCan::Ability
def initialize(user)
if user.admin?
can :manage, :all
else
can :read, User do |u|
u.id == user.id
end
end
# Define abilities for the passed in user here. For example:
#
# user ||= User.new # guest user (not logged in)
# if user.admin?
# can :manage, :all
# else
# can :read, :all
# end
#
# The first argument to `can` is the action you are giving the user permission to do.
# If you pass :manage it will apply to every action. Other common actions here are
# :read, :create, :update and :destroy.
#
# The second argument is the resource the user can perform the action on. If you pass
# :all it will apply to every resource. Otherwise pass a Ruby class of the resource.
#
# The third argument is an optional hash of conditions to further filter the objects.
# For example, here the user can only update published articles.
#
# can :update, Article, :published => true
#
# See the wiki for details: https://github.com/ryanb/cancan/wiki/Defining-Abilities
end
end

View File

@@ -1,4 +1,15 @@
class User < ActiveRecord::Base
<<<<<<< HEAD
=======
# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable,
# :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me
>>>>>>> 03d99741e5b661e63f6281115d2db333082a09b1
require 'open-uri'
attr_accessible :card_id, :card_number, :card_permissions, :name

View File

@@ -0,0 +1,12 @@
<h2>Resend confirmation instructions</h2>
<%= form_for(resource, :as => resource_name, :url => confirmation_path(resource_name), :html => { :method => :post }) do |f| %>
<%= devise_error_messages! %>
<div><%= f.label :email %><br />
<%= f.email_field :email %></div>
<div><%= f.submit "Resend confirmation instructions" %></div>
<% end %>
<%= render "devise/shared/links" %>

View File

@@ -0,0 +1,5 @@
<p>Welcome <%= @resource.email %>!</p>
<p>You can confirm your account email through the link below:</p>
<p><%= link_to 'Confirm my account', confirmation_url(@resource, :confirmation_token => @resource.confirmation_token) %></p>

View File

@@ -0,0 +1,8 @@
<p>Hello <%= @resource.email %>!</p>
<p>Someone has requested a link to change your password, and you can do this through the link below.</p>
<p><%= link_to 'Change my password', edit_password_url(@resource, :reset_password_token => @resource.reset_password_token) %></p>
<p>If you didn't request this, please ignore this email.</p>
<p>Your password won't change until you access the link above and create a new one.</p>

View File

@@ -0,0 +1,7 @@
<p>Hello <%= @resource.email %>!</p>
<p>Your account has been locked due to an excessive amount of unsuccessful sign in attempts.</p>
<p>Click the link below to unlock your account:</p>
<p><%= link_to 'Unlock my account', unlock_url(@resource, :unlock_token => @resource.unlock_token) %></p>

View File

@@ -0,0 +1,16 @@
<h2>Change your password</h2>
<%= form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :put }) do |f| %>
<%= devise_error_messages! %>
<%= f.hidden_field :reset_password_token %>
<div><%= f.label :password, "New password" %><br />
<%= f.password_field :password %></div>
<div><%= f.label :password_confirmation, "Confirm new password" %><br />
<%= f.password_field :password_confirmation %></div>
<div><%= f.submit "Change my password" %></div>
<% end %>
<%= render "devise/shared/links" %>

View File

@@ -0,0 +1,12 @@
<h2>Forgot your password?</h2>
<%= form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :post }) do |f| %>
<%= devise_error_messages! %>
<div><%= f.label :email %><br />
<%= f.email_field :email %></div>
<div><%= f.submit "Send me reset password instructions" %></div>
<% end %>
<%= render "devise/shared/links" %>

View File

@@ -0,0 +1,30 @@
<h2>Edit <%= resource_name.to_s.humanize %></h2>
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
<%= devise_error_messages! %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div><%= f.label :email %><br />
<%= f.email_field :email %></div>
<div><%= f.label :password %> <i>(leave blank if you don't want to change it)</i><br />
<%= f.password_field :password, :autocomplete => "off" %></div>
<div><%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %></div>
<div><%= f.label :current_password %> <i>(we need your current password to confirm your changes)</i><br />
<%= f.password_field :current_password %></div>
<div><%= f.submit "Update" %></div>
<% end %>
<h3>Cancel my account</h3>
<p>Unhappy? <%= link_to "Cancel my account", registration_path(resource_name), :data => { :confirm => "Are you sure?" }, :method => :delete %>.</p>
<%= link_to "Back", :back %>

View File

@@ -0,0 +1,23 @@
<h2>Sign up</h2>
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div><%= f.label :email %><br />
<%= f.email_field :email %></div>
<div><%= f.label :password %><br />
<%= f.password_field :password %></div>
<div><%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %></div>
<div><%= f.submit "Sign up" %></div>
<% end %>
<%= render "devise/shared/links" %>

View File

@@ -0,0 +1,17 @@
<h2>Sign in</h2>
<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
<div><%= f.label :email %><br />
<%= f.email_field :email %></div>
<div><%= f.label :password %><br />
<%= f.password_field :password %></div>
<% if devise_mapping.rememberable? -%>
<div><%= f.check_box :remember_me %> <%= f.label :remember_me %></div>
<% end -%>
<div><%= f.submit "Sign in" %></div>
<% end %>
<%= render "devise/shared/links" %>

View File

@@ -0,0 +1,25 @@
<%- if controller_name != 'sessions' %>
<%= link_to "Sign in", new_session_path(resource_name) %><br />
<% end -%>
<%- if devise_mapping.registerable? && controller_name != 'registrations' %>
<%= link_to "Sign up", new_registration_path(resource_name) %><br />
<% end -%>
<%- if devise_mapping.recoverable? && controller_name != 'passwords' %>
<%= link_to "Forgot your password?", new_password_path(resource_name) %><br />
<% end -%>
<%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>
<%= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name) %><br />
<% end -%>
<%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' %>
<%= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name) %><br />
<% end -%>
<%- if devise_mapping.omniauthable? %>
<%- resource_class.omniauth_providers.each do |provider| %>
<%= link_to "Sign in with #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider) %><br />
<% end -%>
<% end -%>

View File

@@ -0,0 +1,12 @@
<h2>Resend unlock instructions</h2>
<%= form_for(resource, :as => resource_name, :url => unlock_path(resource_name), :html => { :method => :post }) do |f| %>
<%= devise_error_messages! %>
<div><%= f.label :email %><br />
<%= f.email_field :email %></div>
<div><%= f.submit "Resend unlock instructions" %></div>
<% end %>
<%= render "devise/shared/links" %>

View File

@@ -1,4 +1,7 @@
<<<<<<< HEAD
<p id="notice"><%= notice %></p>
=======
>>>>>>> 03d99741e5b661e63f6281115d2db333082a09b1
<p>
<b>Download results:</b>

View File

@@ -1,4 +1,7 @@
<<<<<<< HEAD
<p id="notice"><%= notice %></p>
=======
>>>>>>> 03d99741e5b661e63f6281115d2db333082a09b1
<p>
<b>Key:</b>

View File

@@ -0,0 +1 @@
Welcome.

View File

@@ -10,7 +10,15 @@
<div id="header">
<a href="/users">Users</a>
<a href="/door_logs">Logs</a>
<<<<<<< HEAD
</div>
=======
<%= link_to 'Profile', edit_user_registration_path if user_signed_in? %>
<%= link_to 'Sign out', destroy_user_session_path, :method => :delete if user_signed_in? %>
</div>
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
>>>>>>> 03d99741e5b661e63f6281115d2db333082a09b1
<%= yield %>
</body>

View File

@@ -1,4 +1,7 @@
<<<<<<< HEAD
<p id="notice"><%= notice %></p>
=======
>>>>>>> 03d99741e5b661e63f6281115d2db333082a09b1
<p>
<b>Name:</b>
@@ -20,6 +23,10 @@
<%= @user.card_permissions %>
</p>
<<<<<<< HEAD
<%= link_to 'Upload to Door', upload_path(user) %>
=======
<%= link_to 'Upload to Door', upload_path(@user) %>
>>>>>>> 03d99741e5b661e63f6281115d2db333082a09b1
<%= link_to 'Edit', edit_user_path(@user) %> |
<%= link_to 'Back', users_path %>

View File

@@ -1,4 +1,7 @@
<<<<<<< HEAD
<p id="notice"><%= notice %></p>
=======
>>>>>>> 03d99741e5b661e63f6281115d2db333082a09b1
<% if @upload_result %>
<p>

View File

@@ -1,4 +1,7 @@
<<<<<<< HEAD
<p id="notice"><%= notice %></p>
=======
>>>>>>> 03d99741e5b661e63f6281115d2db333082a09b1
<p>
<b>Upload results:</b>