public IUser CreateUser(OpenAuthCreateUserParams createUserParams)
        {
            string emailAddress = string.Empty;

            if (createUserParams.UserName.IsEmailAddress())
            {
                emailAddress = createUserParams.UserName;
            }

            var creatingContext = new CreatingOpenAuthUserContext(createUserParams.UserName, emailAddress, createUserParams.ProviderName, createUserParams.ProviderUserId, createUserParams.ExtraData);

            _openAuthUserEventHandlers.Invoke(o => o.Creating(creatingContext), Logger);

            var createdUser = _membershipService.CreateUser(new CreateUserParams(
                                                                _usernameService.Calculate(createUserParams.UserName),
                                                                _passwordGeneratorService.Generate(),
                                                                creatingContext.EmailAddress,
                                                                @T("Auto Registered User").Text,
                                                                _passwordGeneratorService.Generate() /* Noone can guess this */,
                                                                true
                                                                ));

            var createdContext = new CreatedOpenAuthUserContext(createdUser, createUserParams.ProviderName, createUserParams.ProviderUserId, createUserParams.ExtraData);

            _openAuthUserEventHandlers.Invoke(o => o.Created(createdContext), Logger);

            return(createdUser);
        }
Exemple #2
0
        public IUser CreateUser(OpenAuthCreateUserParams createUserParams)
        {
            string emailAddress = string.Empty;

            if (createUserParams.UserName.IsEmailAddress())
            {
                emailAddress = createUserParams.UserName;
            }
            else
            {
                foreach (var key in createUserParams.ExtraData.Keys)
                {
                    switch (key.ToLower())
                    {
                    case "mail":
                    case "email":
                    case "e-mail":
                    case "email-address":
                        emailAddress = createUserParams.ExtraData[key];
                        break;
                    }
                }
            }

            createUserParams.UserName = _usernameService.Normalize(createUserParams.UserName);
            var creatingContext = new CreatingOpenAuthUserContext(
                createUserParams.UserName, emailAddress,
                createUserParams.ProviderName, createUserParams.ProviderUserId, createUserParams.ExtraData);

            _openAuthUserEventHandlers.Invoke(o => o.Creating(creatingContext), Logger);

            // check UserName
            if (String.IsNullOrEmpty(createUserParams.UserName))
            {
                return(null);
            }
            else
            {
                // The default IMemebershipService from Orchard.Users fires the following user events:
                // Creating, Created, and Approved (see the last parameter of the CreateUserParams)
                var createdUser = _membershipService.CreateUser(new CreateUserParams(
                                                                    _usernameService.Calculate(createUserParams.UserName), // this tries to make a unique username by adding a number to its end
                                                                    _passwordGeneratorService.Generate(),
                                                                    creatingContext.EmailAddress,
                                                                    @T("Auto Registered User").Text,
                                                                    _passwordGeneratorService.Generate() /* Noone can guess this */,
                                                                    true,
                                                                    false
                                                                    ));

                // _membershipService.CreateUser may fail and return null
                if (createdUser != null)
                {
                    var createdContext = new CreatedOpenAuthUserContext(createdUser,
                                                                        createUserParams.ProviderName, createUserParams.ProviderUserId, createUserParams.ExtraData);
                    _openAuthUserEventHandlers.Invoke(o => o.Created(createdContext), Logger);
                }
                return(createdUser);
            }
        }
        public void CreateOrUpdateAccount(string providerName, string providerUserId,
                                          IUser user, IDictionary <string, string> providerUserData = null)
        {
            if (user == null)
            {
                throw new MembershipCreateUserException(MembershipCreateStatus.ProviderError);
            }

            var record = _userProviderServices.Get(providerName, providerUserId);

            var providerData = providerUserData == null
                ? null
                : providerUserData.ToJson();

            var eventContext = new CreatedOpenAuthUserContext(user,
                                                              providerName, providerUserId, providerUserData);

            if (record == null)
            {
                _userProviderServices.Create(providerName, providerUserId, user, providerData);
                _openAuthUserEventHandler.ProviderRecordCreated(eventContext);
            }
            else
            {
                _userProviderServices.Update(providerName, providerUserId, user, providerData);
            }
            _openAuthUserEventHandler.ProviderRecordUpdated(eventContext);
        }
 public void ProviderRecordUpdated(CreatedOpenAuthUserContext context)
 {
     _workflowManager.TriggerEvent("OpenAuthRecordUpdated",
                                   context.User.ContentItem,
                                   () => new Dictionary <string, object> {
         { "User", context.User },
         { "ProviderName", context.ProviderName },
         { "ProviderUserId", context.ProviderUserId },
         { "ExtraData", context.ExtraData }
     });
 }
Exemple #5
0
 public void Created(CreatedOpenAuthUserContext context)
 {
 }
Exemple #6
0
 public void ProviderRecordUpdated(CreatedOpenAuthUserContext context)
 {
 }