private void save(bool closeAfterSave) { var groupIDForTag = AdminProxy.GetGroupIDForTag(txtTag.Text); //if (String.IsNullOrEmpty(txtTag.Text)){ // MessageBox.Show(this, "You must specify a tag for the group.", "Tag Required"); // txtTag.Focus(); // return; //} else if (groupIDForTag > -1 && groupIDForTag != ID) { // MessageBox.Show(this, "You must specify a unique tag for the group.\n" + txtTag.Text + " is already taken.", "Unique Tag Required"); // txtTag.Focus(); // txtTag.SelectAll(); // return; //} if (AdminProxy.IsReservedGroupTagValue(txtTag.Text) && txtTag.Enabled) { MessageBox.Show(this, getDisplayMember("save{reservedtag_body}", "{0} is a reserved tag name and cannot be used.\nPlease specify a different value.", txtTag.Text), getDisplayMember("save{reservedtag_body}", "Reserved Tag")); return; } ID = AdminProxy.SaveGroup(ID, txtTag.Text, txtName.Text, txtDescription.Text); RefreshData(); MainFormUpdateStatus(getDisplayMember("save{done}", "Saved group {0}", txtName.Text), true); if (closeAfterSave) { if (Modal) { this.DialogResult = DialogResult.OK; this.Close(); } else { MainFormSelectParentTreeNode(); } } }
public override void RefreshData() { this.Text = "Group - " + MainFormCurrentNodeText("") + " - " + this.AdminProxy.Connection.ServerName + (Toolkit.IsProcessElevated() ? " - Administrator " : ""); var ds = AdminProxy.ListGroups(ID < 0 ? int.MaxValue : ID); // fill permissions tab lvPermissions.Items.Clear(); foreach (DataRow dr in ds.Tables["list_groups"].Rows) { txtName.Text = dr["group_name"].ToString(); txtTag.Text = dr["group_tag"].ToString(); if (AdminProxy.IsReservedGroupTagValue(txtTag.Text)) { txtTag.Enabled = false; } else { txtTag.Enabled = true; } txtDescription.Text = dr["description"].ToString(); DataRow[] drPerms = ds.Tables["permissions_by_group"].Select("sys_group_id = " + dr["sys_group_id"]); if (drPerms != null && drPerms.Length > 0) { foreach (DataRow drp in drPerms) { var lvi = new ListViewItem(drp["title"].ToString(), 0); lvi.Tag = Toolkit.ToInt32(drp["sys_permission_id"], -1); lvi.UseItemStyleForSubItems = false; string dv = drp["dataview_name"].ToString(); string tbl = drp["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(drp["perm_is_enabled"].ToString().ToUpper()); addPermItem(lvi, drp["create_permission_text"].ToString()); addPermItem(lvi, drp["read_permission_text"].ToString()); addPermItem(lvi, drp["update_permission_text"].ToString()); addPermItem(lvi, drp["delete_permission_text"].ToString()); // get restriction info... var drFields = ds.Tables["group_perm_field_info"].Select("sys_permission_id = " + drp["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()); } lvPermissions.Items.Add(lvi); } } lvUsers.Items.Clear(); var dtUsers = ds.Tables["users_by_group"]; if (dtUsers != null) { var drUsers = dtUsers.Select("sys_group_id = " + dr["sys_group_id"]); foreach (DataRow drUser in drUsers) { var lvi = new ListViewItem(new string[] { drUser["user_name"].ToString(), drUser["full_name"].ToString(), drUser["is_enabled"].ToString() }); lvi.ImageIndex = 1; lvi.Tag = drUser["sys_user_id"]; lvUsers.Items.Add(lvi); } } } MarkClean(); }