public virtual IUser SaveUser(IUser user)
        {
            UserEntity userEntity = (UserEntity)user;

            // encrypt password
            userEntity.EncryptPassword();

            if (userEntity.Revision == 0)
            {
                CheckAuthorization(Permissions.Create, Resources.User, null);
                Add(userEntity);
                CreateDefaultAuthorizations(userEntity);
            }
            else
            {
                CheckAuthorization(Permissions.Update, Resources.User, user.Id);
                Merge(userEntity);
            }

            return(userEntity);
        }