Module: API::Helpers::PersonalAccessTokensHelpers

Extended by:
Grape::API::Helpers
Defined in:
lib/api/helpers/personal_access_tokens_helpers.rb

Instance Method Summary collapse

Instance Method Details

#find_token(id) ⇒ Object



69
70
71
# File 'lib/api/helpers/personal_access_tokens_helpers.rb', line 69

def find_token(id)
  PersonalAccessToken.find(id) || not_found!
end

#finder_params(current_user) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/api/helpers/personal_access_tokens_helpers.rb', line 38

def finder_params(current_user)
  user_param =
    if current_user.can_admin_all_resources?
      if params[:user_id].present?
        user = user(params[:user_id])

        not_found! if user.nil?

        { user: user }
      else
        not_found! if params.key?(:user_id)

        {}
      end
    else
      { user: current_user, impersonation: false }
    end

  declared(params, include_missing: false).merge(user_param)
end

#restrict_non_admins!Object



63
64
65
66
67
# File 'lib/api/helpers/personal_access_tokens_helpers.rb', line 63

def restrict_non_admins!
  return if params[:user_id].blank?

  unauthorized! unless Ability.allowed?(current_user, :read_user_personal_access_tokens, user(params[:user_id]))
end

#revoke_token(token, group: nil) ⇒ Object



73
74
75
76
77
# File 'lib/api/helpers/personal_access_tokens_helpers.rb', line 73

def revoke_token(token, group: nil)
  service = ::PersonalAccessTokens::RevokeService.new(current_user, token: token, group: group).execute

  service.success? ? no_content! : bad_request!(service.message)
end

#rotate_token(token, params) ⇒ Object



79
80
81
82
83
84
85
86
87
88
89
# File 'lib/api/helpers/personal_access_tokens_helpers.rb', line 79

def rotate_token(token, params)
  service = ::PersonalAccessTokens::RotateService.new(current_user, token, nil, params).execute

  if service.success?
    status :ok

    service.payload[:personal_access_token]
  else
    bad_request!(service.message)
  end
end

#rotate_token_for_resource(token, resource, params) ⇒ Object



91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# File 'lib/api/helpers/personal_access_tokens_helpers.rb', line 91

def rotate_token_for_resource(token, resource, params)
  response = if resource.is_a?(Project)
               ::ProjectAccessTokens::RotateService.new(
                 current_user, token, resource, params).execute
             elsif resource.is_a?(Group)
               ::GroupAccessTokens::RotateService.new(
                 current_user, token, resource, params).execute
             end

  if response.success?
    status :ok

    response.payload[:personal_access_token]
  else
    bad_request!(response.message)
  end
end

#user(user_id) ⇒ Object



59
60
61
# File 'lib/api/helpers/personal_access_tokens_helpers.rb', line 59

def user(user_id)
  UserFinder.new(user_id).find_by_id
end