private void btnAuthzGroupRuleAdd_Click(object sender, EventArgs e) { string grp = this.tbAuthzRuleGroup.Text.Trim(); if (string.IsNullOrEmpty(grp)) { MessageBox.Show("Please enter a group name."); return; } int idx = this.cbAuthzMySqlGroupMemberOrNot.SelectedIndex; GroupRule.Condition c; if (idx == 0) c = GroupRule.Condition.MEMBER_OF; else if (idx == 1) c = GroupRule.Condition.NOT_MEMBER_OF; else throw new Exception("Unrecognized option in authzRuleAddButton_Click"); idx = this.cbAuthzGroupRuleAllowOrDeny.SelectedIndex; bool allow; if (idx == 0) allow = true; // allow else if (idx == 1) allow = false; // deny else throw new Exception("Unrecognized action option in authzRuleAddButton_Click"); GroupAuthzRule rule = new GroupAuthzRule(grp, c, allow); this.listBoxAuthzRules.Items.Add(rule); }
public static List <GroupAuthzRule> GetAuthzRules() { List <GroupAuthzRule> rules = new List <GroupAuthzRule>(); string[] strRules = Settings.Store.GroupAuthzRules; foreach (string str in strRules) { GroupAuthzRule rule = GroupAuthzRule.FromRegString(str); if (rule != null) { rules.Add(rule); } else { // Log error m_logger.ErrorFormat("Unrecognized registry entry when loading authorization rule, ignoring: {0}", str); } } return(rules); }
private void InitUI() { this.hostTB.Text = Settings.Store.Host; int port = Settings.Store.Port; this.portTB.Text = Convert.ToString(port); this.userTB.Text = Settings.Store.User; this.passwordTB.Text = Settings.Store.GetEncryptedSetting("Password"); this.dbTB.Text = Settings.Store.Database; bool useSsl = Settings.Store.UseSsl; this.useSslCB.Checked = useSsl; // User table schema settings this.userTableTB.Text = Settings.Store.Table; this.unameColTB.Text = Settings.Store.UsernameColumn; this.hashMethodColTB.Text = Settings.Store.HashMethodColumn; this.passwdColTB.Text = Settings.Store.PasswordColumn; this.userPrimaryKeyColTB.Text = Settings.Store.UserTablePrimaryKeyColumn; int encodingInt = Settings.Store.HashEncoding; Settings.HashEncoding encoding = (Settings.HashEncoding)encodingInt; if (encoding == Settings.HashEncoding.HEX) this.encHexRB.Checked = true; else this.encBase64RB.Checked = true; // Group table schema settings this.groupTableNameTB.Text = Settings.Store.GroupTableName; this.groupNameColTB.Text = Settings.Store.GroupNameColumn; this.groupTablePrimaryKeyColTB.Text = Settings.Store.GroupTablePrimaryKeyColumn; // User-Group table settings this.userGroupTableNameTB.Text = Settings.Store.UserGroupTableName; this.userGroupUserFKColTB.Text = Settings.Store.UserForeignKeyColumn; this.userGroupGroupFKColTB.Text = Settings.Store.GroupForeignKeyColumn; /////////////// Authorization tab ///////////////// this.cbAuthzMySqlGroupMemberOrNot.SelectedIndex = 0; this.cbAuthzGroupRuleAllowOrDeny.SelectedIndex = 0; this.ckDenyWhenMySqlAuthFails.Checked = Settings.Store.AuthzRequireMySqlAuth; List<GroupAuthzRule> lst = GroupRuleLoader.GetAuthzRules(); // The last one should be the default rule if (lst.Count > 0 && lst[lst.Count - 1].RuleCondition == GroupRule.Condition.ALWAYS) { GroupAuthzRule rule = lst[lst.Count - 1]; if (rule.AllowOnMatch) this.rbDefaultAllow.Checked = true; else this.rbDefaultDeny.Checked = true; lst.RemoveAt(lst.Count - 1); } else { // The list is empty or the last rule is not a default rule. throw new Exception("Default rule not found in rule list."); } // The rest of the rules foreach (GroupAuthzRule rule in lst) this.listBoxAuthzRules.Items.Add(rule); ///////////////// Gateway tab /////////////// List<GroupGatewayRule> gwLst = GroupRuleLoader.GetGatewayRules(); foreach (GroupGatewayRule rule in gwLst) this.gtwRulesListBox.Items.Add(rule); this.gtwRuleConditionCB.SelectedIndex = 0; this.m_preventLogonWhenServerUnreachableCb.Checked = Settings.Store.PreventLogonOnServerError; }