There is an issue with the code of the permission editor / the code which writes to simple.conf which is triggered when changing between languages.
(The issue was mentioned in #948 (comment) on Aug 24, 2019 but was not a reason to hold back on the WW 2.15 release.)
The problem is not fully diagnosed, but under certain circumstances the value save for $permissionLevels{type} is being set using the foreign language value rather than the English value, which breaks the behavior.
A sample procedure to trigger the issue is as follows:
- Set
simple.conf in some course to be the contents of the file provided at the bottom of the issue.
- Maybe use a different value of the language (which has translated names of the permission levels) instead of Hebrew so you can follow the steps below with more ease.
- However, Hebrew definitely triggers the problem.
- Use the menu to open the course configuration page - two lines above the ?-mark icon in the menu. (Hebrew phrase is תצורת הקורס, in the current PO file)
- Change the language setting from "heb" to "en_us".
- Click the save button on the bottom of the page.
- Example the value of
$permissionLevels{change_password} in the saved simple.conf. It will show (based on my tests) the value מרצה which is the Hebrew term for professor in use.
- Use the left menu to change to a different part of the system and them back to the configuration page. That will get the language change to take effect.
- Now open the "Permissions" tab again. It will show the value
guest as the value מרצה from the file cannot be read in.
Note: When the permissions are edited and saved while using a foreign language, and the language setting is not changes, the values saved in simple.conf are the proper English names of the relevant permission levels. The problem is apparently only triggered when a save is occurring which changes from a foreign language back to English
Note: In the pull-down lists, the <option> items have a value which is the standard English name of the permission levels, but the text shown for the options is the translated phrase. When the permissions page is saved in a foreign language - the form values sent are the English values from the value field.
The probably cause is a call to maketext which is not needed or some value already saved as the "translated" value rather than the English value.
A prior issue with related code is at: #798 (comment)
The sample simple.conf used to trigger the issue
#!perl
# This file is automatically generated by WeBWorK's web-based
# configuration module. Do not make changes directly to this
# file. It will be overwritten the next time configuration
# changes are saved.
$language = 'heb';
$permissionLevels{change_password} = 'professor';
The value of simple.conf after step 5:
#!perl
# This file is automatically generated by WeBWorK's web-based
# configuration module. Do not make changes directly to this
# file. It will be overwritten the next time configuration
# changes are saved.
$language = 'en_us';
$hardcopyTheme = 'oneColumn';
$permissionLevels{change_password} = 'מרצה';
There is an issue with the code of the permission editor / the code which writes to simple.conf which is triggered when changing between languages.
(The issue was mentioned in #948 (comment) on Aug 24, 2019 but was not a reason to hold back on the WW 2.15 release.)
The problem is not fully diagnosed, but under certain circumstances the value save for
$permissionLevels{type}is being set using the foreign language value rather than the English value, which breaks the behavior.A sample procedure to trigger the issue is as follows:
simple.confin some course to be the contents of the file provided at the bottom of the issue.$permissionLevels{change_password}in the savedsimple.conf. It will show (based on my tests) the valueמרצהwhich is the Hebrew term forprofessorin use.guestas the valueמרצהfrom the file cannot be read in.Note: When the permissions are edited and saved while using a foreign language, and the language setting is not changes, the values saved in
simple.confare the proper English names of the relevant permission levels. The problem is apparently only triggered when a save is occurring which changes from a foreign language back to EnglishNote: In the pull-down lists, the
<option>items have avaluewhich is the standard English name of the permission levels, but the text shown for the options is the translated phrase. When the permissions page is saved in a foreign language - the form values sent are the English values from the value field.The probably cause is a call to
maketextwhich is not needed or some value already saved as the "translated" value rather than the English value.A prior issue with related code is at: #798 (comment)
The sample
simple.confused to trigger the issueThe value of
simple.confafter step 5: