protected void OnGridPermissionNeedDataSource(object source, GridNeedDataSourceEventArgs e) { if (gridUsers.SelectedItems.Count == 1) { GridDataItem dataItem = ((GridDataItem)gridUsers.SelectedItems[0]); if (dataItem != null) { string userID = dataItem["UserID"].Text; IList<ParamUserPermission> perList = new ParamUserPermissionRepository().GetPermissionsOfUser(userID); gridPermissions.DataSource = perList; } } else { gridPermissions.DataSource = new List<ParamUserPermission>(); } }
protected void OnUserDeleteClicked(object sender, EventArgs e) { LinkButton lnkItem = (LinkButton)sender; string userID = lnkItem.CommandArgument; //Check whether this user is being used //Delete user's permissions first. ParamUserPermissionRepository perRepo = new ParamUserPermissionRepository(); IList<ParamUserPermission> oldPerList = perRepo.GetPermissionsOfUser(userID); foreach (ParamUserPermission deletePer in oldPerList) { perRepo.DeleteUserPermission(deletePer); } //Delete user ParamUser deleteItem = new ParamUser(userID); ParamUserRepository repo = new ParamUserRepository(); repo.Delete(deleteItem); BindGridData(); gridUsers.DataBind(); }
protected void Page_Load(object sender, EventArgs e) { if (SessionManager.CurrentUser == null) { Common.RedirectToLoginPage(this); return; } else if (!IsPostBack) { FillLabelLanguage(); divChangePassword.Visible = false; ddlGenre.Items.Add(new RadComboBoxItem("M", "M")); ddlGenre.Items.Add(new RadComboBoxItem("F", "F")); ddlPermission.DataTextField = "PermissionCode"; ddlPermission.DataValueField = "PermissionCode"; ddlPermission.DataSource = new ParamPermissionRepository().FindAll(); ddlPermission.DataBind(); if (!string.IsNullOrEmpty(Request.QueryString["UserID"])) { btnChangePassword.Visible = true; txtUserID.Enabled = false; txtPassword.Enabled = false; string userID = Request.QueryString["UserID"]; ParamUser user = new ParamUserRepository().FindOne(new ParamUser(userID)); txtUserID.Text = user.UserID; txtName.Text = user.LastName; ddlGenre.SelectedValue = user.Gender; txtEmail.Text = user.Email; txtTelephone.Text = user.Telephone; chkActive.Checked = user.Active; txtPassword.Attributes.Add("value", user.Password); txtPassword.Text = user.Password; //txtNewPassword.Attributes.Add("value", user.Password); //txtConfirmPassword.Attributes.Add("value", user.Password); IList<ParamUserPermission> permissionList = new ParamUserPermissionRepository().GetPermissionsOfUser(userID); string perString = string.Empty; foreach (ParamUserPermission item in permissionList) { listPermission.Items.Add(new ListItem(item.PermissionCode, item.PermissionCode)); perString += item.PermissionCode + ";"; } if (!string.IsNullOrEmpty(perString)) perString = perString.TrimEnd(';'); hiddenPermissionList.Value = perString; } else { txtUserID.Enabled = true; btnChangePassword.Visible = false; txtPassword.Enabled = true; } bool haveChangeUserPermission = false; if (SessionManager.CurrentUser != null && SessionManager.CurrentUser.Permissions != null) { foreach (ParamUserPermission item in SessionManager.CurrentUser.Permissions) { if (item.PermissionCode == "CHANGEUSERPERMISSIONS") { haveChangeUserPermission = true; break; } } } btnAddPermission.Enabled = haveChangeUserPermission; btnRemovePermission.Enabled = haveChangeUserPermission; } }
protected void OnBtnSaveClicked(object sender, EventArgs e) { ParamPermissionRepository repo = new ParamPermissionRepository(); ParamPermission saveItem = new ParamPermission(); saveItem.PermissionCode = txtCode.Text.Trim(); saveItem.PermissionDescription = txtDescription.Text.Trim(); string perCode = Request.QueryString["Code"]; if (string.IsNullOrEmpty(perCode)) { //Insert new record ParamPermission oldItem = repo.FindOne(new ParamPermission(txtCode.Text.Trim())); if (oldItem == null) repo.Insert(saveItem); else { string message = ResourceManager.GetString("itemAlreadyExist"); string script1 = "<script type=\"text/javascript\">"; script1 += " alert(\"" + message + "\");"; script1 += " </script>"; if (!ClientScript.IsClientScriptBlockRegistered("redirectUser")) ClientScript.RegisterStartupScript(this.GetType(), "redirectUser", script1); } } else { perCode = perCode.Trim(); if (saveItem.PermissionCode.Trim() == perCode) { //Update the record. repo.Update(saveItem); } else { IList<ParamUserPermission> userPerList = new ParamUserPermissionRepository().GetUsersHavePermission(perCode); if (userPerList.Count == 0) { //Delete the old one and add the new one. ParamPermission deleteItem = new ParamPermission(Request.QueryString["Code"].Trim()); repo.Delete(deleteItem); repo.Insert(saveItem); } else { string message = ResourceManager.GetString("messagePermissionBeingUsed"); string scriptMes = "<script type=\"text/javascript\">"; scriptMes += " alert(\"" + message + "\")"; scriptMes += " </script>"; if (!ClientScript.IsClientScriptBlockRegistered("redirectUser")) ClientScript.RegisterStartupScript(this.GetType(), "redirectUser", scriptMes); return; } } } string script = "<script type=\"text/javascript\">"; script += " OnBtnSaveClientClicked();"; script += " </script>"; if (!ClientScript.IsClientScriptBlockRegistered("redirectUser")) ClientScript.RegisterStartupScript(this.GetType(), "redirectUser", script); }
private void SavePermission(ParamUser user) { ParamUserPermissionRepository perRepo = new ParamUserPermissionRepository(); IList<ParamUserPermission> oldPerList = perRepo.GetPermissionsOfUser(user.UserID); string[] newPerArray = hiddenPermissionList.Value.Split(';'); if (newPerArray != null && newPerArray.Length > 0) { for (int i = 0; i < newPerArray.Length; i++) { if (!string.IsNullOrEmpty(newPerArray[i])) { bool isNew = true; foreach (ParamUserPermission oldItem in oldPerList) { if (oldItem.PermissionCode.Trim() == newPerArray[i].Trim()) { isNew = false; break; } } if (isNew) { ParamUserPermission newItem = new ParamUserPermission(); newItem.UserID = user.UserID; newItem.PermissionCode = newPerArray[i].Trim(); perRepo.Insert(newItem); } } } } foreach (ParamUserPermission oldItem in oldPerList) { bool isDelete = true; if (newPerArray != null && newPerArray.Length > 0) { for (int i = 0; i < newPerArray.Length; i++) { if (oldItem.PermissionCode.Trim() == newPerArray[i].Trim()) { isDelete = false; break; } } } if (isDelete) perRepo.DeleteUserPermission(oldItem); } }