Exception: StoreAgent::PermissionDeniedError

Inherits:
StandardError
  • Object
show all
Defined in:
lib/store_agent/exceptions.rb

Overview

権限が無いユーザーでファイルの読み書きなどを行った場合に発生する例外クラス

guest_user.workspace("wc").file("file").create("file body")
# => ファイルの書き込み権限が無い場合、例外が発生する

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(errors: nil, object: nil, permission: "") ⇒ PermissionDeniedError

操作対象が1つの場合には object と permission を渡す。
ディレクトリの削除時など、操作対象が複数ある場合には errors に例外の配列を渡す。



54
55
56
57
58
# File 'lib/store_agent/exceptions.rb', line 54

def initialize(errors: nil, object: nil, permission: "")
  @errors = errors
  @object = object
  @permission = permission
end

Instance Attribute Details

#errorsObject (readonly)

:nodoc:



50
51
52
# File 'lib/store_agent/exceptions.rb', line 50

def errors
  @errors
end

#objectObject (readonly)

:nodoc:



50
51
52
# File 'lib/store_agent/exceptions.rb', line 50

def object
  @object
end

#permissionObject (readonly)

:nodoc:



50
51
52
# File 'lib/store_agent/exceptions.rb', line 50

def permission
  @permission
end

Instance Method Details

#to_sObject

:nodoc:



60
61
62
63
64
65
66
67
68
69
# File 'lib/store_agent/exceptions.rb', line 60

def to_s # :nodoc:
  if @errors
    "permission denied: user=#{@errors.first.object.current_user.identifiers} " +
    @errors.map do |e|
      "workspace=#{e.object.workspace.namespace} permission=#{e.permission} object=#{e.object.path}"
    end.join(", ")
  else
    "permission denied: user=#{object.current_user.identifiers} workspace=#{object.workspace.namespace} permission=#{permission} object=#{object.path}"
  end
end