mirror of
https://github.com/ToolJet/ToolJet
synced 2026-05-24 09:28:31 +00:00
* Updated project set up guide for Mac, added node version and Webpack install steps. * Worked on PR comment i.e Can we change this line to Install Node.js ( version: v14.9.0 ) * Fixed "Style/StringLiterals: Prefer double-quoted strings unless you need single quotes to avoid extra backslashes for escaping." * Resolved rubocop comments i.e "Style/FrozenStringLiteralComment: Missing frozen string literal comment." in test folder Co-authored-by: Deepti Kakade <deepti@saeloun.com> Co-authored-by: Deepti Kakade <“deepti@saeloun.com”>
41 lines
839 B
Ruby
41 lines
839 B
Ruby
# frozen_string_literal: true
|
|
|
|
class AuthorizeApiRequest
|
|
prepend SimpleCommand
|
|
|
|
def initialize(headers = {})
|
|
@headers = headers
|
|
end
|
|
|
|
def call
|
|
user
|
|
end
|
|
|
|
private
|
|
|
|
attr_reader :headers
|
|
|
|
def user
|
|
@user ||= User.find(decoded_auth_token[:user_id]) if decoded_auth_token
|
|
@user || errors.add(:token, "Invalid token") && nil
|
|
|
|
org_user = OrganizationUser.where(user: @user, organization: @user.organization)&.first
|
|
@user = nil unless org_user.active?
|
|
|
|
@user || errors.add(:token, "Archived user") && nil
|
|
end
|
|
|
|
def decoded_auth_token
|
|
@decoded_auth_token ||= JsonWebToken.decode(http_auth_header)
|
|
end
|
|
|
|
def http_auth_header
|
|
if headers["Authorization"].present?
|
|
return headers["Authorization"].split(" ").last
|
|
else
|
|
errors.add(:token, "Missing token")
|
|
end
|
|
|
|
nil
|
|
end
|
|
end
|