/**
   * @see
   *     org.olat.course.nodes.CourseNode#createNodeRunConstructionResult(org.olat.core.gui.UserRequest,
   *     org.olat.core.gui.control.WindowControl,
   *     org.olat.course.run.userview.UserCourseEnvironment,
   *     org.olat.course.run.userview.NodeEvaluation)
   */
  @Override
  public NodeRunConstructionResult createNodeRunConstructionResult(
      final UserRequest ureq,
      final WindowControl wControl,
      final UserCourseEnvironment userCourseEnv,
      final NodeEvaluation ne,
      final String nodecmd) {
    Controller controller;
    // Do not allow guests to have manual scoring
    final Roles roles = ureq.getUserSession().getRoles();
    if (roles.isGuestOnly()) {
      final Translator trans = new PackageTranslator(PACKAGE, ureq.getLocale());
      final String title = trans.translate("guestnoaccess.title");
      final String message = trans.translate("guestnoaccess.message");
      controller = MessageUIFactory.createInfoMessage(ureq, wControl, title, message);
    } else {
      controller = new MSCourseNodeRunController(ureq, wControl, userCourseEnv, this, true);
    }

    final Controller wrappedCtrl =
        TitledWrapperHelper.getWrapper(ureq, wControl, controller, this, "o_ms_icon");
    return new NodeRunConstructionResult(wrappedCtrl);
  }