Class: ConnectorsSdk::SharePoint::Authorization
- Inherits:
-
Object
- Object
- ConnectorsSdk::SharePoint::Authorization
- Defined in:
- lib/connectors_sdk/share_point/authorization.rb
Class Method Summary collapse
- .access_token(params) ⇒ Object
- .authorization_uri(params) ⇒ Object
- .authorization_url ⇒ Object
- .missing_fields(params, required = []) ⇒ Object
- .oauth_client(params) ⇒ Object
- .oauth_scope ⇒ Object
- .refresh(params) ⇒ Object
- .token_credential_uri ⇒ Object
Class Method Details
.access_token(params) ⇒ Object
38 39 40 41 42 43 44 45 46 47 |
# File 'lib/connectors_sdk/share_point/authorization.rb', line 38 def access_token(params) missing = missing_fields(params, %w[client_id client_secret code redirect_uri]) unless missing.blank? raise ConnectorsShared::ClientError.new("Missing required fields: #{missing.join(', ')}") end params[:grant_type] = 'authorization_code' client = oauth_client(params) client.fetch_access_token end |
.authorization_uri(params) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/connectors_sdk/share_point/authorization.rb', line 26 def (params) missing = missing_fields(params, %w[client_id]) unless missing.blank? raise ConnectorsShared::ClientError.new("Missing required fields: #{missing.join(', ')}") end params[:response_type] = 'code' params[:additional_parameters] = { :prompt => 'consent' } client = oauth_client(params) client..to_s end |
.authorization_url ⇒ Object
18 19 20 |
# File 'lib/connectors_sdk/share_point/authorization.rb', line 18 def 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize' end |
.missing_fields(params, required = []) ⇒ Object
85 86 87 |
# File 'lib/connectors_sdk/share_point/authorization.rb', line 85 def missing_fields(params, required = []) Array.wrap(required).select { |field| params[field.to_sym].nil? } end |
.oauth_client(params) ⇒ Object
63 64 65 66 67 68 69 70 71 |
# File 'lib/connectors_sdk/share_point/authorization.rb', line 63 def oauth_client(params) = params.merge( :authorization_uri => , :token_credential_uri => token_credential_uri, :scope => oauth_scope ) [:state] = JSON.dump([:state]) if [:state] Signet::OAuth2::Client.new() end |
.oauth_scope ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/connectors_sdk/share_point/authorization.rb', line 73 def oauth_scope %w[ User.ReadBasic.All Group.Read.All Directory.AccessAsUser.All Files.Read Files.Read.All Sites.Read.All offline_access ] end |
.refresh(params) ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/connectors_sdk/share_point/authorization.rb', line 49 def refresh(params) missing = missing_fields(params, %w[client_id client_secret refresh_token]) unless missing.blank? raise ConnectorsShared::ClientError.new("Missing required fields: #{missing.join(', ')}") end params[:grant_type] = 'refresh_token' client = oauth_client(params) client.refresh! rescue StandardError => e ConnectorsShared::ExceptionTracking.log_exception(e) raise ConnectorsShared::TokenRefreshFailedError end |
.token_credential_uri ⇒ Object
22 23 24 |
# File 'lib/connectors_sdk/share_point/authorization.rb', line 22 def token_credential_uri 'https://login.microsoftonline.com/common/oauth2/v2.0/token' end |