protected void btnSetPermissions_Click(object sender, EventArgs e)
        {
            // create file
            string path = (string)ViewState["EditPermissions"];

            try
            {
                // update permissions
                List <UserPermission> users = new List <UserPermission>();
                foreach (GridViewRow row in gvFilePermissions.Rows)
                {
                    Literal  litAccountName = (Literal)row.FindControl("litAccountName");
                    CheckBox chkRead        = (CheckBox)row.FindControl("chkRead");
                    CheckBox chkWrite       = (CheckBox)row.FindControl("chkWrite");



                    if (litAccountName != null)
                    {
                        UserPermission user = new UserPermission();
                        user.AccountName = litAccountName.Text;
                        user.Read        = chkRead.Checked;
                        user.Write       = chkWrite.Checked;
                        users.Add(user);
                    }
                }

                int result = ES.Services.Files.SetFilePermissions(PanelSecurity.PackageId, path,
                                                                  users.ToArray(), chkReplaceChildPermissions.Checked);
                if (result < 0)
                {
                    messageBox.ShowResultMessage(result);
                    return;
                }
            }
            catch (Exception ex)
            {
                messageBox.ShowErrorMessage("FILES_UPDATE_PERMISSIONS", ex);
            }

            // hide form
            PermissionsFileModal.Hide();
        }
 protected void btnCancelPermissions_Click(object sender, EventArgs e)
 {
     PermissionsFileModal.Hide();
 }
        protected void gvFiles_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "browse")
            {
                string fileName = (string)e.CommandArgument;
                litPath.Text += HttpContext.Current.Server.HtmlEncode((litPath.Text != "\\") ? ("\\" + fileName) : fileName);
                BindPath();
            }
            else if (e.CommandName == "download")
            {
                string path = GetFullRelativePath((string)e.CommandArgument);

                Response.Redirect(NavigateURL(PortalUtils.SPACE_ID_PARAM, PanelSecurity.PackageId.ToString(),
                                              "DownloadFile=" + Server.UrlEncode(path)));
            }
            else if (e.CommandName == "edit_file")
            {
                // read file content
                try
                {
                    string path = GetFullRelativePath((string)e.CommandArgument);
                    ViewState["EditFile"] = path;

                    txtEditFileContent.Text = GetFileContent(path, ddlFileEncodings.SelectedValue);

                    // show edit panel
                    EditFileModal.Show();
                }
                catch (Exception ex)
                {
                    messageBox.ShowErrorMessage("FILES_READ_FILE", ex);
                }
            }
            else if (e.CommandName == "edit_permissions")
            {
                // read file content
                try
                {
                    string path = GetFullRelativePath((string)e.CommandArgument);
                    ViewState["EditPermissions"] = path;
                    UserPermission[] users = ES.Services.Files.GetFilePermissions(PanelSecurity.PackageId, path);

                    gvFilePermissions.DataSource = users;
                    gvFilePermissions.DataBind();

                    // show permissions panel
                    PermissionsFileModal.Show();
                }
                catch (Exception ex)
                {
                    messageBox.ShowErrorMessage("FILES_READ_PERMISSIONS", ex);
                }
            }
            else if (e.CommandName == "rename")
            {
                RenameFileModal.Show();

                ViewState["RenameFile"] = (string)e.CommandArgument;
                txtRenameFile.Text      = (string)e.CommandArgument;
            }
        }