MDL-64843 Backup: Course copy user interface
This patch adds better core support for copying courses. There is now a simplified and dedicated UI for copying courses. This can be accessed from the course context menu or course management screens. All backups are done asynchronously and there can be multiple copies of a course in flight at once.
This commit is contained in:
@@ -4309,6 +4309,37 @@ class core_accesslib_testcase extends advanced_testcase {
|
||||
$users = get_users_by_capability($contexts->cat1course1forum, $caput);
|
||||
$this->assertArrayHasKey($uut->id, $users);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test require_all_capabilities.
|
||||
*/
|
||||
public function test_require_all_capabilities() {
|
||||
global $DB;
|
||||
|
||||
$this->resetAfterTest();
|
||||
|
||||
$course = $this->getDataGenerator()->create_course();
|
||||
$coursecontext = context_course::instance($course->id);
|
||||
$teacherrole = $DB->get_record('role', array('shortname' => 'editingteacher'), '*', MUST_EXIST);
|
||||
$teacher = $this->getDataGenerator()->create_user();
|
||||
role_assign($teacherrole->id, $teacher->id, $coursecontext);
|
||||
|
||||
// Note: Here are used default capabilities, the full test is in permission evaluation bellow,
|
||||
// use two capabilities that teacher has and one does not, none of them should be allowed for not-logged-in user.
|
||||
$this->assertTrue($DB->record_exists('capabilities', array('name' => 'moodle/backup:backupsection')));
|
||||
$this->assertTrue($DB->record_exists('capabilities', array('name' => 'moodle/backup:backupcourse')));
|
||||
|
||||
$sca = array('moodle/backup:backupsection', 'moodle/backup:backupcourse');
|
||||
|
||||
$this->setUser($teacher);
|
||||
require_all_capabilities($sca, $coursecontext);
|
||||
require_all_capabilities($sca, $coursecontext, $teacher);
|
||||
|
||||
// Guest users should not have any of these perms.
|
||||
$this->setUser(0);
|
||||
$this->expectException(\required_capability_exception::class);
|
||||
require_all_capabilities($sca, $coursecontext);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user