/** * Constructor. * @param stdClass $user The user. */ public function __construct($user = null) { global $USER; if (!$user) { $user = $USER; } $this->user = $user; // Get the plans. $this->plans = api::list_user_plans($this->user->id); // Get the competencies to review. $this->compstoreview = api::list_user_competencies_to_review(0, 3); // Get the plans to review. $this->planstoreview = api::list_plans_to_review(0, 3); }
public function test_list_plans_to_review() { $dg = $this->getDataGenerator(); $this->resetAfterTest(); $ccg = $dg->get_plugin_generator('core_competency'); $sysctx = context_system::instance(); $this->setAdminUser(); $reviewer = $dg->create_user(); $roleallow = $dg->create_role(); $roleprohibit = $dg->create_role(); assign_capability('moodle/competency:planreview', CAP_ALLOW, $roleallow, $sysctx->id); assign_capability('moodle/competency:planreview', CAP_PROHIBIT, $roleprohibit, $sysctx->id); role_assign($roleallow, $reviewer->id, $sysctx->id); accesslib_clear_all_caches_for_unit_testing(); $u1 = $dg->create_user(); $u2 = $dg->create_user(); $f1 = $ccg->create_framework(); $comp1 = $ccg->create_competency(['competencyframeworkid' => $f1->get_id()]); $p1a = $ccg->create_plan(['userid' => $u1->id, 'status' => plan::STATUS_WAITING_FOR_REVIEW]); $p1b = $ccg->create_plan(['userid' => $u1->id, 'status' => plan::STATUS_IN_REVIEW, 'reviewerid' => $reviewer->id]); $p1c = $ccg->create_plan(['userid' => $u1->id, 'status' => plan::STATUS_DRAFT]); $p2a = $ccg->create_plan(['userid' => $u2->id, 'status' => plan::STATUS_WAITING_FOR_REVIEW]); $p2b = $ccg->create_plan(['userid' => $u2->id, 'status' => plan::STATUS_IN_REVIEW]); $p2c = $ccg->create_plan(['userid' => $u2->id, 'status' => plan::STATUS_ACTIVE]); $p2d = $ccg->create_plan(['userid' => $u2->id, 'status' => plan::STATUS_ACTIVE]); api::complete_plan($p2d); // The reviewer can review all plans waiting for review, or in review where they are the reviewer. $this->setUser($reviewer); $result = api::list_plans_to_review(); $this->assertEquals(3, $result['count']); $this->assertEquals($p1a->get_id(), $result['plans'][0]->plan->get_id()); $this->assertEquals($p1b->get_id(), $result['plans'][1]->plan->get_id()); $this->assertEquals($p2a->get_id(), $result['plans'][2]->plan->get_id()); // The reviewer cannot view the plans when they do not have the permission in the user's context. role_assign($roleprohibit, $reviewer->id, context_user::instance($u2->id)->id); accesslib_clear_all_caches_for_unit_testing(); $result = api::list_plans_to_review(); $this->assertEquals(2, $result['count']); $this->assertEquals($p1a->get_id(), $result['plans'][0]->plan->get_id()); $this->assertEquals($p1b->get_id(), $result['plans'][1]->plan->get_id()); }
/** * Constructor. */ public function __construct() { $this->planstoreview = api::list_plans_to_review(0, 1000); }