Exemple #1
0
        public IEnumerable <object> GetUsersByCompany(int id)
        {
            try
            {
                using (var db = new Adlumen2SocEntities())
                {
                    var users = db.Database.SqlQuery <UserWithRole>(@"
SELECT su.IdUsuario, su.Nombre, anr.Name as Role
FROM Sys_Usuarios su
LEFT JOIN Sys_Usuarios_Empresas sue ON su.IdUsuario = sue.IdUsuario
LEFT JOIN AspNetUsers anu ON su.IdUsuario = anu.IdLocal
LEFT JOIN AspNetUserRoles anur ON anu.Id = anur.UserId
LEFT JOIN AspNetRoles anr ON anr.Id = anur.RoleId
WHERE sue.IdEmpresa = @p0
AND anr.Name IN ('digitador', 'evaluador', 'gerente')
AND anu.IdTenant = @p1", id, TenantUtil.GetTenantFromUrl().Id).ToList();

                    return(users);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
        private void RenderReport(string reportpath, List <ReportParameter> parameters = null)
        {
            var User            = ConfigurationManager.AppSettings["reporting:user"];
            var Pass            = ConfigurationManager.AppSettings["reporting:pass"];
            var ReportServerUrl = ConfigurationManager.AppSettings["reporting:url"];

            var uri  = new Uri(ReportServerUrl);
            var irsc = new CustomReportCredentials(User, Pass, string.Empty);

            viewer.Visible = true;
            viewer.ServerReport.ReportServerCredentials = irsc;
            viewer.ServerReport.ReportServerUrl         = new Uri(uri.AbsoluteUri);
            viewer.ServerReport.ReportPath = reportpath;

            parameters.Add(new ReportParameter("ConnectionString",
                                               ConfigurationManager.ConnectionStrings["Reporting"].ConnectionString));

            var tenant = TenantUtil.GetTenantFromUrl();

            if (tenant == null)
            {
                throw new Exception("no tenant");
            }

            parameters.Add(new ReportParameter("IdTenant", tenant.Id.ToString()));

            if (parameters != null && parameters.Count != 0)
            {
                viewer.ServerReport.SetParameters(parameters);
            }
            viewer.ServerReport.Refresh();
        }
        public async Task AuthenticateAsync(HttpAuthenticationContext context, CancellationToken cancellationToken)
        {
            var url    = context.Request.RequestUri;
            var tenant = TenantUtil.GetTenantFromUrl(url);

            if (tenant == null)
            {
                context.ErrorResult = new RedirectResult(new Uri("http://www.adlumen.org/"), context.Request);
            }
            else
            {
                //context.HttpContext.Session["Tenant"] = tenant;
            }
        }
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            base.OnActionExecuting(filterContext);

            var url    = filterContext.HttpContext.Request.Url;
            var tenant = TenantUtil.GetTenantFromUrl(url);

            if (tenant == null)
            {
                filterContext.Result = new RedirectResult("http://www.adlumen.org");
            }
            else
            {
                //HttpContext.Current.Session["Tenant"] = tenant;
            }
        }
        public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            var allowedOrigin = "*";

            context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { allowedOrigin });

            var userManager = context.OwinContext.GetUserManager <ApplicationUserManager>();

            ApplicationUser user = await userManager.FindAsync(context.UserName, context.Password);

            if (user == null)
            {
                context.SetError("invalid_grant", "The user name or password is incorrect.");
                return;
            }

            var tenant = TenantUtil.GetTenantFromUrl(context.Request.Uri);

            if (tenant == null || tenant.Id != user.IdTenant)
            {
                context.SetError("wrong_tenant", "The user doesn't exist in this company.");
                return;
            }

            if (!user.EmailConfirmed)
            {
                context.SetError("invalid_grant", "User did not confirm email.");
                return;
            }

            ClaimsIdentity oAuthIdentity = await user.GenerateUserIdentityAsync(userManager, "JWT");

            oAuthIdentity.AddClaims(ExtendedClaimsProvider.GetClaims(user));
            oAuthIdentity.AddClaims(RolesFromClaims.CreateRolesBasedOnClaims(oAuthIdentity));

            var ticket = new AuthenticationTicket(oAuthIdentity, null);

            context.Validated(ticket);
        }