muck-users 0.2.5 → 0.2.6
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/VERSION +1 -1
- data/app/controllers/muck/username_request_controller.rb +0 -11
- data/lib/action_controller/authentic_application.rb +3 -5
- data/lib/active_record/acts/muck_user.rb +1 -0
- data/locales/en.yml +1 -0
- data/muck-users.gemspec +4 -2
- data/test/rails_root/app/models/user.rb +13 -3
- data/test/rails_root/test/functional/username_request_controller_test.rb +32 -0
- data/test/rails_root/test/shoulda_macros/controller.rb +14 -0
- data/test/rails_root/test/test_helper.rb +14 -1
- data/test/rails_root/test/unit/secure_methods_test.rb +55 -0
- data/test/rails_root/test/unit/user_test.rb +21 -0
- metadata +4 -2
data/.gitignore
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.6
|
@@ -29,15 +29,4 @@ class Muck::UsernameRequestController < ApplicationController
|
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
-
private
|
33
|
-
|
34
|
-
def permission_denied
|
35
|
-
respond_to do |format|
|
36
|
-
format.html do
|
37
|
-
flash[:notice] = t('muck.users.already_logged_in')
|
38
|
-
redirect_to account_url
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
32
|
end
|
@@ -140,17 +140,15 @@ module ActionController
|
|
140
140
|
def permission_denied
|
141
141
|
respond_to do |format|
|
142
142
|
format.html do
|
143
|
-
|
144
|
-
|
143
|
+
domain_name = GlobalConfig.application_url
|
144
|
+
raise t('muck.users.application_base_url_not_set') if domain_name.blank?
|
145
145
|
http_referer = session[:refer_to]
|
146
146
|
if http_referer.nil?
|
147
147
|
store_referer
|
148
148
|
http_referer = ( session[:refer_to] || domain_name )
|
149
149
|
end
|
150
150
|
flash[:error] = I18n.t('muck.users.permission_denied')
|
151
|
-
|
152
|
-
#You have to set that to the number of characters in your domain name
|
153
|
-
if http_referer[0..domain_name.length] != domain_name
|
151
|
+
if http_referer[0..domain_name.length] != domain_name
|
154
152
|
session[:refer_to] = nil
|
155
153
|
redirect_to root_path
|
156
154
|
else
|
@@ -144,6 +144,7 @@ module ActiveRecord
|
|
144
144
|
options[:except] << :email << :crypted_password << :salt << :remember_token << :remember_token_expires_at << :activation_code
|
145
145
|
options[:except] << :activated_at << :password_reset_code << :enabled << :terms_of_service << :can_send_messages << :identity_url
|
146
146
|
options[:except] << :tmp_password << :protected_profile << :public_profile
|
147
|
+
options[:except] << :password_salt << :perishable_token << :persistence_token << :single_access_token
|
147
148
|
super
|
148
149
|
end
|
149
150
|
|
data/locales/en.yml
CHANGED
@@ -113,6 +113,7 @@ en:
|
|
113
113
|
delete_this_user: "Delete this user."
|
114
114
|
sign_up: Sign up
|
115
115
|
email_recover_prompt: "Please provide the email you signed up with to recover your password."
|
116
|
+
application_base_url_not_set: "Please set application_base_url in global_config.yml"
|
116
117
|
admin:
|
117
118
|
unactivated_users: "There are {{count}} unactivated users"
|
118
119
|
activate_all_inactive_users: "Activate All Inactive Users"
|
data/muck-users.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{muck-users}
|
5
|
-
s.version = "0.2.
|
5
|
+
s.version = "0.2.6"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Justin Ball"]
|
9
|
-
s.date = %q{2009-
|
9
|
+
s.date = %q{2009-08-08}
|
10
10
|
s.description = %q{Easily add user signup, login and other features to your application}
|
11
11
|
s.email = %q{justinball@gmail.com}
|
12
12
|
s.extra_rdoc_files = [
|
@@ -852,6 +852,7 @@ Gem::Specification.new do |s|
|
|
852
852
|
"test/rails_root/test/unit/.keep",
|
853
853
|
"test/rails_root/test/unit/permission_test.rb",
|
854
854
|
"test/rails_root/test/unit/role_test.rb",
|
855
|
+
"test/rails_root/test/unit/secure_methods_test.rb",
|
855
856
|
"test/rails_root/test/unit/user_mailer_test.rb",
|
856
857
|
"test/rails_root/test/unit/user_test.rb",
|
857
858
|
"test/rails_root/vendor/plugins/ssl_requirement/README",
|
@@ -914,6 +915,7 @@ Gem::Specification.new do |s|
|
|
914
915
|
"test/rails_root/test/test_helper.rb",
|
915
916
|
"test/rails_root/test/unit/permission_test.rb",
|
916
917
|
"test/rails_root/test/unit/role_test.rb",
|
918
|
+
"test/rails_root/test/unit/secure_methods_test.rb",
|
917
919
|
"test/rails_root/test/unit/user_mailer_test.rb",
|
918
920
|
"test/rails_root/test/unit/user_test.rb",
|
919
921
|
"test/rails_root/vendor/plugins/ssl_requirement/lib/ssl_requirement.rb",
|
@@ -4,7 +4,17 @@ class User < ActiveRecord::Base
|
|
4
4
|
end
|
5
5
|
acts_as_muck_user
|
6
6
|
|
7
|
-
|
8
|
-
|
7
|
+
# these are just for testing
|
8
|
+
def creator_id
|
9
|
+
self.id
|
9
10
|
end
|
10
|
-
|
11
|
+
|
12
|
+
def user_id
|
13
|
+
self.id
|
14
|
+
end
|
15
|
+
|
16
|
+
def shared_by_id
|
17
|
+
self.id
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
@@ -4,4 +4,36 @@ class Muck::UsernameRequestControllerTest < ActionController::TestCase
|
|
4
4
|
|
5
5
|
tests Muck::UsernameRequestController
|
6
6
|
|
7
|
+
context "username request controller" do
|
8
|
+
setup do
|
9
|
+
@user = Factory(:user)
|
10
|
+
end
|
11
|
+
context "get new" do
|
12
|
+
setup do
|
13
|
+
get :new
|
14
|
+
end
|
15
|
+
should_respond_with :success
|
16
|
+
should_render_template :new
|
17
|
+
end
|
18
|
+
context "find user using email and send email message" do
|
19
|
+
setup do
|
20
|
+
post :create, :request_username => { :email => @user.email }
|
21
|
+
end
|
22
|
+
should "send username" do
|
23
|
+
assert_sent_email do |email|
|
24
|
+
email.to.include?(@user.email)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
should_redirect_to("login") { login_path }
|
28
|
+
end
|
29
|
+
context "bad email - fail to send username" do
|
30
|
+
setup do
|
31
|
+
post :create, :request_username => { :email => 'quentin@bad_email_example.com' }
|
32
|
+
end
|
33
|
+
should_respond_with :success
|
34
|
+
should_render_template :new
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
7
39
|
end
|
@@ -44,6 +44,20 @@ module MuckControllerMacros
|
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
|
+
# make sure the response body matches the text exactly
|
48
|
+
def should_render_text(text)
|
49
|
+
should "render text #{text}" do
|
50
|
+
assert_equal text, @response.body
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# look for the given text in the response body
|
55
|
+
def should_render_partial_text(text)
|
56
|
+
should "contain text #{text}" do
|
57
|
+
assert @response.body.include?(text), "Response did not contain the text '#{text}'"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
47
61
|
end
|
48
62
|
|
49
63
|
ActionController::TestCase.extend(MuckControllerMacros)
|
@@ -35,4 +35,17 @@ class ActiveSupport::TestCase
|
|
35
35
|
def ensure_flash(val)
|
36
36
|
assert_contains flash.values, val, ", Flash: #{flash.inspect}"
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
|
+
# Add more helper methods to be used for testing xml
|
40
|
+
def assert_xml_tag(xml, conditions)
|
41
|
+
doc = HTML::Document.new(xml)
|
42
|
+
assert doc.find(conditions),
|
43
|
+
"expected tag, but no tag found matching #{conditions.inspect} in:\n#{xml.inspect}"
|
44
|
+
end
|
45
|
+
|
46
|
+
def assert_no_xml_tag(xml, conditions)
|
47
|
+
doc = HTML::Document.new(xml)
|
48
|
+
assert !doc.find(conditions),
|
49
|
+
"expected no tag, but found tag matching #{conditions.inspect} in:\n#{xml.inspect}"
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
2
|
+
|
3
|
+
class SecureMethodsTest < ActiveSupport::TestCase
|
4
|
+
|
5
|
+
context "check creator method" do
|
6
|
+
setup do
|
7
|
+
@user = Factory(:user)
|
8
|
+
@another_user = Factory(:user)
|
9
|
+
end
|
10
|
+
should "return true if creators are equal" do
|
11
|
+
assert @user.send(:check_creator, @user)
|
12
|
+
end
|
13
|
+
should "return false if creators are different" do
|
14
|
+
assert_equal false, @another_user.send(:check_creator, @user)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
context "check user method" do
|
18
|
+
setup do
|
19
|
+
@user = Factory(:user)
|
20
|
+
@another_user = Factory(:user)
|
21
|
+
end
|
22
|
+
should "return true if users are equal" do
|
23
|
+
assert @user.send(:check_user, @user)
|
24
|
+
end
|
25
|
+
should "return false if users are different" do
|
26
|
+
assert_equal false, @another_user.send(:check_user, @user)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
context "check sharer method" do
|
30
|
+
setup do
|
31
|
+
@user = Factory(:user)
|
32
|
+
@another_user = Factory(:user)
|
33
|
+
end
|
34
|
+
should "return true if sharers are equal" do
|
35
|
+
assert @user.send(:check_sharer, @user)
|
36
|
+
end
|
37
|
+
should "return false if sharers are different" do
|
38
|
+
assert_equal false, @another_user.send(:check_sharer, @user)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
context "check method" do
|
42
|
+
setup do
|
43
|
+
@user = Factory(:user)
|
44
|
+
@admin = Factory(:user)
|
45
|
+
end
|
46
|
+
should " return false when user is nil" do
|
47
|
+
assert_equal false, @user.send(:check, nil, :user_id)
|
48
|
+
end
|
49
|
+
should "return true when user is different but an admin" do
|
50
|
+
@admin.add_to_role('administrator')
|
51
|
+
@admin.reload
|
52
|
+
assert @user.send(:check, @admin, :user_id)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -47,6 +47,27 @@ class UserTest < ActiveSupport::TestCase
|
|
47
47
|
assert user.full_name == 'quent smith'
|
48
48
|
end
|
49
49
|
end
|
50
|
+
|
51
|
+
should "show display name if first and last name is blank" do
|
52
|
+
@del_user = User.new
|
53
|
+
@del_user.destroy
|
54
|
+
assert_equal @del_user.display_name, @del_user.full_name
|
55
|
+
end
|
56
|
+
|
57
|
+
should "not display sensitive information when converted to xml" do
|
58
|
+
@user = Factory(:user)
|
59
|
+
assert @user.to_xml
|
60
|
+
assert_xml_tag( @user.to_xml, :tag => "user" )
|
61
|
+
assert_xml_tag( @user.to_xml, :tag => "created-at", :parent => { :tag => "user"} )
|
62
|
+
assert_xml_tag( @user.to_xml, :tag => "first-name", :parent => { :tag => "user"} )
|
63
|
+
assert_xml_tag( @user.to_xml, :tag => "last-name", :parent => { :tag => "user"} )
|
64
|
+
assert_no_xml_tag( @user.to_xml, :tag => "crypted_password" )
|
65
|
+
end
|
66
|
+
|
67
|
+
should "return the first_name or display_name" do
|
68
|
+
@user = Factory(:user)
|
69
|
+
assert_equal @user.short_name, CGI::escapeHTML(@user.first_name) || @user.display_name
|
70
|
+
end
|
50
71
|
|
51
72
|
should "Create a new user and lowercase the login" do
|
52
73
|
assert_difference 'User.count' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: muck-users
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Ball
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-08-08 00:00:00 -06:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -910,6 +910,7 @@ files:
|
|
910
910
|
- test/rails_root/test/unit/.keep
|
911
911
|
- test/rails_root/test/unit/permission_test.rb
|
912
912
|
- test/rails_root/test/unit/role_test.rb
|
913
|
+
- test/rails_root/test/unit/secure_methods_test.rb
|
913
914
|
- test/rails_root/test/unit/user_mailer_test.rb
|
914
915
|
- test/rails_root/test/unit/user_test.rb
|
915
916
|
- test/rails_root/vendor/plugins/ssl_requirement/README
|
@@ -990,6 +991,7 @@ test_files:
|
|
990
991
|
- test/rails_root/test/test_helper.rb
|
991
992
|
- test/rails_root/test/unit/permission_test.rb
|
992
993
|
- test/rails_root/test/unit/role_test.rb
|
994
|
+
- test/rails_root/test/unit/secure_methods_test.rb
|
993
995
|
- test/rails_root/test/unit/user_mailer_test.rb
|
994
996
|
- test/rails_root/test/unit/user_test.rb
|
995
997
|
- test/rails_root/vendor/plugins/ssl_requirement/lib/ssl_requirement.rb
|