/// <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; } }
/// <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); }