コード例 #1
0
 /**
  * Generates the HTML to view the users groups and available group actions
  *
  * @param int $userid
  * @param array $groups
  * @param array $allgroups
  * @param bool $canmanagegroups
  * @param moodle_url $pageurl
  * @return string
  */
 public function user_groups_and_actions($userid, $groups, $allgroups, $canmanagegroups, $pageurl)
 {
     $iconenrolremove = $this->output->pix_url('t/delete');
     $groupicon = $this->output->pix_icon('i/group', get_string('addgroup', 'group'));
     $groupoutput = '';
     foreach ($groups as $groupid => $name) {
         if ($canmanagegroups and groups_remove_member_allowed($groupid, $userid)) {
             $icon = html_writer::empty_tag('img', array('alt' => get_string('removefromgroup', 'group', $name), 'src' => $iconenrolremove));
             $url = new moodle_url($pageurl, array('action' => 'removemember', 'group' => $groupid, 'user' => $userid));
             $groupoutput .= html_writer::tag('div', $name . html_writer::link($url, $icon), array('class' => 'group', 'rel' => $groupid));
         } else {
             $groupoutput .= html_writer::tag('div', $name, array('class' => 'group', 'rel' => $groupid));
         }
     }
     $output = '';
     if ($canmanagegroups && count($groups) < count($allgroups)) {
         $url = new moodle_url($pageurl, array('action' => 'addmember', 'user' => $userid));
         $output .= html_writer::tag('div', html_writer::link($url, $groupicon), array('class' => 'addgroup'));
     }
     $output = $output . html_writer::tag('div', $groupoutput, array('class' => 'groups'));
     return $output;
 }
コード例 #2
0
ファイル: locallib.php プロジェクト: EmmanuelYupit/educursos
 /**
  * Removes a user from a group
  *
  * @global moodle_database $DB
  * @param StdClass $user
  * @param int $groupid
  * @return bool
  */
 public function remove_user_from_group($user, $groupid)
 {
     global $DB;
     require_capability('moodle/course:managegroups', $this->context);
     $group = $this->get_group($groupid);
     if (!groups_remove_member_allowed($group, $user)) {
         return false;
     }
     if (!$group) {
         return false;
     }
     return groups_remove_member($group, $user);
 }
コード例 #3
0
 /**
  * Delete group members
  *
  * @param array $members of arrays with keys userid, groupid
  * @since Moodle 2.2
  */
 public static function delete_group_members($members)
 {
     global $CFG, $DB;
     require_once "{$CFG->dirroot}/group/lib.php";
     $params = self::validate_parameters(self::delete_group_members_parameters(), array('members' => $members));
     $transaction = $DB->start_delegated_transaction();
     foreach ($params['members'] as $member) {
         // validate params
         $groupid = $member['groupid'];
         $userid = $member['userid'];
         $group = groups_get_group($groupid, 'id, courseid', MUST_EXIST);
         $user = $DB->get_record('user', array('id' => $userid, 'deleted' => 0, 'mnethostid' => $CFG->mnet_localhost_id), '*', MUST_EXIST);
         // now security checks
         $context = context_course::instance($group->courseid, IGNORE_MISSING);
         try {
             self::validate_context($context);
         } catch (Exception $e) {
             $exceptionparam = new stdClass();
             $exceptionparam->message = $e->getMessage();
             $exceptionparam->courseid = $group->courseid;
             throw new moodle_exception('errorcoursecontextnotvalid', 'webservice', '', $exceptionparam);
         }
         require_capability('moodle/course:managegroups', $context);
         if (!groups_remove_member_allowed($group, $user)) {
             throw new moodle_exception('errorremovenotpermitted', 'group', '', fullname($user));
         }
         groups_remove_member($group, $user);
     }
     $transaction->allow_commit();
 }
コード例 #4
0
ファイル: members.php プロジェクト: Jtgadbois/Pedadida
    $userstoadd = $potentialmembersselector->get_selected_users();
    if (!empty($userstoadd)) {
        foreach ($userstoadd as $user) {
            if (!groups_add_member($groupid, $user->id)) {
                print_error('erroraddremoveuser', 'group', $returnurl);
            }
            $groupmembersselector->invalidate_selected_users();
            $potentialmembersselector->invalidate_selected_users();
        }
    }
}
if (optional_param('remove', false, PARAM_BOOL) && confirm_sesskey()) {
    $userstoremove = $groupmembersselector->get_selected_users();
    if (!empty($userstoremove)) {
        foreach ($userstoremove as $user) {
            if (!groups_remove_member_allowed($groupid, $user->id)) {
                print_error('errorremovenotpermitted', 'group', $returnurl, $user->fullname);
            }
            if (!groups_remove_member($groupid, $user->id)) {
                print_error('erroraddremoveuser', 'group', $returnurl);
            }
            $groupmembersselector->invalidate_selected_users();
            $potentialmembersselector->invalidate_selected_users();
        }
    }
}
// Print the page and form
$strgroups = get_string('groups');
$strparticipants = get_string('participants');
$stradduserstogroup = get_string('adduserstogroup', 'group');
$strusergroupmembership = get_string('usergroupmembership', 'group');