Class: Edgar::UserGroup

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/edgar/user_group.rb

Overview

UserGroup can be used for several types of user group like the followings:

  • user organization

  • user role

Defined Under Namespace

Modules: Kind

Instance Method Summary (collapse)

Instance Method Details

- (Boolean) admin?

Returns:

  • (Boolean)


55
56
57
# File 'app/models/edgar/user_group.rb', line 55

def admin?
  self.kind == Kind::ROLE && name == 'admin'
end

- (Boolean) permitted?(model_name, requested_flags = 0)

return true if the role has enough permission on the controller.

If user role is 'admin' then all operations are permitted.

Always return false if the user-group is not ROLE.

if requested_flags is omitted, just checks existence of model_permissions and doesn't check CRUD level.

Returns:

  • (Boolean)


43
44
45
46
47
48
49
50
51
52
53
# File 'app/models/edgar/user_group.rb', line 43

def permitted?(model_name, requested_flags = 0)
  return false if self.kind != Kind::ROLE
  return true  if admin?

  p = self.model_permissions.find_by_model(model_name)
  if requested_flags == 0
    p
  else
    p && p.permitted?(requested_flags)
  end
end

- (Object) validate



30
31
32
33
# File 'app/models/edgar/user_group.rb', line 30

def validate
  super
  validate_tree_kind
end

- (Object) validate_tree_kind (private)

USER_ORG's parent must be USER_ORG



61
62
63
64
65
66
67
# File 'app/models/edgar/user_group.rb', line 61

def validate_tree_kind
  if parent_id
    if kind != parent.kind
      err_on(:kind, 'different_kind_from_parent')
    end
  end
end