Commit Graph

21 Commits

Author SHA1 Message Date
Tomo Tsuyuki d8a4cc9533 MDL-67186 group: add custom fields 2023-08-09 11:02:49 +10: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
Andrew Nicols a3cc26f8bb MDL-76583 core: Update uses of external_* classes 2023-01-19 07:34:09 +08:00
Eloy Lafuente (stronk7) 100bc51f1d MDL-73485 phpunit: externallib, generator and filter tescase names
All externallib_test, generator_test and filter_test classes:

- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.

Special mention to tests under testing/tests:

1) The core_testing component doesn't exist.
2) But testing/tests are allowed because there is a suite pointing to it (phpunit.xml).
3) So, the only possible namespace for them is "core".
4) And to avoid problems with other core testcases (under lib/tests)
   they have been renamed to have testing_xxxx as prefix.

Finally, also modified calendar/tests/events/events_test.php because it uses
some renamed (core_calendar_externallib_testcase => \core_calendar\externallib_test)
classes.
2022-01-21 19:48:23 +01:00
Dmitrii Metelkin 301783d94e MDL-63516 groups: fix unexpected debugging message 2019-02-06 09:21:26 +11:00
Damyon Wiese f6ca9ca691 Merge branch 'MDL-44137_add_update-groups_webservice' of https://github.com/TheVirtualLtd/moodle 2018-11-05 15:07:26 +08:00
Robynstar 474dd887d0 MDL-44137 group: add update_groups webservice function 2018-11-01 11:52:03 +13:00
Juan Leyva 6f89b33bdb MDL-61197 core_group: Fix groupings not being filtered 2018-10-30 10:22:58 +01:00
Juan Leyva b8a3567407 MDL-61197 core_group: Refactor get_course_user_groups to get all groups
This is a refactor of the function to be able to get all the user
course groups in just one call
2018-10-30 10:22:58 +01:00
Simey Lameze 486ecb1b89 MDL-60637 core_group: fix unit tests failures 2017-11-21 09:59:56 +08:00
Juan Leyva 0f398b500d MDL-59160 core_group: Return if the user can access all groups in WS
The core_group_get_activity_allowed_groups WS should be returning not
only the groups but also if the user is allowed to access all the
activity groups.
2017-06-19 15:53:38 +01:00
Rajesh Taneja 52f3e060e4 MDL-55091 phpunit: Following has been deprecated.
1. getMock()
2. setExpectedException()
3. checkForUnintentionallyCoveredCode renamed to beStrictAboutCoversAnnotation
4. beStrictAboutTestSize renamed to enforceTimeLimit
5. UnitTestCase class is now fully removed.
2016-07-26 10:11:30 +08:00
David Monllao 224d819678 Merge branch 'MDL-50964-master' of git://github.com/jleyva/moodle
Conflicts:
	group/tests/externallib_test.php
	lib/db/services.php
2015-09-15 17:09:33 +08:00
Juan Leyva c0ef63eb38 MDL-50964 core_group: New Web Service core_group_get_activity_groupmode 2015-09-11 11:30:28 +02:00
Juan Leyva 7107c2f066 MDL-50966 core_group: New WS core_group_get_activity_allowed_groups 2015-09-11 11:29:38 +02:00
David Monllao ed0fd1f6ec MDL-43949 groups: Add idnumber to web services
Thanks to Vitor Martins for his contribution.
2015-06-25 16:55:14 +08:00
Juan Leyva 5d62e813ab MDL-48730 webservices: New ws core_group_get_course_user_groups 2015-02-24 09:39:05 +01:00
Petr Škoda 8252b7c291 MDL-40901 standardise core test case class and file names
This finally allows us to type only the class name when executing individual core test cases.
2013-08-04 22:10:31 +02:00
Paul Charsley 45c0a7d002 MDL-36541 modify get_groupings to optionally return associated groups 2013-02-15 13:13:06 +13:00
Jerome Mouneyrac fb695f6e3d MDL-37354 clean return value for each externallib PHPUnit tests 2013-01-09 13:47:01 +08:00
Jerome Mouneyrac 1f867c025b MDL-34970 PHPunit test: group/externallib.php 2012-09-04 12:34:40 +08:00