bug[TW19497]: Allow UserToken and createUsers to taken SENTINEL

Change-Id: Ib36eb8056dbb98da9c8124a81cd76a84d550d8a2
diff --git a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/data/UserToken.java b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/data/UserToken.java
index f65b5a4..b9f9e8d 100644
--- a/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/data/UserToken.java
+++ b/plugins/org.eclipse.osee.framework.core/src/org/eclipse/osee/framework/core/data/UserToken.java
@@ -48,6 +48,15 @@
       return new UserTokenImpl(id, name, userId, active, email, java.util.Collections.singleton(userId), roles);
    }
 
+   public static UserToken create(String name, String email, String userId, boolean active, IUserGroupArtifactToken... roles) {
+      return new UserTokenImpl(ArtifactId.SENTINEL.getId(), name, userId, active, email,
+         java.util.Collections.singleton(userId), roles);
+   }
+
+   public static @NonNull UserToken create(ArtifactId id, String name, String email, String userId, boolean active, Collection<String> loginIds, IUserGroupArtifactToken... roles) {
+      return new UserTokenImpl(id.getId(), name, userId, active, email, loginIds, roles);
+   }
+
    public static @NonNull UserToken create(long id, String name, String email, String userId, boolean active, Collection<String> loginIds, IUserGroupArtifactToken... roles) {
       return new UserTokenImpl(id, name, userId, active, email, loginIds, roles);
    }
diff --git a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/access/UserServiceImpl.java b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/access/UserServiceImpl.java
index 16c9c92..63d8096 100644
--- a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/access/UserServiceImpl.java
+++ b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/access/UserServiceImpl.java
@@ -186,7 +186,12 @@
          if (existingUsers.contains(userToken)) {
             throw new OseeStateException("User %s already exists", userToken);
          }
-         ArtifactId user = tx.createArtifact(userToken);
+         ArtifactId user = null;
+         if (userToken.isValid()) {
+            user = tx.createArtifact(userToken);
+         } else {
+            user = tx.createArtifact(CoreArtifactTypes.User, userToken.getName());
+         }
          tx.setSoleAttributeValue(user, CoreAttributeTypes.Active, userToken.isActive());
          tx.setSoleAttributeValue(user, CoreAttributeTypes.UserId, userToken.getUserId());
          tx.setSoleAttributeValue(user, CoreAttributeTypes.Email, userToken.getEmail());