Sha256: dda2e74b1ded23f89993e725acd7bb2a0cc6e412cd8c1ea127192045b486b933
Contents?: true
Size: 1.2 KB
Versions: 1
Compression:
Stored size: 1.2 KB
Contents
# frozen_string_literal: true module Masks module Rails module OpenID class Authorization < ApplicationRecord self.table_name = "openid_authorizations" scope :valid, -> { where("expires_at >= ?", Time.now.utc) } belongs_to :actor, class_name: Masks.configuration.models[:actor] belongs_to :openid_client, class_name: Masks.configuration.models[:openid_client] serialize :scopes, coder: JSON before_validation :generate_code validates :actor, presence: true validates :openid_client, presence: true validates :code, presence: true, uniqueness: true validates :expires_at, presence: true def valid_redirect_uri?(uri) uri == redirect_uri end def access_token @access_token ||= update_attribute!(:expires_at, Time.now) && generate_access_token! end def generate_access_token! actor.openid_access_tokens.create!(openid_client:, scopes:) end private def generate_code self.code ||= SecureRandom.uuid self.expires_at ||= openid_client.code_expires_at end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
masks-0.4.0 | app/models/masks/rails/openid/authorization.rb |