/// <summary> /// Tras uma tabela de dados (DataTable) com as permissões de ações selecionadas para um determinado perfil passado por parametro /// </summary> /// <param name="id_perfil">id do perfil a ser consultado as acoes selecionadas</param> /// <returns>DataTable com dados</returns> public DataTable MontaGrid(int id_perfil) { Persistencia bd = new Persistencia(); DataTable grid_acoes = ListaAcoes(); grid_acoes.Columns.Add("chk", typeof(bool)); _sql = @"SELECT * from sis_permissoes WHERE per_id = @id_perfil"; bd.Cmd.Parameters.AddWithValue("@id_perfil", id_perfil); //carrega todas as permissoes do pefil slecionado DataTable permissoes_perfil = bd.dtFromSql(_sql); foreach (DataRow linhaA in grid_acoes.Rows) { /*para cada linha da lista de acoes checo se o id dessa acao existe na tabela permissoes que contem o id da acao e o id do perfil */ linhaA["chk"] = false; /* checked da linha recebe falso e é alterado par true caso o registro exista ou seja caso a id da acao exista na tabela permissoes para o id do perfil passado por parametro */ foreach (DataRow linhaP in permissoes_perfil.Rows) { //aqui é efetuada a verificação if (linhaP["act_id"].ToString() == linhaA["id"].ToString()) { linhaA["chk"] = true; } } } return grid_acoes; }
/// <summary> /// Atualiza as Permissoes do Perfil /// </summary> /// <returns>Retorna um inteiro com numero de linhas afetadas</returns> public int AtualizaPermissoes(int id_perfil, ArrayList novas_permissoes) { int linhasAtualizadas = 0; Persistencia bd = new Persistencia(); _sql = "DELETE FROM sis_permissoes Where per_id = @id_perfil"; bd.Cmd.Parameters.AddWithValue("@id_perfil", id_perfil); bd.ExecutaCmd(_sql);//limpa tudo; //INSERT INTO `graxcontrol`.`sis_permissoes` (`per_id`, `act_id`) VALUES (1, 0); _sql = "INSERT INTO sis_permissoes values (@id_perfil, @id_acao)"; foreach (string acao in novas_permissoes) { bd.Cmd.Parameters.Clear(); bd.Cmd.Parameters.AddWithValue("@id_perfil", id_perfil); bd.Cmd.Parameters.AddWithValue("@id_acao", acao); linhasAtualizadas+= bd.ExecutaCmd(_sql); } return linhasAtualizadas; }
/// <summary> /// Carrega um DataTable com a lista de perfis de usuário /// </summary> /// <returns>DataTable com dados</returns> public DataTable ListaPerfil() { Persistencia bd = new Persistencia(); _sql = "SELECT * FROM sis_perfil"; return bd.dtFromSql(_sql); }
/// <summary> /// Tras a lista de Acoes do Sistema /// </summary> /// <returns></returns> public DataTable ListaAcoes() { Persistencia bd = new Persistencia(); _sql = "SELECT * FROM sis_acoes"; return bd.dtFromSql(_sql); }