private void PermissionsUserControl_Load(object sender, EventArgs e) { if (base.DesignMode) { return; } /* using (GmConnection conn = App.CreateConnection()) * { * conn.Fill(dt, "select Id, Name from Permissions"); * } * dcId = dt.Columns[0]; * dcChecked = dt.Columns.Add("Checked", typeof(bool)); * dcChecked.DefaultValue = false; * foreach (DataRow dr in dt.Rows) * { * PermissionId p = (PermissionId)dr[dcId]; * dr[dcChecked] = permissions.HasPermission(p); * }*/ foreach (Permission p in App.Config.permissions) { CheckedPermission cp = new CheckedPermission(p); cp.Checked = permissions.HasPermission(cp.id); checkedPermissions.Add(cp); } gridView.DataSource = checkedPermissions; }
private void OnCheckedPermissionChanged() { CheckedPermission cp = SelectedDataBoundItem; if (cp != null) { bool changed = false; if (cp.name.Length == 0) { foreach (CheckedPermission cp2 in checkedPermissions) { if (cp.id != cp2.id && cp.group == cp2.group) { cp2.Checked = cp.Checked; changed = true; } } } else if (cp.Checked) { foreach (CheckedPermission cp2 in checkedPermissions) { if (cp.id != cp2.id && cp2.name.Length == 0 && cp2.group == cp.group) { if (!cp2.Checked) { cp2.Checked = true; changed = true; } break; } } } if (changed) { gridView.Invalidate(); } } }