kryptonite 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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 %>