La protección de este script debería ser la misma de ambos lados (idéntica a la condición que decide si se muestra el botón o no).
En este caso if (api_is_allowed_to_edit() && $_configuration['allow_tutors_to_assign_students_to_session'] == 'true') o algo así, porque el api_protect_teacher_script() no verifica allow_tutors_to_assign_students_to_session, y necesitamos hacerlo.
Tanto aquí como para los demás scripts, debería hacer dos validaciones: una primera con api_protect_teacher_script(true), y otra if ($_configuration['allow_tutors_to_assign_students_to_session'] != 'true') {api_not_allowed(true);}