kryptonite 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -0
- data/MIT-LICENSE +20 -0
- data/PUBLIC_VERSION.yml +4 -0
- data/README.rdoc +209 -0
- data/Rakefile +40 -0
- data/app/controllers/kryptonite/kryptonite_controller.rb +72 -0
- data/app/controllers/kryptonite/password_resets_controller.rb +66 -0
- data/app/controllers/kryptonite/user_sessions_controller.rb +40 -0
- data/app/controllers/kryptonite/users_controller.rb +102 -0
- data/app/helpers/kryptonite/kryptonite_helper.rb +200 -0
- data/app/mailers/kryptonite/kryptonite_notification.rb +39 -0
- data/app/models/kryptonite/user.rb +55 -0
- data/app/models/kryptonite/user_session.rb +8 -0
- data/app/views/kryptonite/kryptonite/blank.html.erb +1 -0
- data/app/views/kryptonite/kryptonite_notification/generate_new_password.erb +12 -0
- data/app/views/kryptonite/kryptonite_notification/new_user_information.erb +12 -0
- data/app/views/kryptonite/kryptonite_notification/password_reset_instructions.erb +11 -0
- data/app/views/kryptonite/password_resets/edit.html.erb +48 -0
- data/app/views/kryptonite/user_sessions/new.html.erb +66 -0
- data/app/views/kryptonite/users/index.html.erb +35 -0
- data/app/views/kryptonite/users/new.html.erb +46 -0
- data/app/views/kryptonite/users/show.html.erb +94 -0
- data/app/views/layouts/kryptonite_auth.html.erb +24 -0
- data/app/views/layouts/kryptonite_main.html.erb +67 -0
- data/config/routes.rb +20 -0
- data/lib/generators/kryptonite/install/USAGE +1 -0
- data/lib/generators/kryptonite/install/install_generator.rb +37 -0
- data/lib/generators/kryptonite/install/templates/app/helpers/kryptonite/config_helper.rb +46 -0
- data/lib/generators/kryptonite/install/templates/app/views/kryptonite/layouts/_left_navigation.html.erb +2 -0
- data/lib/generators/kryptonite/install/templates/app/views/kryptonite/layouts/_right_navigation.html.erb +1 -0
- data/lib/generators/kryptonite/install/templates/db/migrate/kryptonite_create_users.rb +30 -0
- data/lib/generators/kryptonite/install/templates/public/casein/javascripts/custom.js +2 -0
- data/lib/generators/kryptonite/install/templates/public/casein/stylesheets/custom.css +2 -0
- data/lib/generators/kryptonite/install/templates/public/robots.txt +5 -0
- data/lib/generators/kryptonite/scaffold/USAGE +1 -0
- data/lib/generators/kryptonite/scaffold/scaffold_generator.rb +99 -0
- data/lib/generators/kryptonite/scaffold/templates/controller.rb +60 -0
- data/lib/generators/kryptonite/scaffold/templates/migration.rb +13 -0
- data/lib/generators/kryptonite/scaffold/templates/model.rb +3 -0
- data/lib/generators/kryptonite/scaffold/templates/views/_form.html.erb +9 -0
- data/lib/generators/kryptonite/scaffold/templates/views/_table.html.erb +17 -0
- data/lib/generators/kryptonite/scaffold/templates/views/index.html.erb +11 -0
- data/lib/generators/kryptonite/scaffold/templates/views/new.html.erb +18 -0
- data/lib/generators/kryptonite/scaffold/templates/views/show.html.erb +18 -0
- data/lib/generators/kryptonite/update/USAGE +1 -0
- data/lib/generators/kryptonite/update/templates/public/kryptonite/images/casein.png +0 -0
- data/lib/generators/kryptonite/update/templates/public/kryptonite/images/header.png +0 -0
- data/lib/generators/kryptonite/update/templates/public/kryptonite/images/icons/add.png +0 -0
- data/lib/generators/kryptonite/update/templates/public/kryptonite/images/icons/delete.png +0 -0
- data/lib/generators/kryptonite/update/templates/public/kryptonite/images/icons/table.png +0 -0
- data/lib/generators/kryptonite/update/templates/public/kryptonite/images/login/alertBg.png +0 -0
- data/lib/generators/kryptonite/update/templates/public/kryptonite/images/login/background.png +0 -0
- data/lib/generators/kryptonite/update/templates/public/kryptonite/images/login/bottom.png +0 -0
- data/lib/generators/kryptonite/update/templates/public/kryptonite/images/login/loginBoxBg.png +0 -0
- data/lib/generators/kryptonite/update/templates/public/kryptonite/images/login/loginBoxBottom.png +0 -0
- data/lib/generators/kryptonite/update/templates/public/kryptonite/images/login/loginBoxTop.png +0 -0
- data/lib/generators/kryptonite/update/templates/public/kryptonite/images/login/loginSubmit.png +0 -0
- data/lib/generators/kryptonite/update/templates/public/kryptonite/images/login/recoverSubmit.png +0 -0
- data/lib/generators/kryptonite/update/templates/public/kryptonite/images/login/top.png +0 -0
- data/lib/generators/kryptonite/update/templates/public/kryptonite/images/nav.png +0 -0
- data/lib/generators/kryptonite/update/templates/public/kryptonite/images/rightNav.png +0 -0
- data/lib/generators/kryptonite/update/templates/public/kryptonite/images/rightNavButton.png +0 -0
- data/lib/generators/kryptonite/update/templates/public/kryptonite/images/visitSiteNav.png +0 -0
- data/lib/generators/kryptonite/update/templates/public/kryptonite/javascripts/jquery.js +154 -0
- data/lib/generators/kryptonite/update/templates/public/kryptonite/javascripts/kryptonite.js +25 -0
- data/lib/generators/kryptonite/update/templates/public/kryptonite/javascripts/login.js +24 -0
- data/lib/generators/kryptonite/update/templates/public/kryptonite/javascripts/rails.js +132 -0
- data/lib/generators/kryptonite/update/templates/public/kryptonite/stylesheets/elements.css +307 -0
- data/lib/generators/kryptonite/update/templates/public/kryptonite/stylesheets/login.css +137 -0
- data/lib/generators/kryptonite/update/templates/public/kryptonite/stylesheets/screen.css +224 -0
- data/lib/generators/kryptonite/update/update_generator.rb +40 -0
- data/lib/kryptonite.rb +3 -0
- data/lib/kryptonite/engine.rb +22 -0
- data/lib/railties/tasks.rake +31 -0
- 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> </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
|