public static bool CheckAuthorization(EnumAcessoTipo AuthLevel,
                                       string AuthDescription,
                                       Form formOrigem = null)
 {
     if (Program.usuarioAtual.UsuarioAcesso <= (byte)AuthLevel)
     {
         return(true);
     }
     else
     {
         return(GetAuthorization(AuthLevel, AuthDescription, formOrigem));
     }
 }
        //=================================================================================================
        // GET NEW LOGIN ACESSO
        //=================================================================================================
        public objUsuario GetAuthorization(
            string UsuarioApelido,
            string UsuarioSenha,
            EnumAcessoTipo UsuarioAcesso = EnumAcessoTipo.Usuario_Local,             // usuario_local = 4
            string AuthDescription       = "Acesso Login"
            )
        {
            AcessoDados db = new AcessoDados();

            db.LimparParametros();
            db.AdicionarParametros("@UsuarioApelido", UsuarioApelido);
            db.AdicionarParametros("@UsuarioSenha", UsuarioSenha);
            db.AdicionarParametros("@UsuarioAcesso", UsuarioAcesso);
            db.AdicionarParametros("@AuthDescription", AuthDescription);
            db.AdicionarParametros("@AuthDate", DateTime.Now);

            try
            {
                DataTable dt = db.ExecutarConsulta(CommandType.StoredProcedure, "uspUserGetAuthorization");

                if (dt.Rows.Count == 0)
                {
                    TentativasAcesso += 1;
                    throw new AppException("Não há Usuários no sistema, comunique com o administrador...");
                }

                DataRow row = dt.Rows[0];

                if (row.ItemArray.Length == 1)
                {
                    TentativasAcesso += 1;
                    throw new AppException(dt.Rows[0].ItemArray[0].ToString());
                }

                objUsuario UsuarioAtual = new objUsuario((int)row["IDUsuario"])
                {
                    UsuarioAcesso  = (byte)row["UsuarioAcesso"],
                    UsuarioApelido = (string)row["UsuarioApelido"]
                };

                return(UsuarioAtual);
            }
            catch (AppException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private static bool GetAuthorization(EnumAcessoTipo AuthLevel,
                                             string AuthDescription,
                                             Form formOrigem = null)
        {
            var frmA = new Main.frmUserAuthorization(AuthDescription, formOrigem);

            frmA.ShowDialog();

            if (frmA.DialogResult != DialogResult.OK)
            {
                return(false);
            }

            try
            {
                // --- Ampulheta ON
                Cursor.Current = Cursors.WaitCursor;

                //--- GET User Data
                var    db  = new AcessoControlBLL();
                object obj = db.GetAuthorization(frmA.propUser, frmA.propSenha, AuthLevel, AuthDescription);

                if (obj.GetType() == typeof(objUsuario))
                {
                    return(true);
                }
                else
                {
                    AbrirDialog("Uma falha ocorreu na autorização:\n" + obj.ToString(),
                                "Autorização Negada",
                                DialogType.OK,
                                DialogIcon.Warning);
                    return(false);
                }
            }
            catch (Exception ex)
            {
                AbrirDialog("Uma exceção ocorreu ao obter a autorização..." + "\n" +
                            ex.Message, "Exceção", DialogType.OK, DialogIcon.Exclamation);
                return(false);
            }
            finally
            {
                // --- Ampulheta OFF
                Cursor.Current = Cursors.Default;
            }
        }