protected void Page_Load(object sender, EventArgs e)
        {
            settingsMasterPage = (SettingsMasterPage)Page.Master;
            settingsMasterPage.InitializeMasterPageComponents();

            int     loginId;
            Boolean isNumeric = int.TryParse(Request.QueryString["loginId"], out loginId);

            if (!isNumeric)
            {
                EmbedClientScript.ShowErrorMessage(this, "Os parâmetros passados para a página não estão em um formato válido.", true);
                return;
            }

            Tenant tenant = (Tenant)Session["tenant"];

            loginDAO = new LoginDAO(settingsMasterPage.dataAccess.GetConnection());
            AccountingLib.Entities.Login login = loginDAO.GetLogin(tenant.id, loginId);
            if (login == null)
            {
                login          = new AccountingLib.Entities.Login();
                login.tenantId = tenant.id;
            }

            SettingsInput settingsInput = new SettingsInput(settingsArea, null);

            settingsInput.AddHidden("txtId", login.id.ToString());
            settingsInput.AddHidden("txtTenantId", login.tenantId.ToString());
            settingsInput.AddHidden("txtPassword", login.password);
            settingsInput.Add("txtUsername", "Login", login.username);
            settingsInput.AddDropDownList("cmbUserGroup", "Grupo/Permissão", login.userGroup, typeof(UserGroupEnum));
        }
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            AccountingLib.Entities.Login login = new AccountingLib.Entities.Login();
            try
            {
                foreach (String fieldName in Request.Form)
                {
                    if (fieldName.Contains("txtId"))
                    {
                        login.id = int.Parse(Request.Form[fieldName]);
                    }
                    if (fieldName.Contains("txtTenantId"))
                    {
                        login.tenantId = int.Parse(Request.Form[fieldName]);
                    }
                    if (fieldName.Contains("txtPassword"))
                    {
                        login.password = Request.Form[fieldName];
                    }
                    if (fieldName.Contains("txtUsername"))
                    {
                        login.username = Request.Form[fieldName];
                        if (String.IsNullOrEmpty(login.username))
                        {
                            throw new FormatException();
                        }
                    }
                    if (fieldName.Contains("cmbUserGroup"))
                    {
                        login.userGroup = int.Parse(Request.Form[fieldName]);
                    }
                }
            }
            catch (System.FormatException)
            {
                EmbedClientScript.ShowErrorMessage(this, "Os valores informados não estão em um formato válido!");
                return;
            }

            try
            {
                ResourceProtector.RectifyPassword(login); // caso o login seja novo gera a senha padrão
                loginDAO.SetLogin(login);
                EmbedClientScript.CloseWindow(this);
            }
            catch (Exception genericException)
            {
                if (genericException.Message.Contains("Violation of UNIQUE KEY"))
                {
                    EmbedClientScript.ShowErrorMessage(this, "Este login já existe!");
                    return;
                }

                EmbedClientScript.ShowErrorMessage(this, genericException.Message);
            }
        }
예제 #3
0
        private String Welcome()
        {
            // Dia da semana (palavra começando em maísculo)
            String currentDate = DateTime.Now.ToString("dddd");

            currentDate = char.ToUpper(currentDate[0]) + currentDate.Substring(1);
            // Adiciona informações sobre dia, mês e ano
            currentDate = currentDate + DateTime.Now.ToString(", dd {0} MMMM {0} yyyy");
            currentDate = String.Format(currentDate, "de");
            // Mensagem de boas vindas
            AccountingLib.Entities.Login login = (AccountingLib.Entities.Login)Session["login"];
            String welcomeMessage = String.Format("Bem vindo(a), {0}", login.username);

            return(welcomeMessage + "<br>" + currentDate);
        }
예제 #4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            accountingMasterPage = (AccountingMasterPage)Page.Master;
            accountingMasterPage.InitializeMasterPageComponents();
            dataAccess = accountingMasterPage.dataAccess;

            if (!Authorization.AuthorizedAsAdministrator(Session))
            {
                // Mostra aviso de falta de autorização
                ShowWarning(Authorization.GetWarning());
                return;
            }

            int     loginId;
            Boolean paramExists = !String.IsNullOrEmpty(Request.QueryString["loginId"]);
            Boolean isNumeric   = int.TryParse(Request.QueryString["loginId"], out loginId);

            if ((paramExists) && (!isNumeric))
            {
                // Mostra aviso de inconsistência nos parâmetros
                ShowWarning(ArgumentBuilder.GetWarning());
                return;
            }

            loginDAO = new LoginDAO(dataAccess.GetConnection());
            if (paramExists) // Se o parametro existe é uma exclusão
            {
                loginDAO.RemoveLogin(loginId);
                Response.Redirect("ConfigLogins.aspx"); // Limpa a QueryString para evitar erros
            }

            Tenant        tenant        = (Tenant)Session["tenant"];
            List <Object> loginList     = loginDAO.GetAllLogins(tenant.id);
            int           defaultItemId = 0;

            if (loginList.Count > 0)
            {
                // Considera como sendo item default o primeiro login criado para o tenant
                AccountingLib.Entities.Login defaultItem = (AccountingLib.Entities.Login)loginList[0];
                defaultItemId = defaultItem.id;
            }

            String[] columnNames  = new String[] { "Login", "Grupo/Permissão" };
            String   alterScript  = "window.open('LoginSettings.aspx?loginId=' + {0}, 'Settings', 'width=540,height=600');";
            String   removeScript = "var confirmed = confirm('Deseja realmente excluir este login?'); if (confirmed) window.location='ConfigLogins.aspx?loginId=' + {0};";

            EditableListButton[] buttons = new EditableListButton[]
            {
                // Botões que devem aparecer para os items da lista
                new EditableListButton("Editar", alterScript, ButtonTypeEnum.Edit),
                new EditableListButton("Excluir", removeScript, ButtonTypeEnum.Remove)
            };
            EditableList editableList = new EditableList(configurationArea, columnNames, buttons);

            editableList.PreserveDefaultItem();
            foreach (AccountingLib.Entities.Login login in loginList)
            {
                UserGroupEnum userGroup = (UserGroupEnum)login.userGroup;

                String[] loginProperties = new String[]
                {
                    login.username,
                    AssociatedText.GetFieldDescription(typeof(UserGroupEnum), userGroup.ToString())
                };
                Boolean isDefaultItem = login.id == defaultItemId;
                if (!isDefaultItem)
                {
                    editableList.InsertItem(login.id, false, loginProperties);
                }
            }
            editableList.DrawList();

            // O clique do botão chama o script de alteração passando "id = 0", a tela de alteração
            // interpreta "id = 0" como "criar um novo", o id é então gerado no banco de dados.
            btnNovo.Attributes.Add("onClick", String.Format(alterScript, 0));
        }