Commit 64557f2ef5555383b923b5aae93cfde0d16bd4f5
1 parent
197f5da4
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
Added setup locale for API
Showing
4 changed files
with
36 additions
and
22 deletions
Show diff stats
lib/noosfero/api/api.rb
@@ -11,9 +11,9 @@ module Noosfero | @@ -11,9 +11,9 @@ module Noosfero | ||
11 | logger.formatter = GrapeLogging::Formatters::Default.new | 11 | logger.formatter = GrapeLogging::Formatters::Default.new |
12 | use GrapeLogging::Middleware::RequestLogger, { logger: logger } | 12 | use GrapeLogging::Middleware::RequestLogger, { logger: logger } |
13 | 13 | ||
14 | - rescue_from :all do |e| | ||
15 | - logger.error e | ||
16 | - end | 14 | + #rescue_from :all do |e| |
15 | + # logger.error e | ||
16 | + #end | ||
17 | 17 | ||
18 | @@NOOSFERO_CONF = nil | 18 | @@NOOSFERO_CONF = nil |
19 | def self.NOOSFERO_CONF | 19 | def self.NOOSFERO_CONF |
@@ -25,6 +25,7 @@ module Noosfero | @@ -25,6 +25,7 @@ module Noosfero | ||
25 | end | 25 | end |
26 | end | 26 | end |
27 | 27 | ||
28 | + before { set_locale } | ||
28 | before { setup_multitenancy } | 29 | before { setup_multitenancy } |
29 | before { detect_stuff_by_domain } | 30 | before { detect_stuff_by_domain } |
30 | before { filter_disabled_plugins_endpoints } | 31 | before { filter_disabled_plugins_endpoints } |
lib/noosfero/api/helpers.rb
@@ -7,6 +7,10 @@ | @@ -7,6 +7,10 @@ | ||
7 | 7 | ||
8 | include SanitizeParams | 8 | include SanitizeParams |
9 | 9 | ||
10 | + def set_locale | ||
11 | + I18n.locale = (params[:lang] || request.env['HTTP_ACCEPT_LANGUAGE'] || 'en') | ||
12 | + end | ||
13 | + | ||
10 | def current_user | 14 | def current_user |
11 | private_token = (params[PRIVATE_TOKEN_PARAM] || headers['Private-Token']).to_s | 15 | private_token = (params[PRIVATE_TOKEN_PARAM] || headers['Private-Token']).to_s |
12 | @current_user ||= User.find_by_private_token(private_token) | 16 | @current_user ||= User.find_by_private_token(private_token) |
test/unit/api/users_test.rb
1 | +# encoding: UTF-8 | ||
1 | require File.dirname(__FILE__) + '/test_helper' | 2 | require File.dirname(__FILE__) + '/test_helper' |
2 | 3 | ||
3 | class UsersTest < ActiveSupport::TestCase | 4 | class UsersTest < ActiveSupport::TestCase |
@@ -19,6 +20,18 @@ class UsersTest < ActiveSupport::TestCase | @@ -19,6 +20,18 @@ class UsersTest < ActiveSupport::TestCase | ||
19 | assert_equal 'some', json['user']['login'] | 20 | assert_equal 'some', json['user']['login'] |
20 | end | 21 | end |
21 | 22 | ||
23 | + should 'not create duplicate user' do | ||
24 | + params[:lang] = :"pt-BR" | ||
25 | + params[:user] = {:login => 'some', :password => '123456', :password_confirmation => '123456', :email => 'some@some.com'} | ||
26 | + post "/api/v1/users?#{params.to_query}" | ||
27 | + json = JSON.parse(last_response.body) | ||
28 | + assert_equal 'some', json['user']['login'] | ||
29 | + params[:user] = {:login => 'some', :password => '123456', :password_confirmation => '123456', :email => 'some@some.com'} | ||
30 | + post "/api/v1/users?#{params.to_query}" | ||
31 | + json = JSON.parse(last_response.body) | ||
32 | + assert_equal 'Username / Email já está em uso,e-Mail já está em uso', json['message'] | ||
33 | + end | ||
34 | + | ||
22 | should 'return 400 status for invalid user creation' do | 35 | should 'return 400 status for invalid user creation' do |
23 | params[:user] = {:login => 'some'} | 36 | params[:user] = {:login => 'some'} |
24 | post "/api/v1/users?#{params.to_query}" | 37 | post "/api/v1/users?#{params.to_query}" |
test/unit/user_test.rb
@@ -21,6 +21,14 @@ class UserTest < ActiveSupport::TestCase | @@ -21,6 +21,14 @@ class UserTest < ActiveSupport::TestCase | ||
21 | end | 21 | end |
22 | end | 22 | end |
23 | 23 | ||
24 | + def test_should_not_allow_duplicate_login | ||
25 | + user1 = create_user('new_user', :email => 'new_user1@example.com', :password => 'test', :password_confirmation => 'test') | ||
26 | + assert !user1.errors[:login].present? | ||
27 | + user1.save! | ||
28 | + user2 = new_user(:login => 'new_user') | ||
29 | + assert user2.errors[:login].present? | ||
30 | + end | ||
31 | + | ||
24 | def test_should_require_password | 32 | def test_should_require_password |
25 | assert_no_difference 'User.count' do | 33 | assert_no_difference 'User.count' do |
26 | u = new_user(:password => nil) | 34 | u = new_user(:password => nil) |
@@ -42,6 +50,13 @@ class UserTest < ActiveSupport::TestCase | @@ -42,6 +50,13 @@ class UserTest < ActiveSupport::TestCase | ||
42 | end | 50 | end |
43 | end | 51 | end |
44 | 52 | ||
53 | + def test_email_format | ||
54 | + assert_no_difference 'User.count' do | ||
55 | + u = new_user(:email => 'test.email') | ||
56 | + assert u.errors[:email].present? | ||
57 | + end | ||
58 | + end | ||
59 | + | ||
45 | def test_should_reset_password | 60 | def test_should_reset_password |
46 | users(:johndoe).update_attributes(:password => 'new password', :password_confirmation => 'new password') | 61 | users(:johndoe).update_attributes(:password => 'new password', :password_confirmation => 'new password') |
47 | assert_equal users(:johndoe), User.authenticate('johndoe', 'new password') | 62 | assert_equal users(:johndoe), User.authenticate('johndoe', 'new password') |
@@ -715,25 +730,6 @@ class UserTest < ActiveSupport::TestCase | @@ -715,25 +730,6 @@ class UserTest < ActiveSupport::TestCase | ||
715 | assert_equal 'quire', user.person.name | 730 | assert_equal 'quire', user.person.name |
716 | end | 731 | end |
717 | 732 | ||
718 | - should 'generate private token' do | ||
719 | - user = User.new | ||
720 | - SecureRandom.stubs(:hex).returns('token') | ||
721 | - user.generate_private_token! | ||
722 | - | ||
723 | - assert user.private_token, 'token' | ||
724 | - end | ||
725 | - | ||
726 | - should 'check for private token validity' do | ||
727 | - user = User.new | ||
728 | - assert user.private_token_expired? | ||
729 | - | ||
730 | - user.generate_private_token! | ||
731 | - assert !user.private_token_expired? | ||
732 | - | ||
733 | - user.private_token_generated_at = DateTime.now - (User::TOKEN_VALIDITY + 1.minute) | ||
734 | - assert user.private_token_expired? | ||
735 | - end | ||
736 | - | ||
737 | protected | 733 | protected |
738 | def new_user(options = {}) | 734 | def new_user(options = {}) |
739 | user = User.new({ :login => 'quire', :email => 'quire@example.com', :password => 'quire', :password_confirmation => 'quire' }.merge(options)) | 735 | user = User.new({ :login => 'quire', :email => 'quire@example.com', :password => 'quire', :password_confirmation => 'quire' }.merge(options)) |