protected static async Task <ClaimsIdentity> CreateCookieIdentity(IlevusUser user, IlevusUserManager userManager) { ClaimsIdentity oAuthIdentity = await user.GenerateUserIdentityAsync(userManager, CookieAuthenticationDefaults.AuthenticationType); oAuthIdentity.AddClaims(IlevusPermissionsProvider.GetPermissionClaims(user, oAuthIdentity)); return(oAuthIdentity); }
public static IEnumerable <Claim> GetPermissionClaims(IlevusUser user, ClaimsIdentity identity) { List <Claim> claims = new List <Claim>(); if (identity.HasClaim(ClaimTypes.Role, "SysAdmin")) { claims.Add(CreateClaim("All")); } return(claims); }
private AccountPayment CreateORetrieveStripeAccount(IlevusUser professionalUser) { AccountPayment accountStripe = null; if (professionalUser.Professional.AccountPayment == null) { accountStripe = CreateAccount(professionalUser); professionalUser.Professional.AccountPayment = accountStripe; UserManager.Update(professionalUser); } return(professionalUser.Professional.AccountPayment); }
public void MakePayment(HireServiceModel model, IlevusUserManager userManager) { UserManager = userManager; IlevusUser professionalUser = RetrieveUserByService(model.service.Id); UserService servicoToHire = professionalUser.Professional.Services.FirstOrDefault(x => x.Id == model.service.Id); BuyAService(servicoToHire, model); // Verificando se o profissional ja tem conta no stripe. se nao tem se cria. AccountPayment accountStripe = CreateORetrieveStripeAccount(professionalUser); TransferToProfessional(servicoToHire.Price, accountStripe); }
public IEnumerable Get() { IlevusDBContext repository = IlevusDBContext.Create(); //User.Identity.Name IlevusUser user = UserManager.FindByName(User.Identity.Name); if (user.AccountCustumer == null) { return(null); } var lista = MongoContext.Current.Find <PaymentsCustomer>(x => x.Customer.Id == user.AccountCustumer.Id); return(lista.ToList()); }
public AccountPayment UpdateAccountWithLegalEntity(IlevusUser user) { var accountLocal = Mapper.Map <AccountPayment>(user); var legalPayment = Mapper.Map <StripeAccountLegalEntityOptions>(accountLocal); var accountUpdateOptions = new StripeAccountUpdateOptions { TosAcceptanceDate = DateTime.Now, TosAcceptanceIp = GetLocalIPAddress(), LegalEntity = legalPayment }; var account = accountService.Update(accountLocal.Id, accountUpdateOptions); return(Mapper.Map <AccountPayment>(account)); }
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { IlevusUserManager userManager = context.OwinContext.GetUserManager <IlevusUserManager>(); IlevusUser user = await userManager.FindAsync(context.UserName, context.Password); if (user == null) { context.SetError("invalid_grant", Messages.AuthInvalidUserCredentials); return; } ClaimsIdentity cookiesIdentity = await CreateCookieIdentity(user, userManager); context.Request.Context.Authentication.SignIn(cookiesIdentity); ClaimsIdentity oAuthIdentity = await CreateOAuthIdentity(user, userManager); AuthenticationProperties properties = CreateProperties(user.UserName); AuthenticationTicket ticket = new AuthenticationTicket(oAuthIdentity, properties); context.Validated(ticket); }
public bool AccountIsValid(IlevusUser user) { //Email = accountLocal.Email, //Type = StripeAccountType.Custom, //Country = accountLocal.Country, //DefaultCurrency = accountLocal.DefaultCurrency //.ForMember(para => para.BirthDay, de => de.MapFrom(o => o.DateBirth.Day)) // .ForMember(para => para.BirthMonth, de => de.MapFrom(o => o.DateBirth.Month)) // .ForMember(para => para.BirthYear, de => de.MapFrom(o => o.DateBirth.Year)) // .ForMember(para => para.FirstName, de => de.MapFrom(o => o.FirstName)) // .ForMember(para => para.LastName, de => de.MapFrom(o => o.LastName)) // .ForMember(para => para.PersonalIdNumber, de => de.MapFrom(o => o.PersonalIdNumber)) // .ForMember(para => para.Type, de => de.MapFrom(o => "individual")) // .ForMember(para => para.AddressCity, de => de.MapFrom(o => o.Address.City)) // .ForMember(para => para.AddressPostalCode, de => de.MapFrom(o => o.Address.PostalCode)) // .ForMember(para => para.AddressLine1, de => de.MapFrom(o => o.Address.Line1)) // .ForMember(para => para.AddressLine2, de => de.MapFrom(o => o.Address.Line2)) // .ForMember(para => para.AddressState, de => de.MapFrom(o => o.Address.State)); return(true); }
public async Task <ManageInfoViewModel> GetManageInfo(string returnUrl, bool generateState = false) { IlevusUser user = await UserManager.FindByIdAsync(User.Identity.GetUserId()); if (user == null) { return(null); } List <UserLoginInfoViewModel> logins = new List <UserLoginInfoViewModel>(); foreach (UserLoginInfo linkedAccount in user.Logins) { logins.Add(new UserLoginInfoViewModel { LoginProvider = linkedAccount.LoginProvider, ProviderKey = linkedAccount.ProviderKey }); } if (user.PasswordHash != null) { logins.Add(new UserLoginInfoViewModel { LoginProvider = LocalLoginProvider, ProviderKey = user.UserName, }); } return(new ManageInfoViewModel { LocalLoginProvider = LocalLoginProvider, Email = user.UserName, Logins = logins, ExternalLoginProviders = GetExternalLogins(returnUrl, generateState) }); }
public AccountPayment CreateAccount(IlevusUser user) { var accountLocal = Mapper.Map <AccountPayment>(user); var legalPayment = Mapper.Map <StripeAccountLegalEntityOptions>(accountLocal); var accountOptions = new StripeAccountCreateOptions() { Email = accountLocal.Email, Type = StripeAccountType.Custom, Country = accountLocal.Country, DefaultCurrency = accountLocal.DefaultCurrency, TransferScheduleWeeklyAnchor = "monday", TransferScheduleInterval = "weekly", TosAcceptanceDate = DateTime.Now, TosAcceptanceIp = GetLocalIPAddress(), LegalEntity = legalPayment }; StripeAccount account = accountService.Create(accountOptions); user.Professional.AccountPayment = Mapper.Map <AccountPayment>(account); return(Mapper.Map <AccountPayment>(account)); }
public static async Task <JObject> GenerateLocalAccessTokenResponse(IlevusUser user, IlevusUserManager userManager, IOwinContext context) { ClaimsIdentity cookiesIdentity = await CreateCookieIdentity(user, userManager); context.Request.Context.Authentication.SignIn(cookiesIdentity); ClaimsIdentity oAuthIdentity = await CreateOAuthIdentity(user, userManager); AuthenticationProperties properties = CreateProperties(user.UserName); AuthenticationTicket ticket = new AuthenticationTicket(oAuthIdentity, properties); var accessToken = Startup.OAuthBearerOpts.AccessTokenFormat.Protect(ticket); JObject tokenResponse = new JObject( new JProperty("userName", user.UserName), new JProperty("access_token", accessToken), new JProperty("token_type", "bearer"), new JProperty("expires_in", Startup.OAuthAuthzOpts.AccessTokenExpireTimeSpan.TotalSeconds.ToString()), new JProperty(".issued", ticket.Properties.IssuedUtc.ToString()), new JProperty(".expires", ticket.Properties.ExpiresUtc.ToString()) ); return(tokenResponse); }
public async Task <object> Index() { //return View(); HttpResponseMessage result; try { if (Request.RequestUri.Segments.Length == 2) { IlevusUser user = null; if (System.Text.RegularExpressions.Regex.IsMatch(Request.RequestUri.Segments[1], @"\A\b[0-9a-fA-F]+\b\Z")) { user = await UserManager.FindByIdAsync(Request.RequestUri.Segments[1]); } // tentativa de buscar pelo nomeUrl if (user == null) { var db = IlevusDBContext.Create(); var builder = Builders <IlevusUser> .Filter; var filters = builder.Eq("Professional.NomeURL", Request.RequestUri.Segments[1]); var collection = db.GetUsersCollection(); var results = await collection.FindAsync(filters); var users = await results.ToListAsync(); if (users.Count > 0) { string uri = Request.RequestUri.Scheme + "://" + Request.RequestUri.Authority + "?p=" + Request.RequestUri.Segments[1]; return(Redirect(uri)); } } //var path = HttpContext.Current.Server.MapPath("~/index.html"); //result = new HttpResponseMessage(HttpStatusCode.OK); //result.Content = new ByteArrayContent(File.ReadAllBytes(path)); //result.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html"); } if (Env == "development") { var path = HttpContext.Current.Server.MapPath("~/index.html"); result = new HttpResponseMessage(HttpStatusCode.OK); result.Content = new ByteArrayContent(File.ReadAllBytes(path)); result.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html"); //string uri = HttpContext.Current.Request.Url + "build/Debug/index.html"; //return Redirect(uri); } else { var path = HttpContext.Current.Server.MapPath("~/index.html"); result = new HttpResponseMessage(HttpStatusCode.OK); result.Content = new ByteArrayContent(File.ReadAllBytes(path)); result.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html"); } return(result); } catch (Exception ex) { Console.Write(ex.Message); throw ex; } }
//Create [email protected] with password=Admin@12345 in the Admin role public static void InitializeIdentity(IlevusIdentityContext db) { var userManager = new IlevusUserManager(new IlevusUserStore(db)); var roleManager = new IlevusRoleManager(new IlevusRoleStore(db)); const string email = "*****@*****.**"; const string password = "******"; const string roleName = "SysAdmin"; //Create Role Admin if it does not exist var role = roleManager.FindByName(roleName); if (role == null) { role = new IlevusRole(roleName) { Description = "Todas as permissões do sistema." }; var roleresult = roleManager.Create(role); } var user = userManager.FindByName(email); if (user == null) { user = new IlevusUser { UserName = email, Email = email, EmailConfirmed = true, Name = "Administrador", Surname = "do Sistema", Sex = "M", PhoneNumber = "031 999999999", Image = null, Professional = new UserProfessionalEntity() { City = "Belo Horizonte", County = "Minas Gerais", Country = "Brasil", Address = "Sede da Ilevus", } }; var result = userManager.Create(user, password); result = userManager.SetLockoutEnabled(user.Id, false); } // Add user admin to Role Admin if not already added var rolesForUser = userManager.GetRoles(user.Id); if (!rolesForUser.Contains(role.Name)) { var result = userManager.AddToRole(user.Id, role.Name); } const string userEmail = "*****@*****.**"; const string userPassword = "******"; const string userRoleName = "User"; //Create Role Admin if it does not exist var userRole = roleManager.FindByName(userRoleName); if (userRole == null) { userRole = new IlevusRole(userRoleName) { Description = "Usuário comum do sistema." }; roleManager.Create(userRole); } var commonUser = userManager.FindByName(userEmail); if (commonUser == null) { commonUser = new IlevusUser { UserName = userEmail, Email = userEmail, EmailConfirmed = true, Name = "Usuário", Surname = "Exemplo", Sex = "M", PhoneNumber = "031 988888888", Image = null, Professional = new UserProfessionalEntity() { City = "Belo Horizonte", County = "Minas Gerais", Country = "Brasil", Address = "Sede da Ilevus", } }; var result = userManager.Create(commonUser, userPassword); result = userManager.SetLockoutEnabled(commonUser.Id, false); } // Add user admin to Role Admin if not already added var rolesForCommonUser = userManager.GetRoles(commonUser.Id); if (!rolesForCommonUser.Contains(userRole.Name)) { var result = userManager.AddToRole(commonUser.Id, userRole.Name); } }