kryptonite 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. data/Gemfile +1 -0
  2. data/MIT-LICENSE +20 -0
  3. data/PUBLIC_VERSION.yml +4 -0
  4. data/README.rdoc +209 -0
  5. data/Rakefile +40 -0
  6. data/app/controllers/kryptonite/kryptonite_controller.rb +72 -0
  7. data/app/controllers/kryptonite/password_resets_controller.rb +66 -0
  8. data/app/controllers/kryptonite/user_sessions_controller.rb +40 -0
  9. data/app/controllers/kryptonite/users_controller.rb +102 -0
  10. data/app/helpers/kryptonite/kryptonite_helper.rb +200 -0
  11. data/app/mailers/kryptonite/kryptonite_notification.rb +39 -0
  12. data/app/models/kryptonite/user.rb +55 -0
  13. data/app/models/kryptonite/user_session.rb +8 -0
  14. data/app/views/kryptonite/kryptonite/blank.html.erb +1 -0
  15. data/app/views/kryptonite/kryptonite_notification/generate_new_password.erb +12 -0
  16. data/app/views/kryptonite/kryptonite_notification/new_user_information.erb +12 -0
  17. data/app/views/kryptonite/kryptonite_notification/password_reset_instructions.erb +11 -0
  18. data/app/views/kryptonite/password_resets/edit.html.erb +48 -0
  19. data/app/views/kryptonite/user_sessions/new.html.erb +66 -0
  20. data/app/views/kryptonite/users/index.html.erb +35 -0
  21. data/app/views/kryptonite/users/new.html.erb +46 -0
  22. data/app/views/kryptonite/users/show.html.erb +94 -0
  23. data/app/views/layouts/kryptonite_auth.html.erb +24 -0
  24. data/app/views/layouts/kryptonite_main.html.erb +67 -0
  25. data/config/routes.rb +20 -0
  26. data/lib/generators/kryptonite/install/USAGE +1 -0
  27. data/lib/generators/kryptonite/install/install_generator.rb +37 -0
  28. data/lib/generators/kryptonite/install/templates/app/helpers/kryptonite/config_helper.rb +46 -0
  29. data/lib/generators/kryptonite/install/templates/app/views/kryptonite/layouts/_left_navigation.html.erb +2 -0
  30. data/lib/generators/kryptonite/install/templates/app/views/kryptonite/layouts/_right_navigation.html.erb +1 -0
  31. data/lib/generators/kryptonite/install/templates/db/migrate/kryptonite_create_users.rb +30 -0
  32. data/lib/generators/kryptonite/install/templates/public/casein/javascripts/custom.js +2 -0
  33. data/lib/generators/kryptonite/install/templates/public/casein/stylesheets/custom.css +2 -0
  34. data/lib/generators/kryptonite/install/templates/public/robots.txt +5 -0
  35. data/lib/generators/kryptonite/scaffold/USAGE +1 -0
  36. data/lib/generators/kryptonite/scaffold/scaffold_generator.rb +99 -0
  37. data/lib/generators/kryptonite/scaffold/templates/controller.rb +60 -0
  38. data/lib/generators/kryptonite/scaffold/templates/migration.rb +13 -0
  39. data/lib/generators/kryptonite/scaffold/templates/model.rb +3 -0
  40. data/lib/generators/kryptonite/scaffold/templates/views/_form.html.erb +9 -0
  41. data/lib/generators/kryptonite/scaffold/templates/views/_table.html.erb +17 -0
  42. data/lib/generators/kryptonite/scaffold/templates/views/index.html.erb +11 -0
  43. data/lib/generators/kryptonite/scaffold/templates/views/new.html.erb +18 -0
  44. data/lib/generators/kryptonite/scaffold/templates/views/show.html.erb +18 -0
  45. data/lib/generators/kryptonite/update/USAGE +1 -0
  46. data/lib/generators/kryptonite/update/templates/public/kryptonite/images/casein.png +0 -0
  47. data/lib/generators/kryptonite/update/templates/public/kryptonite/images/header.png +0 -0
  48. data/lib/generators/kryptonite/update/templates/public/kryptonite/images/icons/add.png +0 -0
  49. data/lib/generators/kryptonite/update/templates/public/kryptonite/images/icons/delete.png +0 -0
  50. data/lib/generators/kryptonite/update/templates/public/kryptonite/images/icons/table.png +0 -0
  51. data/lib/generators/kryptonite/update/templates/public/kryptonite/images/login/alertBg.png +0 -0
  52. data/lib/generators/kryptonite/update/templates/public/kryptonite/images/login/background.png +0 -0
  53. data/lib/generators/kryptonite/update/templates/public/kryptonite/images/login/bottom.png +0 -0
  54. data/lib/generators/kryptonite/update/templates/public/kryptonite/images/login/loginBoxBg.png +0 -0
  55. data/lib/generators/kryptonite/update/templates/public/kryptonite/images/login/loginBoxBottom.png +0 -0
  56. data/lib/generators/kryptonite/update/templates/public/kryptonite/images/login/loginBoxTop.png +0 -0
  57. data/lib/generators/kryptonite/update/templates/public/kryptonite/images/login/loginSubmit.png +0 -0
  58. data/lib/generators/kryptonite/update/templates/public/kryptonite/images/login/recoverSubmit.png +0 -0
  59. data/lib/generators/kryptonite/update/templates/public/kryptonite/images/login/top.png +0 -0
  60. data/lib/generators/kryptonite/update/templates/public/kryptonite/images/nav.png +0 -0
  61. data/lib/generators/kryptonite/update/templates/public/kryptonite/images/rightNav.png +0 -0
  62. data/lib/generators/kryptonite/update/templates/public/kryptonite/images/rightNavButton.png +0 -0
  63. data/lib/generators/kryptonite/update/templates/public/kryptonite/images/visitSiteNav.png +0 -0
  64. data/lib/generators/kryptonite/update/templates/public/kryptonite/javascripts/jquery.js +154 -0
  65. data/lib/generators/kryptonite/update/templates/public/kryptonite/javascripts/kryptonite.js +25 -0
  66. data/lib/generators/kryptonite/update/templates/public/kryptonite/javascripts/login.js +24 -0
  67. data/lib/generators/kryptonite/update/templates/public/kryptonite/javascripts/rails.js +132 -0
  68. data/lib/generators/kryptonite/update/templates/public/kryptonite/stylesheets/elements.css +307 -0
  69. data/lib/generators/kryptonite/update/templates/public/kryptonite/stylesheets/login.css +137 -0
  70. data/lib/generators/kryptonite/update/templates/public/kryptonite/stylesheets/screen.css +224 -0
  71. data/lib/generators/kryptonite/update/update_generator.rb +40 -0
  72. data/lib/kryptonite.rb +3 -0
  73. data/lib/kryptonite/engine.rb +22 -0
  74. data/lib/railties/tasks.rake +31 -0
  75. metadata +169 -0
@@ -0,0 +1,48 @@
1
+ <%= form_for @reset_user, :url => kryptonite_password_reset_path do |f| %>
2
+
3
+ <% if @reset_user.errors.any? %>
4
+ <div class="error">
5
+ <p>
6
+ <% @reset_user.errors.keys.each do |key| %>
7
+ <%= (key.to_s.humanize + " ") unless key == :base %>
8
+ <%= @reset_user.errors[key].first %>
9
+ <% end %>
10
+ </p>
11
+ </div>
12
+ <% end %>
13
+
14
+ <% if flash[:warning] %>
15
+ <div class="error">
16
+ <p><%= flash[:warning] %></p>
17
+ </div>
18
+ <% end %>
19
+
20
+ <% if flash[:notice] %>
21
+ <div class="notice">
22
+ <p><%= flash[:notice] %></p>
23
+ </div>
24
+ <% end %>
25
+
26
+ <%= hidden_field_tag :token, params[:token] %>
27
+
28
+ <div class="text">
29
+ <p>
30
+ <%= f.label :password, "Password:" %>
31
+ <%= f.password_field :password, :class => "kryptoniteTextField" %>
32
+ </p>
33
+ </div>
34
+
35
+ <div class="text">
36
+ <p>
37
+ <%= f.label :password_confirmation, "Confirm password:" %>
38
+ <%= f.password_field :password_confirmation, :class => "kryptoniteTextField" %>
39
+ </p>
40
+ </div>
41
+
42
+ <div class="submit_remember">
43
+ <p>
44
+ <%= f.submit "Reset password", :class => "kryptoniteSubmit" %>
45
+ </p>
46
+ </div>
47
+
48
+ <% end %>
@@ -0,0 +1,66 @@
1
+ <%= form_for @user_session, :url => kryptonite_user_session_path do |f| %>
2
+
3
+ <% if @user_session.errors.any? %>
4
+ <div class="error">
5
+ <p>
6
+ <% @user_session.errors.keys.each do |key| %>
7
+ <%= (key.to_s.humanize + " ") unless key == :base %>
8
+ <%= @user_session.errors[key].first %>
9
+ <% end %>
10
+ </p>
11
+ </div>
12
+ <% end %>
13
+
14
+ <% if flash[:warning] %>
15
+ <div class="error">
16
+ <p><%= flash[:warning] %></p>
17
+ </div>
18
+ <% end %>
19
+
20
+ <% if flash[:notice] %>
21
+ <div class="notice">
22
+ <p><%= flash[:notice] %></p>
23
+ </div>
24
+ <% end %>
25
+
26
+ <div class="text" style="margin-bottom:10px;">
27
+ <p>
28
+ <%= f.label :login, "Login:" %>
29
+ <%= f.text_field :login, :class => "kryptoniteTextField" %>
30
+ </p>
31
+ </div>
32
+
33
+ <div class="text">
34
+ <p>
35
+ <%= f.label :password, "Password:" %>
36
+ <%= f.password_field :password, :class => "kryptoniteTextField" %>
37
+ </p>
38
+ </div>
39
+
40
+ <div class="submit_remember">
41
+ <p>
42
+ <%= f.check_box :remember_me %> Remember me
43
+ <br /><br />
44
+ <%= f.submit "Log in", :class => "kryptoniteSubmit" %>
45
+ <input type="button" value="Forgotten password?" class="kryptoniteSubmitBlue" onclick="toggleDiv('recover');" />
46
+ </p>
47
+ </div>
48
+
49
+ <% end %>
50
+
51
+ <%= form_tag kryptonite_password_reset_url do %>
52
+ <div id="recover">
53
+
54
+ <div class="text">
55
+ <p>
56
+ <%= label_tag :recover_email, "Email:" %>
57
+ <%= text_field_tag :recover_email, params[:recover_email], :class => "kryptoniteTextField" %>
58
+ </p>
59
+ </div>
60
+ <div class="submit_remember">
61
+ <p>
62
+ <%= submit_tag "Reset", :class => "kryptoniteSubmit" %>
63
+ </p>
64
+ </div>
65
+ </div>
66
+ <% end %>
@@ -0,0 +1,35 @@
1
+ <h2>Users</h2>
2
+
3
+ <table cellpadding="0" cellspacing="0" id="itemList" class="itemList">
4
+ <tr>
5
+ <th>Login</th>
6
+ <th>Name</th>
7
+ <th>Status</th>
8
+ <th>&nbsp;</th>
9
+ </tr>
10
+
11
+ <% @users.each_with_index do |user, index| %>
12
+ <tr class="<%= 'even' if index.modulo(2) == 0 %> hover">
13
+ <td><%= kryptonite_table_cell_link user.login, kryptonite_user_path(user) %></td>
14
+ <td><%= kryptonite_table_cell_link user.name, kryptonite_user_path(user) %></td>
15
+ <td><%= kryptonite_table_cell_link kryptonite_get_access_level_text(user.access_level), kryptonite_user_path(user) %></td>
16
+ <td class="delete">
17
+ <% if user.is_admin? == false || Kryptonite::User.has_more_than_one_admin %>
18
+ <% confirm_message = "Are you sure you want to delete #{user.name}?" %>
19
+
20
+ <% if user.id == @session_user.id %>
21
+ <% confirm_message += "\n\nWARNING: This is your user account. You will be logged out if you proceed." %>
22
+ <% end %>
23
+
24
+ <%= link_to(kryptonite_show_row_icon("delete"), kryptonite_user_path(user), :method => :delete, :confirm => confirm_message) %>
25
+ <% end %>
26
+ </td>
27
+ </tr>
28
+ <% end %>
29
+ </table>
30
+
31
+ <%= will_paginate @users %>
32
+
33
+ <%= content_for :sidebar do %>
34
+ <li><%= link_to "#{kryptonite_show_icon('add')}Add a new user".html_safe, new_kryptonite_user_path %></li>
35
+ <% end %>
@@ -0,0 +1,46 @@
1
+ <h2>Add a new user</h2>
2
+
3
+ <%= form_for @kryptonite_user do |form| %>
4
+
5
+ <div class="tfContainer">
6
+ <%= kryptonite_text_field form, @kryptonite_user, :login, {:size => 30} %>
7
+ </div>
8
+
9
+ <div class="tfContainer tfContainerSecond">
10
+ <%= kryptonite_text_field form, @kryptonite_user, :name %>
11
+ </div>
12
+
13
+ <div class="tfContainer">
14
+ <%= kryptonite_text_field form, @kryptonite_user, :email %>
15
+ </div>
16
+
17
+ <div class="tfContainer tfContainerSecond">
18
+ <%= kryptonite_time_zone_select form, @kryptonite_user, :time_zone, ActiveSupport::TimeZone.us_zones %>
19
+ </div>
20
+
21
+ <div class="tfContainer">
22
+ <%= kryptonite_select form, @kryptonite_user, :access_level, kryptonite_get_access_level_array, {:kryptonite_label => "Status"} %>
23
+ </div>
24
+
25
+ <div class="tfContainer tfContainerSecond">
26
+ </div>
27
+
28
+ <div class="tfContainer">
29
+ <%= kryptonite_password_field form, @kryptonite_user, :password, {:kryptonite_label => "Password"} %>
30
+ </div>
31
+
32
+ <div class="tfContainer tfContainerSecond">
33
+ <%= kryptonite_password_field form, @kryptonite_user, :password_confirmation, {:kryptonite_label => "Repeat password"} %>
34
+ </div>
35
+
36
+ <div class="clearer"></div>
37
+
38
+ <p class="submits">
39
+ <%= form.submit "Add new user", :class => "update" %>
40
+ </p>
41
+
42
+ <% end %>
43
+
44
+ <%= content_for :sidebar do %>
45
+ <li><%= link_to "#{kryptonite_show_icon('table')}Back to list".html_safe, kryptonite_users_path %></li>
46
+ <% end %>
@@ -0,0 +1,94 @@
1
+ <h2>View user</h2>
2
+
3
+ <%= form_for @kryptonite_user do |f| %>
4
+
5
+ <div class="tfContainer">
6
+ <%= kryptonite_text_field f, f.object, :login, {:size => 30} %>
7
+ </div>
8
+
9
+ <div class="tfContainer tfContainerSecond">
10
+ <%= kryptonite_text_field f, f.object, :name %>
11
+ </div>
12
+
13
+ <div class="tfContainer">
14
+ <%= kryptonite_text_field f, f.object, :email %>
15
+ </div>
16
+
17
+ <div class="tfContainer tfContainerSecond">
18
+ <%= kryptonite_time_zone_select f, f.object, :time_zone, ActiveSupport::TimeZone.us_zones %>
19
+ </div>
20
+
21
+ <% if @session_user.is_admin? && (@kryptonite_user.is_admin? == false || Kryptonite::User.has_more_than_one_admin) %>
22
+ <div class="tfContainer">
23
+ <%= kryptonite_select f, f.object, :access_level, kryptonite_get_access_level_array, {:kryptonite_label => "Status"} %>
24
+ </div>
25
+ <div class="tfContainer tfContainerSecond">
26
+ </div>
27
+ <% end %>
28
+
29
+ <div class="clearer"></div>
30
+
31
+ <p class="submits">
32
+ <%= link_to 'Cancel', kryptonite_users_path, :class => 'cancel' %> or
33
+ <%= f.submit "Save changes", :class => "update" %>
34
+ </p>
35
+ <% end %>
36
+
37
+ <% if @session_user.is_admin? %>
38
+
39
+ <h2>Reset password (admin action - use carefully)</h2>
40
+
41
+ <%= form_for @kryptonite_user, :url => reset_password_kryptonite_user_path(@kryptonite_user) do |f| %>
42
+
43
+ <div class="tfContainer">
44
+ <%= kryptonite_password_field f, f.object, :password, {:kryptonite_label => "New password"} %>
45
+ </div>
46
+
47
+ <div class="tfContainer tfContainerSecond">
48
+ <%= kryptonite_password_field f, f.object, :password_confirmation, {:kryptonite_label => "Repeat password"} %>
49
+ </div>
50
+
51
+ <div class="clearer"></div>
52
+
53
+ <p class="submits">
54
+ <%= f.submit "Reset", :class => "update" %>
55
+ </p>
56
+
57
+ <% end %>
58
+
59
+ <% elsif @session_user.id == @kryptonite_user.id %>
60
+
61
+ <h2>Change password</h2>
62
+
63
+ <%= form_for @kryptonite_user, :url => update_password_kryptonite_user_path(@kryptonite_user) do |f| %>
64
+
65
+ <div class="tfContainer">
66
+ <p><%= label_tag :form_current_password, "Current password" %></p>
67
+ <p><%= password_field_tag :form_current_password, "", {:class => 'kryptoniteTextField'} %></p>
68
+ </div>
69
+
70
+ <div class="tfContainer tfContainerSecond">
71
+ </div>
72
+
73
+ <div class="tfContainer">
74
+ <%= kryptonite_password_field f, f.object, :password, {:kryptonite_label => "New password"} %>
75
+ </div>
76
+
77
+ <div class="tfContainer tfContainerSecond">
78
+ <%= kryptonite_password_field f, f.object, :password_confirmation, {:kryptonite_label => "Repeat password"} %>
79
+ </div>
80
+
81
+ <div class="clearer"></div>
82
+
83
+ <p class="submits">
84
+ <%= f.submit "Change", :class => "update" %>
85
+ </p>
86
+
87
+ <% end %>
88
+ <% end %>
89
+
90
+ <%= content_for :sidebar do %>
91
+ <% if @session_user.is_admin? %>
92
+ <li><%= link_to "#{kryptonite_show_icon('table')}Back to list".html_safe, kryptonite_users_path %></li>
93
+ <% end %>
94
+ <% end %>
@@ -0,0 +1,24 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
7
+ <title>Welcome to <%= kryptonite_config_website_name %></title>
8
+ <%= stylesheet_link_tag "/kryptonite/stylesheets/login" %>
9
+ <%= javascript_include_tag "/kryptonite/javascripts/jquery", "/kryptonite/javascripts/login", "/kryptonite/javascripts/rails" %>
10
+ <%= csrf_meta_tag %>
11
+ </head>
12
+ <body>
13
+ <div id="header">
14
+ <h1><%= image_tag(kryptonite_config_logo, :alt => kryptonite_config_website_name) %></h1>
15
+ </div>
16
+ <div id="content">
17
+ <%= yield %>
18
+ </div>
19
+ <div id="footer">
20
+ <p>Based on <%= link_to "Kryptonite", "http://www.kryptonitecms.com" %> <%= kryptonite_get_short_version_string %> technology,
21
+ an open-source project initiated by <a href="http://www.spoiledmilk.dk">Spoiled Milk</a>.</p>
22
+ </div>
23
+ </body>
24
+ </html>
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
7
+ <title><%= kryptonite_generate_page_title %></title>
8
+ <% kryptonite_config_stylesheet_includes.each do |stylesheet| %>
9
+ <%= stylesheet_link_tag(stylesheet) %>
10
+ <% end %>
11
+
12
+ <% kryptonite_config_javascript_includes.each do |javascript| %>
13
+ <%= javascript_include_tag(javascript) %>
14
+ <% end %>
15
+
16
+ <%= csrf_meta_tag %>
17
+ </head>
18
+ <body>
19
+ <div id="header">
20
+ <h1><%= link_to(image_tag(kryptonite_config_logo, :alt => kryptonite_config_website_name), :controller => :kryptonite) %></h1>
21
+ <div id="dashboard">
22
+ <% if @session_user != nil %>
23
+ <ul>
24
+ <li>Hello <%= @session_user.name %></li>
25
+ <li><%= Time.zone.name %></li>
26
+ <li><%= link_to 'Profile', kryptonite_user_path(@session_user) %></li>
27
+ <li class="lastItem"><%= link_to 'Logout', kryptonite_user_session_path, :method => :delete %></li>
28
+ </ul>
29
+ <% end %>
30
+ </div>
31
+ <div id="navigation">
32
+ <ul>
33
+ <%= render :partial => '/kryptonite/layouts/left_navigation' %>
34
+ </ul>
35
+ </div>
36
+ <div id="altNavigation">
37
+ <ul>
38
+ <% if @session_user.is_admin? %>
39
+ <li><%= link_to 'Users', kryptonite_users_path %></li>
40
+ <% end %>
41
+ <%= render :partial => '/kryptonite/layouts/right_navigation' %>
42
+ </ul>
43
+ </div>
44
+ </div>
45
+ <div id="rightBar">
46
+ <div class="spacer"></div>
47
+ <ul>
48
+ <%= yield :sidebar %>
49
+ </ul>
50
+ </div>
51
+ <div id="content">
52
+ <div id="data">
53
+ <% if flash[:warning] %>
54
+ <div id="error">
55
+ <%= flash[:warning] %>
56
+ </div>
57
+ <% end %>
58
+ <% if flash[:notice] %>
59
+ <div id="notice">
60
+ <%= flash[:notice] %>
61
+ </div>
62
+ <% end %>
63
+ <%= yield %>
64
+ </div>
65
+ </div>
66
+ </body>
67
+ </html>
data/config/routes.rb ADDED
@@ -0,0 +1,20 @@
1
+ Rails.application.routes.draw do
2
+
3
+ match "/admin" => redirect("/kryptonite")
4
+
5
+ namespace :kryptonite do
6
+
7
+ resources :users do
8
+ member do
9
+ put :update_password, :reset_password
10
+ end
11
+ end
12
+
13
+ resource :user_session
14
+ resource :password_reset, :only => [:create, :edit, :update]
15
+
16
+ match "/blank" => "kryptonite#blank"
17
+ root :to => "kryptonite#index"
18
+ end
19
+
20
+ end
@@ -0,0 +1 @@
1
+ Copies user configurable Kryptonite files into the main project
@@ -0,0 +1,37 @@
1
+ module Kryptonite
2
+ class InstallGenerator < Rails::Generators::Base
3
+
4
+ include Rails::Generators::Migration
5
+ source_root File.expand_path('../templates', __FILE__)
6
+
7
+ def self.next_migration_number dirname
8
+ if ActiveRecord::Base.timestamped_migrations
9
+ Time.now.utc.strftime("%Y%m%d%H%M%S")
10
+ else
11
+ "%.3d" % (current_migration_number(dirname) + 1)
12
+ end
13
+ end
14
+
15
+ def generate_files
16
+ puts "*** WARNING - Generating configuration files. Make sure you have backed up any files before overwriting them. ***"
17
+
18
+ #config helper
19
+ copy_file "app/helpers/kryptonite/config_helper.rb", "app/helpers/kryptonite/config_helper.rb"
20
+
21
+ #initial view partials
22
+ copy_file "app/views/kryptonite/layouts/_left_navigation.html.erb", "app/views/kryptonite/layouts/_left_navigation.html.erb"
23
+ copy_file "app/views/kryptonite/layouts/_right_navigation.html.erb", "app/views/kryptonite/layouts/_right_navigation.html.erb"
24
+
25
+ #robots.txt
26
+ puts " ** Overwrite if you haven't yet modified your robots.txt, otherwise add disallow rules for /kryptonite and /admin manually **"
27
+ copy_file "public/robots.txt", "public/robots.txt"
28
+
29
+ #blank stylesheets and JavaScript files
30
+ copy_file "public/kryptonite/stylesheets/custom.css", "public/kryptonite/stylesheets/custom.css"
31
+ copy_file "public/kryptonite/javascripts/custom.js", "public/kryptonite/javascripts/custom.js"
32
+
33
+ #migrations
34
+ migration_template 'db/migrate/kryptonite_create_users.rb', "db/migrate/kryptonite_create_users.rb"
35
+ end
36
+ end
37
+ end