public IUserAuthDetails CreateOrMergeAuthSession(IAuthSession authSession, IAuthTokens tokens) { var userAuth = GetUserAuth(authSession, tokens); var details = new UserAuthDetails { Provider = tokens.Provider, UserId = tokens.UserId }; details.PopulateMissing(tokens, overwriteReserved: true); userAuth.PopulateMissingExtended(details); userAuth.ModifiedDate = DateTime.UtcNow; if (userAuth.CreatedDate == default(DateTime)) { userAuth.CreatedDate = userAuth.ModifiedDate; } UpdateUserAuth(userAuth, userAuth); details.UserAuthId = userAuth.Id; details.ModifiedDate = userAuth.ModifiedDate; if (details.CreatedDate == default(DateTime)) { details.CreatedDate = userAuth.ModifiedDate; } // Save.. return(details); }
public IUserAuthDetails CreateOrMergeAuthSession(IAuthSession authSession, IAuthTokens tokens) { var userAuth = GetUserAuth(authSession, tokens) ?? new UserAuth(); var query = Query.And( Query.EQ("Provider", tokens.Provider), Query.EQ("UserId", tokens.UserId) ); var providerCollection = mongoDatabase.GetCollection <UserAuthDetails>(UserOAuthProvider_Col); var authDetails = providerCollection.FindOne(query); if (authDetails == null) { authDetails = new UserAuthDetails { Provider = tokens.Provider, UserId = tokens.UserId, }; } authDetails.PopulateMissing(tokens); userAuth.PopulateMissingExtended(authDetails); userAuth.ModifiedDate = DateTime.UtcNow; if (userAuth.CreatedDate == default(DateTime)) { userAuth.CreatedDate = userAuth.ModifiedDate; } SaveUser((UserAuth)userAuth); if (authDetails.Id == default(int)) { authDetails.Id = IncUserOAuthProviderCounter(); } authDetails.UserAuthId = userAuth.Id; if (authDetails.CreatedDate == default(DateTime)) { authDetails.CreatedDate = userAuth.ModifiedDate; } authDetails.ModifiedDate = userAuth.ModifiedDate; providerCollection.Save(authDetails); return(authDetails); }
public string CreateOrMergeAuthSession(IAuthSession authSession, IAuthTokens tokens) { var userAuth = GetUserAuth(authSession, tokens) ?? new UserAuth(); using (var session = _documentStore.OpenSession()) { var oAuthProvider = session .Query <ServiceStack_UserAuth_ByOAuthProvider.Result, ServiceStack_UserAuth_ByOAuthProvider>() .Customize(x => x.WaitForNonStaleResultsAsOfNow()) .Where(q => q.Provider == tokens.Provider && q.UserId == tokens.UserId) .OfType <UserAuthDetails>() .FirstOrDefault(); if (oAuthProvider == null) { oAuthProvider = new UserAuthDetails { Provider = tokens.Provider, UserId = tokens.UserId, }; } oAuthProvider.PopulateMissing(tokens); userAuth.PopulateMissingExtended(oAuthProvider); userAuth.ModifiedDate = DateTime.UtcNow; if (userAuth.CreatedDate == default(DateTime)) { userAuth.CreatedDate = userAuth.ModifiedDate; } session.Store(userAuth); session.SaveChanges(); oAuthProvider.UserAuthId = userAuth.Id; if (oAuthProvider.CreatedDate == default(DateTime)) { oAuthProvider.CreatedDate = userAuth.ModifiedDate; } oAuthProvider.ModifiedDate = userAuth.ModifiedDate; session.Store(oAuthProvider); session.SaveChanges(); return(oAuthProvider.UserAuthId.ToString(CultureInfo.InvariantCulture)); } }
public string CreateOrMergeAuthSession(IAuthSession authSession, IAuthTokens tokens) { var userAuth = (UserAuth)GetUserAuth(authSession, tokens) ?? new UserAuth(); var oAuthProvider = Session.QueryOver <UserAuthDetails>() .Where(x => x.Provider == tokens.Provider) .And(x => x.UserId == tokens.UserId) .SingleOrDefault(); if (oAuthProvider == null) { oAuthProvider = new UserAuthDetails { Provider = tokens.Provider, UserId = tokens.UserId, }; } oAuthProvider.PopulateMissing(tokens); userAuth.PopulateMissingExtended(oAuthProvider); userAuth.ModifiedDate = DateTime.UtcNow; if (userAuth.CreatedDate == default(DateTime)) { userAuth.CreatedDate = userAuth.ModifiedDate; } Session.Save(new UserAuthPersistenceDto(userAuth)); oAuthProvider.UserAuthId = userAuth.Id; if (oAuthProvider.CreatedDate == default(DateTime)) { oAuthProvider.CreatedDate = userAuth.ModifiedDate; } oAuthProvider.ModifiedDate = userAuth.ModifiedDate; Session.Save(oAuthProvider); return(oAuthProvider.UserAuthId.ToString(CultureInfo.InvariantCulture)); }
public void Register(IAppHost appHost) { appHost.RegisterService(typeof(AdminUsersService)); appHost.AddToAppMetadata(meta => { var host = (ServiceStackHost)appHost; var authRepo = host.GetAuthRepository(); if (authRepo == null) { return; } using (authRepo as IDisposable) { IUserAuth userAuth = new UserAuth(); IUserAuthDetails userAuthDetails = new UserAuthDetails(); if (authRepo is ICustomUserAuth customUserAuth) { userAuth = customUserAuth.CreateUserAuth(); userAuthDetails = customUserAuth.CreateUserAuthDetails(); } var nativeTypesMeta = appHost.TryResolve <INativeTypesMetadata>() as NativeTypesMetadata ?? new NativeTypesMetadata(HostContext.AppHost.Metadata, new MetadataTypesConfig()); var metaGen = nativeTypesMeta.GetGenerator(); var plugin = meta.Plugins.AdminUsers = new AdminUsersInfo { AccessRole = AdminRole, Enabled = new List <string>(), UserAuth = metaGen.ToFlattenedType(userAuth.GetType()), UserAuthDetails = metaGen.ToFlattenedType(userAuthDetails.GetType()), AllRoles = HostContext.Metadata.GetAllRoles(), AllPermissions = HostContext.Metadata.GetAllPermissions(), QueryUserAuthProperties = QueryUserAuthProperties, }; if (authRepo is IQueryUserAuth) { plugin.Enabled.Add("query"); } if (authRepo is ICustomUserAuth) { plugin.Enabled.Add("custom"); } if (authRepo is IManageRoles) { plugin.Enabled.Add("manageRoles"); } if (IncludeUserAuthProperties != null) { var map = plugin.UserAuth.Properties.ToDictionary(x => x.Name); plugin.UserAuth.Properties = new List <MetadataPropertyType>(); foreach (var includeProp in IncludeUserAuthProperties) { if (map.TryGetValue(includeProp, out var prop)) { plugin.UserAuth.Properties.Add(prop); } } } if (IncludeUserAuthDetailsProperties != null) { var map = plugin.UserAuthDetails.Properties.ToDictionary(x => x.Name); plugin.UserAuthDetails.Properties = new List <MetadataPropertyType>(); foreach (var includeProp in IncludeUserAuthDetailsProperties) { if (map.TryGetValue(includeProp, out var prop)) { plugin.UserAuthDetails.Properties.Add(prop); } } } } }); }
public IUserAuthDetails CreateOrMergeAuthSession(IAuthSession authSession, IAuthTokens tokens) { var userAuth = GetUserAuth(authSession, tokens) ?? new UserAuth(); var query = Query.And( Query.EQ("Provider", tokens.Provider), Query.EQ("UserId", tokens.UserId) ); var providerCollection = mongoDatabase.GetCollection<UserAuthDetails>(UserOAuthProvider_Col); var authDetails = providerCollection.FindOne(query); if (authDetails == null) { authDetails = new UserAuthDetails { Provider = tokens.Provider, UserId = tokens.UserId, }; } authDetails.PopulateMissing(tokens); userAuth.PopulateMissingExtended(authDetails); userAuth.ModifiedDate = DateTime.UtcNow; if (userAuth.CreatedDate == default(DateTime)) userAuth.CreatedDate = userAuth.ModifiedDate; SaveUser((UserAuth)userAuth); if (authDetails.Id == default(int)) authDetails.Id = IncUserOAuthProviderCounter(); authDetails.UserAuthId = userAuth.Id; if (authDetails.CreatedDate == default(DateTime)) authDetails.CreatedDate = userAuth.ModifiedDate; authDetails.ModifiedDate = userAuth.ModifiedDate; providerCollection.Save(authDetails); return authDetails; }
public string CreateOrMergeAuthSession(IAuthSession authSession, IAuthTokens tokens) { var userAuth = GetUserAuth(authSession, tokens) ?? new UserAuth(); var query = Query.And( Query.EQ("Provider", tokens.Provider), Query.EQ("UserId", tokens.UserId) ); var providerCollection = mongoDatabase.GetCollection<UserAuthDetails>(UserOAuthProvider_Col); var oAuthProvider = providerCollection.FindOne(query); if (oAuthProvider == null) { oAuthProvider = new UserAuthDetails { Provider = tokens.Provider, UserId = tokens.UserId, }; } oAuthProvider.PopulateMissing(tokens); userAuth.PopulateMissingExtended(oAuthProvider); userAuth.ModifiedDate = DateTime.UtcNow; if (userAuth.CreatedDate == default(DateTime)) userAuth.CreatedDate = userAuth.ModifiedDate; SaveUser((UserAuth)userAuth); if (oAuthProvider.Id == default(int)) oAuthProvider.Id = IncUserOAuthProviderCounter(); oAuthProvider.UserAuthId = userAuth.Id; if (oAuthProvider.CreatedDate == default(DateTime)) oAuthProvider.CreatedDate = userAuth.ModifiedDate; oAuthProvider.ModifiedDate = userAuth.ModifiedDate; providerCollection.Save(oAuthProvider); return oAuthProvider.UserAuthId.ToString(CultureInfo.InvariantCulture); }
public string CreateOrMergeAuthSession(IAuthSession authSession, IAuthTokens tokens) { var userAuth = GetUserAuth(authSession, tokens) ?? new UserAuth(); using (var session = _documentStore.OpenSession()) { var oAuthProvider = session .Query<ServiceStack_UserAuth_ByOAuthProvider.Result, ServiceStack_UserAuth_ByOAuthProvider>() .Customize(x => x.WaitForNonStaleResultsAsOfNow()) .Where(q => q.Provider == tokens.Provider && q.UserId == tokens.UserId) .OfType<UserAuthDetails>() .FirstOrDefault(); if (oAuthProvider == null) { oAuthProvider = new UserAuthDetails { Provider = tokens.Provider, UserId = tokens.UserId, }; } oAuthProvider.PopulateMissing(tokens); userAuth.PopulateMissingExtended(oAuthProvider); userAuth.ModifiedDate = DateTime.UtcNow; if (userAuth.CreatedDate == default(DateTime)) userAuth.CreatedDate = userAuth.ModifiedDate; session.Store(userAuth); session.SaveChanges(); oAuthProvider.UserAuthId = userAuth.Id; if (oAuthProvider.CreatedDate == default(DateTime)) oAuthProvider.CreatedDate = userAuth.ModifiedDate; oAuthProvider.ModifiedDate = userAuth.ModifiedDate; session.Store(oAuthProvider); session.SaveChanges(); return oAuthProvider.UserAuthId.ToString(CultureInfo.InvariantCulture); } }
public string CreateOrMergeAuthSession(IAuthSession authSession, IAuthTokens tokens) { var userAuth = (UserAuth)GetUserAuth(authSession, tokens) ?? new UserAuth(); var oAuthProvider = Session.QueryOver<UserAuthDetails>() .Where(x => x.Provider == tokens.Provider) .And(x => x.UserId == tokens.UserId) .SingleOrDefault(); if (oAuthProvider == null) { oAuthProvider = new UserAuthDetails { Provider = tokens.Provider, UserId = tokens.UserId, }; } oAuthProvider.PopulateMissing(tokens); userAuth.PopulateMissingExtended(oAuthProvider); userAuth.ModifiedDate = DateTime.UtcNow; if (userAuth.CreatedDate == default(DateTime)) userAuth.CreatedDate = userAuth.ModifiedDate; Session.Save(new UserAuthPersistenceDto(userAuth)); oAuthProvider.UserAuthId = userAuth.Id; if (oAuthProvider.CreatedDate == default(DateTime)) oAuthProvider.CreatedDate = userAuth.ModifiedDate; oAuthProvider.ModifiedDate = userAuth.ModifiedDate; Session.Save(oAuthProvider); return oAuthProvider.UserAuthId.ToString(CultureInfo.InvariantCulture); }
public UserAuthDetails UpdateUserAuthDetails(UserAuthDetails user) { throw new NotImplementedException(); }
public void DeleteUserAuthDetails(UserAuthDetails user) { throw new NotImplementedException(); }