@DomainNode
class IMSUser(displayName: String, email: String?, avatar: URI?, username: String?, val templatedFields: MutableMap<String, String>) : User, TemplatedNode

A user an IMS. This user might be linked to a GropiusUser. Note that this link can change at any time. The username might not be unique. It is possible that this user never heard of Gropius, and is only known to the system due to sync adapters.

Constructors

Link copied to clipboard
constructor(displayName: String, email: String?, avatar: URI?, username: String?, templatedFields: MutableMap<String, String>)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
@NodeRelationship(type = "USER", direction = Direction.INCOMING)
@FilterProperty
val assignments: LazyLoadingDelegate<Assignment, NodeSetPropertyDelegate.NodeSetProperty>

Assignments the user is part of, this includes assignments which aren't active.

Link copied to clipboard
var avatar: URI?
Link copied to clipboard
@NodeRelationship(type = "CREATED_BY", direction = Direction.INCOMING)
@FilterProperty
val createdNodes: LazyLoadingDelegate<AuditedNode, NodeSetPropertyDelegate.NodeSetProperty>

AuditedNodes the user created.

Link copied to clipboard
@FilterProperty
@OrderProperty
@SearchProperty
var displayName: String

The name which should be displayed for the user.

Link copied to clipboard
@FilterProperty
@OrderProperty
var email: String?

The email address of the user.

Link copied to clipboard
internal var fieldCache: MutableMap<String, Any?>
Link copied to clipboard
val graphQLId: ID

The unique id of this node

Link copied to clipboard
@NodeRelationship(type = "GROPIUS_USER", direction = Direction.OUTGOING)
@FilterProperty
val gropiusUser: LazyLoadingDelegate<GropiusUser?, NodePropertyDelegate.NodeProperty>

The GropiusUser this IMSUser is linked to. An IMSUser might be linked to no GropiusUser.

Link copied to clipboard
@Id
@GeneratedValue(generatorRef = "nodeIdGenerator")
internal var id: String?
Link copied to clipboard
@NodeRelationship(type = "USER", direction = Direction.INCOMING)
@FilterProperty
val ims: LazyLoadingDelegate<IMS, NodePropertyDelegate.NodeProperty>

The IMS this user is part of.

Link copied to clipboard
Link copied to clipboard
internal var isSaved: Boolean
Link copied to clipboard
@ConvertWith(converter = LazyLoadingContextConverter::class)
internal var lazyLoadingContext: LazyLoadingContext?
Link copied to clipboard
@Version
private var nodeVersion: Long

Version used for optimistic locking

Link copied to clipboard
internal var orderFields: MutableMap<String, Any?>?
Link copied to clipboard
@NodeRelationship(type = "PARTICIPANT", direction = Direction.INCOMING)
@FilterProperty
val participatedIssues: LazyLoadingDelegate<Issue, NodeSetPropertyDelegate.NodeSetProperty>

Issues the user participated in.

Link copied to clipboard
internal val propertyLookup: MutableMap<String, PropertyDelegate<*>>
Link copied to clipboard
Link copied to clipboard
@NodeRelationship(type = "USED_IN", direction = Direction.INCOMING)
@FilterProperty
open override val template: LazyLoadingDelegate<IMSUserTemplate, NodePropertyDelegate.NodeProperty>

Template associated with the TemplatedNode

Link copied to clipboard

The values for all templated fields. The schema is defined by the Template of this node

Link copied to clipboard
@FilterProperty
@OrderProperty
@SearchProperty
var username: String?

Functions

Link copied to clipboard
fun avatar(@Autowired avatarGenerationService: AvatarGenerationService): URI

The avatar of the user.

Link copied to clipboard
operator override fun equals(other: Any?): Boolean
Link copied to clipboard
internal suspend fun getFromGraphQL(@Autowired nodeQueryParser: NodeQueryParser, dataFetchingEnvironment: DataFetchingEnvironment): Any?
Link copied to clipboard
internal fun <T : PropertyDelegate<*>> getProperty(property: KProperty1<*, *>): T
Link copied to clipboard
override fun hashCode(): Int
Link copied to clipboard
internal suspend fun <T : Node?> loadNodesOfRelationship(property: KProperty1<*, *>, loader: LazyLoadingSubqueryGenerator<T>.() -> Unit?)
Link copied to clipboard
protected fun <T : Node?> NodeProperty(): PropertyDelegateProvider<Node, NodePropertyDelegate<T>>
Link copied to clipboard
protected fun <T : Node> NodeSetProperty(): PropertyDelegateProvider<Node, NodeSetPropertyDelegate<T>>
Link copied to clipboard
internal fun registerQueryResult(entry: NodeQueryEntry<*>, queryResult: Any?)
Link copied to clipboard
open fun templatedField(name: String, @Autowired objectMapper: ObjectMapper): JsonNode?

Value of a field defined by the template. Error if such a field is not defined.

Link copied to clipboard
open fun templatedFields(names: List<String>?, prefixMatching: Boolean?, @Autowired objectMapper: ObjectMapper): List<JSONField>

All templatedFields If `names` is provided, only those matching the name. If `prefixMatching` is true, matching is done by prefix, otherwise by full name.

Link copied to clipboard
open override fun toString(): String
Link copied to clipboard
open override fun username(): String?

The username of the IMSUser. Synced from the IMS this user is part of. Might not be unique.