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

give(user)

管理者権限のあるユーザ 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

take(args)

ハッシュの情報に該当する有効な 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

valid?(args)

ハッシュの情報に該当する有効な 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]