Enhancements to group handling

This commit is contained in:
Deon George
2011-09-24 23:13:38 +10:00
parent 7180e01dcf
commit cea949a2c4
6 changed files with 70 additions and 96 deletions

View File

@@ -12,6 +12,7 @@ class Model_Group extends Model_Auth_RoleDefault {
// Relationships
protected $_has_many = array(
'account'=>array('through'=>'account_group'),
'module_method'=>array('through'=>'group_method','far_key'=>'method_id'),
);
protected $_sorting = array(
@@ -36,6 +37,10 @@ class Model_Group extends Model_Auth_RoleDefault {
),
);
/**
* This function will, given a group, list all of the children that
* are also related to this group, in the group heirarchy.
*/
public function list_childgrps($incParent=FALSE) {
$return = array();
@@ -53,5 +58,27 @@ class Model_Group extends Model_Auth_RoleDefault {
return $return;
}
/**
* This function will, given a group, list all of the parent that
* are also related to this group, in the group heirarchy.
*/
public function list_parentgrps($incParent=FALSE) {
$return = array();
if (! $this->loaded())
return $return;
foreach (ORM::factory('group')->where('status','=',1)->and_where('id','=',$this->parent_id)->find_all() as $go) {
array_push($return,$go);
$return = array_merge($return,$go->list_parentgrps());
}
if ($incParent)
array_push($return,$this);
return $return;
}
}
?>