浏览代码

Include two-factor authentication scheme in users API response (#34242).

Patch by Mizuki ISHIKAWA.


git-svn-id: http://svn.redmine.org/redmine/trunk@20686 e93f8b46-1217-0410-a6f0-8f06a7374b81
tags/4.2.0
Go MAEDA 3 年前
父节点
当前提交
5eb4b6af79
共有 3 个文件被更改,包括 21 次插入1 次删除
  1. 1
    0
      app/views/users/index.api.rsb
  2. 1
    0
      app/views/users/show.api.rsb
  3. 19
    1
      test/integration/api_test/users_test.rb

+ 1
- 0
app/views/users/index.api.rsb 查看文件

api.updated_on user.updated_on api.updated_on user.updated_on
api.last_login_on user.last_login_on api.last_login_on user.last_login_on
api.passwd_changed_on user.passwd_changed_on api.passwd_changed_on user.passwd_changed_on
api.twofa_scheme user.twofa_scheme


render_api_custom_values user.visible_custom_field_values, api render_api_custom_values user.visible_custom_field_values, api
end end

+ 1
- 0
app/views/users/show.api.rsb 查看文件

api.updated_on @user.updated_on api.updated_on @user.updated_on
api.last_login_on @user.last_login_on api.last_login_on @user.last_login_on
api.passwd_changed_on @user.passwd_changed_on api.passwd_changed_on @user.passwd_changed_on
api.twofa_scheme @user.twofa_scheme
api.api_key @user.api_key if User.current.admin? || (User.current == @user) api.api_key @user.api_key if User.current.admin? || (User.current == @user)
api.status @user.status if User.current.admin? api.status @user.status if User.current.admin?



+ 19
- 1
test/integration/api_test/users_test.rb 查看文件

fixtures :users, :email_addresses, :members, :member_roles, :roles, :projects fixtures :users, :email_addresses, :members, :member_roles, :roles, :projects


test "GET /users.xml should return users" do test "GET /users.xml should return users" do
users = User.active.order('login')
users.last.update(twofa_scheme: 'totp')
get '/users.xml', :headers => credentials('admin') get '/users.xml', :headers => credentials('admin')


assert_response :success assert_response :success
assert_equal 'application/xml', response.media_type assert_equal 'application/xml', response.media_type
assert_select 'users' do assert_select 'users' do
users = User.active.order('login')
assert_select 'user', :count => users.size do |nodeset| assert_select 'user', :count => users.size do |nodeset|
nodeset.zip(users) do |user_element, user| nodeset.zip(users) do |user_element, user|
assert_select user_element, 'id', :text => user.id.to_s assert_select user_element, 'id', :text => user.id.to_s
assert_select user_element, 'updated_on', :text => user.updated_on.iso8601 assert_select user_element, 'updated_on', :text => user.updated_on.iso8601
assert_select user_element, 'twofa_scheme', :text => user.twofa_scheme.to_s


# No one has changed password. # No one has changed password.
assert_select user_element, 'passwd_changed_on', :text => '' assert_select user_element, 'passwd_changed_on', :text => ''

if user == users.last
assert_select user_element, 'twofa_scheme', :text => 'totp'
else
assert_select user_element, 'twofa_scheme', :text => ''
end
end end
end end
end end
end end


test "GET /users.json should return users" do test "GET /users.json should return users" do
users = User.active.order('login')
users.last.update(twofa_scheme: 'totp')
get '/users.json', :headers => credentials('admin') get '/users.json', :headers => credentials('admin')


assert_response :success assert_response :success


# No one has changed password. # No one has changed password.
assert_nil user_json['passwd_changed_on'] assert_nil user_json['passwd_changed_on']

if user == users.last
assert_equal 'totp', user_json['twofa_scheme']
else
assert_nil user_json['twofa_scheme']
end
end end
end end


assert_select 'user id', :text => '2' assert_select 'user id', :text => '2'
assert_select 'user updated_on', :text => Time.zone.parse('2006-07-19T20:42:15Z').iso8601 assert_select 'user updated_on', :text => Time.zone.parse('2006-07-19T20:42:15Z').iso8601
assert_select 'user passwd_changed_on', :text => '' assert_select 'user passwd_changed_on', :text => ''
assert_select 'user twofa_scheme', :text => ''
end end


test "GET /users/:id.json should return the user" do test "GET /users/:id.json should return the user" do
assert_equal 2, json['user']['id'] assert_equal 2, json['user']['id']
assert_equal Time.zone.parse('2006-07-19T20:42:15Z').iso8601, json['user']['updated_on'] assert_equal Time.zone.parse('2006-07-19T20:42:15Z').iso8601, json['user']['updated_on']
assert_nil json['user']['passwd_changed_on'] assert_nil json['user']['passwd_changed_on']
assert_nil json['user']['twofa_scheme']
end end


test "GET /users/:id.xml with include=memberships should include memberships" do test "GET /users/:id.xml with include=memberships should include memberships" do

正在加载...
取消
保存