Exemplo n.º 1
0
        /// <summary>
        /// Carrega as permissões no módulo para o grupo do usuário e url que ele está acessando.
        /// </summary>
        /// <param name="sis_id">ID do sistema ao qual o grupo pertence</param>
        /// <param name="gru_id">ID do grupo</param>
        /// <param name="url">
        /// Informar url nos formatos ~/myapp/pagina.aspx, ~/pagina.aspx, /myapp/pagina.asx ou /pagina.aspx.
        /// </param>
        /// <param name="entModulo">
        /// Entidade de Módulo carregada, quando a entidade GrupoPermissao estiver preenchida ela
        /// também estará.
        /// </param>
        /// <returns></returns>
        public static SYS_GrupoPermissao GetGrupoPermissao_Grupo_By_Url(int sis_id, Guid gru_id, string url, out SYS_Modulo entModulo)
        {
            entModulo = new SYS_Modulo();
            SYS_GrupoPermissao entGrupoPermissao = new SYS_GrupoPermissao();

            url = ResolveUrl(url);

            if (sis_id <= 0)
            {
                throw new ArgumentException("Sistema não informado/encontrado.");
            }

            DataTable dtGrupoPermissao = new SYS_GrupoPermissaoDAO().CarregarGrupos_Urls_PorSistema(gru_id, url, sis_id);

            if (dtGrupoPermissao.Rows.Count > 0)
            {
                // Busca os valores pra carregar as entidades.
                entGrupoPermissao = new SYS_GrupoPermissaoDAO().DataRowToEntity(dtGrupoPermissao.Rows[0], entGrupoPermissao);
                entModulo         = new SYS_ModuloDAO().DataRowToEntity(dtGrupoPermissao.Rows[0], entModulo);
            }

            return(entGrupoPermissao);
        }
        /// <summary>
        /// Carrega a entidade SYS_GrupoPermissao atraves do grupo
        /// e da url do módulo se houver. caso contrario retorna um
        /// objeto vázio.
        /// </summary>
        /// <param name="gru_id">Grupo do usuário</param>
        /// <param name="msm_url">Url do moódulo</param>
        /// <returns>Autenticador.Entities.SYS_GrupoPermissao</returns>
        public SYS_GrupoPermissao CarregarBy_url(Guid gru_id, string msm_url)
        {
            SYS_GrupoPermissao         entity = new SYS_GrupoPermissao();
            QuerySelectStoredProcedure qs     = new QuerySelectStoredProcedure("NEW_SYS_GrupoPermissao_LoadBy_url", this._Banco);

            try
            {
                #region PARAMETROS

                Param               = qs.NewParameter();
                Param.DbType        = DbType.Guid;
                Param.ParameterName = "@gru_id";
                Param.Size          = 16;
                Param.Value         = gru_id;
                qs.Parameters.Add(Param);

                Param               = qs.NewParameter();
                Param.DbType        = DbType.AnsiString;
                Param.ParameterName = "@msm_url";
                Param.Size          = 500;
                Param.Value         = msm_url;
                qs.Parameters.Add(Param);

                #endregion PARAMETROS

                qs.Execute();
                if (qs.Return.Rows.Count > 0)
                {
                    entity = this.DataRowToEntity(qs.Return.Rows[0], entity, false);
                }
                return(entity);
            }
            catch
            {
                throw;
            }
        }
Exemplo n.º 3
0
    /// <summary>
    /// Função recursiva, utilizada para configurar
    /// módulos e grupos de permissões
    /// </summary>
    /// <param name="lstPermissao">List de entidade SYS_GrupoPermissao</param>
    /// <param name="grvPermissao">GridView de permissão</param>
    /// <returns></returns>
    protected List <SYS_GrupoPermissao> AddGrupoPermissao(List <SYS_GrupoPermissao> lstPermissao, GridView grvPermissao)
    {
        List <SYS_GrupoPermissao> lst = new List <SYS_GrupoPermissao>();
        int sis_id = 0;
        int mod_id = 0;

        foreach (GridViewRow row in grvPermissao.Rows)
        {
            sis_id = Convert.ToInt32(grvPermissao.DataKeys[row.DataItemIndex].Values["sis_id"]);
            mod_id = Convert.ToInt32(grvPermissao.DataKeys[row.DataItemIndex].Values["mod_id"]);

            SYS_GrupoPermissao entityGrupoPermissao = new SYS_GrupoPermissao
            {
                gru_id = new Guid(grvPermissao.DataKeys[row.DataItemIndex].Values["gru_id"].ToString())
                ,
                sis_id = sis_id
                ,
                mod_id = mod_id
            };

            CheckBox chkConsulta = (CheckBox)row.FindControl("chkConsulta");
            entityGrupoPermissao.grp_consultar = chkConsulta != null && chkConsulta.Checked;

            CheckBox chkInserir = (CheckBox)row.FindControl("chkInserir");
            entityGrupoPermissao.grp_inserir = chkInserir != null && chkInserir.Checked;

            CheckBox chkAlterar = (CheckBox)row.FindControl("chkEditar");
            entityGrupoPermissao.grp_alterar = chkAlterar != null && chkAlterar.Checked;

            CheckBox chkExcluir = (CheckBox)row.FindControl("chkExcluir");
            entityGrupoPermissao.grp_excluir = chkExcluir != null && chkExcluir.Checked;

            lst.Add(entityGrupoPermissao);

            // Verifica se existe módulos filhos, caso exista utiliza recursividade
            GridView grvPermissoesChild = (GridView)row.FindControl("grvPermissoesChild");
            if (grvPermissoesChild != null)
            {
                if (grvPermissoesChild.Rows.Count > 0)
                {
                    lst = AddGrupoPermissao(lst, grvPermissoesChild);
                }
            }
        }

        // Obtém o módulo pai e Verifica se já está existe na estrutura de dados
        int mod_id_pai       = SYS_GrupoBO.GetSelectPermissoesBy_ModuloPai(mod_id, sis_id).FirstOrDefault();
        int mod_id_pai_index = lstPermissao.FindIndex(p => p.mod_id == mod_id_pai && p.sis_id == sis_id);

        // Verifica se algum dos módulos possui permissão
        if (SYS_GrupoBO.GetSelectPermissoesBy_Estado(lst).Count == 0)
        {
            // Caso nenhum módulo possua permissão, o módulo pai também não terá permissão
            SYS_GrupoPermissao p = new SYS_GrupoPermissao
            {
                gru_id        = _VS_gru_id,
                sis_id        = sis_id,
                mod_id        = mod_id_pai,
                grp_consultar = false,
                grp_inserir   = false,
                grp_alterar   = false,
                grp_excluir   = false
            };

            if (mod_id_pai_index < 0)
            {
                lstPermissao.Add(p);
            }
            else
            {
                lstPermissao[mod_id_pai_index] = p;
            }
        }
        else
        {
            // Caso algum módulo possua permissão, o módulo pai também terá permissão
            SYS_GrupoPermissao p = new SYS_GrupoPermissao
            {
                gru_id        = _VS_gru_id,
                sis_id        = sis_id,
                mod_id        = mod_id_pai,
                grp_consultar = true,
                grp_inserir   = true,
                grp_alterar   = true,
                grp_excluir   = true
            };

            if (mod_id_pai_index < 0)
            {
                lstPermissao.Add(p);
            }
            else
            {
                lstPermissao[mod_id_pai_index] = p;
            }
        }

        lstPermissao = lstPermissao.Union(lst).ToList();
        return(lstPermissao);
    }
 /// <summary>
 /// Recebe o valor do auto incremento e coloca na propriedade
 /// </summary>
 /// <param name="qs">Objeto da Store Procedure</param>
 protected override bool ReceberAutoIncremento(QuerySelectStoredProcedure qs, SYS_GrupoPermissao entity)
 {
     return(true);
 }