kryptonite 0.0.1 → 0.0.2

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 (37) hide show
  1. data/PUBLIC_VERSION.yml +1 -1
  2. data/README.rdoc +6 -1
  3. data/Rakefile +2 -0
  4. data/app/controllers/kryptonite/kryptonite_controller.rb +27 -1
  5. data/app/controllers/kryptonite/password_resets_controller.rb +6 -6
  6. data/app/controllers/kryptonite/user_sessions_controller.rb +2 -2
  7. data/app/controllers/kryptonite/users_controller.rb +17 -17
  8. data/app/mailers/kryptonite/kryptonite_notification.rb +3 -3
  9. data/app/models/kryptonite/user.rb +2 -0
  10. data/app/views/kryptonite/kryptonite/blank.html.erb +1 -1
  11. data/app/views/kryptonite/kryptonite_notification/generate_new_password.erb +5 -5
  12. data/app/views/kryptonite/kryptonite_notification/new_user_information.erb +5 -5
  13. data/app/views/kryptonite/kryptonite_notification/password_reset_instructions.erb +4 -5
  14. data/app/views/kryptonite/password_resets/edit.html.erb +3 -3
  15. data/app/views/kryptonite/user_sessions/new.html.erb +7 -7
  16. data/app/views/kryptonite/users/index.html.erb +7 -7
  17. data/app/views/kryptonite/users/new.html.erb +6 -6
  18. data/app/views/kryptonite/users/show.html.erb +13 -13
  19. data/app/views/layouts/kryptonite_auth.html.erb +2 -3
  20. data/app/views/layouts/kryptonite_main.html.erb +4 -4
  21. data/config/locales/en.yml +81 -0
  22. data/lib/generators/kryptonite/install/templates/public/{casein → kryptonite}/javascripts/custom.js +0 -0
  23. data/lib/generators/kryptonite/install/templates/public/{casein → kryptonite}/stylesheets/custom.css +0 -0
  24. data/lib/generators/kryptonite/scaffold/scaffold_generator.rb +1 -0
  25. data/lib/generators/kryptonite/scaffold/templates/controller.rb +34 -18
  26. data/lib/generators/kryptonite/scaffold/templates/en.yml +7 -0
  27. data/lib/generators/kryptonite/scaffold/templates/views/_table.html.erb +1 -1
  28. data/lib/generators/kryptonite/scaffold/templates/views/index.html.erb +2 -2
  29. data/lib/generators/kryptonite/scaffold/templates/views/new.html.erb +4 -4
  30. data/lib/generators/kryptonite/scaffold/templates/views/show.html.erb +4 -4
  31. data/lib/generators/kryptonite/update/templates/public/kryptonite/images/kryptonite.png +0 -0
  32. data/lib/generators/kryptonite/update/templates/public/kryptonite/images/loading.gif +0 -0
  33. data/lib/generators/kryptonite/update/templates/public/kryptonite/javascripts/fileuploader.js +1247 -0
  34. data/lib/generators/kryptonite/update/templates/public/kryptonite/stylesheets/fileuploader.css +51 -0
  35. data/lib/generators/kryptonite/update/update_generator.rb +3 -0
  36. metadata +42 -5
  37. data/lib/generators/kryptonite/update/templates/public/kryptonite/images/casein.png +0 -0
data/PUBLIC_VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  major: 0
2
2
  minor: 0
3
- patch: 1
3
+ patch: 2
4
4
  build:
data/README.rdoc CHANGED
@@ -1,6 +1,7 @@
1
1
  =Kryptonite. A really simple CMS
2
2
 
3
- Comming
3
+ Coming
4
+
4
5
 
5
6
  ==Installation
6
7
 
@@ -32,6 +33,10 @@ Comming
32
33
  :authentication => :login
33
34
  }
34
35
 
36
+ - Put the autoload paths in your application.rb
37
+
38
+ config.autoload_paths += %W(#{config.root}/lib)
39
+
35
40
  — Install Kryptonite configuration files into your project. This should not be run more than once without backing up or merging the generated files, as your customisations will be overwritten:
36
41
 
37
42
  rails g kryptonite:install
data/Rakefile CHANGED
@@ -34,6 +34,8 @@ begin
34
34
  gem.homepage = "http://github.com/onefriendaday/Kryptonite"
35
35
  gem.add_dependency("will_paginate", ["3.0.0"])
36
36
  gem.add_dependency("authlogic", ["3.0.3"])
37
+ gem.add_dependency("best_in_place", ["1.0.6"])
38
+ gem.add_dependency("paperclip", ["3.0.1"])
37
39
  end
38
40
  rescue
39
41
  puts "Jeweler or one of its dependencies is not installed."
@@ -16,6 +16,8 @@ module Kryptonite
16
16
  helper_method :current_user_session, :current_user
17
17
  before_filter :authorise
18
18
  before_filter :set_time_zone
19
+ before_filter :get_uploaded_file
20
+ after_filter :destroy_uploaded_file
19
21
 
20
22
  ActionView::Base.field_error_proc = proc { |input, instance| "<span class='formError'>#{input}</span>".html_safe }
21
23
 
@@ -24,11 +26,35 @@ module Kryptonite
24
26
  end
25
27
 
26
28
  def blank
27
- @kryptonite_page_title = "Welcome"
29
+ @kryptonite_page_title = t(:home_page_title)
28
30
  end
29
31
 
30
32
  private
31
33
 
34
+ def get_uploaded_file
35
+ if params.has_key?(:qqfile)
36
+ if params[:browser]=="opera"
37
+ @tempname = params[:qqfile].original_filename
38
+ file_content = File.open("#{Rails.root.to_s}/tmp/#{@tempname}", "wb") do |f|
39
+ f.write(params[:qqfile].read)
40
+ end
41
+ else
42
+ @tempname = request.env['HTTP_X_FILE_NAME']
43
+ file_content = File.open("#{Rails.root.to_s}/tmp/#{@tempname}", "wb") do |f|
44
+ f.write(request.env['rack.input'].read)
45
+ end
46
+ end
47
+ @file = File.new("#{Rails.root.to_s}/tmp/#{@tempname}")
48
+ #filename = "#{Rails.root.to_s}/tmp/#{tempname}"
49
+ end
50
+ end
51
+
52
+ def destroy_uploaded_file
53
+ if params.has_key?(:qqfile)
54
+ File.unlink("#{Rails.root.to_s}/tmp/#{@tempname}")
55
+ end
56
+ end
57
+
32
58
  def authorise
33
59
  unless current_user
34
60
  session[:return_to] = request.fullpath
@@ -17,12 +17,12 @@ module Kryptonite
17
17
  end
18
18
 
19
19
  if users.length > 1
20
- flash[:notice] = "Multiple accounts were found. Emails have been sent to " + params[:recover_email] + " with instructions on how to reset your passwords"
20
+ flash[:notice] = t(:multiple_acctounts_notice, :email=>params[:recover_email])
21
21
  else
22
- flash[:notice] = "An email has been sent to " + params[:recover_email] + " with instructions on how to reset your password"
22
+ flash[:notice] = t(:email_sent_notice, :email=>params[:recover_email])
23
23
  end
24
24
  else
25
- flash[:warning] = "There is no user with that email"
25
+ flash[:warning] = t(:no_user_warning)
26
26
  end
27
27
 
28
28
  redirect_to new_kryptonite_user_session_url
@@ -35,14 +35,14 @@ module Kryptonite
35
35
  def update
36
36
 
37
37
  if params[:kryptonite_user][:password].empty? || params[:kryptonite_user][:password_confirmation].empty?
38
- flash.now[:warning] = "A field has been left empty"
38
+ flash.now[:warning] = t(:field_empty_warning)
39
39
  else
40
40
 
41
41
  @reset_user.password = params[:kryptonite_user][:password]
42
42
  @reset_user.password_confirmation = params[:kryptonite_user][:password_confirmation]
43
43
 
44
44
  if @reset_user.save
45
- flash[:notice] = "Password successfully updated"
45
+ flash[:notice] = t(:password_updated_notice)
46
46
  redirect_to new_kryptonite_user_session_url
47
47
  return
48
48
  end
@@ -58,7 +58,7 @@ module Kryptonite
58
58
  @reset_user = Kryptonite::User.find_using_perishable_token params[:token]
59
59
 
60
60
  unless @reset_user
61
- flash[:warning] = "Your account could not be located. Try to copy and paste the URL directly from the email."
61
+ flash[:warning] = t(:account_not_located_warning)
62
62
  redirect_to new_kryptonite_user_session_url
63
63
  end
64
64
  end
@@ -15,7 +15,7 @@ module Kryptonite
15
15
  def create
16
16
  @user_session = Kryptonite::UserSession.new params[:kryptonite_user_session]
17
17
  if @user_session.save
18
- flash[:notice] = "Login successful"
18
+ flash[:notice] = t(:login_successful)
19
19
  redirect_back_or_default :controller => :kryptonite, :action => :index
20
20
  else
21
21
  render :action => :new
@@ -24,7 +24,7 @@ module Kryptonite
24
24
 
25
25
  def destroy
26
26
  current_user_session.destroy
27
- flash[:notice] = "Logout successful"
27
+ flash[:notice] = t(:logout_successful)
28
28
  redirect_back_or_default new_kryptonite_user_session_url
29
29
  end
30
30
 
@@ -7,12 +7,12 @@ module Kryptonite
7
7
  before_filter :needs_admin_or_current_user, :only => [:show, :destroy, :update, :update_password]
8
8
 
9
9
  def index
10
- @kryptonite_page_title = "Users"
10
+ @kryptonite_page_title = t("users_page_title")
11
11
  @users = Kryptonite::User.paginate :order => "login", :page => params[:page]
12
12
  end
13
13
 
14
14
  def new
15
- @kryptonite_page_title = "Add a new user"
15
+ @kryptonite_page_title = t("users_add_new")
16
16
  @kryptonite_user = Kryptonite::User.new
17
17
  @kryptonite_user.time_zone = Rails.configuration.time_zone
18
18
  end
@@ -21,27 +21,27 @@ module Kryptonite
21
21
  @kryptonite_user = Kryptonite::User.new params[:kryptonite_user]
22
22
 
23
23
  if @kryptonite_user.save
24
- flash[:notice] = "An email has been sent to " + @kryptonite_user.name + " with the new account details"
24
+ flash[:notice] = t("users_email_sent_with_details", :username=>@kryptonite_user.name)
25
25
  redirect_to kryptonite_users_path
26
26
  else
27
- flash.now[:warning] = "There were problems when trying to create a new user"
27
+ flash.now[:warning] = t("users_problems_saving_warning")
28
28
  render :action => :new
29
29
  end
30
30
  end
31
31
 
32
32
  def show
33
33
  @kryptonite_user = Kryptonite::User.find params[:id]
34
- @kryptonite_page_title = @kryptonite_user.name + " | View User"
34
+ @kryptonite_page_title = @kryptonite_user.name + " | " + t("users_show")
35
35
  end
36
36
 
37
37
  def update
38
38
  @kryptonite_user = Kryptonite::User.find params[:id]
39
- @kryptonite_page_title = @kryptonite_user.name + " | Update User"
39
+ @kryptonite_page_title = @kryptonite_user.name + " | " + t("users_update")
40
40
 
41
41
  if @kryptonite_user.update_attributes params[:kryptonite_user]
42
- flash[:notice] = @kryptonite_user.name + " has been updated"
42
+ flash[:notice] = t("users_updated_notice", :username=>@kryptonite_user.name)
43
43
  else
44
- flash.now[:warning] = "There were problems when trying to update this user"
44
+ flash.now[:warning] = t("users_problems_updating")
45
45
  render :action => :show
46
46
  return
47
47
  end
@@ -55,16 +55,16 @@ module Kryptonite
55
55
 
56
56
  def update_password
57
57
  @kryptonite_user = Kryptonite::User.find params[:id]
58
- @kryptonite_page_title = @kryptonite_user.name + " | Update Password"
58
+ @kryptonite_page_title = @kryptonite_user.name + " | " + t("users_update_password")
59
59
 
60
60
  if @kryptonite_user.valid_password? params[:form_current_password]
61
61
  if @kryptonite_user.update_attributes params[:kryptonite_user]
62
- flash.now[:notice] = "Your password has been changed"
62
+ flash.now[:notice] = t("users_password_changed_notice")
63
63
  else
64
- flash.now[:warning] = "There were problems when trying to change the password"
64
+ flash.now[:warning] = t("users_problems_changing_password")
65
65
  end
66
66
  else
67
- flash.now[:warning] = "The current password is incorrect"
67
+ flash.now[:warning] = t("users_password_incorrect")
68
68
  end
69
69
 
70
70
  render :action => :show
@@ -72,19 +72,19 @@ module Kryptonite
72
72
 
73
73
  def reset_password
74
74
  @kryptonite_user = Kryptonite::User.find params[:id]
75
- @kryptonite_page_title = @kryptonite_user.name + " | Reset Password"
75
+ @kryptonite_page_title = @kryptonite_user.name + " | " + t("users_reset_password")
76
76
 
77
77
  @kryptonite_user.notify_of_new_password = true unless @kryptonite_user.id == @session_user.id
78
78
 
79
79
  if @kryptonite_user.update_attributes params[:kryptonite_user]
80
80
  if @kryptonite_user.id == @session_user.id
81
- flash.now[:notice] = "Your password has been reset"
81
+ flash.now[:notice] = t("users_password_reseted")
82
82
  else
83
- flash.now[:notice] = "Password has been reset and " + @kryptonite_user.name + " has been notified by email"
83
+ flash.now[:notice] = t("users_password_reseted_and_emailed", :username=>@kryptonite_user.name)
84
84
  end
85
85
 
86
86
  else
87
- flash.now[:warning] = "There were problems when trying to reset this user's password"
87
+ flash.now[:warning] = t("users_problems_reseting_password")
88
88
  end
89
89
  render :action => :show
90
90
  end
@@ -93,7 +93,7 @@ module Kryptonite
93
93
  user = Kryptonite::User.find params[:id]
94
94
  if user.is_admin? == false || Kryptonite::User.has_more_than_one_admin
95
95
  user.destroy
96
- flash[:notice] = user.name + " has been deleted"
96
+ flash[:notice] = t("users_deleted", :username=>user.name)
97
97
  end
98
98
  redirect_to kryptonite_users_path
99
99
  end
@@ -11,7 +11,7 @@ module Kryptonite
11
11
  @pass = pass
12
12
  @from_text = kryptonite_config_website_name
13
13
 
14
- mail(:to => kryptonite_user.email, :from => from, :subject => "[#{kryptonite_config_website_name}] New password")
14
+ mail(:to => kryptonite_user.email, :from => from, :subject => t("new_password_subject", :website_name=>kryptonite_config_website_name))
15
15
  end
16
16
 
17
17
  def new_user_information from, kryptonite_user, host, pass
@@ -21,7 +21,7 @@ module Kryptonite
21
21
  @pass = pass
22
22
  @from_text = kryptonite_config_website_name
23
23
 
24
- mail(:to => kryptonite_user.email, :from => from, :subject => "[#{kryptonite_config_website_name}] New user account")
24
+ mail(:to => kryptonite_user.email, :from => from, :subject => t("new_account_subject", :website_name=>kryptonite_config_website_name))
25
25
  end
26
26
 
27
27
  def password_reset_instructions from, kryptonite_user, host
@@ -32,7 +32,7 @@ module Kryptonite
32
32
  @reset_password_url = edit_kryptonite_password_reset_url + "/?token=#{kryptonite_user.perishable_token}"
33
33
  @from_text = kryptonite_config_website_name
34
34
 
35
- mail(:to => kryptonite_user.email, :from => from, :subject => "[#{kryptonite_config_website_name}] Password reset instructions")
35
+ mail(:to => kryptonite_user.email, :from => from, :subject => t("password_reset_subject", :website_name=>kryptonite_config_website_name))
36
36
  end
37
37
 
38
38
  end
@@ -13,6 +13,8 @@ module Kryptonite
13
13
  acts_as_authentic { |c| c.validate_email_field = false }
14
14
 
15
15
  attr_accessor :notify_of_new_password
16
+
17
+ attr_accessible :login, :name, :email, :time_zone, :access_level, :password, :password_confirmation
16
18
 
17
19
  after_create :send_create_notification
18
20
  after_update :send_update_notification
@@ -1 +1 @@
1
- <h2>Welcome to the <%= kryptonite_config_website_name %> administration system</h2>
1
+ <h2><%=t "welcome_title", :website_name=>kryptonite_config_website_name %></h2>
@@ -1,12 +1,12 @@
1
- Dear <%= @name %>,<br />
1
+ <%=t "greeting", :name=>@name %><br />
2
2
  <br />
3
- Your password has been reset by an administrator for your account at:<br />
3
+ <%=t "password_reset_by_admin" %>:<br />
4
4
  <br />
5
5
  <%= @host %>/kryptonite<br />
6
6
  <br />
7
- Login: <%= @login %><br />
8
- New password: <%= @pass %><br />
7
+ <%=t "login" %>: <%= @login %><br />
8
+ <%=t "new_password" %>: <%= @pass %><br />
9
9
  <br />
10
- From<br />
10
+ <%=t "from" %><br />
11
11
  <br />
12
12
  <%= @from_text %>
@@ -1,12 +1,12 @@
1
- Dear <%= @name %>,<br />
1
+ <%=t "greeting", :name=>@name %><br />
2
2
  <br />
3
- A new user account has been created for you at:<br />
3
+ <%=t "new_account_created" %>:<br />
4
4
  <br />
5
5
  <%= @host %>/kryptonite<br />
6
6
  <br />
7
- Login: <%= @login %><br />
8
- Password: <%= @pass %><br />
7
+ <%=t "login" %>: <%= @login %><br />
8
+ <%=t "new_password" %>: <%= @pass %><br />
9
9
  <br />
10
- From<br />
10
+ <%=t "from" %><br />
11
11
  <br />
12
12
  <%= @from_text %>
@@ -1,11 +1,10 @@
1
- Dear <%= @name %>,<br />
1
+ <%=t "greeting", :name=>@name %><br />
2
+ <br />
3
+ <%=t "reset_instructions", :login=>@login %>
2
4
  <br />
3
- A request to reset the password for login '<%= @login %>' has been made.<br />
4
- If you did not make this request, simply ignore this email.<br />
5
- Otherwise, click the link below to proceed:<br />
6
5
  <br />
7
6
  <%= @reset_password_url %><br />
8
7
  <br />
9
- From<br />
8
+ <%=t "from" %><br />
10
9
  <br />
11
10
  <%= @from_text %>
@@ -27,21 +27,21 @@
27
27
 
28
28
  <div class="text">
29
29
  <p>
30
- <%= f.label :password, "Password:" %>
30
+ <%= f.label :password, "#{t(:password)}:" %>
31
31
  <%= f.password_field :password, :class => "kryptoniteTextField" %>
32
32
  </p>
33
33
  </div>
34
34
 
35
35
  <div class="text">
36
36
  <p>
37
- <%= f.label :password_confirmation, "Confirm password:" %>
37
+ <%= f.label :password_confirmation, "#{t(:confirm_password)}:" %>
38
38
  <%= f.password_field :password_confirmation, :class => "kryptoniteTextField" %>
39
39
  </p>
40
40
  </div>
41
41
 
42
42
  <div class="submit_remember">
43
43
  <p>
44
- <%= f.submit "Reset password", :class => "kryptoniteSubmit" %>
44
+ <%= f.submit t(:reset_password), :class => "kryptoniteSubmit" %>
45
45
  </p>
46
46
  </div>
47
47
 
@@ -25,24 +25,24 @@
25
25
 
26
26
  <div class="text" style="margin-bottom:10px;">
27
27
  <p>
28
- <%= f.label :login, "Login:" %>
28
+ <%= f.label :login, "#{t(:login)}:" %>
29
29
  <%= f.text_field :login, :class => "kryptoniteTextField" %>
30
30
  </p>
31
31
  </div>
32
32
 
33
33
  <div class="text">
34
34
  <p>
35
- <%= f.label :password, "Password:" %>
35
+ <%= f.label :password, "#{t(:password)}:" %>
36
36
  <%= f.password_field :password, :class => "kryptoniteTextField" %>
37
37
  </p>
38
38
  </div>
39
39
 
40
40
  <div class="submit_remember">
41
41
  <p>
42
- <%= f.check_box :remember_me %> Remember me
42
+ <%= f.check_box :remember_me %> <%=t :remember_me %>
43
43
  <br /><br />
44
- <%= f.submit "Log in", :class => "kryptoniteSubmit" %>
45
- <input type="button" value="Forgotten password?" class="kryptoniteSubmitBlue" onclick="toggleDiv('recover');" />
44
+ <%= f.submit t(:do_login), :class => "kryptoniteSubmit" %>
45
+ <input type="button" value="<%= t(:forgotten_password) %>" class="kryptoniteSubmitBlue" onclick="toggleDiv('recover');" />
46
46
  </p>
47
47
  </div>
48
48
 
@@ -53,13 +53,13 @@
53
53
 
54
54
  <div class="text">
55
55
  <p>
56
- <%= label_tag :recover_email, "Email:" %>
56
+ <%= label_tag :recover_email, "#{t(:email)}:" %>
57
57
  <%= text_field_tag :recover_email, params[:recover_email], :class => "kryptoniteTextField" %>
58
58
  </p>
59
59
  </div>
60
60
  <div class="submit_remember">
61
61
  <p>
62
- <%= submit_tag "Reset", :class => "kryptoniteSubmit" %>
62
+ <%= submit_tag t(:do_reset), :class => "kryptoniteSubmit" %>
63
63
  </p>
64
64
  </div>
65
65
  </div>
@@ -1,10 +1,10 @@
1
- <h2>Users</h2>
1
+ <h2><%=t :users %></h2>
2
2
 
3
3
  <table cellpadding="0" cellspacing="0" id="itemList" class="itemList">
4
4
  <tr>
5
- <th>Login</th>
6
- <th>Name</th>
7
- <th>Status</th>
5
+ <th><%=t :login %></th>
6
+ <th><%=t :name %></th>
7
+ <th><%=t :status %></th>
8
8
  <th>&nbsp;</th>
9
9
  </tr>
10
10
 
@@ -15,10 +15,10 @@
15
15
  <td><%= kryptonite_table_cell_link kryptonite_get_access_level_text(user.access_level), kryptonite_user_path(user) %></td>
16
16
  <td class="delete">
17
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}?" %>
18
+ <% confirm_message = t(:delete_user_confirm, :user=>user.name) %>
19
19
 
20
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." %>
21
+ <% confirm_message += t(:warning_delete_admin) %>
22
22
  <% end %>
23
23
 
24
24
  <%= link_to(kryptonite_show_row_icon("delete"), kryptonite_user_path(user), :method => :delete, :confirm => confirm_message) %>
@@ -31,5 +31,5 @@
31
31
  <%= will_paginate @users %>
32
32
 
33
33
  <%= content_for :sidebar do %>
34
- <li><%= link_to "#{kryptonite_show_icon('add')}Add a new user".html_safe, new_kryptonite_user_path %></li>
34
+ <li><%= link_to "#{kryptonite_show_icon('add')}#{t(:add_new_user)}".html_safe, new_kryptonite_user_path %></li>
35
35
  <% end %>