Ejemplo n.º 1
0
 /**
  * Works out whether activity is visible *for current user* - if this is false, they
  * aren't allowed to access it.
  * @return void
  */
 private function update_user_visible()
 {
     global $CFG;
     $modcontext = get_context_instance(CONTEXT_MODULE, $this->id);
     $userid = $this->modinfo->get_user_id();
     $this->uservisible = true;
     if ((!$this->visible or !$this->available) and !has_capability('moodle/course:viewhiddenactivities', $modcontext, $userid)) {
         // If the activity is hidden or unavailable, and you don't have viewhiddenactivities,
         // set it so that user can't see or access it
         $this->uservisible = false;
     } else {
         if (!empty($CFG->enablegroupmembersonly) and !empty($this->groupmembersonly) and !has_capability('moodle/site:accessallgroups', $modcontext, $userid)) {
             // If the activity has 'group members only' and you don't have accessallgroups...
             $groups = $this->modinfo->get_groups($this->groupingid);
             if (empty($groups)) {
                 // ...and you don't belong to a group, then set it so you can't see/access it
                 $this->uservisible = false;
             }
         }
     }
 }
Ejemplo n.º 2
0
    /**
     * Checks whether the module's group settings restrict the current user's access
     *
     * @return bool True if the user access is restricted
     */
    public function is_user_access_restricted_by_group() {
        global $CFG;

        if (!empty($CFG->enablegroupmembersonly) and !empty($this->groupmembersonly)) {
            $userid = $this->modinfo->get_user_id();
            if ($userid == -1) {
                return null;
            }
            if (!has_capability('moodle/site:accessallgroups', $this->get_context(), $userid)) {
                // If the activity has 'group members only' and you don't have accessallgroups...
                $groups = $this->modinfo->get_groups($this->groupingid);
                if (empty($groups)) {
                    // ...and you don't belong to a group, then set it so you can't see/access it
                    return true;
                }
            }
        }
        return false;
    }
Ejemplo n.º 3
0
 /**
  * Works out whether activity is visible *for current user* - if this is false, they
  * aren't allowed to access it.
  * @return void
  */
 private function update_user_visible()
 {
     global $CFG;
     $modcontext = get_context_instance(CONTEXT_MODULE, $this->id);
     $userid = $this->modinfo->get_user_id();
     $this->uservisible = true;
     // Check visibility/availability conditions.
     if ((!$this->visible or !$this->available) and !has_capability('moodle/course:viewhiddenactivities', $modcontext, $userid)) {
         // If the activity is hidden or unavailable, and you don't have viewhiddenactivities,
         // set it so that user can't see or access it.
         $this->uservisible = false;
     }
     // Check group membership. The grouping option makes the activity
     // completely invisible as it does not apply to the user at all.
     if (!empty($CFG->enablegroupmembersonly) and !empty($this->groupmembersonly) and !has_capability('moodle/site:accessallgroups', $modcontext, $userid)) {
         // If the activity has 'group members only' and you don't have accessallgroups...
         $groups = $this->modinfo->get_groups($this->groupingid);
         if (empty($groups)) {
             // ...and you don't belong to a group, then set it so you can't see/access it
             $this->uservisible = false;
             // Ensure activity is completely hidden from user.
             $this->showavailability = 0;
         }
     }
 }