Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 5
0
        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);
                            }
                        }
                    }
                }
            });
        }
Ejemplo n.º 6
0
        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;
        }
Ejemplo n.º 7
0
		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);
        }
Ejemplo n.º 10
0
 public UserAuthDetails UpdateUserAuthDetails(UserAuthDetails user)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 11
0
 public void DeleteUserAuthDetails(UserAuthDetails user)
 {
     throw new NotImplementedException();
 }