コード例 #1
0
        public void ParametrizarAdmin()
        {
            PerfilDTO dtoPerfil = new PerfilDTO();

            dtoPerfil.SocialName = "Administradores do Sistema";
            dtoPerfil.Utilizador = "administrador";

            List <PerfilDTO> perfis = PerfilRN.GetInstance().ObterPorFiltro(dtoPerfil);

            if (perfis.Count == 0)
            {
                // Cria o Perfil Administrador Caso nao Exista;
                dtoPerfil.Descricao = "Grupo com Acesso Total no Sistema";
                dtoPerfil.Email     = "";
                dtoPerfil.Situacao  = "A"; //(A) - Activo ; (I) - Inactivo ; (E) - Excluido
                dtoPerfil           = PerfilRN.GetInstance().InserirPerfil(dtoPerfil);
                UtilizadorDTO dto = new UtilizadorDTO();

                dto.Email           = "";
                dto.SocialName      = "Administrador do Sistema";
                dto.CurrentPassword = "******";
                dto.Utilizador      = "administrador";
                dto.Situacao        = "A"; // (A)- Activo; (I) - Inactivo; (B) - Bloqueiado
                dto.Perfil          = dtoPerfil;
                dto = UtilizadorRN.GetInstance().Adicionar(dto);
            }
            else
            {
                dtoPerfil = perfis[0];
            }

            PerfilRN.GetInstance().DefineAcessoPerfilAdministradoresSistema();
        }
コード例 #2
0
        public static UtilizadorRN GetInstance()
        {
            if (_instancia == null)
            {
                _instancia = new UtilizadorRN();
            }

            return(_instancia);
        }
コード例 #3
0
        public AcessoDTO TryReloadSession(AcessoDTO dto)
        {
            dto = daoAcesso.GetLastSession(dto);

            if (dto.Codigo > 0)
            {
                TimeSpan SessionTime = DateTime.Now - dto.HoraLogin;

                if (SessionTime.TotalHours <= 24)
                {
                    var userDetails = UtilizadorRN.GetInstance().ObterPorPK(new UtilizadorDTO(dto.Utilizador));
                    dto.CurrentPassword = userDetails.CurrentPassword;
                    dto.SocialName      = userDetails.SocialName;
                    dto.UserProfile     = userDetails.Perfil.Codigo;
                    dto.Supervisor      = userDetails.Supervisor;
                    dto.IsCashRegister  = userDetails.IsCashRegister;
                    return(ReloadSessionSettings(dto, dto.HoraLogin.Year, dto.CurrentSystem, new EmpresaDTO {
                        Codigo = int.Parse(dto.Filial)
                    }));
                }
            }

            return(null);
        }
コード例 #4
0
        public AcessoDTO Entrar(AcessoDTO acesso)
        {
            try
            {
                //Obter a Empresa Princial do Sistema
                EmpresaDTO entidade = EmpresaRN.GetInstance().ObterEmpresaSistema();

                acesso.FuncionarioID = acesso.Codigo.ToString();

                // Obter a Série de Facturação
                int SerieFaturacao = GetPeriodoFaturacao(entidade.Codigo);

                if (string.IsNullOrEmpty(entidade.MensagemErro))
                {
                    if (entidade.Codigo == 0)
                    {
                        if (isMasterAdmin(acesso.Utilizador))
                        {
                            acesso.Url = "CreateBranch";
                        }
                        else
                        {
                            acesso.MensagemErro = "Ops!! a sua conta de Utilizador não tem autorização para  acessar o Sistema";
                        }
                    }
                    else if (SerieFaturacao <= 0)
                    {
                        acesso.MensagemErro = "O Sistema não tem uma Série de Facturação configurada. Deve Contactar a Equipa da LucanSoft para configuração do mesmo";
                    }
                    else
                    {
                        bool userTemAcessoAoSistema = false;

                        if (!acesso.IsRestUser)
                        {
                            if (string.IsNullOrEmpty(acesso.Filial)) // A partir da Página de Login
                            {
                                userTemAcessoAoSistema = UtilizadorRN.GetInstance().isAccessAllowed(acesso.Utilizador, acesso.CurrentPassword);
                            }
                            else
                            {
                                userTemAcessoAoSistema = true;

                                /*
                                 * var userDetails = UtilizadorRN.GetInstance().ObterPorPK(new UtilizadorDTO { Utilizador = acesso.Utilizador });
                                 * acesso.CurrentPassword = userDetails.CurrentPassword;*/
                            }
                        }
                        else
                        {
                            // Em caso de Utilizador Vindo Módulo de Restauração(KitandaRest)
                            var PostOfSales = PosRN.GetInstance().GetPostOfSalesDetails(new PosDTO
                            {
                                Codigo = acesso.Codigo,
                                Filial = "-1"
                            });

                            if (PostOfSales != null && PostOfSales.Estado == 1)
                            {
                                if (PostOfSales.PinCode == "fc0iUkg331qk3V8HY6MWvQ==" || PostOfSales.PinCode == string.Empty)
                                {
                                    acesso.MensagemErro = "ShowModal('" + acesso.Utilizador + "', '" + acesso.Codigo + "');";
                                }
                                else if (PostOfSales.PinCode == acesso.CurrentPassword)
                                {
                                    userTemAcessoAoSistema = true;
                                    acesso.CurrentPassword = PostOfSales.CurrentPassword;
                                }
                                else
                                {
                                    acesso.MensagemErro = "PIN Incorrecto, digite novamente";
                                }
                            }
                            else
                            {
                                acesso.MensagemErro = "A Conta de Utilizador ou Posto de Venda desactivado";
                            }
                        }

                        if (userTemAcessoAoSistema)
                        {
                            acesso.Codigo = entidade.Codigo;
                            GenericRN clsGeneric = new GenericRN();

                            /*
                             * Tuple<bool, string> serverCredencials = clsGeneric.CheckServer();
                             *
                             * IPHostEntry hostEntry = Dns.GetHostEntry(serverCredencials.Item2);
                             *
                             * if (!serverCredencials.Item1 && serverCredencials.Item2!=dto.IP)
                             * {
                             *  hostEntry = Dns.GetHostEntry(serverCredencials.Item2);
                             *  string hostName = hostEntry.HostName;
                             * }
                             *
                             * if (!LicenseRN.GetInstance().ExistLicFile(acesso.Url))
                             * {
                             *  if (isMasterAdmin(acesso.Utilizador))
                             *  {
                             *      var licenca = LicenseRN.GetInstance().GenerateLicense(new LicencaDTO
                             *      {
                             *          Filial = entidade.NomeCompleto,
                             *          HostName = acesso.ServerName,
                             *          HostMacAddress = acesso.IP,
                             *          LicType = "F"
                             *      }, acesso.Url);
                             *
                             *      acesso.MensagemErro = licenca.MensagemErro!="" ? licenca.MensagemErro : string.Empty;
                             *  }
                             *  else
                             *  {
                             *      acesso.MensagemErro = "O Sistema não tem Licença Válida";
                             *  }
                             * }
                             * else
                             * {
                             *  var IsValidLicense = LicenseRN.GetInstance().GetSystemValidLicense(new LicencaDTO
                             *  {
                             *      HostName = acesso.ServerName
                             *  });
                             *
                             *  if (!IsValidLicense.Item1)
                             *  {
                             *      acesso.MensagemErro = IsValidLicense.Item2;
                             *  }
                             * }*/
                        }
                        else
                        {
                            if (acesso.MensagemErro == string.Empty)
                            {
                                acesso.MensagemErro = "Ops!! O nome de Utilizador ou a senha estão incorrectos. Volte a Tentar";
                            }
                        }


                        if (userTemAcessoAoSistema && acesso.MensagemErro == string.Empty)
                        {
                            string pFrom = acesso.IsRestUser ? LOCKSCREEN : string.Empty;
                            IniciarSessao(acesso, SerieFaturacao, acesso.CurrentSystem, pFrom, acesso.Filial);
                        }
                    }
                }
                else
                {
                    acesso.MensagemErro = "Ocorreu um erro ao durante a obtenção dos dados da empresa licenciada: " + entidade.MensagemErro;
                }
            }catch (Exception ex)
            {
                acesso.MensagemErro = "Erro durante a entrada no Sistema: " + ex.Message.Replace("'", "");
            }

            return(acesso);
        }
コード例 #5
0
        private AcessoDTO IniciarSessao(AcessoDTO pAcesso, int pSerieFaturacao, string pSys, string pFrom, string pEmpresaSeleccionada)
        {
            try
            {
                UtilizadorDTO user = UtilizadorRN.GetInstance().ObterPorPK(new UtilizadorDTO(pAcesso.Utilizador));

                pAcesso.UserID          = user.Codigo;
                pAcesso.Utilizador      = user.Utilizador;
                pAcesso.SocialName      = user.SocialName;
                pAcesso.UserProfile     = user.Perfil.Codigo;
                pAcesso.Supervisor      = user.Supervisor;
                pAcesso.CurrentPassword = user.CurrentPassword;

                EmpresaDTO        empresa;
                List <EmpresaDTO> filiais;

                if (isMasterAdmin(user.Utilizador))
                {
                    filiais = EmpresaRN.GetInstance().ObterTodas();
                    ParametrizarAdmin();
                    foreach (var unidade in filiais)
                    {
                        EmpresaRN.GetInstance().IncluirUtilizador(new UtilizadorDTO(user.Utilizador, unidade.Codigo));
                    }
                }
                else
                {
                    filiais = EmpresaRN.GetInstance().ObterMinhasFiliais(user.Utilizador);
                }

                empresa = !string.IsNullOrEmpty(pEmpresaSeleccionada) ? filiais.Where(t => t.Codigo == int.Parse(pEmpresaSeleccionada)).ToList().FirstOrDefault() : filiais.FirstOrDefault();

                if (empresa == null)
                {
                    if (isMasterAdmin(user.Utilizador))
                    {
                        pAcesso.Url = "RegistarSucursal";
                    }
                    else
                    {
                        pAcesso.MensagemErro = "Lamentamos, mas a sua conta de Utilizador não tem permissão para aceder as Unidades Filiais do Sistema. Por favor contacte o Administrador do Sistema.";
                    }
                }
                else
                {
                    if (filiais.Count > 1 && string.IsNullOrEmpty(pEmpresaSeleccionada))
                    {
                        pAcesso.Url         = "BranchSelection";
                        pAcesso.Sucesso     = true;
                        pAcesso.CompanyName = "Seleccione a Empresa";
                        pAcesso.CompanyLogo = "../template/app-assets/upload/favicon.png";
                    }
                    else
                    {
                        pAcesso = LoadSelectedBranchSettings(pAcesso, pSerieFaturacao, pSys, pFrom, empresa);
                    }
                }
            }
            catch (Exception ex)
            {
                pAcesso.MensagemErro = "alert('Ocorreu um Erro durante no inicio de Sessão: " + ex.Message.Replace("'", "") + "');";
            }


            return(pAcesso);
        }
コード例 #6
0
 private void ParametrizarAdmin()
 {
     UtilizadorRN.GetInstance().ParametrizarAdmin();
 }
コード例 #7
0
 // Obter os Módulo do Perfil e Pelo Utilizador(HOME e MENU HORIZONTAL)
 public List <PermissaoModuloDTO> ListaModulosNoMenu(UtilizadorDTO dto)
 {
     dto = UtilizadorRN.GetInstance().ObterPorPK(dto);
     return(daoPermissaoUtilizador.ObterModulosDoMenu(dto));
 }