public override void RefreshData() { //lvPerms.MultiSelect = !Modal; this.Text = "Permissions - " + this.AdminProxy.Connection.ServerName + (Toolkit.IsProcessElevated() ? " - Administrator " : ""); var tags = rememberSelectedTags(lvPerms); // this form has multiple uses, as does the underlying ListPermissions method. // it can: // List all permissions (0,[0]) // List permission info for a single permission (37,[0]) // List permissions that are NOT in a list (0, [2,3,4,5,6]) // var ds = AdminProxy.ListPermissions(-1, AssignedIDs, AssignedIDs.Count > 0); var ds = AdminProxy.ListPermissions(-1, AssignedIDs, false); var dt = ds.Tables["list_permissions"]; initHooksForMdiParent(dt, "display_member", "sys_permission_id"); lvPerms.Items.Clear(); foreach (DataRow dr in DataTable.Rows) { var lvi = new ListViewItem(dr["display_member"].ToString(), 0); string dv = dr["dataview_name"].ToString(); string tbl = dr["table_name"].ToString(); if (String.IsNullOrEmpty(dv) && String.IsNullOrEmpty(tbl)) { lvi.SubItems.Add("-- any resource --"); } else { if (!String.IsNullOrEmpty(dv)) { lvi.SubItems.Add(dv + " (dataview)"); } else { lvi.SubItems.Add(tbl); } } lvi.SubItems.Add(dr["is_enabled"].ToString()); lvi.UseItemStyleForSubItems = false; addPermItem(lvi, dr["create_permission_text"].ToString()); addPermItem(lvi, dr["read_permission_text"].ToString()); addPermItem(lvi, dr["update_permission_text"].ToString()); addPermItem(lvi, dr["delete_permission_text"].ToString()); // get restriction info... var drFields = ds.Tables["list_permission_fields"].Select("sys_permission_id = " + dr["sys_permission_id"]); if (drFields == null || drFields.Length == 0) { lvi.SubItems.Add("-"); } else { // pull perm field info into english-like display... var sb = new StringBuilder(); foreach (var drField in drFields) { if (sb.Length > 0) { sb.Append(" and "); } if (drField["compare_mode"].ToString() == "parent") { sb.Append(drField["parent_table_name"] + "." + drField["parent_table_field_name"] + " " + drField["parent_compare_operator"] + " " + drField["parent_compare_value"] + " (for all children)"); } else { if (Toolkit.ToInt32(drField["sys_dataview_field_id"], -1) > -1) { sb.Append(drField["dataview_name"] + "." + drField["dataview_field_name"] + " " + drField["compare_operator"] + " " + drField["compare_value"] + " (dataview)"); } else if (Toolkit.ToInt32(drField["sys_table_field_id"], -1) > -1) { sb.Append(drField["table_name"] + "." + drField["table_field_name"] + " " + drField["compare_operator"] + " " + drField["compare_value"] + " "); } else { sb.Append("INVALID -- must map a field from either Data View or Table!!!"); } } } lvi.SubItems.Add(sb.ToString()); } lvi.ImageIndex = 0; lvi.Tag = dr["sys_permission_id"]; lvPerms.Items.Add(lvi); } selectRememberedTags(lvPerms, tags); MainFormUpdateStatus(getDisplayMember("RefreshData{done}", "Refreshed Permissions"), false); }
public override void RefreshData() { this.Text = "Permission " + MainFormCurrentNodeText("") + " - " + this.AdminProxy.Connection.ServerName + (Toolkit.IsProcessElevated() ? " - Administrator " : ""); initDropDowns(); if (ID > -1) { var dt = AdminProxy.ListPermissions(ID, null, false).Tables["list_permissions"]; if (dt.Rows.Count > 0) { var dr = dt.Rows[0]; txtCode.Text = dr["permission_tag"].ToString(); txtName.Text = dr["title"].ToString(); txtDescription.Text = dr["description"].ToString(); ddlDataView.SelectedIndex = ddlDataView.FindString(dr["dataview_name"].ToString()); ddlTable.SelectedIndex = ddlTable.FindString(dr["table_name"].ToString()); ddlCreate.SelectedIndex = ddlCreate.FindString(dr["create_permission_text"].ToString()); ddlRead.SelectedIndex = ddlRead.FindString(dr["read_permission_text"].ToString()); ddlUpdate.SelectedIndex = ddlUpdate.FindString(dr["update_permission_text"].ToString()); ddlDelete.SelectedIndex = ddlDelete.FindString(dr["delete_permission_text"].ToString()); chkEnabled.Checked = dr["is_enabled"].ToString().Trim().ToUpper() == "Y"; var dt2 = AdminProxy.ListPermissionFields(ID, -1).Tables["list_permission_fields"]; lvPermFields.Items.Clear(); foreach (DataRow dr2 in dt2.Rows) { var lvi = new ListViewItem(); lvi.Tag = dr2["sys_permission_field_id"]; lvi.UseItemStyleForSubItems = false; var dv = dr2["dataview_name"].ToString(); var tbl = dr2["table_name"].ToString(); var mode = dr2["compare_mode"].ToString(); if (mode == "parent") { // restricting by parent... lvi.Text = dr2["parent_table_name"].ToString() + " (for all children)"; lvi.SubItems.Add(dr2["parent_table_field_name"].ToString()); lvi.SubItems.Add(dr2["parent_compare_operator"].ToString()); string verbiage = getVerbiageForSpecialCommand(dr2["parent_compare_value"].ToString()); lvi.SubItems.Add(verbiage); lvi.SubItems.Add(dr2["parent_table_name"].ToString() + "." + dr2["parent_Table_field_name"].ToString() + " " + dr2["parent_compare_operator"] + " " + verbiage + " (for all children)"); // lvi.Text = dr2["parent_table_name"].ToString() + "." + dr2["parent_Table_field_name"].ToString() + " " + dr2["parent_compare_operator"] + " " + dr2["parent_compare_value"] + " (for all children)"; } else if (dv == "") { lvi.Text = tbl; lvi.SubItems.Add(dr2["table_field_name"].ToString()); lvi.SubItems.Add(dr2["compare_operator"].ToString()); string verbiage = getVerbiageForSpecialCommand(dr2["compare_value"].ToString()); lvi.SubItems.Add(verbiage); lvi.SubItems.Add(dr2["table_name"].ToString() + "." + dr2["Table_field_name"].ToString() + " " + dr2["compare_operator"] + " " + verbiage); // lvi.Text = dr2["table_name"].ToString() + "." + dr2["Table_field_name"].ToString() + " " + dr2["compare_operator"] + " " + dr2["compare_value"]; } else { lvi.Text = dv + " (dataview)"; lvi.SubItems.Add(dr2["dataview_field_name"].ToString()); lvi.SubItems.Add(dr2["compare_operator"].ToString()); string verbiage = getVerbiageForSpecialCommand(dr2["compare_value"].ToString()); lvi.SubItems.Add(verbiage); lvi.SubItems.Add(dr2["dataview_field_name"].ToString() + "." + dr2["dataview_field_name"].ToString() + " " + dr2["compare_operator"] + " " + verbiage + " (dataview)"); // lvi.Text = dr2["dataview_field_name"].ToString() + "." + dr2["dataview_field_name"].ToString() + " " + dr2["compare_operator"] + " " + dr2["compare_value"] + " (dataview)"; } lvPermFields.Items.Add(lvi); } } } else { ddlDataView.SelectedIndex = 0; ddlTable.SelectedIndex = 0; ddlCreate.SelectedIndex = 0; ddlRead.SelectedIndex = 0; ddlUpdate.SelectedIndex = 0; ddlDelete.SelectedIndex = 0; } MarkClean(); }