mirror of
https://github.com/danbee/danbarberphoto
synced 2025-03-04 08:49:07 +00:00
Remove custom admin and authentication
This is in preparation for adding in thoughtbot/administrate and custom authentication/authorisation.
This commit is contained in:
parent
e4ac2a9a3e
commit
d9f47c3553
20
Gemfile
20
Gemfile
@ -16,35 +16,17 @@ gem 'bourbon'
|
||||
|
||||
gem 'jquery-rails'
|
||||
|
||||
# Use unicorn as the web server
|
||||
# gem 'unicorn'
|
||||
|
||||
# Deploy with Capistrano
|
||||
# gem 'capistrano'
|
||||
|
||||
# To use debugger
|
||||
# gem 'ruby-debug'
|
||||
|
||||
# Bundle the extra gems:
|
||||
# gem 'bj'
|
||||
# gem 'nokogiri'
|
||||
# gem 'sqlite3-ruby', :require => 'sqlite3'
|
||||
gem 'aws-sdk'
|
||||
|
||||
# Bundle gems for the local environment. Make sure to
|
||||
# put test-only gems in this group so their generators
|
||||
# and rake tasks are available in development mode:
|
||||
group :development do
|
||||
gem 'sqlite3'
|
||||
gem 'ruby_parser'
|
||||
gem 'hpricot'
|
||||
gem 'powder'
|
||||
gem 'better_errors'
|
||||
gem 'binding_of_caller'
|
||||
gem 'letter_opener'
|
||||
gem 'tunnel'
|
||||
gem 'rbtrace', git: 'https://github.com/tmm1/rbtrace', branch: 'master'
|
||||
gem 'foreman'
|
||||
end
|
||||
|
||||
group :test, :development do
|
||||
@ -72,10 +54,8 @@ end
|
||||
|
||||
gem 'exception_notification', :git => 'git://github.com/rails/exception_notification', :require => 'exception_notifier'
|
||||
gem 'pg'
|
||||
gem 'devise'
|
||||
gem 'simple_form'
|
||||
gem 'squeel'
|
||||
# gem 'mini_exiftool'
|
||||
gem 'will_paginate'
|
||||
gem 'redcarpet'
|
||||
gem 'dragonfly'
|
||||
|
||||
40
Gemfile.lock
40
Gemfile.lock
@ -4,16 +4,6 @@ GIT
|
||||
specs:
|
||||
exception_notification (1.0.0)
|
||||
|
||||
GIT
|
||||
remote: https://github.com/tmm1/rbtrace
|
||||
revision: 5830d1fd91f1338250316ff867ce1aadb73ac52d
|
||||
branch: master
|
||||
specs:
|
||||
rbtrace (0.4.7)
|
||||
ffi (>= 1.0.6)
|
||||
msgpack (>= 0.4.3)
|
||||
trollop (>= 1.16.2)
|
||||
|
||||
GEM
|
||||
remote: http://rubygems.org/
|
||||
specs:
|
||||
@ -54,7 +44,6 @@ GEM
|
||||
jmespath (~> 1.0)
|
||||
aws-sdk-resources (2.1.29)
|
||||
aws-sdk-core (= 2.1.29)
|
||||
bcrypt (3.1.10)
|
||||
better_errors (2.1.1)
|
||||
coderay (>= 1.0.0)
|
||||
erubis (>= 2.6.6)
|
||||
@ -85,13 +74,6 @@ GEM
|
||||
coffee-script-source (1.9.1.1)
|
||||
database_cleaner (1.5.0)
|
||||
debug_inspector (0.0.2)
|
||||
devise (3.5.2)
|
||||
bcrypt (~> 3.0)
|
||||
orm_adapter (~> 0.1)
|
||||
railties (>= 3.2.6, < 5)
|
||||
responders
|
||||
thread_safe (~> 0.1)
|
||||
warden (~> 1.2.3)
|
||||
diff-lcs (1.2.5)
|
||||
docile (1.1.5)
|
||||
dotenv (2.0.2)
|
||||
@ -113,7 +95,6 @@ GEM
|
||||
factory_girl_rails (4.5.0)
|
||||
factory_girl (~> 4.5.0)
|
||||
railties (>= 3.0.0)
|
||||
ffi (1.9.10)
|
||||
fivemat (1.3.1)
|
||||
fog-aws (0.7.6)
|
||||
fog-core (~> 1.27)
|
||||
@ -133,13 +114,9 @@ GEM
|
||||
fog-xml (0.1.2)
|
||||
fog-core
|
||||
nokogiri (~> 1.5, >= 1.5.11)
|
||||
foreman (0.78.0)
|
||||
thor (~> 0.19.1)
|
||||
formatador (0.2.5)
|
||||
haml (4.0.7)
|
||||
tilt
|
||||
highline (1.7.8)
|
||||
hpricot (0.8.6)
|
||||
i18n (0.7.0)
|
||||
ipaddress (0.8.0)
|
||||
jmespath (1.1.3)
|
||||
@ -157,14 +134,12 @@ GEM
|
||||
mime-types (2.6.2)
|
||||
mini_portile (0.6.2)
|
||||
minitest (5.8.1)
|
||||
msgpack (0.6.2)
|
||||
multi_json (1.11.2)
|
||||
net-scp (1.2.1)
|
||||
net-ssh (>= 2.6.5)
|
||||
net-ssh (3.0.1)
|
||||
nokogiri (1.6.6.2)
|
||||
mini_portile (~> 0.6.0)
|
||||
orm_adapter (0.5.0)
|
||||
parser (2.2.3.0)
|
||||
ast (>= 1.1, < 3.0)
|
||||
pg (0.18.3)
|
||||
@ -209,8 +184,6 @@ GEM
|
||||
rainbow (2.0.0)
|
||||
rake (10.4.2)
|
||||
redcarpet (3.3.3)
|
||||
responders (1.1.2)
|
||||
railties (>= 3.2, < 4.2)
|
||||
rspec-core (3.3.2)
|
||||
rspec-support (~> 3.3.0)
|
||||
rspec-expectations (3.3.1)
|
||||
@ -269,7 +242,6 @@ GEM
|
||||
actionpack (>= 3.0)
|
||||
activesupport (>= 3.0)
|
||||
sprockets (>= 2.8, < 4.0)
|
||||
sqlite3 (1.3.11)
|
||||
squeel (1.2.3)
|
||||
activerecord (>= 3.0)
|
||||
activesupport (>= 3.0)
|
||||
@ -277,10 +249,6 @@ GEM
|
||||
thor (0.19.1)
|
||||
thread_safe (0.3.5)
|
||||
tilt (2.0.1)
|
||||
trollop (2.1.2)
|
||||
tunnel (0.0.3)
|
||||
highline (~> 1.6)
|
||||
thor
|
||||
tzinfo (1.2.2)
|
||||
thread_safe (~> 0.1)
|
||||
uglifier (2.7.2)
|
||||
@ -289,8 +257,6 @@ GEM
|
||||
unf (0.1.4)
|
||||
unf_ext
|
||||
unf_ext (0.0.7.1)
|
||||
warden (1.2.3)
|
||||
rack (>= 1.0)
|
||||
websocket-driver (0.6.2)
|
||||
websocket-extensions (>= 0.1.0)
|
||||
websocket-extensions (0.1.2)
|
||||
@ -309,16 +275,13 @@ DEPENDENCIES
|
||||
capybara-screenshot
|
||||
coffee-rails (~> 4.1.0)
|
||||
database_cleaner
|
||||
devise
|
||||
dotenv-rails
|
||||
dragonfly
|
||||
dragonfly-s3_data_store
|
||||
exception_notification!
|
||||
factory_girl_rails
|
||||
fivemat
|
||||
foreman
|
||||
haml
|
||||
hpricot
|
||||
jquery-rails
|
||||
letter_opener
|
||||
pg
|
||||
@ -328,7 +291,6 @@ DEPENDENCIES
|
||||
puma
|
||||
rails (~> 4.1.0)
|
||||
rails_12factor
|
||||
rbtrace!
|
||||
redcarpet
|
||||
rspec-rails
|
||||
rubocop
|
||||
@ -341,9 +303,7 @@ DEPENDENCIES
|
||||
simplecov
|
||||
skylight
|
||||
slugtastic
|
||||
sqlite3
|
||||
squeel
|
||||
tunnel
|
||||
uglifier
|
||||
unf
|
||||
will_paginate
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 3.9 KiB |
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 11 KiB |
@ -1,11 +0,0 @@
|
||||
// This is a manifest file that'll be compiled into including all the files listed below.
|
||||
// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
|
||||
// be included in the compiled file accessible from http://example.com/assets/application.js
|
||||
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
||||
// the compiled file.
|
||||
//
|
||||
//= require jquery
|
||||
//= require jquery_ujs
|
||||
//= require jquery.transit
|
||||
//= require fancybox
|
||||
//= require_directory ./admin
|
||||
@ -1,3 +0,0 @@
|
||||
# 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/
|
||||
@ -1,3 +0,0 @@
|
||||
# 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/
|
||||
@ -1,3 +0,0 @@
|
||||
# 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/
|
||||
@ -1,4 +0,0 @@
|
||||
$ ->
|
||||
$(".flash a.close").click ->
|
||||
$(this).parent().transition({ "height": 0, "padding-top": 0, "padding-bottom": 0, "opacity": 0 }, 250, 'in-out', -> $(this).hide())
|
||||
false
|
||||
@ -1,2 +0,0 @@
|
||||
$ ->
|
||||
$(".photos .photo a").not(".actions a").fancybox()
|
||||
@ -1,3 +0,0 @@
|
||||
# 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/
|
||||
@ -1,11 +0,0 @@
|
||||
@import 'bourbon'
|
||||
|
||||
@import 'fancybox'
|
||||
@import 'admin/admin'
|
||||
@import 'admin/dashboard'
|
||||
@import 'admin/flash'
|
||||
@import 'admin/menu'
|
||||
@import 'admin/photos'
|
||||
@import 'admin/pages'
|
||||
@import 'admin/simple_form'
|
||||
@import 'admin/unlocks'
|
||||
@ -1,134 +0,0 @@
|
||||
// Place all the styles related to the admin/admin controller here.
|
||||
// They will automatically be included in application.css.
|
||||
// You can use Sass (SCSS) here: http://sass-lang.com/
|
||||
|
||||
//= depend_on_asset "admin/logo.svg"
|
||||
|
||||
body
|
||||
background-color: #999
|
||||
color: #333
|
||||
font-family: "Helvetica Neue", "Arial", sans-serif
|
||||
font-size: 14px
|
||||
line-height: 1.3
|
||||
margin: 0
|
||||
padding: 0
|
||||
|
||||
#page, #login
|
||||
background: #fafafa
|
||||
padding: 1em 2em 3em
|
||||
border-bottom: 1px solid #666
|
||||
box-shadow: 0 1px 12px rgba(0, 0, 0, 0.1)
|
||||
|
||||
#login
|
||||
width: 40em
|
||||
margin: 5em auto 0
|
||||
|
||||
header
|
||||
background: #333
|
||||
margin: -2.5em -2em 0
|
||||
#user
|
||||
position: absolute
|
||||
top: 1em
|
||||
right: 2em
|
||||
color: #ccc
|
||||
a
|
||||
color: #999
|
||||
h1
|
||||
background: #333
|
||||
font-size: 2em
|
||||
margin-bottom: 0em
|
||||
a
|
||||
display: inline-block
|
||||
padding: 1em 1em
|
||||
line-height: 0
|
||||
img
|
||||
height: 3rem
|
||||
&:hover
|
||||
background-color: inherit
|
||||
|
||||
#login
|
||||
h1
|
||||
margin-bottom: 0.5em
|
||||
position: relative
|
||||
z-index: 1
|
||||
|
||||
h2
|
||||
margin-top: 1.2em
|
||||
|
||||
p, ol, ul, td
|
||||
font-family: "Helvetica Neue", "Arial", sans-serif
|
||||
font-size: 1em
|
||||
line-height: 1.5em
|
||||
|
||||
pre
|
||||
background-color: #eee
|
||||
padding: 0.5em
|
||||
font-size: 0.9em
|
||||
|
||||
a
|
||||
color: #000
|
||||
&:hover
|
||||
color: #fff
|
||||
background-color: #000
|
||||
|
||||
div
|
||||
&.field, &.actions
|
||||
margin-bottom: 0.5em
|
||||
|
||||
#notice
|
||||
color: green
|
||||
|
||||
table
|
||||
border: 1px solid #bbb
|
||||
border-spacing: 0
|
||||
box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2)
|
||||
border-radius: 0.25rem
|
||||
td, th
|
||||
border-bottom: 1px solid #bbb
|
||||
tr:nth-child(even) td
|
||||
background: #f0f0f0
|
||||
tr:nth-child(odd) td
|
||||
background: #fff
|
||||
thead
|
||||
background: #ddd
|
||||
color: #333
|
||||
td, th
|
||||
text-align: left
|
||||
padding: 0.5em 0.7em
|
||||
tfoot td
|
||||
background: #ddd !important
|
||||
border-bottom: 0
|
||||
|
||||
.pagination
|
||||
margin: 0.5em 0
|
||||
|
||||
#error_explanation
|
||||
width: 32rem
|
||||
border: 2px solid red
|
||||
padding: 0.5rem
|
||||
padding-bottom: 0
|
||||
margin-bottom: 1.5rem
|
||||
background-color: #f0f0f0
|
||||
h2
|
||||
text-align: left
|
||||
font-weight: bold
|
||||
padding: 0.5rem 0.5rem 0.5rem 1rem
|
||||
font-size: 0.85rem
|
||||
margin: -0.5rem
|
||||
margin-bottom: 0
|
||||
background-color: #c00
|
||||
color: #fff
|
||||
ul li
|
||||
font-size: 0.85rem
|
||||
list-style: square
|
||||
|
||||
form ul.taxonomies
|
||||
border: 1px solid #ccc
|
||||
border-radius: 0.35rem
|
||||
box-shadow: inset 2px 2px 4px rgba(0, 0, 0, 0.1)
|
||||
margin-top: 1em
|
||||
padding: 1em
|
||||
width: 25%
|
||||
float: right
|
||||
> li
|
||||
font-weight: bold
|
||||
@ -1,3 +0,0 @@
|
||||
// Place all the styles related to the admin/dashboard controller here.
|
||||
// They will automatically be included in application.css.
|
||||
// You can use Sass (SCSS) here: http://sass-lang.com/
|
||||
@ -1,3 +0,0 @@
|
||||
// Place all the styles related to the admin/downloads controller here.
|
||||
// They will automatically be included in application.css.
|
||||
// You can use Sass (SCSS) here: http://sass-lang.com/
|
||||
@ -1,38 +0,0 @@
|
||||
.alert, .notice
|
||||
position: relative
|
||||
font-size: 1em
|
||||
border-style: solid
|
||||
border-width: 0 0 1px
|
||||
padding: 0.7em 2em
|
||||
margin: -1em -2em 0
|
||||
height: 1.5em
|
||||
overflow: hidden
|
||||
a.close
|
||||
font-size: 1em
|
||||
position: absolute
|
||||
font-weight: bold
|
||||
right: 0em
|
||||
top: 0em
|
||||
text-decoration: none
|
||||
padding: 0.7em 1em
|
||||
color: #666
|
||||
|
||||
.alert
|
||||
border-color: #cc6633
|
||||
background: #ffddcc
|
||||
color: #662200
|
||||
a.close
|
||||
color: #662200
|
||||
&:hover, &:focus
|
||||
background-color: #cc6633
|
||||
color: #ffddcc
|
||||
|
||||
.notice
|
||||
border-color: #449911
|
||||
background: #ddffcc
|
||||
color: #226600
|
||||
a.close
|
||||
color: #226600
|
||||
&:hover, &:focus
|
||||
background-color: #449911
|
||||
color: #ddffcc
|
||||
@ -1,45 +0,0 @@
|
||||
header
|
||||
nav
|
||||
ul
|
||||
font-size: 1em
|
||||
@include linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.2))
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3), inset 0 -1px 0 rgba(255, 255, 255, 0.5)
|
||||
background-color: #DDD
|
||||
border-style: solid
|
||||
border-width: 0 0 1px 0
|
||||
border-color: #999
|
||||
color: white
|
||||
margin: 0 0 1em
|
||||
padding: 0 1em
|
||||
list-style: none
|
||||
height: 2.5em
|
||||
position: relative
|
||||
z-index: 100
|
||||
li a
|
||||
@include linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.2))
|
||||
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(255, 255, 255, 0.5)
|
||||
background-color: #DDD
|
||||
color: #444
|
||||
text-decoration: none
|
||||
display: block
|
||||
height: 1.5em
|
||||
float: left
|
||||
padding: 0.5em 1em
|
||||
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5)
|
||||
@include transition(background 0.15s 0s ease)
|
||||
&:hover, &:focus
|
||||
@include linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.2))
|
||||
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(255, 255, 255, 0.5)
|
||||
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5)
|
||||
color: #444
|
||||
background-color: white
|
||||
&:active
|
||||
background-color: #ccc
|
||||
&.selected
|
||||
@include linear-gradient(rgba(0,0,0,0.4), rgba(0,0,0,0))
|
||||
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1), inset 0 -1px 0 rgba(255, 255, 255, 0.2), inset 0 0 6px rgba(0, 0, 0, 0.4)
|
||||
text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5)
|
||||
background-color: #999
|
||||
color: white
|
||||
&:hover
|
||||
background-color: #aaa
|
||||
@ -1,2 +0,0 @@
|
||||
.page
|
||||
max-width: 30em
|
||||
@ -1,19 +0,0 @@
|
||||
.photos
|
||||
.photo
|
||||
float: left
|
||||
margin-right: 1em
|
||||
margin-top: 1em
|
||||
&:after
|
||||
content: ""
|
||||
display: block
|
||||
clear: both
|
||||
|
||||
ul.categories
|
||||
list-style: none
|
||||
border: 1px solid #ccc
|
||||
border-radius: 0.25rem
|
||||
box-shadow: inset 2px 2px 4px rgba(0, 0, 0, 0.1)
|
||||
margin-top: 1em
|
||||
padding: 1em
|
||||
width: 25%
|
||||
float: right
|
||||
@ -1,108 +0,0 @@
|
||||
@import "../includes/button"
|
||||
|
||||
form.simple_form
|
||||
background: white
|
||||
border: 1px solid #ccc
|
||||
margin: 0 0 1em
|
||||
padding: 0 1em
|
||||
label
|
||||
text-align: right
|
||||
margin-right: 1em
|
||||
.required
|
||||
label
|
||||
font-weight: bold
|
||||
border-radius: 5px
|
||||
.input
|
||||
margin-bottom: 0em
|
||||
margin-top: 0em
|
||||
overflow: hidden
|
||||
padding: 0.5em 0
|
||||
label
|
||||
display: block
|
||||
float: left
|
||||
padding: 0.5em 0
|
||||
font-weight: bold
|
||||
width: 13em
|
||||
input
|
||||
@include placeholder
|
||||
color: rgba(0, 0, 0, 0.4)
|
||||
textarea
|
||||
height: 10em
|
||||
input, textarea
|
||||
font-family: "Helvetica Neue", "Arial", sans-serif
|
||||
font-size: 1em
|
||||
margin: 0 0.5rem 0 0
|
||||
border-width: 1px
|
||||
border-style: solid
|
||||
border-color: #ccc
|
||||
padding: 0.5em
|
||||
border-radius: 2px
|
||||
&:focus
|
||||
border-color: #67A #9AF #9AF #67A
|
||||
box-shadow: 0 0 4px rgba(0, 128, 255, 0.5), inset 1px 1px 4px rgba(0, 0, 0, 0.1)
|
||||
&[type=text], &[type=email], &[type=url]
|
||||
width: 15em
|
||||
&[type=number]
|
||||
width: 3.5em
|
||||
text-align: right
|
||||
&:-webkit-inner-spin-button, &:-webkit-outer-spin-button
|
||||
-webkit-appearance: none
|
||||
margin: 0
|
||||
|
||||
.fragments
|
||||
.label label
|
||||
width: 13em
|
||||
|
||||
.fragments-group
|
||||
padding-left: 14em
|
||||
|
||||
input[type=submit], a.button
|
||||
@include button(#9C7)
|
||||
|
||||
.input.boolean
|
||||
padding-left: 14em
|
||||
label
|
||||
text-align: left
|
||||
input
|
||||
float: left
|
||||
margin-top: 0.4em
|
||||
margin-right: 0.6em
|
||||
|
||||
.field_with_errors input
|
||||
border-width: 1px
|
||||
border-style: solid
|
||||
border-color: #933 #FBB #FBB #933
|
||||
background: #FFEFEF
|
||||
padding: 0.3em
|
||||
box-shadow: inset 1px 1px 4px rgba(0, 0, 0, 0.1)
|
||||
|
||||
span.error
|
||||
display: inline
|
||||
margin-left: 1em
|
||||
color: #933
|
||||
|
||||
fieldset
|
||||
border: 0
|
||||
margin-bottom: 0.5em
|
||||
|
||||
fieldset.inputs
|
||||
padding: 1em 0
|
||||
border-bottom: 1px solid #ccc
|
||||
fieldset.actions
|
||||
padding: 1.5em 0 1em 14em
|
||||
.string, .email, .password, .text
|
||||
input, textarea
|
||||
width: 40%
|
||||
|
||||
.help
|
||||
margin-left: 14em
|
||||
margin-top: -0.5em
|
||||
p
|
||||
font-size: 0.8em
|
||||
color: #999
|
||||
|
||||
a.button
|
||||
@include button(#999)
|
||||
|
||||
a.button.new
|
||||
@include button(#359ADD)
|
||||
@ -1,3 +0,0 @@
|
||||
// Place all the styles related to the admin/unlocks controller here.
|
||||
// They will automatically be included in application.css.
|
||||
// You can use Sass (SCSS) here: http://sass-lang.com/
|
||||
@ -1,17 +0,0 @@
|
||||
module Admin
|
||||
class AdminController < ApplicationController
|
||||
layout 'admin/layouts/admin'
|
||||
before_filter :authenticate_admin_user!
|
||||
before_filter :admin_menu
|
||||
|
||||
force_ssl host: APP_CONFIG[:ssl_hostname]
|
||||
|
||||
def admin_menu
|
||||
@admin_menu = { dashboard: '',
|
||||
admin_users: '',
|
||||
categories: '',
|
||||
photos: '',
|
||||
pages: '' }
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -1,64 +0,0 @@
|
||||
module Admin
|
||||
class AdminUsersController < Admin::AdminController
|
||||
def index
|
||||
@admin_users = AdminUser.all
|
||||
end
|
||||
|
||||
def new
|
||||
@admin_user = AdminUser.new
|
||||
end
|
||||
|
||||
def edit
|
||||
@admin_user = AdminUser.find(params[:id])
|
||||
end
|
||||
|
||||
def update
|
||||
@admin_user = AdminUser.find(params[:id])
|
||||
|
||||
if @admin_user.update_attributes(permitted_params)
|
||||
redirect_to admin_admin_users_path, notice: 'Admin User was successfully updated.'
|
||||
else
|
||||
render :edit
|
||||
end
|
||||
end
|
||||
|
||||
def create
|
||||
@admin_user = AdminUser.new(permitted_params)
|
||||
|
||||
if @admin_user.save
|
||||
redirect_to admin_admin_users_path, notice: 'Admin User was successfully added.'
|
||||
else
|
||||
render :edit
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
@admin_user = AdminUser.find(params[:id])
|
||||
@admin_user.destroy
|
||||
|
||||
redirect_to admin_admin_users_path, notice: 'Admin User was deleted.'
|
||||
end
|
||||
|
||||
# Allow the current logged in user to change their password
|
||||
def edit_password
|
||||
@admin_user = current_admin_user
|
||||
end
|
||||
|
||||
def update_password
|
||||
@admin_user = current_admin_user
|
||||
|
||||
if @admin_user.update_with_password(permitted_params)
|
||||
sign_in @admin_user, bypass: true
|
||||
redirect_to admin_dashboard_path, notice: 'Password updated!'
|
||||
else
|
||||
render :edit_password
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def permitted_params
|
||||
params.require(:admin_user).permit(:email, :password, :password_confirmable, :remember_me)
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -1,48 +0,0 @@
|
||||
module Admin
|
||||
class CategoriesController < Admin::AdminController
|
||||
def index
|
||||
@categories = Category.all
|
||||
end
|
||||
|
||||
def new
|
||||
@category = Category.new
|
||||
end
|
||||
|
||||
def edit
|
||||
@category = Category.find(params[:id])
|
||||
end
|
||||
|
||||
def update
|
||||
@category = Category.find(params[:id])
|
||||
|
||||
if @category.update_attributes(permitted_params)
|
||||
redirect_to admin_categories_path, notice: 'Category was successfully updated.'
|
||||
else
|
||||
render :edit
|
||||
end
|
||||
end
|
||||
|
||||
def create
|
||||
@category = Category.new(permitted_params)
|
||||
|
||||
if @category.save
|
||||
redirect_to admin_categories_path, notice: 'Category was successfully added.'
|
||||
else
|
||||
render :edit
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
@category = Category.find(params[:id])
|
||||
@category.destroy
|
||||
|
||||
redirect_to admin_categories_path, notice: 'Category was deleted.'
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def permitted_params
|
||||
params.require(:category).permit(:name, :slug, :description, :base_colour, :sort)
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -1,64 +0,0 @@
|
||||
module Admin
|
||||
class ConfirmationsController < ::Devise::PasswordsController
|
||||
layout 'admin/layouts/login'
|
||||
|
||||
skip_before_filter(:authenticate_user!)
|
||||
|
||||
def update
|
||||
with_unconfirmed_confirmable do
|
||||
if @confirmable.has_no_password?
|
||||
update_password
|
||||
else
|
||||
self.class.add_error_on(self, :email, :password_already_set)
|
||||
end
|
||||
end
|
||||
|
||||
render_with_scope :new unless confirmable.errors.empty?
|
||||
end
|
||||
|
||||
def show
|
||||
with_unconfirmed_confirmable do
|
||||
if @confirmable.has_no_password?
|
||||
do_show
|
||||
else
|
||||
do_confirm
|
||||
end
|
||||
end
|
||||
|
||||
render_with_scope :new unless @confirmable.errors.empty?
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def update_password
|
||||
@confirmable.attempt_set_password(params[:admin_user])
|
||||
if @confirmable.valid?
|
||||
do_confirm
|
||||
else
|
||||
do_show
|
||||
@confirmable.errors.clear # so that we won't render :new
|
||||
end
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def with_unconfirmed_confirmable
|
||||
@confirmable = AdminUser.find_or_initialize_with_error_by(:confirmation_token, params[:confirmation_token])
|
||||
|
||||
@confirmable.only_if_unconfirmed { yield } unless @confirmable.new_record?
|
||||
end
|
||||
|
||||
def do_show
|
||||
@confirmation_token = params[:confirmation_token]
|
||||
@requires_password = true
|
||||
self.resource = @confirmable
|
||||
render_with_scope :show
|
||||
end
|
||||
|
||||
def do_confirm
|
||||
@confirmable.confirm!
|
||||
set_flash_message :notice, :confirmed
|
||||
sign_in_and_redirect(resource_name, @confirmable)
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -1,4 +0,0 @@
|
||||
module Admin
|
||||
class DashboardController < Admin::AdminController
|
||||
end
|
||||
end
|
||||
@ -1,53 +0,0 @@
|
||||
module Admin
|
||||
class PagesController < Admin::AdminController
|
||||
def index
|
||||
@pages = Page.all
|
||||
end
|
||||
|
||||
def new
|
||||
@page = Page.new
|
||||
end
|
||||
|
||||
def edit
|
||||
@page = Page.find(params[:id])
|
||||
end
|
||||
|
||||
def show
|
||||
page = Page.find(params[:id])
|
||||
@page = PagePresenter.new(page)
|
||||
end
|
||||
|
||||
def update
|
||||
@page = Page.find(params[:id])
|
||||
|
||||
if @page.update_attributes(permitted_params)
|
||||
redirect_to admin_pages_path, notice: 'Page was successfully updated.'
|
||||
else
|
||||
render :edit
|
||||
end
|
||||
end
|
||||
|
||||
def create
|
||||
@page = Page.new(permitted_params)
|
||||
|
||||
if @page.save
|
||||
redirect_to admin_pages_path, notice: 'Page was successfully added.'
|
||||
else
|
||||
render :edit
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
@page = Page.find(params[:id])
|
||||
@page.destroy
|
||||
|
||||
redirect_to admin_pages_path, notice: 'Page was deleted.'
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def permitted_params
|
||||
params.require(:page).permit(:name, :title, :content)
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -1,5 +0,0 @@
|
||||
module Admin
|
||||
class PasswordsController < ::Devise::PasswordsController
|
||||
layout 'admin/layouts/login'
|
||||
end
|
||||
end
|
||||
@ -1,55 +0,0 @@
|
||||
module Admin
|
||||
class PhotosController < Admin::AdminController
|
||||
before_filter :categories
|
||||
|
||||
def index
|
||||
@photos = Photo.paginate(page: params[:page], per_page: 16)
|
||||
end
|
||||
|
||||
def new
|
||||
@photo = Photo.new
|
||||
end
|
||||
|
||||
def edit
|
||||
@photo = Photo.find(params[:id])
|
||||
end
|
||||
|
||||
def update
|
||||
@photo = Photo.find(params[:id])
|
||||
|
||||
if @photo.update_attributes(permitted_params)
|
||||
redirect_to admin_photos_path, notice: 'Photo was successfully updated.'
|
||||
else
|
||||
render :edit
|
||||
end
|
||||
end
|
||||
|
||||
def create
|
||||
@photo = Photo.new(permitted_params)
|
||||
|
||||
if @photo.save
|
||||
redirect_to admin_photos_path, notice: 'Photo was successfully added.'
|
||||
else
|
||||
render :edit
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
@photo = Photo.find(params[:id])
|
||||
@photo.destroy
|
||||
|
||||
redirect_to :back, notice: 'Photo was deleted.'
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def categories
|
||||
@categories = Category.all
|
||||
end
|
||||
|
||||
def permitted_params
|
||||
params.require(:photo).permit(:image, :title, :description, :flickr_url, :featured,
|
||||
:enabled, :taken_at, category_ids: [])
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -1,5 +0,0 @@
|
||||
module Admin
|
||||
class RegistrationsController < ::Devise::RegistrationsController
|
||||
layout 'admin/layouts/login'
|
||||
end
|
||||
end
|
||||
@ -1,14 +0,0 @@
|
||||
module Admin
|
||||
class SessionsController < ::Devise::SessionsController
|
||||
layout 'admin/layouts/login'
|
||||
|
||||
before_filter :check_https
|
||||
|
||||
private
|
||||
|
||||
def check_https
|
||||
secure_link = url_for(protocol: 'https')
|
||||
flash[:alert] = I18n.t('insecure_alert', secure_link: secure_link).html_safe unless request.scheme == 'https'
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -1,5 +0,0 @@
|
||||
module Admin
|
||||
class UnlocksController < ::Devise::UnlocksController
|
||||
layout 'admin/layouts/login'
|
||||
end
|
||||
end
|
||||
@ -1,11 +0,0 @@
|
||||
module Admin
|
||||
module AdminHelper
|
||||
def inputs_field_set(&block)
|
||||
field_set_tag nil, class: :inputs, &block
|
||||
end
|
||||
|
||||
def actions_field_set(&block)
|
||||
field_set_tag nil, class: :actions, &block
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -1,30 +0,0 @@
|
||||
class AdminUser < ActiveRecord::Base
|
||||
# Include default devise modules. Others available are:
|
||||
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
|
||||
devise :database_authenticatable, :confirmable,
|
||||
:recoverable, :rememberable, :trackable, :validatable, :lockable
|
||||
|
||||
# new function to set the password without knowing the current password used in our confirmation controller.
|
||||
def attempt_set_password(params)
|
||||
update_attributes(params.slice(:password, :password_confirmation))
|
||||
end
|
||||
|
||||
# new function to return whether a password has been set
|
||||
def no_password?
|
||||
encrypted_password.blank?
|
||||
end
|
||||
|
||||
# new function to provide access to protected method unless_confirmed
|
||||
def only_if_unconfirmed
|
||||
unless_confirmed { yield }
|
||||
end
|
||||
|
||||
def password_required?
|
||||
# Password is required if it is being set, but not for new records
|
||||
if !persisted?
|
||||
false
|
||||
else
|
||||
!password.nil? || !password_confirmation.nil?
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -1,7 +0,0 @@
|
||||
%tr
|
||||
%td= admin_user.email
|
||||
%td= admin_user.last_sign_in_at
|
||||
%td= admin_user.last_sign_in_ip
|
||||
%td{ class: :actions }
|
||||
- unless admin_user == current_admin_user
|
||||
= link_to 'Delete', admin_admin_user_path(admin_user), method: :delete, data: { confirm: 'Are you sure you wish to delete this Admin User?' }
|
||||
@ -1,5 +0,0 @@
|
||||
= simple_form_for [:admin, admin_user] do |f|
|
||||
= inputs_field_set do
|
||||
= f.input :email, required: true
|
||||
= actions_field_set do
|
||||
= f.submit
|
||||
@ -1,2 +0,0 @@
|
||||
%h2 Edit Admin User
|
||||
= render 'form', admin_user: @admin_user
|
||||
@ -1,11 +0,0 @@
|
||||
%h3 Change your password
|
||||
|
||||
= simple_form_for(@admin_user, url: update_password_admin_admin_user_path, html: { method: :put }) do |f|
|
||||
= inputs_field_set do
|
||||
= f.input :current_password
|
||||
= inputs_field_set do
|
||||
= f.input :password, label: 'New Password'
|
||||
= f.input :password_confirmation, label: 'Confirm Password'
|
||||
|
||||
= actions_field_set do
|
||||
= f.submit 'Change my password'
|
||||
@ -1,16 +0,0 @@
|
||||
%h2 Admin Users
|
||||
|
||||
%table
|
||||
%thead
|
||||
%tr
|
||||
%th Email
|
||||
%th Last Signed In?
|
||||
%th IP Address
|
||||
%th
|
||||
%tbody
|
||||
= render partial: 'admin_user', collection: @admin_users
|
||||
%tfoot
|
||||
%tr
|
||||
%td{ colspan: 4 }
|
||||
%br/
|
||||
= link_to 'New Admin User', new_admin_admin_user_path, class: [:button, :new]
|
||||
@ -1,2 +0,0 @@
|
||||
%h2 New Admin User
|
||||
= render 'form', admin_user: @admin_user
|
||||
@ -1,7 +0,0 @@
|
||||
%tr
|
||||
%td= category.name
|
||||
%td= category.slug
|
||||
%td= category.base_colour
|
||||
%td{ class: :actions }
|
||||
= link_to 'Edit', edit_admin_category_path(category)
|
||||
= link_to 'Destroy', [:admin, category], data: { confirm: 'Are you sure?' }, method: :delete
|
||||
@ -1,9 +0,0 @@
|
||||
= simple_form_for [:admin, category] do |f|
|
||||
= inputs_field_set do
|
||||
= f.input :name
|
||||
= f.input :slug, placeholder: 'derived from name if blank'
|
||||
= f.input :description
|
||||
= f.input :base_colour
|
||||
= f.input :sort
|
||||
= actions_field_set do
|
||||
= f.submit
|
||||
@ -1,2 +0,0 @@
|
||||
%h2 Edit Category
|
||||
= render 'form', category: @category
|
||||
@ -1,16 +0,0 @@
|
||||
%h2 Categories
|
||||
|
||||
%table
|
||||
%thead
|
||||
%tr
|
||||
%th Name
|
||||
%th Slug
|
||||
%th Base Colour
|
||||
%th
|
||||
%tbody
|
||||
= render @categories
|
||||
%tfoot
|
||||
%tr
|
||||
%td{ colspan: 5 }
|
||||
%br/
|
||||
= link_to 'New Category', new_admin_category_path, class: [:button, :new]
|
||||
@ -1,2 +0,0 @@
|
||||
%h2 New Category
|
||||
= render 'form', category: @category
|
||||
@ -1,11 +0,0 @@
|
||||
%h3 Resend confirmation instructions
|
||||
|
||||
= simple_form_for(resource, as: resource_name, url: confirmation_path(resource_name), html: { method: :post }) do |f|
|
||||
|
||||
= inputs_field_set do
|
||||
= f.input :email
|
||||
|
||||
= actions_field_set do
|
||||
= f.submit 'Resend confirmation instructions'
|
||||
|
||||
= render 'devise/shared/links'
|
||||
@ -1,12 +0,0 @@
|
||||
%h3= "Account Activation for #{resource.email}"
|
||||
|
||||
= simple_form_for resource, as: resource_name, url: update_user_confirmation_path, html: {method: 'put'}, id: 'activation-form' do |f|
|
||||
= devise_error_messages!
|
||||
= inputs_field_set do
|
||||
%ol
|
||||
- if @requires_password
|
||||
= f.input :password, :label 'Choose a Password'
|
||||
= f.input :password_confirmation, :label 'Confirm Password'
|
||||
= hidden_field_tag :confirmation_token, @confirmation_token
|
||||
= f.actions do
|
||||
= f.submit 'Activate'
|
||||
@ -1 +0,0 @@
|
||||
%p This is the admin dashboard.
|
||||
@ -1,14 +0,0 @@
|
||||
!!!
|
||||
%html
|
||||
%head
|
||||
%title= "#{APP_CONFIG['name']} Admin"
|
||||
= stylesheet_link_tag 'admin'
|
||||
= javascript_include_tag 'admin'
|
||||
= csrf_meta_tag
|
||||
|
||||
%body
|
||||
#page
|
||||
%header{ role: 'banner' }= render 'admin/shared/header'
|
||||
= render 'shared/flash_messages'
|
||||
= yield
|
||||
%footer{ role: 'footer' }= render 'admin/shared/footer'
|
||||
@ -1,13 +0,0 @@
|
||||
!!!
|
||||
%html
|
||||
%head
|
||||
%title= "#{APP_CONFIG['name']} Admin"
|
||||
= stylesheet_link_tag 'admin'
|
||||
= javascript_include_tag 'admin'
|
||||
= csrf_meta_tag
|
||||
|
||||
%body
|
||||
#login
|
||||
%header{ role: 'banner' }= render 'admin/shared/login_header'
|
||||
= render 'shared/flash_messages'
|
||||
= yield
|
||||
@ -1,7 +0,0 @@
|
||||
= simple_form_for [:admin, page] do |f|
|
||||
= inputs_field_set do
|
||||
= f.input :name
|
||||
= f.input :title
|
||||
= f.input :content
|
||||
= actions_field_set do
|
||||
= f.submit
|
||||
@ -1,7 +0,0 @@
|
||||
%tr
|
||||
%td= page.name
|
||||
%td= page.title
|
||||
%td{ class: :actions }
|
||||
= link_to 'Show', [:admin, page]
|
||||
= link_to 'Edit', edit_admin_page_path(page)
|
||||
= link_to 'Destroy', [:admin, page], data: { confirm: 'Are you sure?' }, method: :delete
|
||||
@ -1,2 +0,0 @@
|
||||
%h2 Edit Page
|
||||
= render 'form', page: @page
|
||||
@ -1,15 +0,0 @@
|
||||
%h2 Pages
|
||||
|
||||
%table
|
||||
%thead
|
||||
%tr
|
||||
%th Name
|
||||
%th Title
|
||||
%th
|
||||
%tbody
|
||||
= render partial: 'page', collection: @pages
|
||||
%tfoot
|
||||
%tr
|
||||
%td{ colspan: 4 }
|
||||
%br/
|
||||
= link_to 'New Page', new_admin_page_path, class: [:button, :new]
|
||||
@ -1,2 +0,0 @@
|
||||
%h2 New Page
|
||||
= render partial: "form", locals: { page: @page }
|
||||
@ -1,4 +0,0 @@
|
||||
.page
|
||||
%h2= @page.title
|
||||
|
||||
.content= @page.content_as_html
|
||||
@ -1,14 +0,0 @@
|
||||
%h3 Change your password
|
||||
|
||||
= simple_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
|
||||
|
||||
= inputs_field_set do
|
||||
= f.input :password, label: "New Password", required: true
|
||||
= f.input :password_confirmation, label: "Confirm Password", required: true
|
||||
|
||||
= actions_field_set do
|
||||
= f.submit "Change my password"
|
||||
|
||||
= render partial: "devise/shared/links"
|
||||
@ -1,11 +0,0 @@
|
||||
%h3 Forgot your password?
|
||||
|
||||
= simple_form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f|
|
||||
|
||||
= inputs_field_set do
|
||||
= f.input :email, required: true
|
||||
|
||||
= actions_field_set do
|
||||
= f.submit "Reset Password"
|
||||
|
||||
= render partial: "devise/shared/links"
|
||||
@ -1,17 +0,0 @@
|
||||
= simple_form_for [:admin, photo] do |f|
|
||||
%ul.categories
|
||||
- @categories.each do |photo_category|
|
||||
%li
|
||||
= check_box_tag 'photo[category_ids][]', photo_category.id, @photo.categories.include?(photo_category), id: "photo_category_ids_#{photo_category.id}"
|
||||
= label_tag "photo_category_ids_#{photo_category.id}", photo_category.name
|
||||
|
||||
= inputs_field_set do
|
||||
= f.input :image, as: :file
|
||||
= f.input :title
|
||||
= f.input :description
|
||||
= f.input :flickr_url
|
||||
= f.input :featured
|
||||
= f.input :enabled
|
||||
= f.input :taken_at
|
||||
= actions_field_set do
|
||||
= f.submit
|
||||
@ -1,5 +0,0 @@
|
||||
.photo
|
||||
= link_to image_tag(photo.image.admin.url, title: photo.title), photo.image.url
|
||||
.actions
|
||||
= link_to 'Edit', edit_admin_photo_path(photo)
|
||||
= link_to 'Destroy', [:admin, photo], data: { confirm: 'Are you sure?' }, method: :delete
|
||||
@ -1,2 +0,0 @@
|
||||
%h2 Edit Photo
|
||||
= render partial: "form", locals: { photo: @photo }
|
||||
@ -1,11 +0,0 @@
|
||||
%h2 Photos
|
||||
|
||||
= will_paginate @photos, remote: true
|
||||
|
||||
.photos
|
||||
= render partial: "photo", collection: @photos
|
||||
|
||||
= will_paginate @products, remote: true
|
||||
|
||||
%br/
|
||||
= link_to 'New Photo', new_admin_photo_path, class: [:button, :new]
|
||||
@ -1,2 +0,0 @@
|
||||
%h2 New Photo
|
||||
= render partial: "form", locals: { photo: @photo }
|
||||
@ -1,14 +0,0 @@
|
||||
%h3 Sign in
|
||||
|
||||
= simple_form_for(resource, as: resource_name, url: session_path(resource_name)) do |f|
|
||||
= inputs_field_set do
|
||||
= f.input :email, required: true
|
||||
= f.input :password, required: true
|
||||
|
||||
- if devise_mapping.rememberable?
|
||||
= f.input :remember_me, as: :boolean
|
||||
|
||||
= actions_field_set do
|
||||
= f.submit 'Sign In'
|
||||
|
||||
= render 'devise/shared/links'
|
||||
@ -1,3 +0,0 @@
|
||||
%h1= link_to image_tag(asset_url('admin/logo.svg'), alt: APP_CONFIG['name']), admin_dashboard_path
|
||||
= render 'admin/shared/user'
|
||||
= render 'admin/shared/menu'
|
||||
@ -1 +0,0 @@
|
||||
%h1= link_to image_tag(asset_url('admin/logo.svg'), alt: APP_CONFIG['name']), admin_dashboard_path
|
||||
@ -1,4 +0,0 @@
|
||||
%nav
|
||||
%ul
|
||||
- @admin_menu.each do |key, value|
|
||||
= render 'admin/shared/menu_item', menu_item: key
|
||||
@ -1 +0,0 @@
|
||||
%li= link_to menu_item.to_s.gsub(/_/, ' ').titleize, { controller: menu_item }, class: (params[:controller] == "admin/#{menu_item}" ? 'selected' : nil)
|
||||
@ -1,6 +0,0 @@
|
||||
#user
|
||||
%strong= current_admin_user.email
|
||||
|
|
||||
= link_to 'Change Password', edit_password_admin_admin_user_path
|
||||
|
|
||||
= link_to 'Logout', destroy_admin_user_session_path, method: :delete
|
||||
@ -1,11 +0,0 @@
|
||||
%h3 Resend unlock instructions
|
||||
|
||||
= simple_form_for(resource, as: resource_name, url: unlock_path(resource_name), html: { method: :post }) do |f|
|
||||
|
||||
= inputs_field_set do
|
||||
= f.input :email
|
||||
|
||||
= actions_field_set do
|
||||
= f.submit 'Resend unlock instructions'
|
||||
|
||||
= render partial: 'devise/shared/links'
|
||||
@ -1,254 +0,0 @@
|
||||
# Use this hook to configure devise mailer, warden hooks and so forth.
|
||||
# Many of these configuration options can be set straight in your model.
|
||||
Devise.setup do |config|
|
||||
# The secret key used by Devise. Devise uses this key to generate
|
||||
# random tokens. Changing this key will render invalid all existing
|
||||
# confirmation, reset password and unlock tokens in the database.
|
||||
config.secret_key = '61c6eff811df1ecd36c7fc2365c73f535546bf47ef542cce436cbb43cb6e7fbcd9d89f07d01cd65413b3ba16b850934c8f7e56d85f8aece02444b2487389efb8'
|
||||
|
||||
# ==> Mailer Configuration
|
||||
# Configure the e-mail address which will be shown in Devise::Mailer,
|
||||
# note that it will be overwritten if you use your own mailer class
|
||||
# with default "from" parameter.
|
||||
config.mailer_sender = 'site@danbarberphoto.com'
|
||||
|
||||
# Configure the class responsible to send e-mails.
|
||||
# config.mailer = 'Devise::Mailer'
|
||||
|
||||
# ==> ORM configuration
|
||||
# Load and configure the ORM. Supports :active_record (default) and
|
||||
# :mongoid (bson_ext recommended) by default. Other ORMs may be
|
||||
# available as additional gems.
|
||||
require 'devise/orm/active_record'
|
||||
|
||||
# ==> Configuration for any authentication mechanism
|
||||
# Configure which keys are used when authenticating a user. The default is
|
||||
# just :email. You can configure it to use [:username, :subdomain], so for
|
||||
# authenticating a user, both parameters are required. Remember that those
|
||||
# parameters are used only when authenticating and not when retrieving from
|
||||
# session. If you need permissions, you should implement that in a before filter.
|
||||
# You can also supply a hash where the value is a boolean determining whether
|
||||
# or not authentication should be aborted when the value is not present.
|
||||
# config.authentication_keys = [ :email ]
|
||||
|
||||
# Configure parameters from the request object used for authentication. Each entry
|
||||
# given should be a request method and it will automatically be passed to the
|
||||
# find_for_authentication method and considered in your model lookup. For instance,
|
||||
# if you set :request_keys to [:subdomain], :subdomain will be used on authentication.
|
||||
# The same considerations mentioned for authentication_keys also apply to request_keys.
|
||||
# config.request_keys = []
|
||||
|
||||
# Configure which authentication keys should be case-insensitive.
|
||||
# These keys will be downcased upon creating or modifying a user and when used
|
||||
# to authenticate or find a user. Default is :email.
|
||||
config.case_insensitive_keys = [ :email ]
|
||||
|
||||
# Configure which authentication keys should have whitespace stripped.
|
||||
# These keys will have whitespace before and after removed upon creating or
|
||||
# modifying a user and when used to authenticate or find a user. Default is :email.
|
||||
config.strip_whitespace_keys = [ :email ]
|
||||
|
||||
# Tell if authentication through request.params is enabled. True by default.
|
||||
# It can be set to an array that will enable params authentication only for the
|
||||
# given strategies, for example, `config.params_authenticatable = [:database]` will
|
||||
# enable it only for database (email + password) authentication.
|
||||
# config.params_authenticatable = true
|
||||
|
||||
# Tell if authentication through HTTP Auth is enabled. False by default.
|
||||
# It can be set to an array that will enable http authentication only for the
|
||||
# given strategies, for example, `config.http_authenticatable = [:database]` will
|
||||
# enable it only for database authentication. The supported strategies are:
|
||||
# :database = Support basic authentication with authentication key + password
|
||||
# config.http_authenticatable = false
|
||||
|
||||
# If http headers should be returned for AJAX requests. True by default.
|
||||
# config.http_authenticatable_on_xhr = true
|
||||
|
||||
# The realm used in Http Basic Authentication. 'Application' by default.
|
||||
# config.http_authentication_realm = 'Application'
|
||||
|
||||
# It will change confirmation, password recovery and other workflows
|
||||
# to behave the same regardless if the e-mail provided was right or wrong.
|
||||
# Does not affect registerable.
|
||||
# config.paranoid = true
|
||||
|
||||
# By default Devise will store the user in session. You can skip storage for
|
||||
# particular strategies by setting this option.
|
||||
# Notice that if you are skipping storage for all authentication paths, you
|
||||
# may want to disable generating routes to Devise's sessions controller by
|
||||
# passing :skip => :sessions to `devise_for` in your config/routes.rb
|
||||
config.skip_session_storage = [:http_auth]
|
||||
|
||||
# By default, Devise cleans up the CSRF token on authentication to
|
||||
# avoid CSRF token fixation attacks. This means that, when using AJAX
|
||||
# requests for sign in and sign up, you need to get a new CSRF token
|
||||
# from the server. You can disable this option at your own risk.
|
||||
# config.clean_up_csrf_token_on_authentication = true
|
||||
|
||||
# ==> Configuration for :database_authenticatable
|
||||
# For bcrypt, this is the cost for hashing the password and defaults to 10. If
|
||||
# using other encryptors, it sets how many times you want the password re-encrypted.
|
||||
#
|
||||
# Limiting the stretches to just one in testing will increase the performance of
|
||||
# your test suite dramatically. However, it is STRONGLY RECOMMENDED to not use
|
||||
# a value less than 10 in other environments.
|
||||
config.stretches = Rails.env.test? ? 1 : 10
|
||||
|
||||
# Setup a pepper to generate the encrypted password.
|
||||
# config.pepper = 'ba9cae796e2b75bc34af798332ac62a9dd8887c51367cb6cbe8415bec851543e981167db889d2672c1bbcb9b58101b2ac258f9c8d310f5697078089a8b8e47b9'
|
||||
|
||||
# ==> Configuration for :confirmable
|
||||
# A period that the user is allowed to access the website even without
|
||||
# confirming his account. For instance, if set to 2.days, the user will be
|
||||
# able to access the website for two days without confirming his account,
|
||||
# access will be blocked just in the third day. Default is 0.days, meaning
|
||||
# the user cannot access the website without confirming his account.
|
||||
# config.allow_unconfirmed_access_for = 2.days
|
||||
|
||||
# A period that the user is allowed to confirm their account before their
|
||||
# token becomes invalid. For example, if set to 3.days, the user can confirm
|
||||
# their account within 3 days after the mail was sent, but on the fourth day
|
||||
# their account can't be confirmed with the token any more.
|
||||
# Default is nil, meaning there is no restriction on how long a user can take
|
||||
# before confirming their account.
|
||||
# config.confirm_within = 3.days
|
||||
|
||||
# If true, requires any email changes to be confirmed (exactly the same way as
|
||||
# initial account confirmation) to be applied. Requires additional unconfirmed_email
|
||||
# db field (see migrations). Until confirmed new email is stored in
|
||||
# unconfirmed email column, and copied to email column on successful confirmation.
|
||||
config.reconfirmable = false
|
||||
|
||||
# Defines which key will be used when confirming an account
|
||||
# config.confirmation_keys = [ :email ]
|
||||
|
||||
# ==> Configuration for :rememberable
|
||||
# The time the user will be remembered without asking for credentials again.
|
||||
# config.remember_for = 2.weeks
|
||||
|
||||
# If true, extends the user's remember period when remembered via cookie.
|
||||
# config.extend_remember_period = false
|
||||
|
||||
# Options to be passed to the created cookie. For instance, you can set
|
||||
# :secure => true in order to force SSL only cookies.
|
||||
# config.rememberable_options = {}
|
||||
|
||||
# ==> Configuration for :validatable
|
||||
# Range for password length. Default is 8..128.
|
||||
config.password_length = 8..128
|
||||
|
||||
# Email regex used to validate email formats. It simply asserts that
|
||||
# one (and only one) @ exists in the given string. This is mainly
|
||||
# to give user feedback and not to assert the e-mail validity.
|
||||
# config.email_regexp = /\A[^@]+@[^@]+\z/
|
||||
|
||||
# ==> Configuration for :timeoutable
|
||||
# The time you want to timeout the user session without activity. After this
|
||||
# time the user will be asked for credentials again. Default is 30 minutes.
|
||||
# config.timeout_in = 30.minutes
|
||||
|
||||
# If true, expires auth token on session timeout.
|
||||
# config.expire_auth_token_on_timeout = false
|
||||
|
||||
# ==> Configuration for :lockable
|
||||
# Defines which strategy will be used to lock an account.
|
||||
# :failed_attempts = Locks an account after a number of failed attempts to sign in.
|
||||
# :none = No lock strategy. You should handle locking by yourself.
|
||||
# config.lock_strategy = :failed_attempts
|
||||
|
||||
# Defines which key will be used when locking and unlocking an account
|
||||
# config.unlock_keys = [ :email ]
|
||||
|
||||
# Defines which strategy will be used to unlock an account.
|
||||
# :email = Sends an unlock link to the user email
|
||||
# :time = Re-enables login after a certain amount of time (see :unlock_in below)
|
||||
# :both = Enables both strategies
|
||||
# :none = No unlock strategy. You should handle unlocking by yourself.
|
||||
# config.unlock_strategy = :both
|
||||
|
||||
# Number of authentication tries before locking an account if lock_strategy
|
||||
# is failed attempts.
|
||||
# config.maximum_attempts = 20
|
||||
|
||||
# Time interval to unlock the account if :time is enabled as unlock_strategy.
|
||||
# config.unlock_in = 1.hour
|
||||
|
||||
# Warn on the last attempt before the account is locked.
|
||||
# config.last_attempt_warning = false
|
||||
|
||||
# ==> Configuration for :recoverable
|
||||
#
|
||||
# Defines which key will be used when recovering the password for an account
|
||||
# config.reset_password_keys = [ :email ]
|
||||
|
||||
# Time interval you can reset your password with a reset password key.
|
||||
# Don't put a too small interval or your users won't have the time to
|
||||
# change their passwords.
|
||||
config.reset_password_within = 6.hours
|
||||
|
||||
# ==> Configuration for :encryptable
|
||||
# Allow you to use another encryption algorithm besides bcrypt (default). You can use
|
||||
# :sha1, :sha512 or encryptors from others authentication tools as :clearance_sha1,
|
||||
# :authlogic_sha512 (then you should set stretches above to 20 for default behavior)
|
||||
# and :restful_authentication_sha1 (then you should set stretches to 10, and copy
|
||||
# REST_AUTH_SITE_KEY to pepper).
|
||||
#
|
||||
# Require the `devise-encryptable` gem when using anything other than bcrypt
|
||||
# config.encryptor = :sha512
|
||||
|
||||
# ==> Scopes configuration
|
||||
# Turn scoped views on. Before rendering "sessions/new", it will first check for
|
||||
# "users/sessions/new". It's turned off by default because it's slower if you
|
||||
# are using only default views.
|
||||
# config.scoped_views = false
|
||||
|
||||
# Configure the default scope given to Warden. By default it's the first
|
||||
# devise role declared in your routes (usually :user).
|
||||
# config.default_scope = :user
|
||||
|
||||
# Set this configuration to false if you want /users/sign_out to sign out
|
||||
# only the current scope. By default, Devise signs out all scopes.
|
||||
# config.sign_out_all_scopes = true
|
||||
|
||||
# ==> Navigation configuration
|
||||
# Lists the formats that should be treated as navigational. Formats like
|
||||
# :html, should redirect to the sign in page when the user does not have
|
||||
# access, but formats like :xml or :json, should return 401.
|
||||
#
|
||||
# If you have any extra navigational formats, like :iphone or :mobile, you
|
||||
# should add them to the navigational formats lists.
|
||||
#
|
||||
# The "*/*" below is required to match Internet Explorer requests.
|
||||
# config.navigational_formats = ['*/*', :html]
|
||||
|
||||
# The default HTTP method used to sign out a resource. Default is :delete.
|
||||
config.sign_out_via = :delete
|
||||
|
||||
# ==> OmniAuth
|
||||
# Add a new OmniAuth provider. Check the wiki for more information on setting
|
||||
# up on your models and hooks.
|
||||
# config.omniauth :github, 'APP_ID', 'APP_SECRET', :scope => 'user,public_repo'
|
||||
|
||||
# ==> Warden configuration
|
||||
# If you want to use other strategies, that are not supported by Devise, or
|
||||
# change the failure app, you can configure them inside the config.warden block.
|
||||
#
|
||||
# config.warden do |manager|
|
||||
# manager.intercept_401 = false
|
||||
# manager.default_strategies(:scope => :user).unshift :some_external_strategy
|
||||
# end
|
||||
|
||||
# ==> Mountable engine configurations
|
||||
# When using Devise inside an engine, let's call it `MyEngine`, and this engine
|
||||
# is mountable, there are some extra configurations to be taken into account.
|
||||
# The following options are available, assuming the engine is mounted as:
|
||||
#
|
||||
# mount MyEngine, at: '/my_engine'
|
||||
#
|
||||
# The router that invoked `devise_for`, in the example above, would be:
|
||||
# config.router_name = :my_engine
|
||||
#
|
||||
# When using omniauth, Devise cannot automatically set Omniauth path,
|
||||
# so you need to do it manually. For the users scope, it would be:
|
||||
# config.omniauth_path_prefix = '/my_engine/users/auth'
|
||||
end
|
||||
@ -1,85 +1,6 @@
|
||||
DanBarberPhoto::Application.routes.draw do
|
||||
resources :contacts
|
||||
|
||||
as :admin_user do
|
||||
match '/admin_users/confirmation' => 'admin/confirmations#update', via: :put, as: :update_user_confirmation
|
||||
end
|
||||
|
||||
devise_for :admin_users, controllers: {
|
||||
sessions: "admin/sessions",
|
||||
passwords: "admin/passwords",
|
||||
#registrations: "admin/registrations",
|
||||
confirmations: "admin/confirmations",
|
||||
unlocks: "admin/unlocks"
|
||||
}
|
||||
|
||||
namespace :admin do
|
||||
root to: "dashboard#index", as: :dashboard
|
||||
resources :admin_users
|
||||
resource :admin_user do
|
||||
member do
|
||||
get :edit_password
|
||||
put :update_password
|
||||
end
|
||||
end
|
||||
resources :categories
|
||||
resources :photos
|
||||
resources :pages
|
||||
end
|
||||
|
||||
# The priority is based upon order of creation:
|
||||
# first created -> highest priority.
|
||||
|
||||
# Sample of regular route:
|
||||
# match 'products/:id' => 'catalog#view'
|
||||
# Keep in mind you can assign values other than :controller and :action
|
||||
|
||||
# Sample of named route:
|
||||
# match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
|
||||
# This route can be invoked with purchase_url(:id => product.id)
|
||||
|
||||
# Sample resource route (maps HTTP verbs to controller actions automatically):
|
||||
# resources :products
|
||||
|
||||
# Sample resource route with options:
|
||||
# resources :products do
|
||||
# member do
|
||||
# get 'short'
|
||||
# post 'toggle'
|
||||
# end
|
||||
#
|
||||
# collection do
|
||||
# get 'sold'
|
||||
# end
|
||||
# end
|
||||
|
||||
# Sample resource route with sub-resources:
|
||||
# resources :products do
|
||||
# resources :comments, :sales
|
||||
# resource :seller
|
||||
# end
|
||||
|
||||
# Sample resource route with more complex sub-resources
|
||||
# resources :products do
|
||||
# resources :comments
|
||||
# resources :sales do
|
||||
# get 'recent', :on => :collection
|
||||
# end
|
||||
# end
|
||||
|
||||
# Sample resource route within a namespace:
|
||||
# namespace :admin do
|
||||
# # Directs /admin/products/* to Admin::ProductsController
|
||||
# # (app/controllers/admin/products_controller.rb)
|
||||
# resources :products
|
||||
# end
|
||||
|
||||
# You can have the root of your site routed with "root"
|
||||
# just remember to delete public/index.html.
|
||||
# root :to => "welcome#index"
|
||||
|
||||
# See how all your routes lay out with "rake routes"
|
||||
|
||||
resources :categories do
|
||||
resources :photos do
|
||||
member do
|
||||
@ -94,21 +15,8 @@ DanBarberPhoto::Application.routes.draw do
|
||||
end
|
||||
end
|
||||
|
||||
#match 'contact' => 'pages#contact', :as => :contact
|
||||
resources :contacts, only: [:new, :create]
|
||||
|
||||
match '/:name' => 'pages#show', as: :page, via: :get
|
||||
|
||||
# This is a legacy wild controller route that's not recommended for RESTful applications.
|
||||
# Note: This route will make all actions in every controller accessible via GET requests.
|
||||
# match ':controller(/:action(/:id(.:format)))'
|
||||
|
||||
# root :to => 'welcome#index'
|
||||
get '/:name' => 'pages#show', as: :page
|
||||
root to: 'home#index'
|
||||
|
||||
# See how all your routes lay out with "rake routes"
|
||||
|
||||
# This is a legacy wild controller route that's not recommended for RESTful applications.
|
||||
# Note: This route will make all actions in every controller accessible via GET requests.
|
||||
# match ':controller(/:action(/:id(.:format)))'
|
||||
end
|
||||
|
||||
45
db/migrate/20151022110802_remove_devise_admin_users.rb
Normal file
45
db/migrate/20151022110802_remove_devise_admin_users.rb
Normal file
@ -0,0 +1,45 @@
|
||||
class RemoveDeviseAdminUsers < ActiveRecord::Migration
|
||||
def up
|
||||
drop_table :admin_users
|
||||
end
|
||||
|
||||
def down
|
||||
create_table(:admin_users) do |t|
|
||||
# Database authenticatable
|
||||
t.string :email, :null => false, :default => ""
|
||||
t.string :encrypted_password, :null => false, :default => ""
|
||||
|
||||
# Recoverable
|
||||
t.string :reset_password_token
|
||||
t.datetime :reset_password_sent_at
|
||||
|
||||
# Rememberable
|
||||
t.datetime :remember_created_at
|
||||
|
||||
# Trackable
|
||||
t.integer :sign_in_count, :default => 0
|
||||
t.datetime :current_sign_in_at
|
||||
t.datetime :last_sign_in_at
|
||||
t.string :current_sign_in_ip
|
||||
t.string :last_sign_in_ip
|
||||
|
||||
# Confirmable
|
||||
t.string :confirmation_token
|
||||
t.datetime :confirmed_at
|
||||
t.datetime :confirmation_sent_at
|
||||
t.string :unconfirmed_email # Only if using reconfirmable
|
||||
|
||||
# Lockable
|
||||
t.integer :failed_attempts, :default => 0 # Only if lock strategy is :failed_attempts
|
||||
t.string :unlock_token # Only if unlock strategy is :email or :both
|
||||
t.datetime :locked_at
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
|
||||
add_index :admin_users, :email, :unique => true
|
||||
add_index :admin_users, :reset_password_token, :unique => true
|
||||
add_index :admin_users, :confirmation_token, :unique => true
|
||||
add_index :admin_users, :unlock_token, :unique => true
|
||||
end
|
||||
end
|
||||
28
db/schema.rb
28
db/schema.rb
@ -11,37 +11,11 @@
|
||||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 20150827205816) do
|
||||
ActiveRecord::Schema.define(version: 20151022110802) do
|
||||
|
||||
# These are extensions that must be enabled in order to support this database
|
||||
enable_extension "plpgsql"
|
||||
|
||||
create_table "admin_users", force: true do |t|
|
||||
t.string "email", default: "", null: false
|
||||
t.string "encrypted_password", limit: 128, default: "", null: false
|
||||
t.string "reset_password_token"
|
||||
t.datetime "reset_password_sent_at"
|
||||
t.datetime "remember_created_at"
|
||||
t.integer "sign_in_count", default: 0
|
||||
t.datetime "current_sign_in_at"
|
||||
t.datetime "last_sign_in_at"
|
||||
t.string "current_sign_in_ip"
|
||||
t.string "last_sign_in_ip"
|
||||
t.string "confirmation_token"
|
||||
t.datetime "confirmed_at"
|
||||
t.datetime "confirmation_sent_at"
|
||||
t.integer "failed_attempts", default: 0
|
||||
t.string "unlock_token"
|
||||
t.datetime "locked_at"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
end
|
||||
|
||||
add_index "admin_users", ["confirmation_token"], name: "index_admin_users_on_confirmation_token", unique: true, using: :btree
|
||||
add_index "admin_users", ["email"], name: "index_admin_users_on_email", unique: true, using: :btree
|
||||
add_index "admin_users", ["reset_password_token"], name: "index_admin_users_on_reset_password_token", unique: true, using: :btree
|
||||
add_index "admin_users", ["unlock_token"], name: "index_admin_users_on_unlock_token", unique: true, using: :btree
|
||||
|
||||
create_table "categories", force: true do |t|
|
||||
t.string "name"
|
||||
t.text "description"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user