41 Commits

Author SHA1 Message Date
Alexander Van der Bellen
0aea55c3e6 MDL-79151 backup: Add custom field backup and restore API 2024-02-20 15:28:28 +08:00
Paul Holden
d0cab9a4a0
MDL-79256 customfield: add new valuetrust to data table schema. 2024-01-23 08:18:58 +00:00
Paul Holden
7143cf4cbc
MDL-79397 reportbuilder: update existing entity table definitions. 2023-12-07 17:19:01 +00:00
Mark Johnson
b0bb97ee3b MDL-79213 groups: Add visibility checks in groups_get_members_join()
Group visibility was not taken into account when
generating SQL for getting enrolled users restricted
to a list of groups. This may have allowed users to
infer membership of groups they were not allowed to
see members of.
2023-10-04 01:24:20 +00:00
Paul Holden
dae1dcc8ae
MDL-78835 group: include custom fields in related report entities. 2023-08-28 13:55:59 +02:00
Ilya Tregubov
ccaa0c7143
Merge branch 'MDL-67186_master_v2' of https://github.com/TomoTsuyuki/moodle 2023-08-28 15:20:47 +08:00
Paul Holden
33a63ca639
MDL-76295 reportbuilder: implement default datasource sorting.
Update all existing report sources to use the new default sorting
API from 064eccd4, updating existing tests to assert behaviour.
2023-08-23 15:32:50 +01:00
Tomo Tsuyuki
d8a4cc9533 MDL-67186 group: add custom fields 2023-08-09 11:02:49 +10:00
Paul Holden
b3d00a8f0a
MDL-78872 grade: fix external class execute method visibility. 2023-08-07 15:19:25 +01:00
Mathew May
a4b3b0d044 MDL-77991 core: Move tertiary search dropdown component 2023-08-03 09:07:18 +08:00
Matthew Hilton
912bd8ad27 MDL-76270 group: Add bulk messaging actions
Added two new buttons to the group page to bulk enable or disable the
selected groups messaging settings.

Supporting Javascript modules were also added to disable/enable the
buttons depending on the groups selected in the picker.
2023-04-20 12:23:01 +10:00
Paul Holden
ba64c15814
MDL-77943 group: use shorter names for visibility report elements. 2023-04-17 19:36:55 +01:00
Paul Holden
f17ba9deb2
MDL-77119 group: custom report elements for group visibility data.
Allow for the reporting of group visibility/participation properties
introduced in 958da5b6, by implementing new entity columns & filters.
2023-03-20 15:44:57 +00:00
Mark Johnson
958da5b67e MDL-68093 groups: Add visibility and participation settings
These new settings are designed to enchance user privacy surrounding
groups. They allow groups to be configured so that users outside the
group cannot see the group, so that users in the group cannot see each
other, or so that users cannot see the group at all, even if they are in
it. This avoids issues where a group may be assigned based on sensitive
personal information (such as a person requiring special arrangements
due to a disability).

By default, groups are visible to all and available for participation in
activities, which maintains the current behaviour.

For performance, a new cache has been added to track the number of
groups on a course that are not visible to non-members. This allows us
to revert to the existing behaviour if the new features are not being
used at all on a course, and only apply the new visibility conditions if
they are.

Users who have the moodle/course:viewhiddengroups capability should be
concious of exposing hidden groups when showing their screen to other
users. The "Switch role to..." feature can be used to show a course page
on screen without exposing private availability conditions, for example.

The changes cover several specific areas:
* grouplib functions, which most code should use to get lists of groups
  and members (this includes the participants page).
* Activities supporting group overrides will not allow overrides for
  groups that are hidden from all users.
* Activities supporting separate/visible groups modes will only allow
  groups with the new "participation" flag enabled to be selected.
* Group messaging will be disabled for groups where members cannot see
  each other, or cannot see the group at all.
2023-03-14 08:52:25 +00:00
Paul Holden
b10b89ec74 MDL-75349 group: implement groups datasource for custom reporting.
Create new entities for exposing report data on course groups and
groupings, joining to existing course/user entities to provide data
for the reportbuilder editor.
2022-10-20 12:30:06 +01:00
Jun Pataleta
666cce74e5 MDL-48269 group: Remove additional occurrences of hidepicture 2021-02-16 12:48:44 +08:00
Jun Pataleta
21b0f581e1 Merge branch 'MDL-67115' of https://github.com/stronk7/moodle 2020-01-23 15:12:56 +08:00
Eloy Lafuente (stronk7)
ee439d017e MDL-67115 core: php74 params order for implode()/join()
Passing parameters to implode() in reverse order is deprecated, use
implode($glue, $parts) instead of implode($parts, $glue).

This commit corresponds to phpunit and manual detections, core files.
2020-01-19 18:47:07 +01:00
Paul Holden
6e8ed1a8fb MDL-67245 group: observe viewfullnames capability. 2020-01-17 12:42:17 +00:00
Shamim Rezaie
0452337d1a MDL-64782 core_group: Performance improvement 2019-04-23 17:01:48 +10:00
Sara Arjona
c752cce7dd MDL-63692 core_group: Add group conversation messages to Privacy API 2018-11-19 22:08:28 +01:00
Andrew Nicols
c96cd71102 MDL-63924 privacy: Add shared user providers to subsytsems 2018-11-08 21:26:18 +08:00
Michael Hawkins
b16a3388bb MDL-63816 privacy: Corrected provider get_users_in_context descriptions 2018-10-31 12:13:30 +08:00
Shamim Rezaie
89d468eb39 MDL-63500 core_group: get_contexts_for_userid should respect component
The get_contexts_for_userid method should not return contexts for all group memberships.
It should only return the contexts in where there is manual group
membership.

This issue is part of the MDL-62560 Epic.
2018-10-22 12:48:28 +02:00
Shamim Rezaie
e114ac6ec0 MDL-63500 core_group: support removal of multiple users in a context
This issue is part of the MDL-62560 Epic.
2018-10-22 12:48:27 +02:00
Shamim Rezaie
5c87353833 MDL-62318 core_group: Updating cache when deleting group memberships 2018-05-09 13:29:39 +10:00
Shamim Rezaie
55c1865638 MDL-62318 core_group: Add implementation of privacy API 2018-05-09 13:29:26 +10:00
Adrian Greeve
c550fd0e11 MDL-60515 groups: Update to weblib group function.
Added a new function to get the url for the group picture.
2017-10-30 16:43:19 +08:00
Adrian Greeve
349b705d31 MDL-60515 groups: Display group information on the participants page. 2017-10-30 16:43:18 +08:00
Damyon Wiese
3be8982033 MDL-59824 groups: no groups == cannot edit members
On the participants page, if there are no course groups - don't make the groups list editable.
2017-08-17 12:07:18 +08:00
Mark Nelson
3cf76bbc87 MDL-59656 core_group: add support for multi-lang to groups editable
Part of MDL-59290.
2017-07-31 15:36:00 +08:00
Andrew Nicols
11b31ab857 MDL-59367 user: Documentation fix 2017-07-25 15:04:57 +08:00
Damyon Wiese
73d0d56284 MDL-59367 user: Tests and coding style
Add a unit test for user_roles_editable.
Coding style fixes.
Don't show duplicate roles.
2017-07-21 10:25:25 +08:00
David Monllao
002ac8e9fe MDL-59368 users: Clear whitespace 2017-07-12 16:53:55 +02:00
Damyon Wiese
f3ecea3af4 MDL-59368 groups: Peer review fixes
* Fix coalesce on postgres.
* The edit icon's alt shows the HTML entities causing
* enrol/tests/behat/add_to_group.feature Contains a '@doit' tag which I assume is there from testing.
* group/classes/output/user_groups_editable.php
** Missing MOODLE_INTERNAL check.
** Unused variables context_system and moodle_exception.
** The PHPDocs for the constructors are wrong.
** export_for_template() returns an array, not stdClass (according to parent docs).
** Change moodle_exception to coding_exception at the beginning.
* group/lib.php
** Missing docs for core_group_inplace_editable().
* user/classes/participants_table.php
** The docs for the class variables $groups, $course and $context need a '\' beforehand as they are in a namespace.
** I would prefer $this->context = $context; and $this->groups = ... to be done at the end of the constructor with the other class variable assignments.
** You could get rid of the class variable courseid if we are setting course and use $this->course->id instead.
** The function col_groups has @param \stdclass $row but it should be $data
* lib/amd/src/form-autocomplete.js and lib/amd/src/inplace_editable.js
** Some issues here CiBot has pointed out.
* lib/classes/output/inplace_editable.php
** @see should be on a new line.
2017-07-12 10:09:09 +08:00
Damyon Wiese
4aad7c2be2 MDL-59368 groups: Show no groups instead of ''
This is on the inplace editable for a users course groups.
2017-07-12 10:07:58 +08:00
Damyon Wiese
76c493b3f2 MDL-59368 groups: Add behat for new group edit 2017-07-12 10:07:58 +08:00
Damyon Wiese
090d064dda MDL-59368 enrol: Ensure remove_group_member_allowed works
Wierd rare callback that does not work in core. Still respect it in the UI.
2017-07-12 10:07:58 +08:00
Damyon Wiese
5a90a7cabe MDL-59368 groups: Add an explicit cancel button
Autocomplete already uses Escape keyboard handler - so we can't use it to cancel an edit-inplace thing.
Make an obvious cancel button instead.
2017-07-12 10:07:57 +08:00
Damyon Wiese
2fa35b8d16 MDL-59368 groups: Inplace editing for users groups 2017-07-12 10:07:57 +08:00
Jun Pataleta
3b5865396e MDL-56979 group: Make group index page Boost-y 2017-06-16 13:58:15 +08:00