private bool? IsPermitido(TPermissionCheck permissionCheck, int tipoPerm) { if (permissionCheck == null) return true; Usuarios objUsuario = permissionCheck.getUsuarioPermissao(); if (objUsuario != null) { if (objUsuario.GrupoUsuarios.Count() <= 0) return false; } else return null; Grupos objGrupo = null; GrupoVisoes objGrupoVisao = null; List<GrupoUsuarios> objGrupos = objUsuario.GrupoUsuarios.ToList(); foreach (var item_objGrupo in objGrupos) { objGrupo = item_objGrupo.Grupos; objGrupoVisao = objGrupo.GrupoVisoes.Where(x => x.Visao.Descricao == permissionCheck.getNomeControlador()).FirstOrDefault(); if (objGrupoVisao != null) { if (objGrupoVisao.Permissao.Where(x => x.Tipo == tipoPerm).Count() > 0) return true; } } return false; }
protected ActionResult ChecaPermissao(TPermissionCheck permissionCheck, EnumsIntuitive.TipoPermissao tipoPermissao) { bool? IsPerm = IsPermitido(permissionCheck, (int)tipoPermissao); if (IsPerm == false) return ErroPrivilegio(); else if (IsPerm == null) return RedirectToAction("Index", "Home"); return null; }
protected override void OnActionExecuting(ActionExecutingContext filterContext) { this._permissionCheck = new TPermissionCheck(getLoginUser(), "Abastecimento por Período"); base.OnActionExecuting(filterContext); }