original_string: public static function get_user_competency_in_course($courseid, $userid, $competencyid) {
          static::require_enabled();
          // First we do a permissions check.
          $context = context_course::instance($courseid);
  
          $capabilities = array('moodle/competency:coursecompetencyview', 'moodle/competency:coursecompetencymanage');
          if (!has_any_capability($capabilities, $context)) {
              throw new required_capability_exception($context, 'moodle/competency:coursecompetencyview', 'nopermissions', '');
          } else if (!user_competency::can_read_user_in_course($userid, $courseid)) {
              throw new required_capability_exception($context, 'moodle/competency:usercompetencyview', 'nopermissions', '');
          }
  
          // This will throw an exception if the competency does not belong to the course.
          $competency = course_competency::get_competency($courseid, $competencyid);
  
          $params = array('courseid' => $courseid, 'userid' => $userid, 'competencyid' => $competencyid);
          $exists = user_competency_course::get_record($params);
          // Create missing.
          if ($exists) {
              $ucc = $exists;
          } else {
              $ucc = user_competency_course::create_relation($userid, $competency->get('id'), $courseid);
              $ucc->create();
          }
  
          return $ucc;
      }
code: public static function get_user_competency_in_course($courseid, $userid, $competencyid) {
          static::require_enabled();
          // First we do a permissions check.
          $context = context_course::instance($courseid);
  
          $capabilities = array('moodle/competency:coursecompetencyview', 'moodle/competency:coursecompetencymanage');
          if (!has_any_capability($capabilities, $context)) {
              throw new required_capability_exception($context, 'moodle/competency:coursecompetencyview', 'nopermissions', '');
          } else if (!user_competency::can_read_user_in_course($userid, $courseid)) {
              throw new required_capability_exception($context, 'moodle/competency:usercompetencyview', 'nopermissions', '');
          }
  
          // This will throw an exception if the competency does not belong to the course.
          $competency = course_competency::get_competency($courseid, $competencyid);
  
          $params = array('courseid' => $courseid, 'userid' => $userid, 'competencyid' => $competencyid);
          $exists = user_competency_course::get_record($params);
          // Create missing.
          if ($exists) {
              $ucc = $exists;
          } else {
              $ucc = user_competency_course::create_relation($userid, $competency->get('id'), $courseid);
              $ucc->create();
          }
  
          return $ucc;
      }
code_tokens: public static function get_user_competency_in_course ( $ courseid , $ userid , $ competencyid ) { static :: require_enabled ( ) ; // First we do a permissions check. $ context = context_course :: instance ( $ courseid ) ; $ capabilities = array ( 'moodle/competency:coursecompetencyview' , 'moodle/competency:coursecompetencymanage' ) ; if ( ! has_any_capability ( $ capabilities , $ context ) ) { throw new required_capability_exception ( $ context , 'moodle/competency:coursecompetencyview' , 'nopermissions' , '' ) ; } else if ( ! user_competency :: can_read_user_in_course ( $ userid , $ courseid ) ) { throw new required_capability_exception ( $ context , 'moodle/competency:usercompetencyview' , 'nopermissions' , '' ) ; } // This will throw an exception if the competency does not belong to the course. $ competency = course_competency :: get_competency ( $ courseid , $ competencyid ) ; $ params = array ( 'courseid' => $ courseid , 'userid' => $ userid , 'competencyid' => $ competencyid ) ; $ exists = user_competency_course :: get_record ( $ params ) ; // Create missing. if ( $ exists ) { $ ucc = $ exists ; } else { $ ucc = user_competency_course :: create_relation ( $ userid , $ competency -> get ( 'id' ) , $ courseid ) ; $ ucc -> create ( ) ; } return $ ucc ; }
docstring: Get a user competency in a course.
  
  @param int $courseid The id of the course to check.
  @param int $userid The id of the course to check.
  @param int $competencyid The id of the competency.
  @return user_competency_course
docstring_tokens: Get a user competency in a course .