File "permissions.js"
Full Path: /home/analogde/www/Code03/inc/permissions.js
File size: 3.01 KB
MIME-type: text/plain
Charset: utf-8
function get_chmod_value ( permissions ) {
var chmod = 0;
if (permissions.substr (1, 1) != '-') {
chmod += 400;
}
if (permissions.substr (2, 1) != '-') {
chmod += 200;
}
if (permissions.substr (3, 1) != '-') {
chmod += 100;
}
if (permissions.substr (4, 1) != '-') {
chmod += 40;
}
if (permissions.substr (5, 1) != '-') {
chmod += 20;
}
if (permissions.substr (6, 1) != '-') {
chmod += 10;
}
if (permissions.substr (7, 1) != '-') {
chmod += 4;
}
if (permissions.substr (8, 1) != '-') {
chmod += 2;
}
if (permissions.substr (9, 1) != '-') {
chmod += 1;
}
if (chmod < 100 && chmod >= 10) {
chmod = '0' + chmod;
}
if (chmod < 10) {
chmod = '00' + chmod;
}
return chmod;
}
function get_permissions_string ( first_letter, chmod_value ) {
var permissions = first_letter;
var temp_string = '';
if (chmod_value >= 100) {
temp_string += chmod_value;
}
if (chmod_value < 100 && chmod_value >= 10) {
temp_string = '0' + chmod_value;
}
if (chmod_value < 10) {
temp_string = '00' + chmod_value;
}
var own = temp_string.substr (0, 1);
var grp = temp_string.substr (1, 1);
var pub = temp_string.substr (2, 1);
permissions += own & 4 ? 'r' : '-';
permissions += own & 2 ? 'w' : '-';
permissions += own & 1 ? 'x' : '-';
permissions += grp & 4 ? 'r' : '-';
permissions += grp & 2 ? 'w' : '-';
permissions += grp & 1 ? 'x' : '-';
permissions += pub & 4 ? 'r' : '-';
permissions += pub & 2 ? 'w' : '-';
permissions += pub & 1 ? 'x' : '-';
return permissions;
}
function set_vars ( permissions ) {
octal = document.getElementById ('octal');
octal.value = get_chmod_value (new String (permissions));
own_r = document.getElementById ('own_r');
own_w = document.getElementById ('own_w');
own_x = document.getElementById ('own_x');
grp_r = document.getElementById ('grp_r');
grp_w = document.getElementById ('grp_w');
grp_x = document.getElementById ('grp_x');
pub_r = document.getElementById ('pub_r');
pub_w = document.getElementById ('pub_w');
pub_x = document.getElementById ('pub_x');
}
function update_checkboxes ( ) {
octal.value = octal.value >= 0 && octal.value <= 777 ? octal.value : 0;
owner_props = octal.value.substr (0, 1);
group_props = octal.value.substr (1, 1);
public_props = octal.value.substr (2, 1);
own_r.checked = owner_props & 4 ? true : false;
own_w.checked = owner_props & 2 ? true : false;
own_x.checked = owner_props & 1 ? true : false;
grp_r.checked = group_props & 4 ? true : false;
grp_w.checked = group_props & 2 ? true : false;
grp_x.checked = group_props & 1 ? true : false;
pub_r.checked = public_props & 4 ? true : false;
pub_w.checked = public_props & 2 ? true : false;
pub_x.checked = public_props & 1 ? true : false;
}
function update_octal ( ) {
var i = 0;
i += own_r.checked ? 400 : 0;
i += own_w.checked ? 200 : 0;
i += own_x.checked ? 100 : 0;
i += grp_r.checked ? 40 : 0;
i += grp_w.checked ? 20 : 0;
i += grp_x.checked ? 10 : 0;
i += pub_r.checked ? 4 : 0;
i += pub_w.checked ? 2 : 0;
i += pub_x.checked ? 1 : 0;
octal.value = i;
}