# # build_permission_row # subroutine(build_permission_row(string option_name), ( subroutine(build_cell(string option_name, int bit_number), ( string element_id = "security:" . option_name . ":bit" . bit_number; '\n'; '\n'; if (bit_number == 9) then ( # this is the sticky bit ' ' . lang_admin.preferences.security.permissions.sticky; ); '\n'; )); string option_label = @("lang_options.preferences.security." . option_name . ".label"); ''; '' . option_label . ':'; '\n'; # # Build nested table for permissions # '\n'; ''; '\n'; '\n'; '\n'; '\n'; '\n'; '\n'; '\n'; # # Read, plus sticky # '\n'; # Owner read, bit 8, octal 0400 build_cell(option_name, 8); # Group read, bit 5, octal 0040 build_cell(option_name, 5); # World read, bit 2, octal 0002 build_cell(option_name, 2); '\n'; # The sticky bit, bit 9, octal 1000 build_cell(option_name, 9); '\n'; # # Write # '\n'; # Owner write, bit 7, octal 0200 build_cell(option_name, 7); # Group write, bit 4, octal 0020 build_cell(option_name, 4); # World write, bit 1, octal 0002 build_cell(option_name, 1); '\n'; '\n'; '\n'; # # Execute # '\n'; # Owner execute, bit 6, octal 0100 build_cell(option_name, 6); # Group execute, bit 3, octal 0010 build_cell(option_name, 3); # World execute, bit 0, 0001 build_cell(option_name, 0); '\n'; '\n'; '\n'; ''; '
' . lang_admin.preferences.security.permissions.owner . '' . lang_admin.preferences.security.permissions.group . '' . lang_admin.preferences.security.permissions.world . '  
' . lang_admin.preferences.security.permissions.read . '
' . lang_admin.preferences.security.permissions.write . ' 
' . lang_admin.preferences.security.permissions.execute . ' 
\n'; '\n'; '\n'; ));