Files
Jorge Luis caudillo esparza 6685ef63fb Initial commit
2026-07-14 11:15:57 -07:00

44 lines
5.0 KiB
C#

using System;
using System.Web.UI.WebControls;
using SIG.Web.AppCode.Configuration;
using SIG.Web.AppCode.Models.Common;
using SIG.Web.AppCode.Models.Security;
using SIG.Web.AppCode.Security;
namespace SIG.Web.Pages.Security
{
public partial class Usuarios : ClsPaginaBase
{
private string DomainName { get { return Request.Url.Host; } }
protected void Page_Load(object sender, EventArgs e)
{
if (CurrentUser == null) return;
if (!string.Equals(CurrentUser.NombreRol, "SuperUsuario", StringComparison.OrdinalIgnoreCase)) { Response.Redirect("~/AccessDenied.aspx", false); Context.ApplicationInstance.CompleteRequest(); return; }
if (!IsPostBack) { BindRoles(); BindUsers(); }
}
protected void BtnSearch_Click(object sender, EventArgs e) { BindUsers(); }
protected void BtnNew_Click(object sender, EventArgs e) { ClearEditor(); PnlEditor.Visible = true; TabClients.Visible = false; BtnDelete.Visible = false; }
protected void GvUsers_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName != "EditUser") return; int index = Convert.ToInt32(e.CommandArgument); LoadUser(Convert.ToInt32(GvUsers.DataKeys[index].Value)); }
protected void BtnSave_Click(object sender, EventArgs e)
{
int id; int.TryParse(HdnUserId.Value, out id); int role; int.TryParse(DdlRole.SelectedValue, out role);
var user = new UserAdministrationModel { CveUsuario = id, NombreUsuario = TxtUsername.Text.Trim(), CorreoElectronico = TxtEmail.Text.Trim(), CveRol = role, Activo = ChkActive.Checked, DebeCambiarContrasena = ChkChangePassword.Checked };
string hash = string.IsNullOrWhiteSpace(TxtPassword.Text) ? null : AppServices.PasswordHasher.HashPassword(TxtPassword.Text);
DbResult<int> result = AppServices.UserAdministrationRepository.SaveUser(user, hash, CurrentUser.CveUsuario, DomainName);
if (!result.Success) { Show(result.UserMessage, false); return; } HdnUserId.Value = result.Data.ToString(); TabClients.Visible = true; BtnDelete.Visible = true; BindUsers(); BindClients(result.Data); Show("Usuario guardado.", true);
}
protected void BtnDelete_Click(object sender, EventArgs e) { int id; if (!int.TryParse(HdnUserId.Value, out id)) return; var result = AppServices.UserAdministrationRepository.DeleteUser(id, CurrentUser.CveUsuario, DomainName); if (!result.Success) { Show(result.UserMessage, false); return; } PnlEditor.Visible = false; BindUsers(); Show("Usuario borrado lógicamente.", true); }
protected void BtnAssignClient_Click(object sender, EventArgs e)
{
int userId, clientId, order; if (!int.TryParse(HdnUserId.Value, out userId) || !int.TryParse(TxtClientId.Text, out clientId) || !int.TryParse(TxtOrder.Text, out order)) { Show("Captura claves y orden válidos.", false); return; }
var result = AppServices.UserAdministrationRepository.SaveUserClient(userId, clientId, order, ChkPrimary.Checked, CurrentUser.CveUsuario, DomainName); if (!result.Success) { Show(result.UserMessage, false); return; } BindClients(userId); Show("Cliente asignado.", true);
}
private void BindUsers() { var result = AppServices.UserAdministrationRepository.ListUsers(TxtSearch.Text.Trim(), CurrentUser.CveUsuario, DomainName); if (!result.Success) { Show(result.UserMessage, false); return; } GvUsers.DataSource = result.Data; GvUsers.DataBind(); }
private void BindRoles() { var result = AppServices.UserAdministrationRepository.ListRoles(CurrentUser.CveUsuario, DomainName); if (!result.Success) { Show(result.UserMessage, false); return; } DdlRole.DataSource = result.Data; DdlRole.DataTextField = "NombreRol"; DdlRole.DataValueField = "CveRol"; DdlRole.DataBind(); }
private void LoadUser(int id) { var result = AppServices.UserAdministrationRepository.GetUser(id, CurrentUser.CveUsuario, DomainName); if (!result.Success || result.Data == null) { Show(result.UserMessage, false); return; } var u = result.Data; HdnUserId.Value = id.ToString(); TxtUsername.Text = u.NombreUsuario; TxtEmail.Text = u.CorreoElectronico; DdlRole.SelectedValue = u.CveRol.ToString(); ChkActive.Checked = u.Activo; ChkChangePassword.Checked = u.DebeCambiarContrasena; PnlEditor.Visible = true; TabClients.Visible = true; BtnDelete.Visible = true; BindClients(id); }
private void BindClients(int id) { var result = AppServices.UserAdministrationRepository.ListUserClients(id, CurrentUser.CveUsuario, DomainName); if (!result.Success) { Show(result.UserMessage, false); return; } GvClients.DataSource = result.Data; GvClients.DataBind(); }
private void ClearEditor() { HdnUserId.Value = "0"; TxtUsername.Text = TxtEmail.Text = TxtPassword.Text = string.Empty; ChkActive.Checked = true; ChkChangePassword.Checked = false; TabsUser.ActiveTabIndex = 0; }
private void Show(string text, bool success) { LblMessage.Text = Server.HtmlEncode(text); LblMessage.CssClass = success ? "alert alert-success" : "alert alert-danger"; LblMessage.Visible = true; }
}
}