module StoreAgent::Node::PermissionChecker

オブジェクトの操作時に権限があるかどうかをチェックするモジュール

Public Instance Methods

chown(*) click to toggle source
Calls superclass method
# File lib/store_agent/node/prepend_module/permission_checker.rb, line 72
def chown(*)
  authorize!("chown")
  super
end
copy(dest_path = nil, *) click to toggle source

TODO コピー先のwrite権限をチェックする

Calls superclass method
# File lib/store_agent/node/prepend_module/permission_checker.rb, line 50
def copy(dest_path = nil, *)
  authorize!("read")
  super
end
create(*) click to toggle source
Calls superclass method
# File lib/store_agent/node/prepend_module/permission_checker.rb, line 21
def create(*)
  if !root?
    parent_directory.authorize!("write")
  end
  super
end
delete(*) click to toggle source
Calls superclass method
# File lib/store_agent/node/prepend_module/permission_checker.rb, line 38
def delete(*)
  authorize!("write")
  super
end
move(dest_path = nil, *) click to toggle source

TODO コピー先のwrite権限をチェックする

Calls superclass method
# File lib/store_agent/node/prepend_module/permission_checker.rb, line 57
def move(dest_path = nil, *)
  authorize!("write")
  super
end
read(*) click to toggle source
Calls superclass method
# File lib/store_agent/node/prepend_module/permission_checker.rb, line 28
def read(*)
  authorize!("read")
  super
end
set_permission(*) click to toggle source
Calls superclass method
# File lib/store_agent/node/prepend_module/permission_checker.rb, line 77
def set_permission(*)
  authorize!("chmod")
  super
end
touch(*) click to toggle source
Calls superclass method
# File lib/store_agent/node/prepend_module/permission_checker.rb, line 43
def touch(*)
  authorize!("read")
  super
end
unset_permission(*) click to toggle source
Calls superclass method
# File lib/store_agent/node/prepend_module/permission_checker.rb, line 82
def unset_permission(*)
  authorize!("chmod")
  super
end
update(*) click to toggle source
Calls superclass method
# File lib/store_agent/node/prepend_module/permission_checker.rb, line 33
def update(*)
  authorize!("write")
  super
end

Protected Instance Methods

authorize!(permission_name) click to toggle source
# File lib/store_agent/node/prepend_module/permission_checker.rb, line 89
def authorize!(permission_name)
  if !permission.allow?(permission_name)
    raise StoreAgent::PermissionDeniedError.new(object: self, permission: permission_name)
  end
end