module Reactor::Cm::Permissions

Public Class Methods

included(base) click to toggle source
# File lib/reactor/cm/permissions.rb, line 4
def self.included(base)
  base.instance_eval do
    attribute :global_permissions, :name => :globalPermissions, :type => :list
  end
end

Public Instance Methods

global_permission?(name) click to toggle source

Returns true, if a global permission with the given name exists, false otherwise.

# File lib/reactor/cm/permissions.rb, line 11
def global_permission?(name)
  self.global_permissions.include?(name.to_s)
end
grant_global_permissions!(permissions) click to toggle source

Add the given permissions to the current set of group permissions.

# File lib/reactor/cm/permissions.rb, line 16
def grant_global_permissions!(permissions)
  permissions = permissions.kind_of?(Array) ? permissions : [permissions]
  permissions = self.global_permissions | permissions

  set_global_permissions!(permissions)
end
revoke_global_permissions!(permissions) click to toggle source

Take away the given permissions from the current set of group permissions.

# File lib/reactor/cm/permissions.rb, line 24
def revoke_global_permissions!(permissions)
  permissions = permissions.kind_of?(Array) ? permissions : [permissions]
  permissions = self.global_permissions - permissions

  set_global_permissions(permissions)
end
set_global_permissions!(permissions) click to toggle source

Set the group permissions to the given permissions.

# File lib/reactor/cm/permissions.rb, line 32
def set_global_permissions!(permissions)
  request = XmlRequest.prepare do |xml|
    xml.where_key_tag!(base_name, self.class.primary_key, self.name)
    xml.set_key_tag!(base_name, self.class.xml_attribute(:global_permissions).name, permissions)
  end

  request.execute!

  self.global_permissions = permissions
end