Exemplo n.º 1
0
        /// <summary>
        /// Gets a <see cref="User"/> by <see cref="User.UserName"/>.
        /// </summary>
        /// <param name="userName">Name of the user.</param>
        /// <returns></returns>
        /// <remarks>Adds new user if user doesn't exist</remarks>
        public virtual User GetUser(string userName)
        {
            if (string.IsNullOrWhiteSpace(userName))
            {
                throw new ArgumentException("userName cannot be null or whitespace.");
            }

            SitecoreUser sitecoreUser = GetUserInternal(userName);

            if (sitecoreUser == null)
            {
                throw new NullReferenceException(string.Format("'sitecoreUser' is null. Looked for: '{0}'", userName));
            }

            var name = sitecoreUser.LocalName;

            if (string.IsNullOrWhiteSpace(name))
            {
                throw new ArgumentException(string.Format("The 'sitecoreUser.userName' cannot be null or whitespace. LocalName: {0}, Domain: {1}, AccountType: {2}, Name: {3}", sitecoreUser.LocalName, sitecoreUser.Domain, sitecoreUser.AccountType, sitecoreUser.Name));
            }

            // Using static method on User to avoid circular
            // dependency between IRepository<T> and this service.
            // We need user info for audit in repo.
            var user = User.SingleOrDefault(x => x.ExternalId == name);

            return(MapUser(sitecoreUser));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Get the <see cref="User"/> currently logged in.
        /// </summary>
        /// <returns></returns>
        /// <remarks>
        /// Defaults to the current <see cref="WindowsIdentity"/> if not running in a web context.
        /// </remarks>
        public virtual User GetCurrentUser()
        {
            if (CurrentUser == null)
            {
                CurrentUser = GetUser(CurrentUserNameService.CurrentUserName);
            }

            return(CurrentUser);
        }
Exemplo n.º 3
0
 protected virtual User GetOrCreateUser(SitecoreUser sitecoreUser)
 {
     lock (_lock)
     {
         var user = User.SingleOrDefault(u => u.ExternalId.ToUpper() == sitecoreUser.LocalName.ToUpper());
         if (user == null)
         {
             user            = new User(sitecoreUser.LocalName);
             user.ExternalId = sitecoreUser.LocalName;
             user.UserGroups = _userGroupService.GetAllUserGroups().Where(x => x.ExternalId.ToUpper() == sitecoreUser.LocalName.ToUpper()).ToList();
             if (user.ExternalId != null)
             {
                 user.Save();
             }
         }
         return(user);
     }
 }
Exemplo n.º 4
0
        /// <summary>
        /// Gets all users from sitecore, mapped as a <see cref="User"/>.
        /// </summary>
        /// <returns></returns>
        public virtual IList <User> GetAllUsers()
        {
            if (_allUsers == null)
            {
                var sitecoreUsers = GetSitecoreUsersInternal();

                var users = User.All().ToList();

                _allUsers = new List <User>();

                foreach (var scUser in sitecoreUsers)
                {
                    var user = MapUser(scUser);

                    _allUsers.Add(user);
                }
            }

            return(_allUsers);
        }