- $options = array('status'=>ACTIVE,'max_rank'=>$this->rank-1);
- $users = $this->getUsers($options);
- foreach($users as $one_user) {
- if ($one_user['id'] == $this->behalf_id)
- return true;
+ if (!$this->behalf_group_id) {
+ // Checking user from home group.
+ $options = array('status'=>ACTIVE,'max_rank'=>$this->rank-1);
+ $users = $this->getUsers($options);
+ foreach($users as $one_user) {
+ if ($one_user['id'] == $this->behalf_id)
+ return true;
+ }
+ } else {
+ // Checking user from a subgroup.
+ $group_id = $this->behalf_group_id;
+ if (!$this->isSubgroupValid($group_id))
+ return false;
+
+ // So far, so good. Check user now.
+ $options = array('group_id'=>$group_id,'status'=>ACTIVE,'max_rank'=>MAX_RANK);
+ $users = $this->getUsers($options);
+ foreach($users as $one_user) {
+ if ($one_user['id'] == $this->behalf_id)
+ return true;
+ }