Class DesignTicket
In: app/models/design_ticket.rb
Parent: ActiveRecord::Base

Design Web サービスのログイン情報のモデル

Methods

give   take   valid?  

Constants

MAX_LIFETIME = 60 * 60

Public Class methods

管理者権限のあるユーザ user のログイン情報を記録し有効な ticket を発行する。 失敗した場合には false を返す。

[Source]

    # File app/models/design_ticket.rb, line 32
32:   def self.give(user)
33:     if user.admin?
34:       token = (0...4).map {sprintf("%#xd", rand(65536))}.join('-')
35:       ticket = new(:domain_id => user.domain_id, :user_id => user.id, :token => token)
36:       return ticket if ticket.save
37:     end
38:     return false
39:   end

ハッシュの情報に該当する有効な ticket を返す。 args[:invalidate] が真の場合にはその ticket を無効にする。 ticket が存在しない場合には単に false を返す。

[Source]

    # File app/models/design_ticket.rb, line 44
44:   def self.take(args)
45:     ticket = find_by_token(args[:token])
46:     if (ticket &&
47:         ticket.domain_id == args[:domain_id] &&
48:         ticket.user_id == args[:user_id])
49:       if !args[:invalidate] || ticket.destroy
50:         return ticket 
51:       end
52:     end
53:     return false
54:   end

ハッシュの情報に該当する有効な ticket があるかどうかを判定する。 さらに args[:invalidate] が真の場合にはその ticket を無効にする。

[Source]

    # File app/models/design_ticket.rb, line 58
58:   def self.valid?(args)
59:     return !!take(args)
60:   end

[Validate]