editing
Access permissions may be changed by faculty by
clicking the 'edit' tab in directory listings.
If a .access.yaml (see below) file doesn't exist in that directory,
one will be created to store the changes.
.access.yaml
The file that controls permissions is named ".access.yaml"
and it follows the YAML rules for data storage.
Typical files look like
read: students
or
read: all
write: [mahoney, matt]
or
read: faculty
write: faculty
or
read: all
write: same
There are only two lines, one for read access and one for write,
and either a single role or username, or a bracketed list
of roles or usernames. "same" is a keyword that represents the same list as in read.
Allowed keywords describe nested groups of people;
anyone in one group is automatically in the enclosed groups.
Each page is in a single course; 'faculty' and 'student' roles
are with respect to that course.
usernames are unique across all courses, and include anyone
on the campus LDAP server.
faculty always have read/write to their course files regardless
of the settings, and admin always has read/write everywhere.
all anonymous users who aren't logged in (synonym: anyone)
guest anyone logged into the system (perhaps a student in a different course)
students registered as such in the course (synonym: student)
faculty by default can edit all files in their course
admin only user who can create courses
See Wikiacademia/Page/Access.pm, including
$page->set_access( read => 'guest', write=>['johnson', 'smith'] ); # update or create file
$absolute_filename = $page->access_filename; # e.g. '/this/that/.access.yaml'
$hash = $page->access_privileges; # e.g. {read=>'students', write=>'faculty'}