Sha256: 7b73580d1a3f74f509e6f02df1303d5865bfccccc1d152629b9b7e4e4a97d8ab
Contents?: true
Size: 1.18 KB
Versions: 2
Compression:
Stored size: 1.18 KB
Contents
module Skydrive class User < ActiveRecord::Base include ActiveModel::ForbiddenAttributesProtection after_initialize :ensure_token after_initialize :cleanup_api_keys has_many :api_keys has_one :token belongs_to :account validates :username, presence: true validates :name, presence: true def session_api_key(params={}) ApiKey.create( user_id: self.id, scope: 'session', init_params: params.to_json ) end def cleanup_api_keys api_keys.inactive.each(&:destroy) end def valid_skydrive_token? !!self.token && self.token.is_valid? end def ensure_token if self.token begin self.token.refresh! if self.token.requires_refresh? rescue Skydrive::APIResponseErrorException, JSON::ParserError => error self.reset_token! end end self.token = self.create_token unless self.token end def reset_token! self.token.delete ensure_token end def skydrive_client @skydrive_client ||= Client.new(SHAREPOINT.merge( user_token: self.token )) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
lti_skydrive-1.2.2 | app/models/skydrive/user.rb |
lti_skydrive-1.2.1 | app/models/skydrive/user.rb |