void UpdatePermissions() { _permissions = 0; if (chkOwnerRead.Checked) { _permissions |= SftpFilePermissions.OwnerRead; } if (chkOwnerWrite.Checked) { _permissions |= SftpFilePermissions.OwnerWrite; } if (chkOwnerExecute.Checked) { _permissions |= SftpFilePermissions.OwnerExecute; } if (chkSetUID.Checked) { _permissions |= SftpFilePermissions.SetUid; } if (chkGroupRead.Checked) { _permissions |= SftpFilePermissions.GroupRead; } if (chkGroupWrite.Checked) { _permissions |= SftpFilePermissions.GroupWrite; } if (chkGroupExecute.Checked) { _permissions |= SftpFilePermissions.GroupExecute; } if (chkSetGID.Checked) { _permissions |= SftpFilePermissions.SetGid; } if (chkPublicRead.Checked) { _permissions |= SftpFilePermissions.OthersRead; } if (chkPublicWrite.Checked) { _permissions |= SftpFilePermissions.OthersWrite; } if (chkPublicExecute.Checked) { _permissions |= SftpFilePermissions.OthersExecute; } if (chkStickly.Checked) { _permissions |= SftpFilePermissions.Sticky; } }
/// <summary> /// Parses permissions from the given permissions string. /// </summary> /// <param name="p">The permissions string.</param> private static string ToPermissions(SftpFilePermissions p) { string permissions = Convert.ToString((int)p, 16).PadLeft(3, '0') + " "; permissions += GetPermissionChar(p, SftpFilePermissions.GroupExecute, 'x'); permissions += GetPermissionChar(p, SftpFilePermissions.GroupRead, 'r'); permissions += GetPermissionChar(p, SftpFilePermissions.GroupWrite, 'w'); permissions += GetPermissionChar(p, SftpFilePermissions.OthersExecute, 'x'); permissions += GetPermissionChar(p, SftpFilePermissions.OthersRead, 'r'); permissions += GetPermissionChar(p, SftpFilePermissions.OthersWrite, 'w'); permissions += GetPermissionChar(p, SftpFilePermissions.OwnerExecute, 'x'); permissions += GetPermissionChar(p, SftpFilePermissions.OwnerRead, 'r'); permissions += GetPermissionChar(p, SftpFilePermissions.OwnerWrite, 'w'); return(permissions); }
private void txtPermissions_TextChanged(object sender, EventArgs e) { if (!_loaded || txtPermissions.Text.Length == 0) { return; } try { uint p = Convert.ToUInt32(txtPermissions.Text, 16); if (p < 0 || p > 0xFFF) { MessageBox.Show(Messages.InvalidPermissions, "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); } _permissions = (SftpFilePermissions)p; UpdateCheckboxes(); } catch (Exception) { MessageBox.Show(Messages.InvalidPermissions, "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
private static char GetPermissionChar(SftpFilePermissions p, SftpFilePermissions mask, char ch) { return((p & mask) == mask ? ch : '-'); }