protected void UpdateLinkButton_Click(object sender, EventArgs e) { using (PlexingFleetDataContext context = new PlexingFleetDataContext(ConnectionString)) { PlexUser user = context.PlexUsers.FirstOrDefault(x => x.CharacterId == CharacterIdLabel.Text.ToInt()); user.Enabled = !BannedCheckBox.Checked; if (user.CorpId != CorporationDropDownList.SelectedValue.ToInt()) { var corp = context.Corps.FirstOrDefault(x => x.CorpId == CorporationDropDownList.SelectedValue.ToInt()); if (corp != null) { user.CorpId = corp.CorpId; user.AllianceId = corp.AllianceId; user.CorpName = corp.CorpName; user.AllianceName = corp.AllianceName; } } if (NewPasswordTextBox.Text.Trim() != string.Empty && NewPasswordTextBox.Text == ConfirmPasswordTextBox.Text) { user.Password = FormsAuthentication.HashPasswordForStoringInConfigFile(NewPasswordTextBox.Text, "md5"); } PlexUserRole role = context.PlexUserRoles.FirstOrDefault(x => x.CharacterId == CharacterIdLabel.Text.ToInt()); SetPermission(context, role, SuperAdminCheckBox.Checked, "Super"); SetPermission(context, role, AdministratorCheckBox.Checked, "Admin"); SetPermission(context, role, AllianceCheckBox.Checked, "Alliance"); SetPermission(context, role, CorporationCheckBox.Checked, "Corporation"); context.SubmitChanges(); } Response.Redirect(string.Format("{0}?{1}=1", PageReferrer.Page_Admin_Users, Origin)); }
private void SetPermission(PlexingFleetDataContext context, PlexUserRole role, bool permissionChecked, string permissionName) { if (permissionChecked) { if (role != null) { if (!role.Roles.Contains(permissionName)) { if (role.Roles.Length > 0) { role.Roles += ","; } role.Roles += permissionName; } } else { role = new PlexUserRole(); role.CharacterId = CharacterIdLabel.Text.ToInt(); role.Roles = permissionName; context.PlexUserRoles.InsertOnSubmit(role); } } else { if (role != null) { role.Roles = role.Roles.Replace(string.Format("{0},", permissionName), "").Replace(string.Format(",{0}", permissionName), ""); if (role.Roles == permissionName || role.Roles.Trim().Length == 0) { context.PlexUserRoles.DeleteOnSubmit(role); } } } }
partial void DeletePlexUserRole(PlexUserRole instance);
partial void UpdatePlexUserRole(PlexUserRole instance);
partial void InsertPlexUserRole(PlexUserRole instance);
private void CreateUser(PlexingFleetDataContext context, bool newCorp) { PlexUser user = context.PlexUsers.FirstOrDefault(x => x.CharacterId == CharacterId); if (user == null) { user = new PlexUser() { CharacterId = this.CharacterId, CharacterName = this.CharacterName, AllianceId = this.AllianceId, CorpId = this.CorpId, AllianceName = this.AllianceName, CorpName = this.CorpName, Password = FormsAuthentication.HashPasswordForStoringInConfigFile(PasswordTextBox.Text.Trim(), "md5"), Enabled = true }; context.PlexUsers.InsertOnSubmit(user); if (newCorp) { PlexUserRole role = new PlexUserRole() { CharacterId = this.CharacterId, Roles = "Corporation" }; context.PlexUserRoles.InsertOnSubmit(role); } } else { //Only do this if the user enabled. if (user.Enabled) { user.AllianceId = this.AllianceId; user.CorpId = this.CorpId; user.AllianceName = this.AllianceName; user.CorpName = this.CorpName; if (newCorp) { var userRoles = context.PlexUserRoles.FirstOrDefault(x => x.CharacterId == CharacterId); //If no roles were found then add the one registring the corp admin rights for that corp. if (userRoles == null) { PlexUserRole role = new PlexUserRole(); role.CharacterId = CharacterId; role.Roles = "Corporation"; context.PlexUserRoles.InsertOnSubmit(role); } else { //Only add the corporation role if it is missing. if (!userRoles.Roles.Contains("Corporation")) { userRoles.Roles += ",Corporation"; } } } } else { user.AllianceId = this.AllianceId; user.CorpId = this.CorpId; user.AllianceName = this.AllianceName; user.CorpName = this.CorpName; } } context.SubmitChanges(); }