grouperText.grouper.textNg.en.us.base.properties Maven / Gradle / Ivy
Show all versions of grouper Show documentation
# The text config uses Grouper Configuration Overlays (documented on wiki)
# By default the configuration is read from the base file
# (which should not be edited), and the override overlays
# the base settings. See the grouper.text.en.us.base.properties for the possible
# settings that can be applied to the grouper.text.en.us.properties
# you can use ${' '} to put a space at start or end since values are trimmed
########################################
## Config chaining hierarchy
########################################
# comma separated config files that override each other (files on the right override the left)
# each should start with file: or classpath:
# e.g. classpath:grouperText/grouper.text.en.us.base.properties, file:c:/temp/grouperText/grouper.text.en.us.properties
text.config.hierarchy = classpath:grouperText/grouper.textNg.en.us.base.properties, classpath:grouperText/grouper.text.en.us.properties, database:grouper
# seconds between checking to see if the config files are updated
text.config.secondsBetweenUpdateChecks = 600
########################################
## nav.properties
########################################
#grouper
empty.space=
error.title=Error
error.general=An error has occurred which prevented the page from displaying. If the problem persists please contact your system administrator with the details below:
error.undefined=The nature of the error could not be determined
error.subtitle={0}
error.too.many.subject.results=Too many results, please narrow your search
error.too.many.subject.results.for.source=Too many results returned by one or more data sources - displaying truncated result set. Please narrow your search
error.too.many.subject.results.for.source.reminder=(truncated result set)
jsp.error=Error!
access.grouper=Access grouper
stem.root.display-name=Root
intersection=and (intersection)
union=or (union)
complement=not (complement) (minus)
attribute.required.indicator=*
attribute.required.info=*Required attribute
subject.view.yourself=View your own details
groups.help.link.group-math=Help for composite group math
groups.remove.all.success=All members were removed
groups.remove.selected.success={0} selected members were removed
groups.remove.none-selected=You did not select any members
groups.remove.unkown.error=Cannot determine which members to remove
groups.remove.composite.error=Cannot remove members from a composite group
groups.remove.no-privs.error=Insufficient privileges to remove members
groups.remove.all.warn=You are about to remove all members of this group. You cannot undo this operation. Are you sure?
groups.remove.warn=You are about to remove some members of this group. You cannot undo this operation. Are you sure?
groups.delete.warn=You are about to delete this group and all its memberships. You cannot undo this operation. Are you sure?
stems.delete.warn=You are about to delete this folder. You cannot undo this operation. Are you sure?
groups.composite-member.indicator=This is a composite group
groups.composite-member.composed-as=is composed of
tooltipTargetted.groups.composite-member.composed-as=Click to examine membership list for this group
groups.composite.remove=Remove composite group
groups.composite.add=Create composite group
groups.composite.add.insufficient-saved=You need more groups in the Group workspace to create a composite group. To add groups, browse or search for the groups you require, then go to the Group Summary page and click the `Add to group workspace` button.
groups.composite.replace=Replace composite factors
tooltipTargetted.groups.composite.replace=Select new factor group(s) used to create this composite group.
The current factor groups used to create this composite group will be removed.
groups.composite.members-replace=Create composite group
tooltipTargettd.groups.composite.members-replace=Remove all existing members of this group to begin creating a new composite group
groups.composite.rightGroup=Right group
groups.composite.leftGroup=Left group
groups.composite.type=Type
groups.composite.save.duplicate=You must choose two different groups to create a composite group
groups.composite.save.self-reference=You cannot make the parent group part of the composite group
groups.composite.save.success=The composite group was successfully saved
groups.add.member.error.circular=You cannot make a group a member of itself. Other assignments were completed
group.view-attribute.insufficient-privileges=*Insufficient privileges*
grouper.help=Help
groups.my=My memberships
groups.manage=Manage groups
groups.create=Create groups
groups.join=Join groups
groups.all=Explore
groups.help=Help
search.subjects=Search
saved.groups=Group workspace
saved.subjects=Entity workspace
saved.stems=Folder workspace
liteUi.list=Lite UI
grouptypes.list=Group types
grouptypes.list.can=View all group type definitions
grouptypes.label.internal=internal
grouptypes.label.field=Field
grouptypes.label.type=Type
grouptypes.label.required=Required
grouptypes.label.nullable=Nullable
grouptypes.label.read-priv=Read privilege
grouptypes.label.write-priv=Write privilege
wheelgroup.action.to-admin=Act as admin
wheelgroup.action.to-mortal=Act as self
wheelgroup.action.submit=Change
groups.my.link.title=Find groups where you are a member
groups.join.link.title=Find groups that you are eligible to join
groups.manage.link.title=Find groups where you may update membership lists or assign privileges to others
groups.create.link.title=Create new groups or folders, as permitted by location
groups.all.link.title=Explore all groups that are visible to you
groups.help.link.title=Display introduction and general help
groups.privilege.direct=has direct privileges
groups.privilege.indirect=has indirect privileges
stems.privilege.direct=has direct privileges
stems.privilege.indirect=has indirect privileges
search.subjects.link.title=Search for entities (people, groups, resources, etc.)
grouptypes.link.title=List group types and their fields
liteUi.link.title=Go to Lite UI
newUi.link.title=Go to New UI
groups.action.flatten=List my groups
groups.action.unflatten=Show folders and groups
groups.action.import-members=Import members to {0} {1} using format [{2}]
ui.error.not.in.required.group=Error, user {0} needs to be in one of the following groups: {1}
stems.action.flatten=Browse folders and groups
stems.action.unflatten=List my groups
stems.create=Create folders
stems.manage=Manage folders
groups.current-memberships=To find groups in which you are a member, you can:
- Browse the groups hierarchy
- List your groups
- Search for groups by name
groups.create.can=To find folders where you may create groups, you can:
- Browse the groups hierarchy
- List your folders
- Search for folders by name
audit.query.can='Show' the search form to view results for a different time period and/or sort results differently. Click on a link to see summary information for the named entity. Click 'Cancel' to quit this page.
#No longer used - se field.displayName
#groups.edit.name=Text ID
#groups.edit.display-name= Name
#groups.edit.description=Description
groups.edit.type=Select group types
groups.edit.cancel=Back to group summary
groups.move.cancel=Back to group summary
groups.move.destinationStem=Destination folder
tooltipTargetted.groups.move.destinationStem=Enter the ID Path of the destination folder. If you have folders saved in your folder workspace, you will have the option to select one of them or enter a different one.
groups.move.groupToMove=Group to move
tooltipTargetted.groups.move.groupToMove=Enter the ID Path of the group to move. If you have groups saved in your group workspace, you will have the option to select one of them or enter a different one.
groups.move.assignAlternateName=Set alternate name?
tooltipTargetted.groups.move.assignAlternateName=If you select this option, the alternate ID path of the group will be set to the group's old ID path.
groups.copy.cancel=Back to group summary
groups.copy.destinationStem=Destination folder
tooltipTargetted.groups.copy.destinationStem=Enter the ID Path of the destination folder. If you have folders saved in your folder workspace, you will have the option to select one of them or enter a different one.
groups.copy.groupToCopy=Group to copy
tooltipTargetted.groups.copy.groupToCopy=Enter the ID Path of the group to copy. If you have groups saved in your group workspace, you will have the option to select one of them or enter a different one.
groups.copy.copyAttributes=Copy attributes?
tooltipTargetted.groups.copy.copyAttributes=If you select this option, all custom attributes will be copied to the new group. If you do not have read access to all attributes in the group, you will get a privilege error.
groups.copy.copyListMembersOfGroup=Copy list memberships of the group?
tooltipTargetted.groups.copy.copyListMembersOfGroup=If you select this option, all members of the group in the default list along with any custom lists will be copied to the new group. If you do not have read access to any of the custom lists, you will get a privilege error.
groups.copy.copyPrivilegesOfGroup=Copy privileges of the group?
tooltipTargetted.groups.copy.copyPrivilegesOfGroup=If you select this option, all privileges of the group will be copied to the new group. If you do not have read access to any of the privileges, you will get a privilege error.
groups.copy.copyListGroupAsMember=Copy list memberships where the group is a member of other groups?
tooltipTargetted.groups.copy.copyListGroupAsMember=If you select this option and the group is a member of other groups, the new copied group will be added to the other groups' membership list. If you do not have access to add members to the other groups, you will get a privilege error.
groups.copy.copyGroupAsPrivilege=Copy privileges where the group has privileges to other groups or folders?
tooltipTargetted.groups.copy.copyGroupAsPrivilege=If you select this option and the group has privileges to other groups or folders, the new copied group will also be given privileges to those other groups or folders. If you do not have access to add privileges to the other groups or folders, you will get a privilege error.
stems.move.destinationStem=Destination folder
tooltipTargetted.stems.move.destinationStem=Enter the ID Path of the destination folder. If you have folders saved in your folder workspace, you will have the option to select one of them or enter a different one.
stems.move.stemToMove=Folder to move
tooltipTargetted.stems.move.stemToMove=Enter the ID Path of the folder to move. If you have folders saved in your folder workspace, you will have the option to select one of them or enter a different one.
stems.move.assignAlternateName=Set alternate names for folders and groups?
tooltipTargetted.stems.move.assignAlternateName=If you select this option, the alternate ID paths of the folders and groups being moved will be set to their old ID paths.
stems.copy.destinationStem=Destination folder
tooltipTargetted.stems.copy.destinationStem=Enter the ID Path of the destination folder. If you have folders saved in your folder workspace, you will have the option to select one of them or enter a different one.
stems.copy.stemToCopy=Folder to copy
tooltipTargetted.stems.copy.stemToCopy=Enter the ID Path of the folder to copy. If you have folders saved in your folder workspace, you will have the option to select one of them or enter a different one.
stems.copy.copyAttributes=Copy group attributes?
tooltipTargetted.stems.copy.copyAttributes=If you select this option, all custom attributes for the groups in the folder will be copied to the new groups.
stems.copy.copyListMembersOfGroup=Copy list memberships of groups?
tooltipTargetted.stems.copy.copyListMembersOfGroup=If you select this option, all members of the groups in the folder in the default list along with any custom lists will be copied to the new groups.
stems.copy.copyPrivilegesOfGroup=Copy privileges of groups?
tooltipTargetted.stems.copy.copyPrivilegesOfGroup=If you select this option, all privileges of the groups in the folder will be copied to the new groups.
stems.copy.copyListGroupAsMember=Copy list memberships where groups in the folder being copied are members of other groups?
tooltipTargetted.stems.copy.copyListGroupAsMember=If you select this option and groups in the folder being copied are members of other groups, the new copied groups will be added to the other groups' membership list. If you do not have access to add members to the other groups, you will get a privilege error.
stems.copy.copyGroupAsPrivilege=Copy privileges where the groups in the folder being copied have privileges to other groups or folders?
tooltipTargetted.stems.copy.copyGroupAsPrivilege=If you select this option and groups in the folder being copied have privileges to other groups or folders, the new copied groups will also be given privileges to those other groups or folders. If you do not have access to add privileges to the other groups or folders, you will get a privilege error.
stems.copy.copyPrivilegesOfStem=Copy folder privileges?
tooltipTargetted.stems.copy.copyPrivilegesOfStem=If you select this option, all folder privileges will be copied.
groups.edit-attributes.types-header=Group type
groups.edit-attributes.attributes-header=Attribute
groups.edit-attributes.values-header=Value
groups.create.cancel=Back to Manage folders
groups.heading.browse=Browse or list groups
groups.heading.search=Search groups
groups.heading.manage=Manage groups
groups.heading.where-is-factor=Groups where [{0}] is a used as a factor to create a composite group
groups.heading.list-members=Membership list
groups.heading.export-members=Export members
groups.heading.import-members=Import members
groups.heading.import-members-string=Import members by typing or pasting data
groups.heading.change-members-list-scope=Select display
groups.export.select-format-title=Export format for member data
groups.export.submit=Export members
groups.import.select-format-title=Import format of file which will be uploaded
groups.import.select-file-title=Select file containing member data
groups.import.textarea-title=Type or paste text in the selected format
groups.import.submit=Import members
groups.import.message.no-separator=Separator attribute not defined, or is empty
groups.import.message.bad-field-type=Field-type must be 'ID' or 'identifier'
groups.import.message.insufficient-fields=Insufficient fields
groups.import.message.existing-member=Already a member
groups.import.message.successful=Successfully added
groups.import.message.error=Error adding member
groups.import.message.no-subject=No entity identified
groups.import.message.subject-not-unique=Entity not unique
groups.import.message.insufficient-privileges=You lack sufficient privileges to import members
groups.import.message.no-data=You did not select a file or the file was empty
groups.import.message.zero-added=No members were added. Either no entities were recognized, or the entities you selected were already members of the group.
groups.heading.list-privilegees=Entity list filtered by privilege
groups.heading.select-other=Find other group
groups.summary.field-is-list=List field
groups.summary.select-list=Manage other lists
groups.membership.through=through
groups.membership.through.title=Assign privileges for all members of
groups.membership.chain=membership chain
groups.membership.chain.title=View the chain through which this entity is considered a member.
groups.access.chain.title=View / modify {0} privilege for {1} on {2}
groups.access.modify-all.title=View / modify privileges for group
stems.access.chain.title=View / modify {0} privilege for {1} on {2}
browse.assign.title=Click to view / modify privileges for {0} on {1}
groups.membership.chain.cancel=Back to membership list
groups.membership.chain.member-of=is a member of
groups.membership.chain.member-of-list=is a member of the {0} list field of
groups.membership.chain.indirect-member-of=is an indirect member of
groups.membership.chain.multiple-of=is a member, by {0} paths, of
groups.membership.chain.multiple=is a member by {0} paths
groups.membership.chain.member=is a direct member
groups.membership.chain.indirect-member=is an indirect member
groups.membership.view-privileges=privileges
groups.membership.view-subject-attributes=attributes
groups.membership.view-group-attributes=attributes
groups.membership.for=for
groups.membership.view-members=members
stems.membership.view-privileges=privileges
stems.membership.view-subject-attributes=attributes
stems.membership.for=for
groups.privilege.has-for=has {0} privilege for
privs.group.member.none=You are not authorized to change privileges
privs.stem.member.none=You are not authorized to change privileges
groups.create.privs-for-all=Assign privileges to everyone
groups.summary.cancel=Back to my groups
groups.action.edit=Edit group
tooltipTargetted.groups.action.edit=Edit the attributes or default privilege settings for this group
groups.action.edit-attr=Edit attributes
groups.action.edit-member=Change privileges on {0}
groups.action.edit-members=Manage members
tooltipTargetted.groups.action.edit-members=Display the membership list for this group, or remove members
groups.action.find-new-members=Assign privileges / Add members for [{0}]
groups.action.find-new-list-members=Find new members for [{0}], list={1}
groups.action.copy=Copy group
tooltipTargetted.groups.action.copy=Copy this group to another folder
groups.action.move=Move group
tooltipTargetted.groups.action.move=Move this group to another folder
groups.action.audit=Audit log
tooltipTargetted.groups.action.audit=View actions performed on this group
grouptypes.action.audit=Audit log
tooltipTargetted.grouptypes.action.audit=View actions performed on this group type
grouperHideSidePanel=Hide side panel
grouperShowSidePanel=Show side panel
groups.action.delete=Delete
tooltipTargetted.groups.action.delete=Delete this group and all its memberships
groups.action.join=Join
groups.action.leave=Leave
groups.action.create=Create group
tooltipTargetted.groups.action.create=Go to create a new group
groups.action.show-members=Members
groups.action.show-privilegees=Current entities with [{0}] privilege
groups.action.summary.return-to-chains=Back to memberships
groups.action.summary.start-again-here=Start browsing from here
groups.action.summary.return-to-subject-summary=Back to entity details
groups.action.summary.goto-this-subject=View entity details
tooltipTargetted.groups.action.summary.goto-this-subject=View additional details about this entity,
including its edit history, memberships, and privileges
groups.action.show-summary=Group summary
groups.action.as-factor=Show as factor
tooltipTargetted.groups.action.as-factor=Show where this group has been used to create a composite group
subject.action.show-summary=Entity details
tooltipTargetted.subject.action.show-summary=See additional details about this entity, including its edit history, memberships, and privileges
subject.action.audit.memberships=Membership audit
tooltipTargetted.subject.action.audit.membership=Show membership changes for entity
subject.action.audit.privileges=Privilege audit
tooltipTargetted.subject.action.audit.privileges=Show privilege assignment changes for entity
subject.action.audit.actions=Action audit
tooltipTargetted.subject.action.audit.actions=Show actions performed by entity
groups.action.saved=Group saved
groups.action.save=Save
tooltipTargetted.groups.action.save=Save group attributes
groups.action.saved-attr=Attributes were saved
groups.action.search=Search groups
tooltipTargetted.groups.action.search=Search for a group
(not a person, resource, etc.)
groups.action.save-assign=Add members
tooltipTargetted.groups.action.save-assign=Save edits, then add members or assign privileges
groups.action.save-add-composite=Make composite
tooltipTargetted.groups.action.save-add-composite=Save edits, then create a composite group
groups.heading.show-chain=Chain by which {0} is a member of {1}
#subject-source.qsuob.display-name=people
groups.list-members.filter-by-source=Show members from
groups.list-members.any-source=Any source
groups.list-members.scope.select-list=Select list
groups.list-members.scope.ordinary-membership=Default list
groups.list-members.scope.imm=Show DIRECT members of this group
groups.list-members.scope.eff=Show INDIRECT members of this group
groups.list-members.scope.all=Show ALL members of this group (direct and indirect)
groups.list-members.scope.submit=Change display
groups.list-members.none=This group has no members
groups.list-members.imm.none=This group has no direct members
groups.list-members.eff.none=This group has no indirect members
groups.list-members.all.none=This group has no direct or indirect members
groups.list-members.custom.imm.none=This list has no direct members
groups.list-members.custom.eff.none=This list has no indirect members
groups.list-members.custom.all.none=This list has no direct or indirect members
groups.list-privilegees.none=No entity has been assigned the specified privilege for this group
stems.list-privilegees.none=No entity has been assigned the specified privilege for this folder
groups.action.attr-save=Save attributes and finish
groups.action.attr-save-add=Save attributes and add members
groups.manage.can=To find groups where you may update the membership lists, or assign privileges, you can:
- Browse the groups hierarchy
- List your groups
- Search for groups by name
groups.join.can=To find groups which you may join, you can:
- Browse the groups hierarchy
- List available groups
- Search for groups by name
groups.all.can=You can look for groups throughout the hierarchy.
(You might not be able to see some groups if you lack appropriate privileges.)
groups.message.group-deleted=The group [{0}] was successfully deleted
groups.message.group-deleted-fail.factor=The group [{0}] could not be deleted because it is used as a factor to create one or more composite groups
groups.message.group-saved=The group [{0}] was successfully saved
groups.message.group-moved=The group was successfully moved and its new ID Path is [{0}].
groups.message.group-copied=The group was successfully copied. The ID Path of the copied group is [{0}].
groups.message.group-created=The group [{0}] was successfully created
#note: the single quotes need to be escaped in a message that has params,
#that is why there are two single quotes in a row
stems.message.error.add-problem=Could not create folder. Error is ''{0}''.
groups.message.error.add-problem=Could not create group. Error is ''{0}''.
groups.message.error.alternate-name-problem=Could not save group. Alternate name must be in the same format as a group ID Path, such as folder:alt_group_name.
groups.message.error.update-problem-already-exists=Group already exists
groups.message.error.invalid-char=Could not save group: Group ID cannot be empty or contain "<>/*'
groups.message.error.invalid-group=The ID Path is invalid.
groups.message.showing-initial-stems=Shortcuts
stems.message.stem-deleted=The folder [{0}] was successfully deleted
stems.message.stem-saved=The folder [{0}] was successfully saved
stems.message.stem-created=The folder [{0}] was successfully created
stems.message.stem-copied=The folder was successfully copied. The ID Path of the copied folder is [{0}].
stems.message.stem-moved=The folder was successfully moved and its new ID Path is [{0}].
stems.message.error.invalid-char=Could not save the folder: Folder name cannot be empty or contain "<>/*'
stems.message.error.invalid-stem=The ID Path is invalid.
stems.action.find-new-members=Assign creation privileges for [{0}]
stems.message.stem-not-deleted=Folder [{0}] could NOT be deleted
groups.message.join-success=You successfully joined the group and are now a member.
groups.message.leave-success=You successfully left the group and are no longer a member.
groups.message.search-results=Showing results for query
#tooltip that shows when mousing over the group icon (e.g. on stem browsing)
group.icon.tooltip=Group - A collection of entities (members) which can be people, other groups or other things (e.g., resources)
#note, this is a non-group subject
subject.icon.tooltip=Entity - A single thing which can be a member of a group. Generally an entity is a person, but it could also be a resource.
#tooltip on folder / stem image
stem.icon.tooltip=Folder - A tree structure used to organize groups, subfolders, and folder-level permissions
groups.message.group-fail-delete=The group could not be deleted
app.name=Grouper, the Internet2 groups manager
app.name.short=Grouper
menu.title=Groups
#menu subtitles for sections of menu
menu.subtitle.enrollment=My enrollment
tooltipTargetted.menu.subtitle.enrollment=View or edit the memberships of myself in various groups
menu.subtitle.responsibilities=My responsibilities
tooltipTargetted.menu.subtitle.responsibilities=View or edit the group, membership, and privileges or other people or entities
menu.subtitle.tools=My tools
tooltipTargetted.menu.subtitle.tools=Resources to assist you
auth.username=Username
auth.password=Password
auth.message.login-welcome=Welcome
auth.message.logout-success=Your session has been ended, however, it is possible that you are still logged in. The only way to be sure that you have logged out is to close ALL browser windows.
auth.message.logout-basic=Your session has been ended, however, YOU ARE STILL LOGGED IN. The only way to be sure that you have logged out is to close ALL browser windows. This is due to the type of authentication that is implemented.
stems.message.search-results=Showing results for query
stems.edit.name=Folder ID
stems.edit.display-name=Folder name
stems.edit.full-name=Folder ID path
stems.edit.full-display-name=Folder path
stems.edit.description=Description
stems.edit.alternateName=Alternate Folder ID Path
stems.action.edit=Edit folder
tooltipTargetted.stems.action.edit=Go to edit folder attributes
stems.action.audit=Audit log
tooltipTargetted.stems.action.audit=View actions performed on this folder
stems.action.search=Search folders
tooltipTargetted.stems.edit.name=Folder ID is the identifier chosen by the folder creator for this folder which might be used to refer to this folder by other systems. This is unique in the parent folder and should not change frequently.
tooltipTargetted.stems.edit.display-name=Folder name is the label identifier for this folder, which can change
tooltipTargetted.stems.edit.description=Description is notes about the folder which could include: what the folder represents, why it was created, etc.
tooltipTargetted.stems.edit.alternateName=Alternate Folder ID Path allows folders to be searchable using an alternate name. The format is the same as the format of Folder ID Path.
This is especially useful when moving a folder, which will add the old Folder ID Path of the folder as the Alternate Folder ID Path by default. Like the Folder ID Path, the Alternate Folder ID Path can be used by other systems to refer to this folder.
tooltipTargetted.stems.edit.full-name=Folder ID displays the unique ID's of each enclosing folder that leads to this folder, separated by colons.
The folder ID is unique for each folder and should rarely change. It can be used by other systems to refer to this folder.
tooltipTargetted.stems.edit.full-display-name=Folder path displays the names of each enclosing folder that leads to this folder, separated by colons
stems.action.create=Create folder
tooltipTargetted.stems.action.create=Go to create a new folder
stems.action.saved=Saved folder
stems.action.delete=Delete folder
tooltipTargetted.stems.action.delete=Click to delete this folder
stems.action.save=Save and return
stems.action.save-work-in-new-stem=Save and work in new folder
stems.action.save-assign=Save and assign privileges
stems.action.save-show-members=Save and list entities with privileges
stems.action.show-members=Current enities with privileges
stems.action.edit-member=Change privileges on {0}
stems.action.show-priviligees=Current entities with [{0}] privilege
stems.movesandcopies.cancel=Back to Manage folders
stems.action.movesandcopies=Moves and Copies
tooltipTargetted.stems.action.movesandcopies=Moves and Copies
stems.action.copy=Copy this folder
tooltipTargetted.stems.action.copy=Copy the current folder to another folder.
stems.action.move=Move this folder
tooltipTargetted.stems.action.move=Move the current folder to another folder.
stems.action.copy-other-stem-to-stem=Copy another folder here
tooltipTargetted.stems.action.copy-other-stem-to-stem=Copy another folder to the current folder.
stems.action.move-other-stem-to-stem=Move another folder here
tooltipTargetted.stems.action.move-other-stem-to-stem=Move another folder to the current folder.
stems.action.copy-group-to-stem=Copy another group here
tooltipTargetted.stems.action.copy-group-to-stem=Copy a group to the current folder.
stems.action.move-group-to-stem=Move another group here
tooltipTargetted.stems.action.move-group-to-stem=Move a group to the current folder.
stems.heading.browse=Browse hierarchy
stems.heading.search=Search folders
stems.heading.manage=Manage folders
stems.heading.list-members= Entity list filtered by privilege
stems.edit.cancel=Back to Manage folders
stems.create.cancel=Back to Manage folders
find.search-all-sources=All: search all data sources
find.select-person-source=in
find.results.selected-individuals=Selected individuals
find.results.selected-groups=Selected groups
find.results.none=No results
find.results.showing=Showing
find.search-browse=Search / select results
find.expand-collapse=Expand / collapse tree
find.expanded-collapsed=Expanded / collapse tree
find.search-term=Search term
find.search-in=Search in
find.search.and=and
find.search.or=or
find.search.not=not
find.results.search-again=New search
find.results.empty-search=Invalid search: the first search field and query value must be entered
find.results.search-in=matches
find.search.in-field=Search in attribute
tooltipTargetted.find.search.in-field=An attribute is a Grouper built-in or custom item of information about a group.
find.search.in-group-type=With group type
find.search.in-group-type-input=Or/and/not
find.results.group-type=group type
find.search.audit.show-search-form=Show/hide search form
audit.query.filter-by-date=Filter by date
audit.query.filter-by-date.on=on
audit.query.filter-by-date.before=before
audit.query.filter-by-date.after=since
audit.query.filter-by-date.between=between
audit.query.filter-by-date.and=and
audit.query.sort=Sort
audit.query.asc=In the order they occurred
audit.query.desc=Most recent first
find.action.audit-query=Find entries
audit.query.info.actions-on=Actions performed on {0}
audit.query.info.actions-by=Actions performed by {0}
audit.query.info.membership=Membership changes to {0}
audit.query.info.privilege=Privilege changes for {0}
audit.query.info.schema=Schema changes
audit.query.extended-results=Show extended results
audit.result.label.acting-as=acting as
audit.result.label.logged-in-member.link.title=View details of Entity responsible for action
audit.result.label.act-as-member.link.title=View details of Entity responsible for action
audit.result.label.unavailable=Unavailable
audit.result.label.and=and
audit.result.label.to-subject=to
audit.result.label.view-subject=View entity
audit.result.label.member-id-did-change=memberId changed
audit.result.label.member-id-did-not-change=memberId unchanged
audit.result.label.to-object=to
audit.result.label.for=for
audit.result.label.on=on
audit.result.label.from=from
audit.result.label.defined-by=defined by
audit.result.label.member-added=was added as an {0} member to the {1} list of
audit.result.label.member-deleted=was removed as an {0} member of the {1} list of
audit.result.label.group-type.link-title=View current group type definition
audit.result.header.id=Entry Id
audit.result.header.date=Date
audit.result.header.action=Action
audit.result.header.actor=Actor
audit.result.header.env=Env
audit.result.header.engine=Engine
audit.result.header.summary=Summary
audit.result.header.duration=Duration (s)
audit.result.header.query-count=Query count
audit.result.header.user-name=Server username
audit.result.header.server-name=Server
audit.result.header.server-ip=IP
audit.result.header.description=Raw description
find.name-desc=Name / description
find.name-desc-attr=Name / description / attributes
find.search-for=Search for
find.people=people
find.groups=groups
find.groups.select-result-field=Display results by
find.stems.select-result-field=Display results by
find.groups.search-in=Search in:
find.groups.search-in.name=Folder path
find.groups.search-in.any=any attribute
find.stems=folders
find.all=people and groups
find.group-type=Group type
find.search-from=Search from
find.here=Here
find.root=Root
find.next-page=Next page
find.previous-page=Previous page
find.return-results=Back to search results
find.return-find=Find more members
find.return-group=Back
find.return-stem=Back
find.add-new-members=Add new members
find.browse=Browse groups hierarchy
find.browse.here=Current location is:
find.browse.show-results= Showing {0}-{1} of {2} items
find.browse.change-pagesize=Change page size
find.browse.return-to-quick-links=Show quick links
find.browse.hide-quick-links=Hide quick links and browse entire hierarchy
find.for-stems.cancel=Return to Manage folders
find.for-groups.cancel=Return to group summary
find.search.cancel=Back
find.groups.searched-for=Search results for: {0}
find.subjects.searched-for=Search results for: {0}
find.groups.searched-from=From [{0}]
find.groups.no-results=No groups matched your search criteria
find.groups.done=Back to group summary
find.groups.add-new-members=Add members
tooltipTargetted.find.groups.add-new-members=Add new members, or
modify privileges of existing members
find.groups.add-new-privilegees=Assign this privilege to more entities
find.stems.searched-for=Search results for [{0}]
find.stems.searched-from=From [{0}]
find.stems.no-results=No folders matched your search criteria
find.subjects.no-results=No entities matched your search criteria
find.action.search=Search
find.action.select=Select
find.selected-people=Selected individuals
find.selected-stems=Selected folders
find.selected-groups=Selected groups
find.result.none=None found
find.heading.browse=Browse folders and groups for members
find.heading.search=Search people or groups
find.heading.select-privs=Select privileges to assign to {0}
find.heading.select-results=Confirm entities for assignment
find.heading.audit-search=Search audit log entries
find.search.subjects.specifySource=Specify data source
#this is also used for the infodot
tooltipTargetted.find.search.subjects.specifySource=Click to specify which data source to conduct your search in
find.heading.groups-advanced-search=Advanced groups search
infodot.subtitle.find.heading.groups-advanced-search=Select a group attribute to search from the first pulldown list, then type the term you are searching for in the text box labeled 'for'.
You may combine more than one term in your search, using the 'and', 'or' , 'not' from the pulldown lists at the end of each line.
If you select an attribute but leave the 'for' box blank on a given line, the search term entered in the nearest above will be used.
find.action.select.groups-advanced-search=Advanced groups search
find.heading.stems-advanced-search=Advanced folder search
find.action.select.stems-advanced-search=Advanced search
find.action.cancel-advanced-search=Cancel advanced search
find.search-in-display-name=Search in path
find.search-in-display-extension=Search in name
find.search-in-display-none=Do not search in name or path
find.search-in-name=Search in the ID path
find.search-in-extension=Search in the ID
find.search-in-none=Do not search in the ID or ID path
find.search-source=Choose a data source
priv.assign=Assign privileges
priv.action.assigned=Privileges were assigned
priv.action.assigned-failed=Privileges were not assigned
priv.action.revocation-failure=The following privilege(s) could not be revoked. This is due to the fact that the privilege was not assigned directly to this entity, but to a group which the entity is a member of:
priv.create=Create
priv.stemView=View
priv.stemViewUpper=VIEW
priv.stem=Admin
priv.stemAdmin=Admin
priv.createUpper=CREATE
priv.stemAdminUpper=ADMIN
priv.creatorsUpper=CREATE
priv.stemViewersUpper=VIEW
priv.stemAdminsUpper=ADMIN
priv.member=Member
priv.member-list-field=member of {0} list
priv.optin=Optin
priv.optout=Optout
priv.view=View
priv.read=Read
priv.update=Update
priv.admin=Admin
priv.groupAttrRead=Attribute read
priv.groupAttrUpdate=Attribute update
priv.memberUpper=MEMBER
priv.optinUpper=OPTIN
priv.optoutUpper=OPTOUT
priv.viewUpper=VIEW
priv.readUpper=READ
priv.updateUpper=UPDATE
priv.adminUpper=ADMIN
priv.groupAttrReadUpper=ATTRIBUTE READ
priv.groupAttrUpdateUpper=ATTRIBUTE UPDATE
priv.optinsUpper=$$priv.optinUpper$$
priv.optoutsUpper=$$priv.optoutUpper$$
priv.viewersUpper=$$priv.viewUpper$$
priv.readersUpper=$$priv.readUpper$$
priv.updatersUpper=$$priv.updateUpper$$
priv.adminsUpper=$$priv.adminUpper$$
priv.groupAttrReadersUpper=$$priv.groupAttrReadUpper$$
priv.groupAttrUpdatersUpper=$$priv.groupAttrUpdateUpper$$
priv.attrOptinUpper=OPTIN
priv.attrOptoutUpper=OPTOUT
priv.attrViewUpper=VIEW
priv.attrReadUpper=READ
priv.attrUpdateUpper=UPDATE
priv.attrAdminUpper=ADMIN
priv.attrDefAttrReadUpper=ATTRIBUTE READ
priv.attrDefAttrUpdateUpper=ATTRIBUTE UPDATE
priv.attrOptinsUpper=$$priv.attrOptinUpper$$
priv.attrOptoutsUpper=$$priv.attrOptoutUpper$$
priv.attrViewersUpper=$$priv.attrViewUpper$$
priv.attrReadersUpper=$$priv.attrReadUpper$$
priv.attrUpdatersUpper=$$priv.attrUpdateUpper$$
priv.attrAdminsUpper=$$priv.attrAdminUpper$$
priv.attrDefAttrReadersUpper=$$priv.attrDefAttrReadUpper$$
priv.attrDefAttrUpdatersUpper=$$priv.attrDefAttrUpdateUpper$$
priv.stemAttrRead=Attribute read
priv.stemAttrUpdate=Attribute update
priv.stemAttrReadUpper=ATTRIBUTE READ
priv.stemAttrUpdateUpper=ATTRIBUTE UPDATE
priv.stemAttrReadersUpper=$$priv.stemAttrReadUpper$$
priv.stemAttrUpdatersUpper=$$priv.stemAttrUpdateUpper$$
priv.colAdmin = Admin
priv.colUpdate = Update
priv.colRead = Read
priv.colView = View
priv.colOptin = OptIn
priv.colOptout = OptOut
priv.colAttributeRead = Attribute
read
priv.colAttributeUpdate = Attribute
update
privDropdownName = Name
priv.colStemAdmin = Admin
priv.colCreate = Create
priv.colStemView = View
priv.colStemAttributeRead = Attribute
read
priv.colStemAttributeUpdate = Attribute
update
priv.colAttrAdmin = Admin
priv.colAttrUpdate = Update
priv.colAttrRead = Read
priv.colAttrView = View
priv.colAttrOptin = OptIn
priv.colAttrOptout = OptOut
priv.colAttrDefAttributeRead = Attribute
read
priv.colAttrDefAttributeUpdate = Attribute
update
# If you have enabled member sorting (member.sort.enabled) and disabled default sorting (member.sort.defaultOnly), be sure to add labels for each default sort string configured in grouper.properties (member.sort.defaultIndexOrder).
member.sort.string0=Name
member.sort.string1=Login Id
member.sort.change-sort-attribute=Change sort attribute
member.search.filter-members-hint=Enter search text to find members in the list:
member.search.filter-label=Searching for member:
member.search.search-members=Search for members
member.search.filter-clear=Clear member search
group.member.effective.privileges=Indirect privileges
infodot.subtitle.group.member.effective.privileges=Indirect privileges are not assigned to the direct membership of this entity to this group, and cannot be directly unassigned.
tooltipTargettedRef.priv.create=tooltipTargetted.priv.CREATE
tooltipTargettedRef.priv.stemView=tooltipTargetted.priv.STEM_VIEW
tooltipTargettedRef.priv.stemAdmin=tooltipTargetted.priv.STEM_ADMIN
tooltipTargettedRef.priv.member=tooltipTargetted.priv.MEMBER
tooltipTargettedRef.priv.optin=tooltipTargetted.priv.OPTIN
tooltipTargettedRef.priv.optout=tooltipTargetted.priv.OPTOUT
tooltipTargettedRef.priv.view=tooltipTargetted.priv.VIEW
tooltipTargettedRef.priv.read=tooltipTargetted.priv.READ
tooltipTargettedRef.priv.update=tooltipTargetted.priv.UPDATE
tooltipTargettedRef.priv.admin=tooltipTargetted.priv.ADMIN
tooltipTargettedRef.priv.groupAttrRead=tooltipTargetted.priv.GROUP_ATTR_READ
tooltipTargettedRef.priv.groupAttrUpdate=tooltipTargetted.priv.GROUP_ATTR_UPDATE
tooltipTargettedRef.priv.stemAttrRead=tooltipTargetted.priv.STEM_ATTR_READ
tooltipTargettedRef.priv.stemAttrUpdate=tooltipTargetted.priv.STEM_ATTR_UPDATE
# IF YOU CHANGE ANY OF THESE, KEEP THE INFODOT FOR ACCESS AND NAMING PRIVS UP TO DATE
tooltipTargetted.priv.CREATE=Entity may create groups, attributes, and subfolders in this folder.
tooltipTargetted.priv.STEM_VIEW=Entity may view this folder. Note, entities with privileges on object in folder or subfolders can also view this folder
tooltipTargetted.priv.STEM_ADMIN=Entity may create groups, attributes, and subfolders in this folder, delete this folder, or assign any privilege to any entity
tooltipTargetted.priv.MEMBER=Entity is a member of this group
tooltipTargetted.priv.OPTIN=Entity may choose to join this group
tooltipTargetted.priv.OPTOUT=Entity may choose to leave this group
tooltipTargetted.priv.VIEW=Entity may see that this group exists
tooltipTargetted.priv.READ=Entity may see the membership list for this group
tooltipTargetted.priv.UPDATE=Entity may modify the membership of this group
tooltipTargetted.priv.ADMIN=Entity may modify group attributes, delete this group, or assign any privilege to any entity
tooltipTargetted.priv.GROUP_ATTR_READ=Entity may see the attributes for this group
tooltipTargetted.priv.GROUP_ATTR_UPDATE=Entity may modify the attributes of this group
tooltipTargetted.priv.STEM_ATTR_READ=Entity may see the attributes for this folder
tooltipTargetted.priv.STEM_ATTR_UPDATE=Entity may modify the attributes of this folder
MEMBER=Member
ADMIN=Admin
UPDATE=Update
READ=Read
VIEW=View
OPTIN=Optin
OPTOUT=Optout
priv.message.assigned=Selected privileges were successfully assigned.
priv.message.error.no-priv=You did not select any privileges. Please go back and check your input.
priv.privilege=privilege
priv.show-subjects-with=Show entities with
privs.group.member.cancel=Back to member list
privs.group.member.return-to-chains=Back to memberships
priv.stems.list.cancel=Back to Manage folders
priv.stems.list.cancel-and-work-in-new=Return and work in new folder
find.stems.add-new-privilegees=Assign this privilege to more entities
tooltipTargetted.find.stems.add-new-privilegees=Assign the selected privileges to other entities
debug.error.disabled=Debugging is disabled
debug.error.not-allowed=You do not have permission to debug
debug.error.editor-not-allowed=You do not have permission to use the JSP editor
debug.prefs.edit.isActive=Enable debug display
debug.prefs.edit.i2miDir=Webapp root for I2mi
debug.prefs.edit.siteDir=Webapp root for your site
debug.prefs.edit.doShowResources=Show resource keys and values at end of page
debug.prefs.edit.doShowResourcesInSitu=Show resource keys rather than values in page
debug.prefs.edit.doShowTilesHistory=Show dynamic tiles
debug.prefs.edit.editor=Executable for JSP editor
debug.prefs.title=Debug preferences
debug.prefs.action.save=Save preferences
debug.prefs.saved=Your preferences were successfully saved
debug.prefs.not-saved=Your preferences could not be saved. Check the value of 'debug.prefs.dir' in build.properties
debug.prefs.edit.link=Edit preferences
debug.prefs.edit.doHideStyles=Remove CSS stylesheet references
audit.query.title=Audit log
find.heading.audit-search-results=Results
audit.query.import-importExport=Imported XML file
audit.query.deleteGroupType-groupType=Deleted group type definition
audit.query.move-stem=Moved folder
audit.query.copy-stem=Copied folder
audit.query.updateGroupPrivilege-privilege=Updated privilege
audit.query.addGroupField-groupField=Added field to group type definition
audit.query.updateGroupType-groupType=Updated group type definition
audit.query.addAttributeDefName-attributeDefName=Added attribute name
audit.query.updateStem-stem=Updated folder
audit.query.addGroupPrivilege-privilege=Assigned privilege
audit.query.deleteGroupField-groupField=Deleted field from group type definition
audit.query.addGroup-group=Created group
audit.query.deleteGroupMembership-membership=Removed membership
audit.query.updateGroup-group=Updated group
audit.query.deleteGroupComposite-groupComposite=Removed composite member
audit.query.deleteGroup-group=Deleted group
audit.query.updateGroupField-groupField=Updated field in group type definition
audit.query.deleteGroupAttribute-groupAttribute=Deleted group attribute
audit.query.copy-group=Copied group
audit.query.addGroupComposite-groupComposite=Added composite member
audit.query.addAttributeDef-attributeDef=Added attribute definition
audit.query.unassignGroupType-groupTypeAssignment=Unassigned group type
audit.query.addGroupType-groupType=Added group type definition
audit.query.addStemPrivilege-privilege=Assigned privilege
audit.query.addGroupAttribute-groupAttribute=Added group attribute
audit.query.updateGroupMembership-membership=Updated membership
audit.query.deleteStemPrivilege-privilege=Unassigned privilege
audit.query.updateGroupComposite-groupComposite=Updated composite member
audit.query.changeSubject-member=Changed subject of Member
audit.query.addStem-stem=Added folder
audit.query.updateStemPrivilege-privilege=Updated folder privilege
audit.query.deleteStem-stem=Deleted folder
audit.query.addGroupMembership-membership=Assigned membership
audit.query.assignGroupType-groupTypeAssignment=Assigned group type
audit.query.deleteGroupPrivilege-privilege=Deleted group privilege
audit.query.move-group=Moved group
audit.query.updateGroupAttribute-groupAttribute=Updated group attribute
login=Log in
logout=Log out
cancel=Cancel
cancel.to.caller-page=Return to previous page
cancel.to.caller-page-title=Conduct another search
cancel.to.caller-page.from-audit=Cancel audit log
cancel.to.caller-page-title.from-audit=Return to page prior to audit log
cancel.to.caller-page.from-group-types=Return to previous page
cancel.to.caller-page-title.from-group-types=Return to previous page
done=Finished
logout.confirm=Click OK to continue logging out, otherwise click Cancel.
browse.expand=Expand
browse.to.group.summary=Click to show group summary for: {0}
browse.to.subject.summary=Click to show entity details for: {0}
browse.expand.stem=Click to expand and show viewable contents of the folder:
browse.expand.group=Click to expand and show viewable members of the group:
browse.assign=Click to assign privileges to the entity:
browse.to.parent-stem=Click to browse the folder:
browse.select.group=Select the group:
browse.select.subject=Select the entity:
list.instructions.assign= Select privileges above, and entities below and submit the form
list.instructions.browse= Click a folder name to view its direct members, or a group name to see its summary
list.instructions.search-result= Click a result to browse it
list.instructions.search-result-group= Click a group name to display its summary
list.instructions.search-result-subject= Click an entity name to display its details
list.instructions.search-result-stem= Click a folder name to browse it
list.instructions.find-new= Click a folder name to view its direct contents, or a members link to select from group members, or an attributes link to see a group summary or entity link to see entity details, or select groups/entities and submit the form and assign privileges
list.instructions.member-links= Click an entity name to view entity details, or click a membership description to view/modify privileges.
list.instructions.privilege-links= Click an entity name to view entity details, or click a privilege description to view/modify privileges
subject.summary.view-list-field-members=View {0} membership list
subject.summary.memberships=This entity is a member of the following groups
subject.summary.access-privs=This entity has the selected group privilege for the following groups:
subject.summary.naming-privs=This entity has the selected creation privilege for the following folders:
subject.summary.start-again-here=View memberships and privileges for this entity
subject.summary.subject-type=Entity type
subject.summary.browse-this-group=View group summary
subject.privileges.from-grouperall=inherits from EveryEntity
subject.privileges.from-groupersystem=inherits from GrouperSysAdmin (via the SysAdmin group)
subject.privileges.has-for=which has privilege(s)
subject.privileges.current=Current entity is
subject.privileges.chain=has the following privileges.
subject.privileges.chain.none=has no privileges.
subject.privileges.chain.change=Change privileges
subject.privileges.chain.assign=Assign privileges
entity.search.results=Memberships and privileges for this entity
infodot.subtitle.entity.search.results=Select a radio button, then click the Change display button to view the memberships or privileges for this entity.
subject.list-membership.scope.imm=Show groups where this entity is an DIRECT member
subject.list-membership.scope.eff=Show groups where this entity is an INDIRECT member
subject.list-membership.scope.all=Show all groups where this entity is a member (DIRECT or INDIRECT)
subject.list-access.scope.priv=Show all GROUPS where this entity has the privilege
subject.list-naming.scope.priv=Show all FOLDERS where this entity has the privilege
subject.list-all-access.scope.priv=Go to advanced search for ANY group privileges
subject.list-all-naming.scope.priv=Show all FOLDERS where this entity has ANY creation privileges
subject.list-membership.scope.submit=Change selection
access.priv.infodot=MEMBER: Entity is a member of this group
OPTOUT: Entity may choose to leave this group
OPTIN: Entity may choose to join this group
VIEW: Entity may see that this group exists
READ: Entity may see the membership list for this group
UPDATE: Entity may modify the membership of this group
ADMIN: Entity may modify group attributes, delete this group, or assign any privilege to any entity
Attribute read: Entity may see the attributes for this group
Attribute update: Entity may modify the attributes of this group
naming.priv.infodot=Create: Entity may create groups, attributes, and subfolders in this folder
Admin: Entity may create groups, attributes, and subfolders in this folder, delete this folder, or assign any privilege to any entity
Attribute read: Entity may see the attributes for this folder
Attribute update: Entity may modify the attributes of this folder
subject.list-membership.none=This entity is not a member of any groups that match your selection criteria
subject.list-membership.imm.none=This entity is not a direct member of any groups
subject.list-membership.eff.none=This entity is not an indirect member of any groups
subject.list-membership.all.none=This entity is not a direct or indirect member of any groups
subject.list-membership.custom.eff.none=This entity is not an indirect member of the selected list for any groups
subject.list-access.none=This entity does not have the selected group privilege for any groups
subject.list-naming.none=This entity does not have the selected creation privilege for any folders or groups in the hierarchy
subject.action.new-search=New entity search
subject.action.return-results=Back to list of entities
subject.action.search-groups=Find groups and display privileges for this entity
subject.action.search-groups.info= Entity is
subject.attribute.multi.separator=,
subject.message.error.process-search-term=An exception has been thrown for entity {0}, the exception message generated is: {1}
members.return-to-subject-summary=Back to entity details
members.remove.selected=Remove selected members
members.remove.all=Remove all members
saved-subjects.add.group=Add to Group workspace
saved-subjects.add.subject=Add to Entity workspace
saved-stems.add.stem=Add to Folder workspace
tooltipTargetted.saved-subjects.add.subject=Add this entity to the Entity workspace (found in the left menu under My Tools).
The Entity workspace is where you hold selected entities (persons, groups, resources, etc.) to retrieve them quickly for later actions, such as updating privileges for multiple entities.
tooltipTargetted.saved-subjects.add.group=Add this group to the Group workspace (found in the left menu under My Tools).
The Group workspace is where you hold selected groups to retrieve them quickly for later actions, such as updating privileges for multiple entities.
saved-subjects.link.title=Entity workspace is where you hold selected entities (persons, groups, resources, etc.) to retrieve them quickly for later actions
saved-subjects.groups.link.title=Group workspace is where you hold selected groups to retrieve them quickly for later actions
saved-subjects.intro=Entities (people, groups) are kept in this workspace only for the duration of your current session, and will not appear the next time you log in.
Any groups that you added to the group workspace are also displayed on this page.
saved-subjects.none=
You have not added any entities to your entity workspace yet.
#saved-subjects.list=Current list
saved-subjects.added=This subject was added to your list in the entity workspace.
saved-subjects.remove-selected=Remove selected
saved-subjects.removed-selected=Selected entities were removed
saved-stems.change-field=Change
saved-stems.intro=Folders are kept in this workspace only for the duration of your current session, and will not appear the next time you log in.
saved-stems.none=
You have not added any folders to your folder workspace yet.
#saved-subjects.list=Current list
saved-stems.added=This folder was added to your list in the folder workspace.
saved-stems.remove-selected=Remove selected
saved-stems.removed-selected=Selected folders were removed
saved-subjects.add-new-members=Assign privileges to entities in the entity workspace
saved-subjects.groups.change-field=Change
saved-subjects.groups.intro=Groups are kept in this workspace only for the duration of your current session, and will not appear the next time you log in.
saved-subjects.groups.none=
You have not added any groups to your group workspace yet.
#saved-subjects.groups.list=Current list
saved-subjects.groups.added=This group was added to your list in the group workspace.
saved-subjects.stems.added=This folder was added to your list in the folder workspace.
saved-subjects.groups.remove-selected=Remove selected
saved-subjects.groups.removed-selected=Selected groups were removed
members.export=export
page.skip.current-location=Skip current location
page.skip.children=Skip children for
page.skip.search=Skip search form
page.skip.stem-links=Skip folder controls
page.skip.group-links=Skip group controls
homepage.intro.title=Grouper - getting started
homepage.intro.text=Grouper is a system for creating and maintaining institutional groups in a central repository. Groups might be used for many different reasons, such as maintaining mailing lists, determining which set of people are permitted to access specific web applications, or for sharing resources. The goal is to create a group once, but to use it as often as necessary in as wide a range of systems as possible.
field.displayName.displayName=Path
field.displayName.displayExtension=Name
field.displayName.extension=ID
field.displayName.name=ID Path
field.displayName.alternateName=Alternate ID Path
field.displayName.description=Description
field.displayName._any=Any attribute
groups.summary.id=UUID
groups.summary.extension= ID
groups.summary.name= ID path
groups.summary.display-name=Path
groups.summary.display-extension=Name
groups.summary.description=Description
groups.summary.types=Types
#prefixes for messages
message.Message=Note:
message.ErrorMessage=Error:
message.WarningMessage=Warning:
tooltipTargetted.groupTypes.grouperLoader=Group membership automatically managed via an external source, e.g. SQL query
tooltipTargetted.groupFields.grouperLoaderDbName=For sql based loader, this is the name in the grouper-loader.properties of the db connection properties. If this is set to: grouper that is a special reserved term for the grouper db (in grouper.hibernate.properties)
tooltipTargetted.groupFields.grouperLoaderIntervalSeconds=If a START_TO_START_INTERVAL schedule type, this is the number of seconds between the start of one run to the start of another run
tooltipTargetted.groupFields.grouperLoaderPriority=The loader has a max number of concurrent jobs, and when the max is reached, then jobs are prioritized by this integer. The higher the better, and the default if not set is 5.
tooltipTargetted.groupFields.grouperLoaderQuartzCron=Quartz cron-like string (if CRON schedule type): Seconds Minutes Hours Day-of-Month Month Day-of-Week Year (optional field).
e.g. 0 0 6 * * ? is everyday at 6am
tooltipTargetted.groupFields.grouperLoaderQuery=This is the query to run in the DB, which must have certain columns required or optional based on the grouperLoaderType. e.g. for SQL_SIMPLE, the SUBJECT_ID is required, and the SUBJECT_SOURCE_ID is optional
tooltipTargetted.groupFields.grouperLoaderScheduleType=CRON: This is a cron-like syntax that I think is quartz specific, START_TO_START_INTERVAL: This is a repeated schedule that runs based on a delay from the start of one run to the start of another run
tooltipTargetted.groupFields.grouperLoaderType=SQL_SIMPLE: a group whose membership is managed from a query. SQL_GROUP_LIST: requires a GROUP_NAME column in query, so one query can control multiple group memberships
tooltipTargetted.groupFields.grouperLoaderAndGroups=If you want to restrict membership in the dynamic group based on other group(s), put the list of group ID paths here comma-separated
tooltipTargetted.groupFields.grouperLoaderGroupTypes=If you want types assigned to a group when managed by loader, list the comma separated types
tooltipTargetted.groupFields.grouperLoaderGroupsLike=If you want the group (if not used from anywhere) or members deleted when no longer in loader sql results, list the sql like name, e.g. folder1:folder2:%:%org
tooltipTargetted.groups.summary.id=UUID stands for Universal Unique Identifier, a generated key that is distinct from any other UUID in this or any other system.
The UUID does not change, and can be used as an identifier in other systems.
tooltipTargetted.groups.summary.types=Each group has one or more group types associated with it. The Grouper distribution contains support for a single group type called: base, but sites may register additional types, together with the attributes and lists associated with them, within their Grouper installation. Doing so enables management of groups with a richer information model or a more diverse set of information models.
tooltipTargettedRef.find.search.in-group-type=tooltipTargetted.groups.summary.types
tooltipTargettedRef.groups.summary.name=tooltipTargetted.field.displayName.name
tooltipTargettedRef.groups.summary.display-name=tooltipTargetted.field.displayName.displayName
tooltipTargettedRef.groups.summary.display-extension=tooltipTargetted.field.displayName.displayExtension
tooltipTargettedRef.groups.summary.description=tooltipTargetted.field.displayName.description
tooltipTargettedRef.groups.summary.extension=tooltipTargetted.field.displayName.extension
tooltipTargetted.field.displayName.displayName=Path consists of the name of each enclosing folder plus the group name, separated by colons.
tooltipTargetted.field.displayName.displayExtension=Name is the label that identifies this group, and might change.
tooltipTargetted.field.displayName.extension=ID is the unique identifier chosen by the group admin for this group.
The ID is unique within this folder, and should rarely change. It can be used by other systems to refer to this group. Generally it does not contain special characters.
tooltipTargetted.field.displayName.name=ID Path consists of the unique ID of each enclosing folder plus the group ID, separated by colons.
The ID Path is unique for each group and should rarely change. It can be used by other systems to refer to this group.
tooltipTargetted.field.displayName.alternateName=Alternate ID Path allows groups to be searchable using an alternate name. The format is the same as the format of ID Path.
This is especially useful when moving a group, which will add the old ID Path of the group as the Alternate ID Path by default. Like the ID Path, the Alternate ID Path can be used by other systems to refer to this group.
tooltipTargetted.field.displayName.description=Description contains notes about the group, which could include:
what the group represents, why it was created, etc.
field.stem.displayName.displayName= Folder path
field.stem.displayName.displayExtension= Folder name
field.stem.displayName.extension=Folder ID
field.stem.displayName.name=Folder ID path
field.stem.displayName.description=Description
field.stem.displayName._any=Any attribute
subject.summary.LOGINID=Login ID
subject.summary.LFNAME=Name
subject.summary.subjectType=Entity type
subject.summary.id=ID
tooltipTargetted.subject.summary.LOGINID=The ID the entity uses to log in (e.g. to Grouper)
tooltipTargetted.subject.summary.LFNAME=The name of the person in the grouper system
tooltipTargetted.subject.summary.subjectType=The type of this entity (e.g. person, group, resource, etc.)
tooltipTargetted.subject.summary.id=The ID of this entity. Systems might use this ID to refer to this entity.
subject.summary.group.id=UUID
subject.summary.group.name=ID path
subject.summary.group.alternateName=Alternate ID path
subject.summary.group.displayExtension=Name
subject.summary.group.displayName=Path
subject.summary.group.extension=ID
subject.summary.group.createTime=Created
subject.summary.group.createSubjectId=Creator ID (entity ID)
subject.summary.group.createSubjectType=Creator entity type
subject.summary.group.modifyTime=Last edited
subject.summary.group.modifySubjectId=Last editor ID (entity ID)
subject.summary.group.modifySubjectType=Last editor entity type
subject.summary.group.subjectType=Entity type
tooltipTargettedRef.subject.summary.group.id=tooltipTargetted.groups.summary.id
tooltipTargettedRef.subject.summary.group.extension=tooltipTargetted.field.displayName.extension
tooltipTargettedRef.subject.summary.group.name=tooltipTargetted.field.displayName.name
tooltipTargettedRef.subject.summary.group.alternateName=tooltipTargetted.field.displayName.alternateName
tooltipTargettedRef.subject.summary.group.displayName=tooltipTargetted.field.displayName.displayName
tooltipTargettedRef.subject.summary.group.displayExtension=tooltipTargetted.field.displayName.displayExtension
tooltipTargettedRef.subject.summary.group.description=tooltipTargetted.field.displayName.description
tooltipTargetted.subject.summary.group.createSubjectId=The entity ID of who created this record
tooltipTargetted.subject.summary.group.createSubjectType=The entity type who created this record
tooltipTargetted.subject.summary.group.modifySubjectId=The entity ID of who last edited this record
tooltipTargetted.subject.summary.group.modifySubjectType=The entity type of who last edited this record
tooltipTargetted.subject.summary.group.subjectType=This entity's type, e.g. person, group, resource, etc.
groups.tooltips.disable=Disable tooltips
groups.tooltips.enable=Enable tooltips
groups.infodot.alt=More
groups.infodot.example=This is example of grouper infodot text Showing if you click the infodot button
infodot.disableText=Disable infodot help buttons
infodot.enableText=Enable infodot help buttons
# internet2 sponsoredBy message
internet2.sponsored.by=Grouper is sponsored by
#####################################################
## Help
#####################################################
helpIntroPart1 = Grouper - intro
Grouper is a system for creating and maintaining institutional groups in a central repository. Such groups may be used for many different purposes e.g. for mailing lists, or for determining which set of people are allowed to access specific web applications, or for sharing resources. The goal is to create a group once, but use it as often as necessary in as wide a range of systems as possible.
In order to use Grouper effectively you must first understand some key concepts:
- Group
- A group represents a collection of 'items' or entities which are themselves considered to be members of the group.
- Entity
- An entity is an abstraction for any 'item' which may be a member of a group. An entity has a 'type' e.g. person or group. To specify that group B is a member of group A is to specify that all members of group B are also members of group A. In the future, other entity types may be available to define computers or applications.
- Membership
- A specific relationship between an entity and a group.
- Folder
- A folder is a name space or container in which groups exist. Folders are hierarchical and may contain subfolders or groups. Folders can be used to collect together related groups and provide a means of controlling access to groups. Some examples of folders are:
- community:faculties:artFaculty
- apps:wiki:users
helpIntroPart2 = - Privileges
- Grouper provides fine control over who can create folders and groups, who can change the membership of a group, and who can grant privileges for specific folders or groups to others. In fact, privileges are granted to entities. By granting a privilege to an entity which is a group, all members of that group are granted the privilege (for as long as they are a member of the group).
EveryEntity is a special internal entity. Any privilege granted to EveryEntity is, in effect, granted to all entities.
GrouperSysAdmin is also a special internal entity which has implicit admin privileges for folders and groups.
A SysAdmin group, if defined, conveys implicit GrouperSysAdmin privileges to its members. Members of this group, by default, act as themselves with privileges limited to those assigned to them. This UI allows SysAdmin group members to opt to Act as admin.
Folder privileges -
- Create
- Entity may create groups, attributes, and subfolders in this folder
- Admin
- Entity may create groups, attributes, and subfolders in this folder, delete this folder, or assign any privilege to any entity
- Attribute read
- Entity may see the attributes for this folder
- Attribute update
- Entity may modify the attributes of this folder
Group privileges - Member
- Entity is a member of this group
- Optin
- Entity may elect to join this group
- Optout
- Entity may elect to leave this group
- View
- Entity may see that this group exists
- Read
- Entity may see the membership list for this group
- Update
- Entity may modify the membership of this group
- Admin
- Entity may modify the membership of this group, delete the group or assign privileges for the group
- Attribute read
- Entity may see the attributes for this group
- Attribute update
- Entity may modify the attributes of this group
helpScenariosPart1 = Grouper end-to-end scenarios
- Find a folder or a group by navigation
- Find an entity or a group by searching
helpScenariosPart2 = - Read a group's membership list
- Add a member (entity or group) to a group
- Remove a member from a group
helpScenariosPart3 = - Assign someone to be able to manage a group
- Create a new group
helpScenariosPart4 = - Create a composite group
helpScenariosPart6 = - Create a new folder
- Assign someone to be able to create new folders or groups within a parent folder
helpMyMemberships = - My Memberships*
- lets you find groups of which you are a member
- -- groups where you have member privilege --
- Join Groups*
- lets you find groups that you are eligible to join
- -- groups where you have optin privilege --
- Manage Groups*
- lets you find groups where you may update membership lists or assign privileges to others
- -- groups where you have update privilege or admin privilege --
- Create Groups*
- lets you create new groups or (sub)folders, as permitted by location
- -- folders where you have admin privilege or create privilege --
- Explore
- lets you explore all groups that are visible to you
- -- groups where you have view privilege --
- Search
- Lets you search for any entity known to Grouper. Allows an entity-centric approach i.e. you can list all groups where the entity is a member or has an Access privilege, or folders where the entity has one of the Folder privileges.
- Group workspace
- As described below, Grouper provides several ways of finding groups. It is possible, from the Group Summary page, to save, for the duration of your session, a group in a list. This menu item provides quick access to the groups throughout the session and provides a way of removing groups. The list provides the means for selecting groups for Group Math, described below. Saved groups are stored in the same list as saved entities (see belolw), however, this menu item filters the list to return only groups.
- Entity workspace
- Grouper provides a Entity summary page which can be accessed from many points in the UI. It is possible, from this page, to save, for the duration of your session, an entity in a list. This menu item provides quick access to the entities throughout the session and also provides a means to remove them.
- *
- These menu items filter the group hierarchy so that you see groups and folders relevant to the task you want to perform. GrouperSystemAdmin can manage all groups and folders and is not intended to be a group member, therefore, GrouperSystemAdmin does not have access to these menu items. This is also true of SystemAdminGroup members who have opted to Act as admin.
helpFindingGroups = Finding groups
Grouper provides several ways of finding groups
- Browsing
- click on folders to find subfolders and groups:
- Listing
- with the exception of All Groups it is possible to hide folders and simply show the list of groups for a particular section. This may work well when there are relatively few groups
- Searching
- case-insensitive substring searching of group names below a selected folder is provided. There is an advanced search screen which gives the user more control over which attributes are searched.
- Saved groups
- as described above, groups can be saved in a list in the session for quick access by clicking on the appropriate menu item.
Finding entities
Entities can be found by:
- Browsing
- click on folders to find child groups. You can also click on a group to expand its membership list and select entities from that list
- Searching
- the user interface allows the user to enter a query string which is used to match entities. How the query string is interpreted depends on the specific implementation(s) of the Entity API present in the Grouper installation. The reference Grouper installation will return entities where:
- any of the entity attributes are an exact* match for the query string
- the entity is not a person and the the query string is a substring of a entity attribute.
- the entity is a person and:
- the query string is an exact match for a fisrt name
- the query string is two terms e.g. ben fiona, and the second term is an exact first name match, and the first term matches the start of the entity's surname.
helpSavedEntities = *searches are case-insensitive - Saved entities
- as described above, entities can be saved in a list in the session for quick access by clicking on the appropriate menu item. When looking for entities to assign membership or privileges to, the list of saved entities can be displayed for quick assignment to any entity in the list.
Direct vs indirect
Privileges and membership of a entity for a group (Group A) may be granted directly to the entity, or may be indirectly derived because the entity is a member of a group which has been granted a privilege for Group A, or is, itself, a member of Group A.
The Grouper UI indicates whether a membership is direct, indirect or may, in fact, have more than one source e.g. if entity A is a member of Group A and Group B and both Group A and Group B are members of Group C, then entity A has two memberships for Group C.
helpGroupMath = Group math
Grouper allows the membership of a group to be defined as the union (or), intersection (and) or complement (not) of two other groups. This special type of member is known as a Composite member. A composite member has two Factor groups.
Take two ordinary groups:
- fionas = Fiona Windsor, Fiona Benson, Fiona Tarbuck
- bensons= Keith Benson, Fiona Benson, Ian Benson
- fionas union bensons= Fiona Windsor, Fiona Benson, Fiona Tarbuck, Keith Benson, Ian Benson
- union indicates the result of adding the members of fionas and bensons.
- fionas intersection bensons= Fiona Benson
- intersection indicates the members-in-common of fionas and bensons.
- fionas complement bensons= Fiona Windsor, Fiona Tarbuck
- complement indicates the members of fionas minus the members of bensons. In this case the position, left or right, of the groups is important.
A group can have a single composite member, or any number of entities (including groups) as members, but not a combination, however, groups which have a composite member can be used anywhere other groups can be used.
Custom group types
It is possible for sites to define custom attributes for groups (Grouper administrators can see wiki for more info). A special kind of attribute, a list, is a collection of entities, similar to a group's membership list. If a group has list attributes, and you have READ or WRITE privilege for the list, the Grouper UI will let you manage the list in a similar way to a group's membership list. A custom list cannot have a direct composite member, however, it can have as members, groups which have composite members.
#####################################################
## Define tooltips and terms here:
## tooltips must start with "tooltip." Terms start with "term."
## there should be one and only one tooltip for a term.
## tooltips and terms are linked by the common name,
## which is the suffix of the nav.properties key. e.g.
## tooltip.group=A group is a collection
## term.group=Group
## term.group=group
##
## term.groups.3=gro
## term.groups=groups
## term.groups.1=Groups
## term.groups.2=GROUPS
## tooltip.groups=Groups are many people or groups
##
## these are linked because they all end in "group"
##
## if you only want a tooltip on a certain message (not wherever it appears in text),
## that is a targetted tooltip
##
## priv.ADMIN=admin
## tooltipTargetted.priv.ADMIN=Entity may modify group attributes, delete this group, or assign any privilege to any entity
##
## So wherever the message priv.ADMIN shows up, it will have a tooltip of "Entity may..."
##
## There is another variation on this where the value of the targetted tooltip can be a reference to another tooltip
##
## tooltipTargettedRef.priv.admin=tooltip.targetted.priv.ADMIN
#####################################################
tooltip.groups=Groups are 'localized!' many people or groups
#term.admin=Admin
#tooltip.admin=Entity (typically group or person) may modify the membership of this group, delete the group or assign privileges for the group
#term.createGroup=Create Group
#tooltip.createGroup=Add or create the name for a new group at this location in the hierarchy and the entity that creates a group is given Admin rights to the group by default.)
#term.name=Name
#tooltip.name=The group name that is displayed when browsing or searching
#term.path=Path
#tooltip.path=The path is the concatenation of the hierarchy (folders and groups) that lead to the unique location of this group
#term.textualId=Textual ID
#tooltip.textualId=An unique identifier describing this group that is searchable but generally not exposed to the user. This name cannot be changed after it is edited
#term.groups=groups
#term.groups.1=Groups
#term.groups.2=GROUPS
#term.groups.4=group
#tooltip.groups=A collection of members which can be groups or other entities e.g. people
term.direct.member=DIRECT member
tooltip.direct.member=A direct member is an entity (person, group, resource, etc.) that is assigned to the group.
term.indirect.member=INDIRECT member
tooltip.indirect.member=An indirect member is an entity (person, group, resource, etc.) that becomes a member of a group by virtue of its membership in another group. One group could be a member of another group.
term.everyEntity=EveryEntity
tooltip.everyEntity=Default group privileges that are inherited upon group creation
term.grouperSysAdmin=GrouperSysAdmin
tooltip.grouperSysAdmin=the highest level administrative user of the system
term.hasDirectPrivileges=has direct privileges
tooltip.hasDirectPrivileges=The privileges are assigned at this group
term.hasIndirectPrivileges=has indirect privileges
tooltip.hasIndirectPrivileges=The privileges are assigned in another group for which this entity is a member
#term.manageFolder=Manage Folder
#tooltip.manageFolder=This is where you can create or edit the folders within the hierarchy or add groups to the hierarchy
#term.member=Member
#tooltip.member=Any entity (typically group or person) that is a part of this group
term.permanentPath=Permanent Path
tooltip.permanentPath=An internal concatenation of the hierarchy to this group that is generally not exposed to the user
#term.optin=Optin
#tooltip.optin=Entity (typically group or person) may choose to join this group
#term.optout=Optout
#tooltip.optout=Entity (typically group or person) may choose to leave this group
#term.person=person
#tooltip.person=a type of entity
term.entitiesWithPrivileges=Entities With Privileges
tooltip.entitiesWithPrivileges=The entities (typically people or groups) that have this privilege
#term.read=Read
#tooltip.read=Entity (typically group or person) may see the membership list for this group
term.groupWorkspace=Group Workspace
tooltip.groupWorkspace=A session specific area where you can store groups that you will need to create compound groups, etc.
term.entityWorkspace=Entity Workspace
tooltip.entityWorkspace=A session specific area where you can store groups that you will need to create compound groups, etc.
#term.folder=Folder
#tooltip.folder=A fundamental unit (container) of the hierarchy that can have a parent (folder or root) or children (folders or groups)
#term.createFolder=Create Folder
#tooltip.createFolder=The ability to create children folders or branches in the hierarchy
term.creationPrivileges=Creation Privileges
tooltip.creationPrivileges=A hierarchy Is made up of folders. The folder subfolder relationship define the path through the hierarchy
#term.entity=Entity
#term.entity.1=Entities
#term.entity.2=entity
#tooltip.entity=An entity is an abstract item which can be a member of a group. The two most common types of entities are person or group. (In the future, additional entity types might be used to describe computers or applications.)
#term.update=Update
#tooltip.update=Entity (typically group or person) may modify the membership of this group
#term.view=View
#tooltip.view=Entity (typically group or person) may see that this group exists
term.sysAdminGroup=SysadminGroup
term.sysAdminGroup.1=SysAdminGroup
tooltip.sysAdminGroup=All people in this group have full system admin privileges
term.groupMathAnd=intersection
tooltip.groupMathAnd=The common entities between two groups. - Has to be in both Group A and Group B
term.groupMathOr=union
tooltip.groupMathOr=All entities in both groups. - Included if they are in either Group A and Group B
term.groupMathNot=complement
term.groupMathNot.2=subtract
tooltip.groupMathNot=The entities in the first group but not in the second. - Subtract Group B from Group A
#term.root=Root
#tooltip.root=The top of the hierarchy from which all folders and groups originate
#####################################################
## Define infodot text here:
## infodot must start with "infodot."
## the page titles are generated dynamically in the tile: title.jsp and need to be of the format "infodot.title."
## so a name for an infodot is based on title nav.properties id,
## and if there is a subtitle, concatenate. Then if there is an infodot based on that name,
## display the infodot.
##
## The name of the infodot will appear in the HTML comments
## so it is easy to configure.
##
## Here is an example comment:
##
##
## Here is the entry in the nav.properties:
## infodot.title.groups.all=Find a group, click the group name and act on the group (edit properties, show members, etc.) using the buttons at the bottom of the screen
#####################################################
infodot.title.stems.action.movesandcopies=On this screen, you will see links to move and copy groups and folders based on your privileges on the current folder.
infodot.title.stems.action.copy=On this screen, you can copy this folder to another folder. You must have Create privilege on the destination folder.
infodot.title.stems.action.move=On this screen, you can move this folder to another folder. You must have Create privilege on the destination folder. Note that this will update the ID path of all groups in this folder (including sub-folders). The ID path may be used by external systems to refer to groups.
infodot.title.stems.action.copy-other-stem-to-stem=On this screen, you can copy another folder to this folder.
infodot.title.stems.action.move-other-stem-to-stem=On this screen, you can move another folder to this folder. You must have Admin privilege on the folder being moved. Note that this will update the ID path of all groups in the folder being moved (including sub-folders). The ID path may be used by external systems to refer to groups.
infodot.title.stems.action.copy-group-to-stem=On this screen, you can copy a group to this folder. If a group with the same ID already exists in this folder, the copied group will have ".2" appended to the ID. You must have the appropriate privileges on the group based on your group copy selections. For instance, if you choose to copy all attributes, you must have read access to all attributes. Or if you choose to copy all privileges of the group, you must have read access to those privileges.
infodot.title.stems.action.move-group-to-stem=On this screen, you can move a group to this folder. You must have ADMIN privileges on the group.
infodot.title.groups.all=Find a group, click the group name and act upon the group (edit properties, show members, etc.) using the buttons at the bottom of the screen
infodot.title.groups.action.show-summary=Shows the name and description details of the group along with a series of actions (edit, list, add, etc.)that can be performed against the group.
infodot.title.groups.action.edit=On this screen you can edit the text for the ID, name or description. You can also assign privileges but cannot edit the path or path ID.
infodot.title.groups.action.show-members=Shows the members of the group and provides an ability to add or remove members and modify permissions (click is a direct member). Click the entiy to see an entity summary.
infodot.title.groups.action.find-new-members=Provides a search utlity so you can find people to add to this group. You can also act on your search results to modify permission (in bulk) of group members from here.
infodot.title.find.browse=Click the folder names shown in the hierarchy below to locate groups of interest.
infodot.title.groups.action.move=On this screen, you can move the group to another folder. You must have Create privilege on the destination folder.
infodot.title.groups.action.copy=On this screen, you can copy the group to another folder. If a group with the same ID already exists in the destination folder, the copied group will have ".2" appended to the ID. You must have Create privilege on the destination folder. Also, you must have the appropriate privileges on this group based on your group copy selections. For instance, if you choose to copy all attributes, you must have read access to all attributes. Or if you choose to copy all privileges of this group, you must have read access to those privileges.
infodot.title.groups.my=This page lets you examine the groups where you are enrolled a member.
You could be enrolled as a direct member, or as an indirect member (as a direct member of a group that is itself a member of another group).
You have a choice of two exploring modes (Browse or List) and two search modes (basic or advanced).
Note:
During your session, if you click "My memberships" in the left menu, this page will always display
- your most recent choice of mode
- your most recently selected location (folder) in the hierarchy
even if you click away and return later.
infodot.title.groups.manage=After locating a group (by browsing or searching) you can act on the group using the buttons at the bottom of the screen.
infodot.title.groups.manage.groups.action.create=Fill in the form to create a new group at this folder location in the hierarchy
infodot.title.groups.create=When selecting the create group button you will be creating a group in the current folder location
infodot.title.groups.join=A listing of groups for which you can become a member
infodot.title.groups.join.groups.action.create=Fill in the form to create a new group at this folder location in the hierarchy
infodot.title.saved.subjects=This is a workspace where you place entities that you will be using to create composite groups
infodot.title.search.subjects.subject.action.search-groups=Advanced search provides a means to select a variety of attributes and logic condition to use as criteria for your search.
infodot.title.subject.action.show-summary=Shows the name, attribute and description details of the entity.
infodot.title.saved.groups.saved-subjects.groups.list=The listing of groups that you can use to create composite groups
infodot.title.saved.groups.saved-subjects.list=The listing of entities that you can use to create composite groups
infodot.title.saved.groups=This is a workspace where you place groups that you will be using to create composite groups
infodot.title.search.subjects=Searching for entities
infodot.title.grouper.help=When you see this infodot on other pages you can click it to provide more
infodot.title.groups.action.search=Results from a group search are displayed below as a list of groups. The listings are in alphabetical order, and there is a max number of results displayed. The text displayed is the group Path (default), Name, or ID path, which you probably selected in the previous screen
infodot.subtitle.groups.heading.browse=You may use this panel to explore in two ways:
- Browsing the hierarchy of folders and groups
- Listing groups regardless of their hierarchical location.
To switch back and forth between these two views, click the link immediately to the right of the infodot above.
In the Browse mode, "Current location" indicates which folder which is being examined.
Below the current location is a list of subfolders and groups in the current folder location.
Click a folder name to explore that location; click a group name to view group or act upon the group (as permitted).
In the List mode, note that each group's name appears at the (far right) end of a folder path.
Since groups are listed without regard to hierarchy, no "Current location" is shown.
Click a group's path to view group or act upon the group (as permitted).
infodot.subtitle.groups.composite.add=Membership of a group can be defined as the UNION [or], INTERSECTION [and], or COMPLEMENT [not] of two other groups. This special type of member is known as a Composite member. A composite member is created from two Factor groups.
For example, take two ordinary groups:
1. fionas = Fiona Windsor, Fiona Benson, Fiona Tarbuck
2. bensons= Keith Benson, Fiona Benson, Ian Benson
fionas UNION bensons = Fiona Windsor, Fiona Benson, Fiona Tarbuck, Keith Benson, Ian Benson
union indicates the result of adding the members of fionas and bensons.
fionas INTERSECTION bensons = Fiona Benson
intersection indicates the members-in-common of fionas and bensons.
fionas COMPLEMENT bensons = Fiona Windsor, Fiona Tarbuck
complement indicates the members of fionas minus the members of bensons.
(In this case the position -- left or right -- of the groups is important.)
A group can have a single composite member, OR any number of subjects (including groups) as members, but not a combination.
However, groups which have a composite member can be used anywhere other groups can be used.
#####################################
##Define error text here
#####################################
error.repeat=If you continue to encounter errors, please contact technical support.
error.ticket=If you wish to follow up on this error, please quote reference {0}.
error.heading=Unexpeced error
error.group.save-attributes.delete=Unable to remove attribute [{0}]. {0} may be a required attribute.
error.saved-subjects.missing-parameter=Unable to save entity to your workspace. At least one input parameter was missing.
error.saved-subjects.groups.missing-parameter=Unable to save group to your workspace. At least one input parameter was missing.
error.saved-stems.stems.missing-parameter=Unable to save folder to your workspace. At least one input parameter was missing.
error.saved-subjects.exception=There was an unexpected error saving the entity [{0}] to your workspace.
error.saved-groups.exception=There was an unexpected error saving the group [{0}] to your workspace.
error.saved-stems.exception=There was an unexpected error saving the folder [{0}] to your workspace.
error.subject-summary.missing-field=An invalid membership field ({0}) was requested. Reverting to 'members'
error.subject-summary.missing-parameter=Unable to show entity details. At least one input parameter was missing.
error.subject-summary.subject.exception=There was an unexpected error retrieving the requested entity.
error.subject-summary.member.exception=There was an unexpected error retrieving the requested entity as a member.
error.subject.unresolvable=Subject [{0}] is unresolvable i.e. unavailable from the registered source [{1}].
error.login.not-recognised=You successfully authenticated, however, Grouper was unable to find your details.
error.login.not-unique=You successfully authenticated, however, Grouper could not uniquely identify you.
error.login.serious-error=You successfully authenticated, however, there was a serious error finding your details.
error.browse-stems.bad-node=A browsing error ocurred. Could not retrieve group or folder [{0}]. Group or folder may have been deleted or you may have insufficient privileges.
error.browse-stems.bad-find-node=A problem occurred determining the group or folder [{0}] for which you were finding members or assigning privileges.
error.delete-group.missing-parameter=Error deleting group.
error.delete-group.bad-id=Error deleting group. Could not retrieve group [{0}]. Group may already have been deleted or you may have insufficient privileges
error.delete-group.unknown-error=The group could not be deleted.
error.delete-stem.missing-parameter=Error deleting folder. Could not determine which to folder to delete.
error.delete-stem.bad-id=Error deleting folder. Could not retrieve folder [{0}]. Folder may already have been deleted.
error.delete-stem.unknown-error=The folder could not be deleted. May be it has child groups or folders?
error.assign-new-members.bad-field=Error retrieving membership list [{0}].
error.assign-members.missing-subject-parameter=Could not identify a selected entity.
error.assign-members.none-selected=You did not select any entities.
error.SchemaException=The request was incompatible with the Grouper database definition.
error.assign-new-members.missing-id=Missing parameter. Unable to determine group or folder.
error.assign-members.retrieve-subject=Error retrieving entity [{0}].
error.assign-members.assign-privs=Error assigning privileges.
error.import-members.missing-parameter=Unable to determine group to import members to.
error.import-members.bad-id=Unable to retrieve group [{0}] to import members to.
error.import-members.bad-field=Unable to find membership list [{0}] for import
error.join-group.missing-parameter=Missing parameter so could not identify group to join.
error.join-group.bad-id=Error joining group. Unable to retrieve group [{0}]. Group may have been deleted or you may have insufficient privileges.
error.join-group.add-error=Error joining group. Could not add you as a member.
error.leave-group.missing-parameter=Missing parameter so could not identify group to leave.
error.leave-group.bad-id=Error leaving group. Unable to retrieve group [{0}]. Group may have been deleted or you may have insufficient privileges.
error.leave-group.add-error=Error leaving group. Could not remove you as a member.
error.add-composite.missing-parameter=Missing parameter so could not identify group to add composite to.
error.add-composite.bad-id=Error adding composite. Unable to retrieve group [{0}]. Group may have been deleted or you may have insufficient privileges.
error.add-composite.delete-members-error=Error removing existing members prior to adding composite.
error.populate-assign-new-members.bad-id=Error retrieving group or folder [{0}]. It may have been deleted or you may have insufficient privileges.
error.populate-assign-new-members.missing-id=Missing parameter. Could not retrieve group or folder.
error.populate-assign-new-members.bad-subject=Unable to process selected entity.
error.chain.missing-parameter=Missing parameter. Unable to retrieve entity.
error.chain.subject.exception=An error occurred retrieving the entity [{0}].
error.chain.missing-group-id=Missing group identifier. Unable to retrieve group.
error.chain.bad-id=Error retrieving group [{0}]. Group may have been deleted or you may have insufficient privileges.
error.chain.bad-chain-id=Error retrieving associated group [{0}]. Group or membership may have been deleted.
error.chains.determine=Error determining ways in which entity [{0}] is a member of group [{1}] for membership list [{2}].
error.create-groups.find-root=Error retrieving root folder [{0}].
error.create-groups.find-current-node=Error retrieving current group or folder [{0}]. It may have been deleted or you may have insufficient privileges
error.browse.bad-current-id=Error retrieving current group or folder [{0}]. It may have been deleted or you may have insufficient privileges
error.populate-find-new-members.missing-parameter=Missing parameter. Could not identify group or folder.
error.populate-find-new-members.bad-id=Error retrieving target group or folder [{0}].
error.populate-find-new-members.bad-parent-stems=Error retrieving parent folders for [{0}].
error.group-as-factor.missing-group-id=Missing parameter. Could not retrieve group.
error.group-as-factor.bad-id=Error retrieving current group or folder [{0}]. It may have been deleted or you may have insufficient privileges
error.group-member.bad-field=Error retrieving membership list [{0}].
error.group-members.bad-field=Error retrieving membership list [{0}].
error.group-members.missing-grouporstem-id=Missing parameter. Could not retrieve group or folder.
error.group-member.missing-grouporstem-id=Missing parameter. Could not retrieve group or folder.
error.group-member.bad-id=Error retrieving current group or folder [{0}]. It may have been deleted or you may have insufficient privileges
error.group-members.bad-id=Error retrieving current group [{0}]. Group may have been deleted or you may have insufficient privileges
error.group-member.missing-subject-parameter=Could not identify the selected entity.
error.group-member.retrieve-subject=Error retrieving entity [{0}].
error.group-summary.missing-id=Missing parameter. Could not retrieve group.
error.group-summary.bad-id=Error retrieving current group [{0}]. Group may have been deleted or you may have insufficient privileges
error.search-new-members.bad-group-id=Error retrieving current group [{0}]. Group may have been deleted or you may have insufficient privileges
error.search-new-members.bad-stem-id=Error retrieving current folder [{0}]. Folder may have been deleted or you may have insufficient privileges
error.InsufficientPrivilegeException=You do not have sufficient privileges.
error.GrantPrivilegeException=You do not have sufficient privileges to grant privileges to the current group or folder.
error.MissingGroupOrStemException=Grouper was unable to retrieve a group or folder. It may have been deleted or you may have insufficient privileges.
error.SubjectNotFoundException=The entity does not exist.
error.SourceUnavailableException=Unable to connect to an entity database.
error.SubjectNotUniqueException=The system found a duplicate entity
error.GenericJDBCException=There was a serious error connecting to the database
error.GrouperDAOException=There was a serious error connecting to the database
error.CallerPageException=Invalid parameter. This might be due to following an out-of-date bookmark, because you have clicked the browser back button, or because you have started a new session. You should be able to continue by clicking a menu item.
error.unknown.exception=The error has been logged and the administrator notified.
error.hook.veto=This operation is not allowed: {0}.
error.browse.reset=Error retrieving current group or folder [{0}]. It may have been deleted or you may have insufficient privileges. Switching to root folder.
error.debug.bad-group=Debuggers group specified but does not exist
error.401=You are not authorised to use Grouper.
error.500=The error has been logged and the administrator notified.
error.404=The page you requested does not exist.
######################################################
## General ui lite
######################################################
ui-lite.login.link-text=Log in to Prototype Lite UI
ui-lite.login.intro=Just want to manage group memberships? Try out the new Lite UI
ui-lite.group-link=Manage members lite
tooltipTargetted.ui-lite.group-link=Use lite UI to update group memberships
ui-new.group-link=Manage group in new UI
tooltipTargetted.ui-new.group-link=Use the new UI to manage this group
ui-lite.invite-link=Invite external people
tooltipTargetted.ui-lite.invite-link=Invite external people who are not already registered to be a member of this group.
Note: the systems that use this group must be ready to use external people
ui-lite.invite-menu=Invite external people
ui-lite.invite-menuTooltip=Invite external people who are not already registered to be a member of this group. Note: the systems that use this group must be ready to use external people.
ui-lite.fromInvite-link=Lite UI
tooltipTargetted.ui-lite.fromInvite-link=Return to the lite membership management UI for this group
ui-lite.fromInvite-admin-link=Admin UI
tooltipTargetted.ui-lite.fromInvite-admin-link=Return to the admin UI for this group
guiAjaxSessionProblem = There was an error communicating with the server. Your session probably expired. You will be redirected to log in again.
######################################################
## Simple membership update screens
######################################################
stem.icon.alt=Folder
group.icon.alt=Group
simpleMembershipUpdate.title=Grouper UI
simpleMembershipUpdate.groups.summary.display-extension=Name
simpleMembershipUpdate.groups.summary.display-name=Path
simpleMembershipUpdate.groups.summary.description=Description
simpleMembershipUpdate.groups.summary.extension= ID
simpleMembershipUpdate.groups.summary.name= ID path
simpleMembershipUpdate.field.displayName.alternateName=Alternate ID path
simpleMembershipUpdate.groups.summary.id=UUID
simpleMembershipUpdate.tooltipTargetted.field.displayName.displayExtension=Name is the label that identifies this group, and might change.
simpleMembershipUpdate.tooltipTargetted.field.displayName.displayName=Path consists of the name of each enclosing folder plus the group name, separated by colons.
simpleMembershipUpdate.tooltipTargetted.field.displayName.description=Description contains notes about the group, which could include:
what the group represents, why it was created, etc.
simpleMembershipUpdate.tooltipTargetted.field.displayName.extension=ID is the unique identifier chosen by the group creator for this group.
The ID is unique within this folder, and should rarely change. It can be used by other systems to refer to this group.
simpleMembershipUpdate.tooltipTargetted.field.displayName.name=ID Path consists of the unique ID of each enclosing folder plus the group ID, separated by colons.
The ID Path is unique for each group and should rarely change. It can be used by other systems to refer to this group.
simpleMembershipUpdate.tooltipTargetted.groups.summary.id=UUID stands for Universal Unique Identifier, a generated key that is distinct from any other UUID in this or any other system.
The UUID does not change, and can be used as an identifier in other systems.
simpleMembershipUpdate.tooltipTargetted.field.displayName.alternateName=Alternate ID Path allows groups to be searchable using an alternate name. The format is the same as the format of ID Path.
This is especially useful when moving a group, which will add the old ID Path of the group as the Alternate ID Path by default. Like the ID Path, the Alternate ID Path can be used by other systems to refer to this group.
simpleMembershipUpdate.logout=You are logged out. You should close all your browser windows to complete the logout.
simpleMembershipUpdate.screenWelcome=Welcome
simpleMembershipUpdate.logoutImageAlt=Log out
simpleMembershipUpdate.logoutText=Log out
simpleMembershipUpdate.topIndexTitle=Grouper
infodot.title.simpleMembershipUpdate.topIndexTitle=Click on an operation below
simpleMembershipUpdate.topIndexSectionHeader=Grouper operations
#infodot.subtitle.simpleMembershipUpdate.topIndexSectionHeader=Testing stuff
simpleMembershipUpdate.topIndexMembershipUpdate=Membership update
simpleMembershipUpdate.indexSectionHeader=Simple membership update - find group
infodot.subtitle.simpleMembershipUpdate.indexSectionHeader=Type in search text in the combobox below to find a group. Click Select group to proceed to the membership update screen
simpleMembershipUpdate.updateTitle=Group membership update lite
infodot.title.simpleMembershipUpdate.updateTitle=This page lets you view and update the memberships of a group.
It is meant for only simple operations.
simpleMembershipUpdate.find.browse.here = Current location is:
simpleMembershipUpdate.viewInAdminUi=Admin UI
tooltipTargetted.simpleMembershipUpdate.viewInAdminUi=Switch to the Admin UI for a more complete set of features
simpleMembershipUpdate.viewInNewUi=New UI
tooltipTargetted.simpleMembershipUpdate.viewInNewUi=Switch to the New UI for a better user experience
simpleMembershipUpdate.groupSubtitle=Group
simpleMembershipUpdate.changeLocation=Find a group
simpleMembershipUpdate.addMemberSubtitle=Add member
simpleMembershipUpdate.addMemberButton=Add member
simpleMembershipUpdate.selectGroupButton=Select group
simpleMembershipUpdate.membershipListSubtitle=Membership list
simpleMembershipUpdate.pagingLabelPrefix=Showing group members:
simpleMembershipUpdate.noMembersFound=There are no members in this group
simpleMembershipUpdate.deleteConfirm =Are you sure you want to delete this membership?
simpleMembershipUpdate.pagingResultPrefix =Result page:
simpleMembershipUpdate.errorNotEnoughGroupChars=Enter 2 or more characters
simpleMembershipUpdate.errorNotEnoughSubjectChars=Enter 2 or more characters
simpleMembershipUpdate.errorNotEnoughFilterChars=Enter 3 or more characters
simpleMembershipUpdate.errorNotEnoughFilterCharsAlert=Enter 3 or more characters in the filter field
simpleMembershipUpdate.errorNoGroupsFound=No results found
simpleMembershipUpdate.errorTooManyGroups=Not all results returned, narrow your query
simpleMembershipUpdate.errorGroupSearchNothingEntered=Enter search criteria in the combobox to search for a group
simpleMembershipUpdate.errorGroupSearchNoParams=Need to pass in groupName or groupId in url, e.g. #operation=SimpleMembershipUpdate.init&groupName=some:group:name
simpleMembershipUpdate.errorGroupSearchCantFindGroup=Can't find group, enter search criteria in the combobox to search for a group
simpleMembershipUpdate.errorGroupSearchPermissions=You cannot read and update group, enter search criteria in the combobox to search for a group
simpleMembershipUpdate.errorGroupComposite=This is a composite group, please select a non-composite group
simpleMembershipUpdate.successMemberDeleted=Success: the member was deleted: {0}
simpleMembershipUpdate.errorUserSearchNothingEntered=Enter search criteria into the auto-complete box for an entity to add to the group
simpleMembershipUpdate.warningSubjectAlreadyMember=Entity already a member: {0}
simpleMembershipUpdate.successMemberAdded=Success: member added: {0}
simpleMembershipUpdate.errorSubjectNotFound=Entity not found: {0}
simpleMembershipUpdate.errorSubjectNotUnique=Entity not unique: {0}
simpleMembershipUpdate.errorSourceUnavailable=Source unavailable
simpleMembershipUpdate.errorUserSearchTooManyResults=Too many results, narrow your search
simpleMembershipUpdate.errorUserSearchNoResults=No results found, change your search criteria
simpleMembershipUpdate.deleteImageAlt=Delete
simpleMembershipUpdate.confirmLogout=Are you sure you want to log out?
simpleMembershipUpdate.errorTooManyBrowsers=The group you are editing is out of sync in the user interface. Perhaps you have two browser tabs open editing different groups. This group will be refreshed, please start over.
simpleMembershipUpdate.sortBy=Sort by:
simpleMembershipUpdate.advancedMenuDeleteMultiple=Delete multiple
simpleMembershipUpdate.advancedMenuDeleteMultipleTooltip=Selecting this option will show checkboxes next to members and a delete button at the bottom
simpleMembershipUpdate.advancedMenuShowGroupDetails=Show group details
simpleMembershipUpdate.advancedMenuShowGroupDetailsTooltip=Selecting this option will show more information about the group such as the id.
simpleMembershipUpdate.advancedMenuShowMemberFilter=Search for member
simpleMembershipUpdate.advancedMenuShowMemberFilterTooltip=Selecting this option will show a search box above the membership list where you can search for members in this group
simpleMembershipUpdate.advancedMenuImportExport=Import / export
simpleMembershipUpdate.advancedMenuImportExportTooltip=Import members from a comma separated values file (CSV) or export to a CSV file
simpleMembershipUpdate.advancedMenuExport=Export
simpleMembershipUpdate.advancedMenuExportTooltip=Export members to a comma separated values file (CSV) which can be opened in a spreadsheet program and manipulated
simpleMembershipUpdate.advancedMenuExportSubjectIds=Export entity IDs
simpleMembershipUpdate.advancedMenuExportSubjectIdsTooltip=Export entity IDs and source IDs to a comma separated values file (CSV) which can be opened in a spreadsheet program and manipulated
simpleMembershipUpdate.advancedMenuExportAll=Export all member data
simpleMembershipUpdate.advancedMenuExportAllTooltip=Export all member data (configured on server which fields), e.g. subject ID, login ID, name, etc to a comma separated values file (CSV) which can be opened in a spreadsheet program and manipulated
simpleMembershipUpdate.advancedMenuImport=Import
simpleMembershipUpdate.advancedMenuImportTooltip=Import from a comma separated values (CSV) file
simpleMembershipUpdate.deleteMultipleButton=Remove selected members
simpleMembershipUpdate.deleteMultipleTooltip=Select multiple members by checking checkboxes next to the members. Click this button to remove them from the group.
simpleMembershipUpdate.deleteAllButton=Remove all members
simpleMembershipUpdate.deleteAllTooltip=Remove all members in the group, including members not shown on the screen if there are more than the page size.
simpleMembershipUpdate.errorDeleteCheckboxRequired=Error: select one or more members to remove from the group
simpleMembershipUpdate.successMembersDeleted=Success: {0} members were deleted
simpleMembershipUpdate.successAllMembersDeleted=Success: all {0} members were deleted
simpleMembershipUpdate.advancedButton=Advanced features
simpleMembershipUpdate.addMemberCombohint=Enter search text to find a member to add
simpleMembershipUpdate.selectGroupCombohint=Enter search text to find a group
simpleMembershipUpdate.filterMemberCombohint=Enter search text to find a member in the list
simpleMembershipUpdate.downloadSubjectIdsLabel=Click the link to download the entityIds of the members:
simpleMembershipUpdate.downloadAllLabel=Click the link to download the members information:
simpleMembershipUpdate.importLabel=Select a comma separated values (CSV) file (e.g. from a spreadsheet program like Excel) which has a column for sourceId, and any of: entityId, entityIdentifier, entityIdOrIdentifier.
Alternately, you can upload a text file of entityIdOrIdentifiers, each on a new line, with the first line labeled as: entityIdOrIdentifier
simpleMembershipUpdate.importSubtitle=Import members
infodot.subtitle.simpleMembershipUpdate.importSubtitle=Upload members from a file. You check replace existing members, or just add new members.
The file must be a comma separated values (CSV) file, e.g. from a spreadsheet program like Microsoft Excel. There should be a column sourceId, and a column of any of the following: entityId, entityIdentifier, entityIdOrIdentifier. If there is no sourceId, then all sources will be found (this is less efficient), and if two sources have the same entityId, there will be an error. Each member is on its own line. The sourceId is one of a few entity source IDs configured in the Grouper server.
The entityId is typically a person ID, the entityIdentifer could be a login ID, and the entityIdOrIdentifier will look by ID, and if not found, look by identifier.
Note if you omit the sourceId column, it will be less efficient, but it will still work if you don't have two sources with the same entityId. This does not need to be CSV, it could be a text file. e.g. you could upload a text file of entityIdOrIdentifiers, each on a new line, with the first line labeled as: entityIdOrIdentifier
Example CSV file 1:
sourceId,entityId
someSourceId,12345
anotherSourceId,23456
Example 2:
sourceId,entityIdentifier
someSourceId,sjohnson
anotherSourceId,jsmith
Example 3:
sourceId,entityIdOrIdentifier
someSourceId,45678
anotherSourceId,jsmith
Example 4:
sourceId,entityId,entityIdentifier
someSourceId,45678
anotherSourceId,,jsmith
Example 5:
entityId
56789
67890
Example 6:
entityIdentifier
sjohnson
jsmith
Example 7:
entityIdOrIdentifier
76543
jsmith
simpleMembershipUpdate.importAvailableSourceIds=Available sourceIds:
simpleMembershipUpdate.importReplaceExistingMembers=Replace existing members:
simpleMembershipUpdate.importCommaSeparatedValuesFile=Entities file (CSV or list of id's each on new line):
simpleMembershipUpdate.importCancelButton=Cancel
simpleMembershipUpdate.importButton=Submit
simpleMembershipUpdate.importErrorNoWrongFile=Please submit a non-empty CSV file, the file name must end with .csv, or .txt :
simpleMembershipUpdate.importErrorBlankTextarea=Please enter in the CSV or entity id list in the textarea
simpleMembershipUpdate.importErrorNoId=Can't find any identifer, need to pass in a entityId or entityIdentifier or entityIdOrIdentifier
simpleMembershipUpdate.importErrorNoIdCol=Can't find any identifer column header on first line, need to pass in entityId or entityIdentifier or entityIdOrIdentifier
simpleMembershipUpdate.importErrorSubjectProblems=Error: did not remove any members since there were entity problems in import file
simpleMembershipUpdate.importSuccessSummary=Success: import completed
simpleMembershipUpdate.importErrorSummary=Error: import was not successful, see {0} errors below
simpleMembershipUpdate.importSizeSummary=The immediate membership size was {0} and is now {1}
simpleMembershipUpdate.importAddsDeletesSummary=There were {0} successful adds, and {1} successful deletes
simpleMembershipUpdate.importSubjectErrorsLabel=Entity errors
simpleMembershipUpdate.importAddErrorsLabel=Errors adding members
simpleMembershipUpdate.importRemoveErrorsLabel=Errors deleting members
simpleMembershipUpdate.importDirectInput=Entities (CSV or list of id's each on new line)
simpleMembershipUpdate.membershipLiteImportFileButton=Input members directly on screen
simpleMembershipUpdate.membershipLiteImportTextfieldButton=Input members from file
simpleMembershipUpdate.memberMenuDetailsLabel=Member details
simpleMembershipUpdate.memberMenuDetailsTooltip=View all attributes about this member
simpleMembershipUpdate.memberMenuEnabledDisabled=Edit start and end dates
simpleMembershipUpdate.memberMenuEnabledDisabledTooltip=Edit the dates this membership will start or end
simpleMembershipUpdate.memberMenuAlt=Member menu
simpleMembershipUpdate.memberDetailsSubtitle=Member details
simpleMembershipUpdate.enabledDisableSubtitle=Edit start and end dates
simpleMembershipUpdate.enabledDisableGroupPath=Group path:
simpleMembershipUpdate.enabledDisableEntity=Entity:
simpleMembershipUpdate.enabledDisableEntityId=Entity id:
simpleMembershipUpdate.enabledDisableEntitySource=Entity source:
simpleMembershipUpdate.enabledDisableStartDate=Start membership on date:
simpleMembershipUpdate.enabledDisableEndDate=End membership on date:
simpleMembershipUpdate.enabledDisableOkButton=Submit
simpleMembershipUpdate.enabledDisableCancelButton=Cancel
simpleMembershipUpdate.enabledDisableDateMask=(yyyy/mm/dd)
simpleMembershipUpdate.enabledDisabledSuccess=Success: member was saved
simpleMembershipUpdate.startOver=Your session had problems, maybe it timed out. Click here to try again, or close your window and start the application again from the starting point. If you have repeated problems contact the helpdesk
simpleMembershipUpdate.filterMemberButton=Search for member
simpleMembershipUpdate.filterLabel=Searching for member:
simpleMembershipUpdate.clearFilterButton=Clear member search
simpleMembershipUpdate.errorMemberFilterTooManyResults=Too many results, narrow your search
simpleMembershipUpdate.disabledPrefix=until
simpleMembershipUpdate.notAllowedInUi=You are not allowed to use this application, please contact your administrator.
simpleMembershipUpdate.noContainer=simpleMembershipUpdateContainer is null, start the application over with refresh and try again. Contact the help desk if you have repeated problems.
simpleMembershipUpdate.errorCircularReference=Error, you cannot add a group to be a member of itself
page.size=page size:
page.outOf=of
page.previous=Previous
page.next=Next
######################################
## Simple membership update named text (second key is the name, e.g. for membershipLiteName.grouperMembershipExample.simpleMembershipUpdate.updateTitle
## then the name is grouperMembershipExample
######################################
membershipLiteName.grouperMembershipExample.simpleMembershipUpdate.updateTitle=Group membership update lite3
membershipLiteName.grouperMembershipExample.infodot.title.simpleMembershipUpdate.updateTitle=This page lets you view and update the memberships of a group.
It is meant for only simple operations.3
#you can add any of the keys from a skinned membership update lite
######################################
## Subject picker defaults
######################################
subjectPickerDefault.header = Find a person
subjectPickerDefault.title = Person picker
subjectPickerDefault.searchSectionTitle = Enter search term
subjectPickerDefault.searchButtonText = Search
subjectPickerDefault.resultsSectionTitle = Search results
subjectPickerDefault.noSearchTerm = Enter a search term
subjectPickerDefault.noResultsFound = No results found
subjectPickerDefault.tooManyResults = Too many results, please narrow your search. Note, a partial listing might still display.
subjectPickerDefault.cancelText = Cancel
######################################
## Subject picker test for subject picker with name subjectPickerExample
######################################
subjectPicker.subjectPickerExample.title = Person picker
######################################
## AttributeDefName picker defaults
######################################
attributeDefNamePickerDefault.header = Find a resource
attributeDefNamePickerDefault.title = Resource picker
attributeDefNamePickerDefault.searchSectionTitle = Enter search term
attributeDefNamePickerDefault.searchButtonText = Search
attributeDefNamePickerDefault.resultsSectionTitle = Search results
attributeDefNamePickerDefault.noSearchTerm = Enter a search term
attributeDefNamePickerDefault.noResultsFound = No results found
attributeDefNamePickerDefault.tooManyResults = Too many results, please narrow your search. Note, a partial listing might still display.
attributeDefNamePickerDefault.cancelText = Cancel
######################################
## AttributeDefName picker test for attributeDefName picker with name attributeDefNamePickerExample
######################################
attributeDefNamePicker.attributeDefNamePickerExample.title = Resource picker
######################################
## External subject self register
######################################
externalSubjectSelfRegister.topIndexSectionHeader=Applications for users external to this institution
externalsubjectSelfRegister.topIndexSelfRegister=Self-register personal information for people external to this institution
externalSubjectSelfRegister.indicatesRequiredField = indicates a required field
externalSubjectSelfRegister.registerTitle=Self registration for people external to this institution
infodot.title.externalSubjectSelfRegister.registerTitle=This application allows people external to this institution to register they login credential and personal information. This allows them to be able to use applications at this institution. Your personal information is private and will only be used for business purposes at this institution. Refer to the institution privacy policy.
externalSubjectSelfRegister.registerSectionHeader=Register a new account
externalSubjectSelfRegister.registerSectionHeaderEdit=Edit your information
externalSubjectSelfRegister.noContainer=externalRegisterContainer is null, start the application over with refresh and try again. Contact the help desk if you have repeated problems.
externalSubjectSelfRegister.register.field.identifier.label=Login ID
externalSubjectSelfRegister.register.field.identifier.tooltip=Login ID is detected from the single-signon ID that was logged in with. This can only be edited by the adminstrator.
externalSubjectSelfRegister.register.field.name.label=Name
externalSubjectSelfRegister.register.field.name.tooltip=First and last name to show up in pick lists
externalSubjectSelfRegister.register.field.institution.label=Institution
externalSubjectSelfRegister.register.field.institution.tooltip=Name of the institution that identifies you in pick lists
externalSubjectSelfRegister.register.field.email.label=Email
externalSubjectSelfRegister.register.field.email.tooltip=Email address where notifications will be sent
externalSubjectSelfRegister.register.field.jabber.label=Jabber ID
externalSubjectSelfRegister.register.field.jabber.tooltip=Jabber ID for online chat
externalSubjectSelfRegister.submitButtonText=Submit
externalSubjectSelfRegister.submitButtonTooltip=Submit and save your information
externalSubjectSelfRegister.deleteRecordButtonText=Delete record
externalSubjectSelfRegister.deleteRecordButtonTooltip=Delete your personal information from the system. Note, if you register again, you might not have the same roles and permissions that you had before the delete.
externalSubjectSelfRegister.startOver=Your session had problems, maybe it timed out. Click here to try again, or close your window and start the application again from the starting point. If you have repeated problems contact the helpdesk
externalSubjectSelfRegister.fieldRequiredError=Error: this field is required: {0}
externalSubjectSelfRegister.cantFindInviteButCanRegister=Error: your invitation cannot be found or is expired. Make sure the link from the email was not wrapped to a new line. You can still register, though you may not have the correct role memberships. Register and contact the person who invited you to grant role memberships if applicable.
externalSubjectSelfRegister.cantFindInvite=Error: your invitation cannot be found or is expired. Make sure the link from the email was not wrapped to a new line. You successfully registered, though you may not have the correct role memberships. Contact the person who invited you to grant role memberships if applicable.
externalSubjectSelfRegister.invalidInvite=Error: your invitation from {0} is expired or invalid. Make sure the link from the email was not wrapped to a new line. You successfully registered, though you may not have the correct role memberships. Contact the person who invited you to grant role memberships if applicable.
externalSubjectSelfRegister.inviteSuccess=Success: your invitation from {0} has been processed. You were added to the roles: {1}.
externalSubjectSelfRegister.cannotRegisterWithoutInvite=Error: you cannot register without an invitation.
externalSubjectSelfRegister.cantFindInviteAndCannotRegister=Error: your invitation cannot be found or is expired. Make sure the link from the email was not wrapped to a new line. You are not allowed to register without a valid invitation. Contact the person who invited you to issue another invitation.
externalSubjectSelfRegister.successEdited=Success: your information was saved: {0}
externalSubjectSelfRegister.invalidIdentifier=Error: invalid identifier: {0}, either you are not allowed to register or your identity department needs to release the eduPersonPrincipalName to this server.
externalSubjectSelfRegister.invalidIdentifierInvite=Error: invalid identifier: {0}
externalSubjectSelfRegister.invalidIdentifierButFound=Note: invalid identifier: {0}, which cannot be used an external user, but your profile details were found. Your data might not be saved, but if you were granted access, those grants will succeed.
externalSubjectSelfRegister.notAllowed=Error: you are not allowed to register
######################################
## Invite external subjects
######################################
inviteExternalSubjects.noContainer=inviteExternalSubjectsContainer is null, start the application over with refresh and try again. Contact the help desk if you have repeated problems.
inviteExternalSubjects.inviteTitle=Invite external people to participate in groups
infodot.title.inviteExternalSubjects.inviteTitle=This application allows invitations to external people to login and register some personal information. When they register they will be assigned to the groups that you specify below. This allows them to be able to use applications at this institution. Refer to the institution privacy policy.
inviteExternalSubjects.inviteSectionHeader=Enter the invitation information
inviteExternalSubjects.messageToUsersLabel=Message to users
inviteExternalSubjects.messageToUsersTooltip=Enter an optional message to users in the email that will be sent to them. There will be other instructions and a link in the email as well.
inviteExternalSubjects.subjectLabel=Email subject
inviteExternalSubjects.subjectTooltip=Enter an optional subject for the email to the users. If one if not entered, a standard one will be used.
inviteExternalSubjects.emailAddressesLabel=Email addresses of people to invite
inviteExternalSubjects.emailAddressesTooltip=Enter the email addresses of people to invite separated by space, newline, comma, or semicolon.
inviteExternalSubjects.loginIdsLabel=Login IDs of people to invite
inviteExternalSubjects.loginIdsTooltip=Enter the login IDs of people to invite separated by space, newline, comma, or semicolon. You must know the exact login ID. If you are not sure, invite by email address or find out from them what it is. This is the ID that the institutional authentication system sends to this application when the user logs in. It might be in the form: [email protected]
inviteExternalSubjects.ccEmailAddressLabel=Email addresses to notify when registered
inviteExternalSubjects.ccEmailAddressTooltip=This email address will be notified when the registration is complete. Note, you can put multiple email addresses in this field separated by space, comma, or semicolon.
inviteExternalSubjects.groupsToAssignLabel=Groups to assign to new users
inviteExternalSubjects.groupsToAssignTooltip=Once the external users have registered, they will be assigned to these groups. Note, you must have privileges to assign users to these groups at the time of invitation. Type in the UUID, the Group Name, the Group ID, or a substring and select the result from the drop down.
inviteExternalSubjects.groupsToAssignHelp=Enter search text to find a group
inviteExternalSubjects.submitButtonText=Submit
inviteExternalSubjects.submitButtonTooltip=Submit and save your information
inviteExternalSubjects.errorNotEnoughGroupChars=Enter 2 or more characters
inviteExternalSubjects.errorNoGroupsFound=No results found
inviteExternalSubjects.errorTooManyGroups=Not all results returned, narrow your query
inviteExternalSubjects.confirmDelete=Confirm that you want to delete your information. This will remove your access.
inviteExternalSubjects.deleteNotFound=Warning: cannot find identifier: {0}
inviteExternalSubjects.deleteSuccess=Success: deleted external entity: {0}
inviteExternalSubjects.emailAddressRequired=Error: email address to invite is required
inviteExternalSubjects.emailAddressInvalid=Error: email address is invalid: {0}
inviteExternalSubjects.invalidGroupUuid=Error: Cannot find group. Please enter search criteria in the field, and select the desired group: {0}
inviteExternalSubjects.invalidGroupPrivileges=Error: You do not have UPDATE privileges on Group: {0}
inviteExternalSubjects.errorInvitingUsers=Error: Problem sending invites: {0}
inviteExternalSubjects.successInvitingUsers=Success: Invites have been sent
inviteExternalSubjects.notAllowed=Error: you are not allowed to invite external people
inviteExternalSubjects.inviteByIdentifierLabel=Invite by
inviteExternalSubjects.inviteByIdentifierTooltip=Choose if you want to invite people by email address or login ID, if you know the exact login ID. If you are not sure, invite by email address or find out from them what it is.
inviteExternalSubjects.inviteByIdentifierRadioLabel=Login ID
inviteExternalSubjects.inviteByIdentifierRadioTooltip=This is the ID that the institutional authentication system sends to this application when the user logs in. This might be in the form: [email protected] though if you are not sure, invite by email address.
inviteExternalSubjects.inviteByEmailRadioLabel=Email address
inviteExternalSubjects.inviteByEmailRadioTooltip=This any email address the user uses. The user will get an invitation in the email, they can click on the link, and register for the application
inviteExternalSubjects.errorAssigningGroup=Error: could not assign entity: {0} to group: {1}. {2}
inviteExternalSubjects.successCreatedExternalSubject=Success: created external entity: {0}
inviteExternalSubjects.successExistedExternalSubject=Note: external entity: {0} was already registered in the system
inviteExternalSubjects.successAssignedSubjectToGroup=Success: entity: {0} was assigned to group: {1}
inviteExternalSubjects.noteSubjectAlreadyInGroup=Note: entity: {0} was already a member of group: {1}
inviteExternalSubjects.errorNotAllowedToInviteByIdentifer=Error: not allowed to invite by identifier
######################################
## Simple attribute update
######################################
simpleAttributeUpdate.title=Grouper UI
simpleAttributeUpdate.indexSectionHeader=Attribute management
simpleAttributeUpdate.topIndexAssignAttribute=View or assign attributes
simpleAttributeUpdate.topIndexCreateEdit=Create or edit attributes
## ASSIGN ATTRIBUTES
simpleAttributeAssign.assignIndexTitle=View or assign attributes
simpleAttributeAssign.assignIndexTitleInfodot=Assign or unassign attributes and values
simpleAttributeAssign.indexSectionHeader=Filter or assign attributes
simpleAttributeAssign.selectOwnerTypeButton=Select owner type
simpleAttributeAssign.ownerType = Owner type:
simpleAttributeAssign.ownerTypeGroup = Group
simpleAttributeAssign.ownerTypeFolder = Folder
simpleAttributeAssign.ownerTypeMember = Entity
simpleAttributeAssign.ownerTypeMembership = Membership
simpleAttributeAssign.ownerTypeImmediateMembership = Immediate membership
simpleAttributeAssign.ownerTypeAttributeDefinition = Attribute definition
simpleAttributeAssign.requiredOwnerType = Owner type is required
simpleAttributeAssign.attributeDefinition = Attribute definition:
tooltipTargetted.simpleAttributeAssign.attributeDefinition = The definition part of the attribute holds the settings, security, metadata. Generally attribute definitions have multiple attribute names.
simpleAttributeAssign.attributeName = Attribute name:
tooltipTargetted.simpleAttributeAssign.attributeName = The attribute name is the part of the attribute which is assigned to owner objects. Generally multiple attribute names are related to one attribute definition.
simpleAttributeAssign.assignGroup = Owner group:
tooltipTargetted.simpleAttributeAssign.assignGroup = The group which has attributes assigned to it
simpleAttributeAssign.assignStem = Owner folder:
tooltipTargetted.simpleAttributeAssign.assignStem = The folder which has attributes assigned to it
simpleAttributeAssign.assignMember = Owner entity:
tooltipTargetted.simpleAttributeAssign.assignMember = The entity which has attributes assigned to it
simpleAttributeAssign.assignMembershipGroup = Owner membership group:
tooltipTargetted.simpleAttributeAssign.assignMembershipGroup = The group part of the membership which has attributes assigned to it
simpleAttributeAssign.assignMembershipSubject = Owner membership entity:
tooltipTargetted.simpleAttributeAssign.assignMembershipSubject = The entity part of the membership which has attributes assigned to it
simpleAttributeAssign.assignOwnerAttributeDef = Owner attribute definition:
tooltipTargetted.simpleAttributeAssign.assignOwnerAttributeDef = The attribute definition which has attributes assigned to it
simpleAttributeAssign.assignFilterButton = Filter
simpleAttributeUpdate.assignAssignments = Attribute assignments
simpleAttributeUpdate.assignNoResultsFound = No attribute assignments found
simpleAttributeUpdate.assignHeaderUuid = Assignment UUID
simpleAttributeAssign.assignAttributeButton = Assign
simpleAttributeUpdate.assignErrorAttributeNameRequired = Error: attribute name required
simpleAttributeUpdate.assignErrorGroupRequired = Error: owner group is required
simpleAttributeUpdate.assignErrorStemRequired = Error: owner folder is required
simpleAttributeUpdate.assignErrorEntityRequired = Error: owner entity is required
simpleAttributeUpdate.assignErrorMembershipRequired = Error: cannot find the membership of the entity in the group, first add the member, then add an attribute
simpleAttributeUpdate.assignErrorAttrDefRequired = Error: owner attribute definition is required
simpleAttributeUpdate.assignErrorPickGroup = Error: select a group from the combo box
simpleAttributeUpdate.assignErrorPickFolder = Error: select a folder from the combo box
simpleAttributeUpdate.assignErrorPickSubject = Error: select an entity from the combo box
simpleAttributeUpdate.assignErrorPickAttributeName = Error: select an attribute name from the combo box
simpleAttributeUpdate.assignErrorPickOwnerAttributeDef = Error: select an owner attribute definition from the combo box
simpleAttributeUpdate.assignSuccess = Success: the attribute was assigned
simpleAttributeUpdate.assignErrorNotMultiAssign = Error: the attribute is already assigned, and is not multi-assignable
simpleAttributeUpdate.assignHeaderOwnerGroup = Owner group
simpleAttributeUpdate.assignHeaderOwnerFolder = Owner folder
simpleAttributeUpdate.assignHeaderOwnerMember = Owner entity
simpleAttributeUpdate.assignHeaderOwnerMembership = Owner membership
simpleAttributeUpdate.assignHeaderOwnerAttributeDefinition = Owner attribute definition
simpleAttributeUpdate.assignHeaderAttributeName = Attribute name
simpleAttributeUpdate.assignHeaderGroup = Group
simpleAttributeUpdate.assignHeaderEntity = Entity
simpleAttributeUpdate.assignHeaderAssignmentType = Assignment type
simpleAttributeUpdate.assignHeaderOwnerEntity = Owner object
simpleAttributeUpdate.assignHeaderAttributeDef = Attribute definition
simpleAttributeUpdate.assignHeaderEnabled = Enabled?
simpleAttributeUpdate.assignHeaderValues = Assignment values
simpleAttributeUpdate.assignDeleteConfirm = Are you sure you want to delete this attribute assignment?
simpleAttributeUpdate.deleteAssignmentAlt = Delete the attribute assignment
simpleAttributeUpdate.assignSuccessDelete = Success: the attribute assignment was deleted
simpleAttributeAssign.assignEditSubtitle = Edit attribute assignment
simpleAttributeAssign.assignEditSubtitleInfodot = Edit attribute assignment to assign enabled or disabled dates
simpleAttributeAssign.assignEditId = Attribute assignment UUID
simpleAttributeAssign.assignEditCancelButton = Cancel
simpleAttributeUpdate.assignEditSuccess = Success: your changes were saved
simpleAttributeUpdate.editAssignmentAlt = Edit assignment details
simpleAttributeAssign.assignEditSubmitButton = Submit
simpleAttributeUpdate.assignEditDisabledDate = End attribute assignment on date
simpleAttributeUpdate.assignEditEnabledDate = Start attribute assignment on date
simpleAttributeUpdate.assignEditEnabledDisabledDateMask = (yyyy/mm/dd)
simpleAttributeUpdate.assignEnabled = enabled
tooltipTargetted.simpleAttributeUpdate.assignEnabled = This attribute assignment is enabled based on the enabled and disabled dates
simpleAttributeUpdate.assignDisabled = disabled
tooltipTargetted.simpleAttributeUpdate.assignDisabled = This attribute assignment is disabled based on the enabled and disabled dates
simpleAttributeAssign.assignFilterEnabledDisabled = Enabled / disabled:
simpleAttributeAssign.assignFilterEnabledDisabledValueEnabled = Enabled only
simpleAttributeAssign.assignFilterEnabledDisabledValueDisabled = Disabled only
simpleAttributeAssign.assignFilterEnabledDisabledValueAll = All
simpleAttributeAssign.assignEditNotAllowed = You are not allowed to edit the attribute assignment
simpleAttributeAssign.assignMenuAddValue = Add value
simpleAttributeAssign.assignMenuAddValueTooltip = Add a value to this assignment
simpleAttributeAssign.assignAddValueSubtitle = Add value to attribute assignment
simpleAttributeAssign.assignAddValueSubtitleInfodot = Attribute assignment can have one or more values associated with it. Add a value to the assignment
simpleAttributeAssign.assignAddValueCancelButton = Cancel
simpleAttributeAssign.assignAddValueSubmitButton = Submit
simpleAttributeUpdate.assignAddValue = Value to add
simpleAttributeUpdate.addValueRequired = Enter a value to add
simpleAttributeUpdate.assignAddValueSuccess = Success: the attribute assignment value was added
simpleAttributeUpdate.assignValueDeleteConfirm = Are you sure you want to delete this attribute assignment value?
simpleAttributeUpdate.assignDeleteValueAlt = Delete the attribute assignment value
simpleAttributeUpdate.assignValueSuccessDelete = Success: the attribute assignment value was deleted
simpleAttributeUpdate.editValueAssignmentAlt = Edit the attribute assignment value
simpleAttributeAssign.assignValueEditSubtitle = Edit the attribute assignment value
simpleAttributeAssign.assignValueEditSubtitleInfodot = Attribute assignment can have one or more values associated with it. Edit this value to the assignment
simpleAttributeUpdate.assignValueEdit = Value to edit
simpleAttributeAssign.assignValueEditId = Value UUID
simpleAttributeAssign.assignValueEditCancelButton = Cancel
simpleAttributeAssign.assignValueEditSubmitButton = Submit
simpleAttributeUpdate.editValueRequired = Enter a value to edit
simpleAttributeUpdate.assignEditValueSuccess = Success: the attribute assignment value was saved
simpleAttributeUpdate.assignMetadata = Metadata on assignment
simpleAttributeUpdate.assignDirect = Direct assignment
simpleAttributeAssign.assignMenuAddMetadataAssignment = Add metadata assignment
simpleAttributeAssign.assignMenuAddMetadataAssignmentTooltip = Attribute assignments can have attribute assignments assigned to them. This is metadata about the original assignment.
simpleAttributeUpdate.assignCantAddMetadataOnAssignmentOfAssignment = Error: Cannot add metadata assignment on a metadata assignment
simpleAttributeAssign.assignMetadataAddSubtitle = Add metadata attribute assignment
simpleAttributeAssign.assignMetadataAddSubtitleInfodot = Attribute assignment can occur on object owners (group, folder, member, etc), or on an attribute assignment itself. An assignment on an attribute assignment is metadata about that assignment.
simpleAttributeAssign.assignMetadataAddCancelButton = Cancel
simpleAttributeAssign.assignMetadataAddSubmitButton = Submit
simpleAttributeUpdate.assignMetadataAddSuccess = Success: the metadata assignment was saved
simpleAttributeUpdate.assignMetadataLabelSuffix = (underlying)
tooltipTargetted.simpleAttributeUpdate.assignMetadataLabelSuffix = The underlying data for a metadata assignment is the information about the underlying assignment, not the assignment on that assignment
simpleAttributeUpdate.assignMetadataAttributeNameRequired = Error: select an attribute name from the combobox
simpleAttributeUpdate.assignMetadataAlreadyAssigned = Error: that attribute name is already assigned to the owner and its attribute definition does not allow multiple assignments to the same owner
simpleAttributeUpdate.folderFilterLabel = Search under this folder only
simpleAttributeUpdate.filterLabel = Enter search string:
## CREATE / EDIT SCREEN
simpleAttributeUpdate.addEditTitle=Grouper UI
simpleAttributeUpdate.createEditIndexTitle = Create or edit attribute definitions
simpleAttributeUpdate.createEditIndexTitleInfodot = Attributes can be assigned to certain types of objects in Grouper. They can be managed by certain people, they can have value(s), and can be used as permissions.
The attribute definition (managed on this screen) holds information about who can manage it and what type it is. To fully define the attribute, you attach Attribute Definition Names to this Attribute Definition. The Attribute Definition Name is what is assigned to the attribute owner (assignee). Each attribute definition can have multiple Attribute Definition Names.
simpleAttributeUpdate.selectAttributeButton = Edit attribute
simpleAttributeUpdate.createAttributeButton = New attribute
simpleAttributeUpdate.selectAttributeDefCombohint = Enter search text to find an attribute definition
simpleAttributeUpdate.errorNotEnoughChars = Enter 2 or more characters
simpleAttributeUpdate.errorTooManyAttributeDefs = Not all results returned, narrow your query
simpleAttributeUpdate.errorCantEditAttributeDef = Error: Input search text and select an attribute definition to edit
simpleAttributeUpdate.errorCantEditAttributeDefPriv = You do not have privileges to edit this attribute definition
simpleAttributeUpdate.errorCantEditAttributeDefName = Error: Input search text and select an attribute definition name to edit
simpleAttributeUpdate.errorCantEditAttributeDefNamePriv = You do not have privileges to edit this attribute name
simpleAttributeUpdate.filterAttributeDefButton = Edit attribute definition
simpleAttributeUpdate.newAttributeDefButton = New attribute definition
simpleAttributeUpdate.editSectionHeader = Attribute definition
simpleAttributeUpdate.editId = UUID
tooltipTargetted.simpleAttributeUpdate.editId= UUID stands for Universal Unique Identifier, a generated key that is distinct from any other UUID in this or any other system.
The UUID does not change, and can be used as an identifier in other systems.
simpleAttributeUpdate.folder = Folder
tooltipTargetted.simpleAttributeUpdate.folder = Folder is the namespace where this attribute definition resides.
simpleAttributeUpdate.extension = ID
tooltipTargetted.simpleAttributeUpdate.extension=ID is the unique identifier you set for this attribute definition.
The ID must be unique within this folder, and should rarely change. It can be used by other systems to refer to this attribute definition.
The ID field cannot contain spaces or special characters.
simpleAttributeUpdate.description = Description
tooltipTargetted.simpleAttributeUpdate.description = Description contains notes about the attribute definition, which could include:
what the attribute definition represents, why it was created, etc.
simpleAttributeUpdate.type = Type
tooltipTargetted.simpleAttributeUpdate.type = Attribute definition type describes the attribute definition.
Generally it will be attribute or permission. Type is used for templates, limit describes a permission, and service identifies which application the object refers to.
simpleAttributeUpdate.valueType = Value type
tooltipTargetted.simpleAttributeUpdate.valueType = If this attribute assignment holds one or more values, this is the type. If there are no allowed values, select No value. The Member ID option means that a member UUID is the value.
simpleAttributeUpdate.multiAssignable = Multi-assignable
tooltipTargetted.simpleAttributeUpdate.multiAssignable = If this attribute can be assigned to the same owner object more than once. For instance, a Group can have more than one Rule attached to it, so the Rule attribute is multi-assignable
simpleAttributeUpdate.multiValued = Multi-valued
tooltipTargetted.simpleAttributeUpdate.multiValued = If this attribute has values, if it can have more than one value assigned at once.
simpleAttributeUpdate.assignTo = Assign to
tooltipTargetted.simpleAttributeUpdate.assignTo = Designate which types of objects that this definition can be assigned to. There are six base object types, or you can assign attributes to the assignment of attributes to those base object types. Membership can be assigned to an immediate or an effective membership, and will still exist as an orphan if the membership is unassigned until the membership is reassigned. Immediate membership attribute assignments are only assignable to immediate memberships and are automatically deleted once the membership is unassigned.
simpleAttributeUpdate.type.attr = Attribute
# TODO remove domain in version 2.3+
simpleAttributeUpdate.type.domain = Service
simpleAttributeUpdate.type.service = Service
simpleAttributeUpdate.type.limit = Limit
simpleAttributeUpdate.type.perm = Permission
simpleAttributeUpdate.type.type = Type
simpleAttributeUpdate.valueType.integer = Integer number
simpleAttributeUpdate.valueType.timestamp = Timestamp
simpleAttributeUpdate.valueType.string = String
simpleAttributeUpdate.valueType.floating = Decimal number
simpleAttributeUpdate.valueType.marker = No value
simpleAttributeUpdate.valueType.memberId = Member UUID
simpleAttributeUpdate.assignTo.attributeDef = Attribute definition
simpleAttributeUpdate.assignTo.stem = Folder
simpleAttributeUpdate.assignTo.group = Group / Role / Local entity
simpleAttributeUpdate.assignTo.member = Member
simpleAttributeUpdate.assignTo.membership = Membership
simpleAttributeUpdate.assignTo.immediateMembership = Membership - immediate only
simpleAttributeUpdate.assignTo.attributeDefAssign = Attribute definition attribute assignment
simpleAttributeUpdate.assignTo.stemAssign = Folder attribute assignment
simpleAttributeUpdate.assignTo.groupAssign = Group / Role / Local entity attribute assignment
simpleAttributeUpdate.assignTo.memberAssign = Member attribute assignment
simpleAttributeUpdate.assignTo.membershipAssign = Membership attribute assignment
simpleAttributeUpdate.assignTo.immediateMembershipAssign = Membership - immediate only - attribute assignment
simpleAttributeUpdate.errorNoAttributeDefsFound = No results found
simpleAttributeUpdate.errorNoFoldersFound = No results found
simpleAttributeUpdate.errorFolderRequired = Invalid entry: select a folder
simpleAttributeUpdate.errorAttributeTypeRequired = Invalid entry: select an attribute type
simpleAttributeUpdate.errorAssignToRequired = Invalid entry: select at least one object type that this attribute type can be assigned to
simpleAttributeUpdate.errorPermissionAssignToGroupOrMshipOnly = Invalid entry: permission type attributes can only be assigned to groups or memberships (non-immediate only)
simpleAttributeUpdate.errorExtensionRequired = Invalid entry: input an ID
simpleAttributeUpdate.errorPermissionSingleAssignRequired = Invalid entry: permission type attributes cannot be multi-assignable
simpleAttributeUpdate.errorPermissionNoValueRequired = Invalid entry: permission type attributes must have a no-value value type
simpleAttributeUpdate.errorNoMultiValuedIfMarker = Invalid entry: cannot be multi-valued if the value type is: No value
simpleAttributeUpdate.errorTooManyFolders = Not all results returned, narrow your query
simpleAttributeUpdate.selectFolderCombohint = Enter search text to find a folder
simpleAttributeUpdate.editPanelDelete = Delete
simpleAttributeUpdate.editPanelDeleteConfirm = This will permanently delete the attribute definition, all associated attribute definition names, and all assignments and values. Are you sure you want to delete it?
simpleAttributeUpdate.editPanelSubmit = Save
simpleAttributeUpdate.editPanelCancel = Cancel
simpleAttributeUpdate.editPanelActions = Actions
simpleAttributeUpdate.editPanelPrivileges = Privileges
simpleAttributeUpdate.editPanelEditActionHierarchies = Action inheritance
simpleAttributeUpdate.attributeDefSaved=The attribute definition [{0}] was successfully saved
simpleAttributeUpdate.attributeDefDeleted=The attribute definition [{0}] was successfully deleted
## actions section
simpleAttributeUpdate.actionsSectionHeader = Attribute actions
infodot.subtitle.simpleAttributeUpdate.actionsSectionHeader=Attributes are assigned in a triple with action as part of it. By default, the action is "assign". But it can be different. You could have an attribute as a permissions which is English101. You can assign it with an action of Read to someone, and Update to someone else.
simpleAttributeUpdate.actions = Actions
simpleAttributeUpdate.deleteActionConfirm = Are you sure you want to delete this action?
simpleAttributeUpdate.deleteActionImageAlt = Delete action
simpleAttributeUpdate.cantDeleteLastAction = You cannot delete the last action. To delete that action, add another first.
simpleAttributeUpdate.cantDeleteAllActions = You cannot delete all the actions in one request
simpleAttributeUpdate.changeActions = Change actions
tooltipTargetted.simpleAttributeUpdate.changeActions = Add an action, or input multiple actions (whitespace, comma, or semicolon separated). Note you can also replace the existing list with the new list.
simpleAttributeUpdate.addActions = Add actions
simpleAttributeUpdate.replaceActions = Replace actions
simpleAttributeUpdate.successChangeActions = The action list has been successfully changed
simpleAttributeUpdate.successDeleteAction = The action [{0}] was successfully deleted
simpleAttributeUpdate.editActionImageAlt = Edit action
simpleAttributeUpdate.actionGraphImageAlt = Action inheritance graph
## graph actions
simpleAttributeUpdate.graphActionsSectionHeader = Action inheritance graph
infodot.subtitle.simpleAttributeUpdate.graphActionsSectionHeader = Attribute actions can imply other actions for permissions. i.e. if an action is assigned, then other actions will be effectively assigned. For example the action Admin can imply Read and Update
## edit actions
simpleAttributeUpdate.editActionsSectionHeader = Edit attribute action
infodot.subtitle.simpleAttributeUpdate.editActionsSectionHeader = Attribute actions can imply other actions for permissions. i.e. if an action is assigned, then other actions will be effectively assigned. For example the action Admin can imply Read and Update
simpleAttributeUpdate.editActionChange = Change action inheritance
simpleAttributeUpdate.errorChangeActions = Invalid entry: input the actions
simpleAttributeUpdate.addActionEditImplies = Add action that implies
simpleAttributeUpdate.addActionEditImpliedBy = Add action implied by
simpleAttributeUpdate.actionsImply = Actions that imply {0}
tooltipTargetted.simpleAttributeUpdate.actionsImply = All actions (immediate or effective) which imply the action which is being edited
simpleAttributeUpdate.immediateActionsImply = Actions that immediately imply {0}
tooltipTargetted.simpleAttributeUpdate.immediateActionsImply = All actions which imply the action which is being edited, whose immediate relationships can be removed
simpleAttributeUpdate.actionEdit = Action name
tooltipTargetted.simpleAttributeUpdate.actionEdit = the action currently being edited
simpleAttributeUpdate.actionsImpliedBy = Actions implied by {0}
tooltipTargetted.simpleAttributeUpdate.actionsImpliedBy = All actions (immediate or effective) which are implied by the action which is being edited
simpleAttributeUpdate.immediateActionsImpliedBy = Actions immediately implied by {0}
tooltipTargetted.simpleAttributeUpdate.immediateActionsImpliedBy = All actions which are implied by the action which is being edited, whose immediate relationships can be removed
simpleAttributeUpdate.editAttributeNames = Attribute names
simpleAttributeUpdate.cantEditActionIfOnlyOne = You must have more than one action to setup action inheritance
simpleAttributeUpdate.mustSelectAnActionToImply = Invalid entry: select an action that will imply this action. If there are none to choose, then all actions already imply this action.
simpleAttributeUpdate.mustSelectAnActionToImpliedBy = Invalid entry: select an action that will be implied by this action. If there are none to choose, then all actions already are implied by this action.
simpleAttributeUpdate.successAddImpliesAction = The implies relationship was successfully added
simpleAttributeUpdate.successAddImpliedByAction = The implied by relationship was successfully added
simpleAttributeUpdate.deleteActionImpliesConfirm = Are you sure you want the break this implies relationship?
simpleAttributeUpdate.deleteActionImpliesImageAlt = Remove implies relationship
simpleAttributeUpdate.successRemoveImpliesAction = The implies relationship was successfully removed
simpleAttributeUpdate.deleteActionImpliedByConfirm = Are you sure you want the break this implied by relationship?
simpleAttributeUpdate.deleteActionImpliedByImageAlt = Remove implied by relationship
simpleAttributeUpdate.successRemoveImpliedByAction = The implied by relationship was successfully removed
simpleAttributeUpdate.privilegeSubject = Add entity to list
tooltipTargetted.simpleAttributeUpdate.privilegeSubject = Find an entity to add to the list of entities to view or assign
simpleAttributeUpdate.privilegeSubjectCombohint = Enter search text to find an entity to add to the list
## attribute def privileges
simpleAttributeUpdate.privilegesSectionHeader = Attribute definition privileges
infodot.subtitle.simpleAttributeUpdate.privilegesSectionHeader = View and edit which subjects have privileges to see that an attribute definition exists, read which objects it is assigned to, assign it to objects, or administer the attribute definition
To add privileges to a new entity, or to view entities which are not shown below, use the 'Add entity to list' dialog
priv.attrOptin=Optin
priv.attrOptout=Optout
priv.attrView=View
priv.attrRead=Read
priv.attrUpdate=Update
priv.attrAdmin=Admin
priv.attrDefAttrRead=Attribute read
priv.attrDefAttrUpdate=Attribute update
priv.attrOptinLower=optin
priv.attrOptoutLower=optout
priv.attrViewLower=view
priv.attrReadLower=read
priv.attrUpdateLower=update
priv.attrAdminLower=admin
priv.attrDefAttrReadLower=attribute read
priv.attrDefAttrUpdateLower=
tooltipTargettedRef.priv.attrOptinLower=tooltipTargetted.priv.attrOptin
tooltipTargettedRef.priv.attrOptoutLower=tooltipTargetted.priv.attrOptout
tooltipTargettedRef.priv.attrViewLower=tooltipTargetted.priv.attrView
tooltipTargettedRef.priv.attrReadLower=tooltipTargetted.priv.attrRead
tooltipTargettedRef.priv.attrUpdateLower=tooltipTargetted.priv.attrUpdate
tooltipTargettedRef.priv.attrAdminLower=tooltipTargetted.priv.attrAdmin
tooltipTargettedRef.priv.attrDefAttrReadLower=tooltipTargetted.priv.attrDefAttrRead
tooltipTargettedRef.priv.attrDefAttrUpdateLower=tooltipTargetted.priv.attrDefAttrUpdate
tooltipTargetted.priv.attrOptin=Entity may assign this attribute to its own Member object. Note this privilege is implied by 'Update' or 'Admin'
tooltipTargetted.priv.attrOptout=Entity may unassign this attribute to its own Member object. Note this privilege is implied by 'Update' or 'Admin'
tooltipTargetted.priv.attrView=Entity may see that this attribute definition exists. Note this privilege is implied by 'Read', 'Update', 'Attribute read', 'Attribute update', 'Optin', 'Optout', or 'Admin'
tooltipTargetted.priv.attrRead=Entity may see the list of objects that this attribute is assigned to. Note this privilege is implied by 'Admin'
tooltipTargetted.priv.attrUpdate=Entity may assign this attribute definition. Note this privilege is implied by 'Admin'
tooltipTargetted.priv.attrAdmin=Entity may modify attribute definition attributes, delete this attribute definition, or assign any privilege to an entity
tooltipTargetted.priv.attrDefAttrRead=Entity may see the attributes for this attribute definition. Note this privilege is implied by 'Admin'
tooltipTargetted.priv.attrDefAttrUpdate=Entity may modify the attributes of this attribute definition. Note this privilege is implied by 'Admin'
simpleAttributeUpdate.entityHeader = Entity
tooltipTargetted.simpleAttributeUpdate.entityHeader = Entity is a single thing which can be a assigned privileges. Generally an entity is a person, but it could also be a group or resource.
simpleAttributeUpdate.unassignedTooltip = This privilege is not assigned to this entity
simpleAttributeUpdate.immediateTooltip = This privilege is immediately assigned to this entity and can be unassigned
simpleAttributeUpdate.effectiveTooltip = This privilege is effectively assigned to this entity due to a group membership, another privilege e.g. admin, or a globally assigned privilege, and can be unassigned by removing the subject from the group, or unassigning the privilege from the group, or removing the other action, or unassigning the global privilege
simpleAttributeUpdate.immediateAndEffectiveTooltip = This privilege is immediately assigned to this entity and can be unassigned. However this privilege is also effectively assigned to this entity due to a group membership, another privilege e.g. admin, or a globally assigned privilege, and can be completely unassigned by subsequently addressing the effective privilege
simpleAttributeUpdate.filterAttributePrivilegeSubject = Add entity to list
simpleAttributeUpdate.errorTooManyPrivilegeSubjects=Not all results returned, narrow your query
simpleAttributeUpdate.errorPrivilegeUserSearchNoResults=No results found, change your search criteria
simpleAttributeUpdate.additionalPrivilegeSubjectNotFound=Error: not expected, but entity not found
simpleAttributeUpdate.privilegePanelSubmit = Save
simpleAttributeUpdate.privilegePanelCancel = Cancel
simpleAttributeUpdate.privilegeGrant = Success: Privilege {0} was assigned to entity: {1}
simpleAttributeUpdate.privilegeRevoke = Success: Privilege {0} was revoked from entity: {1}
simpleAttributeUpdate.privilegeGrantWarn = Warning: Privilege {0} was already assigned to entity: {1}
simpleAttributeUpdate.privilegeRevokeWarn = Warning: Privilege {0} was already revoked from entity: {1}
simpleAttributeUpdate.noPrivilegeChangesDetected = Warning: no privilege changes detected
simpleAttributeUpdate.noPrivilegesFound = No privileges found
simpleAttributeUpdate.indirectPrivileges = Indirect privileges
tooltipTargetted.simpleAttributeUpdate.indirectPrivileges = Indirect privileges are not assigned directly to the entity, and cannot be directly unassigned.
They are inherited for instance dur to a membership of the entity in a group, and a privilege granted to the group
simpleAttributeUpdate.indirectPrivilegesCheckbox = Show indirect privileges due to group memberships
simpleAttributeUpdate.create.privs-for-all=Assign privileges to everyone
tooltipTargetted.simpleAttributeUpdate.create.privs-for-all=Select which privileges should be public for everyone. -This is the same as assigning a privilege to EveryEntity.
simpleAttributeUpdate.pagingLabelPrefix = Showing privilege entities:
simpleAttributeUpdate.pagingResultPrefix = Result page:
simpleAttributeUpdate.pagingAndAdditional = (not including additional entities added)
simpleAttributeUpdate.privilegeImageConfirmAllow = Are you sure you want to allow this privilege to this entity?
simpleAttributeUpdate.privilegeImageConfirmDeny = Are you sure you want to revoke this privilege from this entity?
simpleAttributeUpdate.topIndex = Manage attributes and permissions
## Attribute names
simpleAttributeNameUpdate.addEditTitle = Grouper UI
simpleAttributeNameUpdate.topIndexAttributeName = Create or edit attribute names
simpleAttributeNameUpdate.createEditIndexTitle = Create or edit attribute names
simpleAttributeNameUpdate.createEditIndexTitleInfodot = Attribute names are the labels which are related to attribute definitions. The attribute definition holds the settings for the attribute names. The attribute names are what is assigned to the object owner.
simpleAttributeNameUpdate.selectAttributeDefCombohint = Enter search text to find an attribute definition to filter by
simpleAttributeNameUpdate.indexSectionHeader = Find an attribute definition name
simpleAttributeNameUpdate.attributeDef = Attribute definition
tooltipTargetted.simpleAttributeNameUpdate.attributeDef = The attribute definition holds the settings and security for attribute. Each attribute definition can have multiple attribute names. Narrow your search for attribute definition names by selecting an attribute definition.
simpleAttributeNameUpdate.attributeDefName = Attribute name
tooltipTargetted.simpleAttributeNameUpdate.attributeDefName = The attribute name is what is assigned to the owner object. Find an attribute name to edit, or create a new one
simpleAttributeNameUpdate.selectAttributeDefNameCombohint = Enter search text to find an attribute name to edit
simpleAttributeNameUpdate.errorNotEnoughChars = Enter 2 or more characters
simpleAttributeNameUpdate.errorNoAttributeNamesFound = No results found
simpleAttributeNameUpdate.errorTooManyAttributeDefNames = Not all results returned, narrow your query
simpleAttributeNameUpdate.errorCantFindAttributeDef = Error: Cannot find attribute definition, please type in search text and select a result from the drop down
simpleAttributeNameUpdate.errorCantEditAttributeDefName = Error: Input search text and select an attribute name to edit
simpleAttributeNameUpdate.errorCantEditAttributeDefNameHierarchy = Error: Input search text and select an attribute name to add inheritance
simpleAttributeNameUpdate.editSectionHeader = Attribute name
simpleAttributeNameUpdate.folder = Folder
tooltipTargetted.simpleAttributeNameUpdate.folder = Folder is the namespace where this attribute name resides.
simpleAttributeNameUpdate.selectFolderCombohint = Enter search text to find a folder
simpleAttributeNameUpdate.editId = UUID
tooltipTargetted.simpleAttributeNameUpdate.editId= UUID stands for Universal Unique Identifier, a generated key that is distinct from any other UUID in this or any other system.
The UUID does not change, and can be used as an identifier in other systems.
simpleAttributeNameUpdate.extension = ID
tooltipTargetted.simpleAttributeNameUpdate.extension=ID is the unique identifier you set for this attribute name.
The ID must be unique within this folder, and should rarely change. It can be used by other systems to refer to this attribute name.
The ID field cannot contain spaces or special characters.
simpleAttributeNameUpdate.displayExtension = Name
tooltipTargetted.simpleAttributeNameUpdate.displayExtension=Name is the label that identifies this attribute name, and might change.
simpleAttributeNameUpdate.description = Description
tooltipTargetted.simpleAttributeNameUpdate.description = Description contains notes about the attribute name, which could include:
what the attribute name represents, why it was created, etc.
simpleAttributeNameUpdate.editPanelDelete = Delete
simpleAttributeNameUpdate.editPanelDeleteConfirm = This will permanently delete the attribute name, all associated inheritance, and all assignments and values. Are you sure you want to delete it?
simpleAttributeNameUpdate.editPanelSubmit = Save
simpleAttributeNameUpdate.editPanelCancel = Cancel
simpleAttributeNameUpdate.editPanelHierarchies = Inheritance
simpleAttributeNameUpdate.editPanelHierarchyGraph = Inheritance graph
simpleAttributeNameUpdate.attributeDefNameDeleted=The attribute name [{0}] was successfully deleted
simpleAttributeNameUpdate.filterAttributeDefNameButton = Edit attribute name
simpleAttributeNameUpdate.newAttributeDefNameButton = New attribute name
simpleAttributeNameUpdate.attributeDefNotFound = Attribute definition [{0}] not found
simpleAttributeNameUpdate.errorFolderRequired = Invalid entry: select a folder
simpleAttributeNameUpdate.errorExtensionRequired = Invalid entry: input an ID
simpleAttributeNameUpdate.errorDisplayExtensionRequired = Invalid entry: input a display extension
simpleAttributeNameUpdate.attributeDefNameSaved = The attribute name [{0}] was successfully saved
simpleAttributeNameUpdate.attributeDefNameExists = Invalid entry: the attribute name [{0}] already exists
simpleAttributeNameUpdate.editIdPath = ID Path
tooltipTargetted.simpleAttributeNameUpdate.editIdPath = ID Path consists of the unique ID of each enclosing folder plus the attribute name ID, separated by colons.
The ID Path is unique for each attribute name and should rarely change. It can be used by other systems to refer to this attribute name.
simpleAttributeNameUpdate.errorCantEditAttributeDef = Error: Input search text and select an attribute definition for this attribute name
simpleAttributeNameUpdate.editPanelAttributeDef = Attribute definition
simpleAttributeNameUpdate.errorNotPermission = Error: this is not a permission
#######################################
## attribute def name sets
#######################################
simpleAttributeNameUpdate.attributeDefNameSetSectionHeader = Attribute name inheritance
infodot.subtitle.simpleAttributeUpdate.attributeDefNameSetSectionHeader = Attribute names for permissions can imply other attribute names. i.e. if an attribute name is assigned, then other attribute names will be effectively assigned. For example if the attribute names are an organization chart, then assigning a parent organization can imply a child organization
simpleAttributeNameUpdate.attributeDefNameGraphSectionHeader = Attribute name graph
infodot.subtitle.simpleAttributeUpdate.attributeDefNameGraphSectionHeader = Attribute names for permissions can imply other attribute names. i.e. if an attribute name is assigned, then other attribute names will be effectively assigned. For example if the attribute names are an organization chart, then assigning a parent organization can imply a child organization. This graph shows relationships relevant to the selected attribute name above. Not all relationships of all nodes is shown.
simpleAttributeNameUpdate.hierarchies.attributeDefName = Attribute name
tooltipTargetted.simpleAttributeNameUpdate.hierarchies.attributeDefName = The attribute name is the part of the attribute that is assigned to the owner
simpleAttributeNameUpdate.editHierarchyChange = Edit inheritance
tooltipTargetted.simpleAttributeNameUpdate.editHierarchyChange = Add an attribute name which is implied by this or which implies this
simpleAttributeNameUpdate.addAttributeNameThatImplies = Add attribute name that implies
simpleAttributeNameUpdate.addAttributeNameImpliedByThis = Add attribute name implied by
simpleAttributeNameUpdate.selectAttributeDefNameHierarchyCombohint = Enter search text to find an attribute name
simpleAttributeNameUpdate.attributeNamesImply = Attribute names that imply {0}
tooltipTargetted.simpleAttributeNameUpdate.attributeNamesImply = Attribute names that when they are assigned, then it implies an effective assignment to this attribute name.
simpleAttributeNameUpdate.immediateAttributeNamesImply = Immediate attribute names that imply {0}
tooltipTargetted.simpleAttributeNameUpdate.immediateAttributeNamesImply = Immediate attribute names that imply this attribute name are directly assigned and can be unassigned. In other words, there is not a multi-level inheritance.
simpleAttributeNameUpdate.immediateAttributeNamesImpliedBy = Immediate attribute names implied by {0}
tooltipTargetted.simpleAttributeNameUpdate.immediateAttributeNamesImpliedBy = Immediate attribute names implied by this attribute name are directly assigned and can be unassigned. In other words, there is not a multi-level inheritance.
simpleAttributeNameUpdate.attributeNamesImpliedBy = Attribute names implied by {0}
tooltipTargetted.simpleAttributeNameUpdate.attributeNamesImpliedBy = Attribute names that when this attribute name is assigned, then they are implied as an effective assignment
simpleAttributeNameUpdate.failureAddImpliesAttributeDefName = The implies relationship was already assigned
simpleAttributeNameUpdate.successAddImpliesAttributeDefName = The implies relationship was successfully added
simpleAttributeNameUpdate.failureAddImpliedByAttributeDefName = implied by relationship was already assigned
simpleAttributeNameUpdate.successAddImpliedByAttributeDefName = The implied by relationship was successfully added
simpleAttributeNameUpdate.deleteAttributeNameImpliesConfirm = Are you sure you want the break this implies relationship?
simpleAttributeNameUpdate.deleteAttributeNameImpliesImageAlt = Remove implies relationship
simpleAttributeNameUpdate.deleteAttributeNameImpliedByConfirm = Are you sure you want the break this implies relationship?
simpleAttributeNameUpdate.deleteAttributeNameImpliedByImageAlt = Remove implied by relationship
simpleAttributeNameUpdate.successRemoveImpliesAttributeDefName = The implies relationship was successfully removed
simpleAttributeNameUpdate.failureRemoveImpliesAttributeDefName = The implies relationship did not exist
simpleAttributeNameUpdate.successRemoveImpliedByAttributeDefName = The implied by relationship was successfully removed
simpleAttributeNameUpdate.failureRemoveImpliedByAttributeDefName = The implied by relationship did not exist
###################################
## Groups and roles
###################################
simpleGroupUpdate.topIndexGroupUpdate = Groups / roles / local entities
simpleGroupUpdate.topIndexAdminUi = Admin UI
simpleGroupUpdate.topIndexNewUi = New UI
simpleGroupUpdate.title = Grouper UI
simpleGroupUpdate.indexSectionHeader = Groups / roles / local entities
simpleGroupUpdate.topIndexCreateEdit = Create or edit groups / roles / local entities
simpleGroupUpdate.addEditTitle = Grouper UI
simpleGroupUpdate.errorCantEditGroup = Error: Input search text and select a group or role to edit
simpleGroupUpdate.errorInsertGroupExists = Error: Group already exists, edit the existing group with the panel at the top, instead of creating a new one
simpleGroupUpdate.createEditIndexTitle = Create or edit groups / roles / local entities
simpleGroupUpdate.createEditIndexTitleInfodot = Groups are a collection of groups / roles / local entities / subjects. Roles are a special type of group which can also hold permissions centrally for applications. Local entities can represent applications, system account, or anything else that needs to be a member or have permissions.
simpleGroupUpdate.selectGroupCombohint = Enter search text to find a group / role / local entity
simpleGroupUpdate.filterGroupButton = Edit group / role / local entity
simpleGroupUpdate.newGroupButton = New group / role / local entity
simpleGroupUpdate.errorNotEnoughChars = Enter 2 or more characters
simpleGroupUpdate.errorNoGroupsFound = No results found
simpleGroupUpdate.errorNoRolesFound = No results found
simpleGroupUpdate.errorTooManyGroups = Not all results returned, narrow your query
simpleGroupUpdate.errorTooManyRoles = Not all results returned, narrow your query
simpleGroupUpdate.editSectionEntityHeader = Local entity
simpleGroupUpdate.editSectionGroupHeader = Group
simpleGroupUpdate.editSectionRoleHeader = Role
simpleGroupUpdate.editSectionGroupRoleHeader = Group / role / local entity
simpleGroupUpdate.folder = Folder
tooltipTargetted.simpleGroupUpdate.folder = Folder is the namespace where this group/role resides.
simpleGroupUpdate.selectFolderCombohint = Enter search text to find a folder
simpleGroupUpdate.editId = UUID
tooltipTargetted.simpleGroupUpdate.editId= UUID stands for Universal Unique Identifier, a generated key that is distinct from any other UUID in this or any other system.
The UUID does not change, and can be used as an identifier in other systems.
simpleGroupUpdate.extension = ID
tooltipTargetted.simpleGroupUpdate.extension=ID is the unique identifier you set for this group / role / local entity.
The ID must be unique within this folder, and should rarely change. It can be used by other systems to refer to this group / role / local entity.
The ID field cannot contain spaces or special characters.
simpleGroupUpdate.displayExtension = Name
tooltipTargetted.simpleGroupUpdate.displayExtension=Name is the label that identifies this group / role / local entity, and might change.
simpleGroupUpdate.description = Description
tooltipTargetted.simpleGroupUpdate.description = Description contains notes about the group / role / local entity, which could include:
what the group represents, why it was created, etc.
simpleGroupUpdate.type = Type
tooltipTargetted.simpleGroupUpdate.type = This could be a Group, Role or Local entity. A Group is a collection of entities (groups/roles/subjects). A Role is a Group which can also hold permission information centrally for the application. A local entity could be a system id, or some other subject which can be a member or have permissions.
simpleGroupUpdate.type.group = Group
tooltipTargetted.simpleGroupUpdate.type.group = A Group is a collection of groups / roles / local entities / subjects.
simpleGroupUpdate.type.role = Role
tooltipTargetted.simpleGroupUpdate.type.role = A Role is a Group which can also hold permission information centrally for the application.
simpleGroupUpdate.type.entity = Local entity
tooltipTargetted.simpleGroupUpdate.type.entity = A local entity could represent a system ID or an application or something else which can be a member or have permissions.
simpleGroupUpdate.create.privs-for-all = Assign privileges to everyone
tooltipTargetted.simpleGroupUpdate.create.privs-for-all = Select which privileges should be public for everyone. This is the same as assigning a privilege to EveryEntity.
simpleGroupUpdate.editPanelDelete = Delete
simpleGroupUpdate.editPanelDeleteConfirm = This will permanently delete the group/role, all associated memberships, privileges, permissions, etc. Are you sure you want to delete it?
simpleGroupUpdate.editPanelSubmit = Save
simpleGroupUpdate.editPanelCancel = Cancel
simpleGroupUpdate.editPanelPrivileges = Privileges
simpleGroupUpdate.editPanelEditActionHierarchies = Role inheritance
simpleGroupUpdate.errorFolderRequired = Invalid entry: select a folder
simpleGroupUpdate.errorExtensionRequired = Invalid entry: input an ID
simpleGroupUpdate.errorDisplayExtensionRequired = Invalid entry: input a Name
simpleGroupUpdate.groupSaved=The group [{0}] was successfully saved
simpleGroupUpdate.groupDeleted=The group [{0}] was successfully deleted
simpleGroupUpdate.memberships = Memberships
# group update privilege panel
simpleGroupUpdate.unassignedTooltip = This privilege is not assigned to this entity
simpleGroupUpdate.immediateTooltip = This privilege is immediately assigned to this entity and can be unassigned
simpleGroupUpdate.effectiveTooltip = This privilege is effectively assigned to this entity due to a group membership, another privilege e.g. admin, or a globally assigned privilege, and can be unassigned by removing the subject from the group, or unassigning the privilege from the group, or removing the other action, or unassigning the global privilege
simpleGroupUpdate.immediateAndEffectiveTooltip = This privilege is immediately assigned to this entity and can be unassigned. However this privilege is also effectively assigned to this entity due to a group membership, another privilege e.g. admin, or a globally assigned privilege, and can be completely unassigned by subsequently addressing the effective privilege
simpleGroupUpdate.filterAttributePrivilegeSubject = Add entity to list
simpleGroupUpdate.privilegePanelSubmit = Save
simpleGroupUpdate.privilegePanelCancel = Cancel
simpleGroupUpdate.privilegeGrant = Success: Privilege {0} was assigned to entity: {1}
simpleGroupUpdate.privilegeRevoke = Success: Privilege {0} was revoked from entity: {1}
simpleGroupUpdate.privilegeGrantWarn = Warning: Privilege {0} was already assigned to entity: {1}
simpleGroupUpdate.privilegeRevokeWarn = Warning: Privilege {0} was already revoked from entity: {1}
simpleGroupUpdate.noPrivilegeChangesDetected = Warning: no privilege changes detected
simpleGroupUpdate.noPrivilegesFound = No privileges found
simpleGroupUpdate.indirectPrivileges = Indirect privileges
tooltipTargetted.simpleGroupUpdate.indirectPrivileges = Indirect privileges are not assigned directly to the entity, and cannot be directly unassigned.
They are inherited for instance dur to a membership of the entity in a group, and a privilege granted to the group
simpleGroupUpdate.indirectPrivilegesCheckbox = Show indirect privileges due to group memberships
simpleGroupUpdate.pagingLabelPrefix = Showing privilege entities:
simpleGroupUpdate.pagingResultPrefix = Result page:
simpleGroupUpdate.pagingAndAdditional = (not including additional entities added)
simpleGroupUpdate.privilegeImageConfirmAllow = Are you sure you want to allow this privilege to this entity?
simpleGroupUpdate.privilegeImageConfirmDeny = Are you sure you want to revoke this privilege from this entity?
simpleGroupUpdate.privilegesSectionHeader = Group / role privileges
infodot.subtitle.simpleGroupUpdate.privilegesSectionHeader = View and edit which subjects have privileges to see that a group / role exists, read its memberships, or administer the group / role.
To add privileges to a new entity, or to view entities which are not shown below, use the 'Add entity to list' dialog
simpleGroupUpdate.privilegeSubject = Add entity to list
tooltipTargetted.simpleGroupUpdate.privilegeSubject = Find an entity to add to the list of entities to view or assign
simpleGroupUpdate.privilegeSubjectCombohint = Enter search text to find an entity to add to the list
simpleGroupUpdate.filterGroupPrivilegeSubject = Add entity to list
simpleGroupUpdate.entityHeader = Entity
tooltipTargetted.simpleGroupUpdate.entityHeader = Entity is a single thing which can be a assigned privileges. Generally an entity is a person, but it could also be a group or resource.
simpleGroupUpdate.errorTooManyPrivilegeSubjects = Not all results returned, narrow your query
simpleGroupUpdate.errorPrivilegeUserSearchNoResults = No results found, change your search criteria
simpleGroupUpdate.additionalPrivilegeSubjectNotFound = Error: not expected, but entity not found
localEntityWsJwtKeyTitle = Ws JWT key
localEntityCreateWsJwtKeyButton = Create and download key
localEntityViewWsJwtKeyNoAssociatedKey = There is currently no key associated with this local entity
localEntityWsJwtCreatedTimestampLabel = Created timestamp
localEntityWsJwtExpiresOnDateLabel = Expiration date
localEntityWsJwtPrivateKeyLabel = Private key
localEntityWsJwtPrivateKeyHint = Private key will never be shown again. Please copy it and keep it somewhere safe.
localEntityWsJwtGenerateKeySuccess = WS JWT key was generated successfully.
localEntityWsJwtUpdateKeySuccess = WS JWT key was updated successfully.
localEntityWsJwtDeleteKeySuccess = WS JWT key was deleted successfully.
localEntityWsJwtDeleteKeyNotFoundError = WS JWT key was not found.
localEntityWsJwtLastEditedTimestampLabel = Last edited timestamp
localEntityWsJwtLastAuthenticatedTimestampLabel = Last authenticated timestamp
localEntityWsJwtMemberWhoSetPasswordLabel = Member who set the password
localEntityWsJwtAllowedFromCidrsLabel = Allowed from networks
localEntityWsJwtExpirationDateLabel = Expiration date
localEntityExpiresAtDateHint = Format - yyyy/mm/dd
localEntityAllowedFromCidrsHint = Comma separate for multiple, e.g. 1.2.3.4/24, 1.2.3.5/36 - leave blank to allowed from everywhere
localEntityWsJwtRecentSourceAddressesLabel = Recent source addresses
localEntityWsJwtFailedSourceAddressesLabel = Failed source addresses
localEntityWsJwtSampleAuthorizationHeaderLabel = Sample authorization header
localEntityWsJwtKeyMoreActionsButton = WS JWT key actions
ariaLabelGuiMoreLocalEntityWsJwtKeyActions = Show WS JWT key actions
localEntityWsJwtKeyMoreActionsEditSettings = Edit settings
localEntityWsJwtKeyMoreActionsDeleteKey = Delete key and settings
localEntityWsJwtKeyConfirmDeleteKey = Are you sure you want to delete this key and its settings?
localEntityWsJwtKeyMoreActionsDeleteKeyAndCreateNew = Replace key
localEntityWsJwtKeyConfirmDeleteAndCreateNewKey = Are you sure you want to replace this key?
localEntityViewWsJwtKeySaveButton = Save
localEntityViewWsJwtKeyCancelButton = Cancel
localEntityWsJwtKeyExpiresAtInvalidFormat = Expires at is not in the correct format (yyyy/mm/dd)
#########################
## role hierarchies
#########################
simpleGroupUpdate.editPanelRoleHierarchies = Role inheritance
simpleGroupUpdate.editPanelRoleHierarchyGraphButton = Role inheritance graph
simpleGroupUpdate.roleHierarchiesSectionHeader = Role inheritance
infodot.subtitle.simpleGroupUpdate.roleHierarchiesSectionHeader = Roles with permissions can imply assignment to other roles with permissions. i.e. if a role is assigned, then permissions from other roles will be effectively assigned. For example if a role 'Senior approver' implies role 'Approver', then assigning an entity to 'Senior approver' will assign all permissions assigned to 'Senior approver' in addition to effectively assigning all permissions in 'Approver'
simpleGroupUpdate.roleHierarchyGraphSectionHeader = Role inheritance graph
infodot.subtitle.simpleGroupUpdate.roleHierarchyGraphSectionHeader = Roles with permissions can imply assignment to other roles with permissions. i.e. if a role is assigned, then permissions from other roles will be effectively assigned. For example if a role 'Senior approver' implies role 'Approver', then assigning an entity to 'Senior approver' will assign all permissions assigned to 'Senior approver' in addition to effectively assigning all permissions in 'Approver'. The arrow in this graph means that the Role at the start of the arrow inherits all the permissions assigned to the Role that the arrow is pointing to.
simpleGroupUpdate.mustSelectRoleImpliedBy = Invalid entry: select a role that will be implied by this role.
simpleGroupUpdate.mustSelectRoleToImply = Invalid entry: select a role that will imply this role.
simpleGroupUpdate.successAddImpliesRole = The implies relationship was successfully added
simpleGroupUpdate.failureAddImpliesRole = The implies relationship already existed
simpleGroupUpdate.successAddImpliedByRole = The implied by relationship was successfully added
simpleGroupUpdate.failureAddImpliedByRole = The implied by relationship already existed
simpleGroupUpdate.deleteRoleImpliesConfirm = Are you sure you want the break this implies relationship?
simpleGroupUpdate.deleteRoleImpliesImageAlt = Remove implies relationship
simpleGroupUpdate.successRemoveImpliesRole = The implies relationship was successfully removed
simpleGroupUpdate.failureRemoveImpliesRole = The implies relationship did not exist
simpleGroupUpdate.deleteRoleImpliedByConfirm = Are you sure you want the break this implied by relationship?
simpleGroupUpdate.deleteRoleImpliedByImageAlt = Remove implied by relationship
simpleGroupUpdate.successRemoveImpliedByRole = The implied by relationship was successfully removed
simpleGroupUpdate.failureRemoveImpliedByRole = The implied by relationship did not exist
simpleGroupUpdate.hierarchies.rolePath = Role path
tooltipTargetted.simpleGroupUpdate.hierarchies.rolePath = Role path consists of the name of each enclosing folder plus the role name, separated by colons.
simpleGroupUpdate.editHierarchyChange = Edit inheritance
tooltipTargetted.simpleGroupUpdate.editHierarchyChange = Add a role which is implied by this or which implies this
simpleGroupUpdate.addRoleThatImplies = Add role that implies
simpleGroupUpdate.addRoleImpliedByThis = Add role implied by
simpleGroupUpdate.selectRoleHierarchyCombohint = Enter search text to find a role
simpleGroupUpdate.rolesImply = Roles that imply {0}
tooltipTargetted.simpleGroupUpdate.rolesImply = Roles that when they are assigned, then it implies an effective permission to this role.
simpleGroupUpdate.immediateRolesImply = Immediate roles that imply {0}
tooltipTargetted.simpleGroupUpdate.immediateRolesImply = Immediate roles that imply this role are directly assigned and can be unassigned. In other words, there is not a multi-level inheritance.
simpleGroupUpdate.immediateRolesImpliedBy = Immediate roles implied by {0}
tooltipTargetted.simpleGroupUpdate.immediateRolesImpliedBy = Immediate roles implied by this role are directly assigned and can be unassigned. In other words, there is not a multi-level inheritance.
simpleGroupUpdate.rolesImpliedBy = Roles implied by {0}
tooltipTargetted.simpleGroupUpdate.rolesImpliedBy = Roles that when this role is assigned, then they are implied as an effective assignment
simpleGroupUpdate.impliesSameRole = The role selected must be different than the role being edited
##############################
## permission assignments
##############################
simplePermissionUpdate.topIndexAssignPermission = View or assign permissions
simplePermissionAssign.assignIndexTitle = View or assign permissions
simplePermissionAssign.assignIndexTitleInfodot = Permissions for external applications can be stored centrally in Grouper. Use this screen to view, assign, or unassign permissions or limits on permission assignments. Note that only enabled limits will display on this screen. You can view disabled (due to start or end date) limits on the attribute assign screen.
simplePermissionAssign.indexSectionHeader = Filter or assign permissions
simplePermissionAssign.attributeDefinition = Permission definition:
tooltipTargetted.simplePermissionAssign.attributeDefinition = The definition part of the permission holds the settings, security, metadata. Generally permission definitions have multiple permission resources.
simplePermissionAssign.permissionResource = Permission resource:
tooltipTargetted.simplePermissionAssign.permissionResource = The permission resource is the part of the permission which is assigned to owner objects. Generally multiple permission resources are related to one permission definition.
simplePermissionAssign.assignRole = Role:
tooltipTargetted.simplePermissionAssign.assignRole = The role is a special type of Group which can associate members with permissions or allow members to have individual permissions assigned in the context of the role.
simplePermissionAssign.assignAction = Action:
tooltipTargetted.simplePermissionAssign.assignAction = A permission assignment has multiple parts, the role, or entity (in the context of a role), the resource, and the action. For example, the role might be Payroll User, the entity might be John Smith, the resource might be Org123, and the action might be Read or Write. The permission definition defines which actions are available for that definition. The list of actions is free-form. Generally there are not more than a few dozen actions for a permission definition.
simplePermissionAssign.assignMember = Entity:
tooltipTargetted.simplePermissionAssign.assignMember = The entity which has permissions assigned to it
simplePermissionAssign.assignFilterButton = Filter
simplePermissionUpdate.assignAssignments = Permission assignments
simplePermissionUpdate.assignAssignmentPanelSubtitle = Assign new permission
simplePermissionAssign.assignPermissionCancelButton = Cancel
simplePermissionAssign.assignPermissionSubmitButton = Submit
simplePermissionUpdate.assignNoResultsFound = No permission assignments found
simplePermissionUpdate.assignHeaderUuid = Assignment UUID
simplePermissionAssign.assignPermissionButton = New assignment
simplePermissionAssign.assignAllowedLabel = Allowed:
simplePermissionUpdate.assignHeaderAllowed = Allowed
tooltipTargetted.simplePermissionAssign.assignAllowedLabel = Normally a permission assignment will be allow. The default is for the permission to not be allowed. But if you have inheritance, and you want to allow a wider set, and restrict a part, then disallow here. For example you could allow All and disallow one part of All.
tooltipTargetted.simplePermissionUpdate.assignHeaderAllowed = Normally a permission assignment will be allow. The default is for the permission to not be allowed. But if you have inheritance, and you want to allow a wider set, and restrict a part, then disallow here. For example you could allow All and disallow one part of All.
simplePermissionAssign.assignHeaderScore = Assignment rank
tooltipTargetted.simplePermissionAssign.assignHeaderScore = Assignment rank is an ordering of more important permissions assignments to less important permissions assignments. Rows with a lower rank are more important.
simplePermissionAssign.whyRankNotOne = Rank reason
tooltipTargetted.simplePermissionAssign.whyRankNotOne = If there are more than one row, then the first row has the highest rank for a reason. This column explains why the first row is ranked higher than this row.
simplePermissionAssign.analyzeIsBetterThan = is ranked higher than
simplePermissionAssign.analyzeType.personRole = an assignment assigned directly to a subject
simplePermissionAssign.analyzeType.role.0 = a direct assignment to a role
simplePermissionAssign.analyzeType.role = an inherited assignment to a role with depth {0}
simplePermissionAssign.analyzeType.assignedToUserNotGroup = an assignment to a non-group subject
simplePermissionAssign.analyzeType.resource.0 = a direct assignment to a resource
simplePermissionAssign.analyzeType.resource = an inherited assignment to a resource with depth {0}
simplePermissionAssign.analyzeType.action.0 = a direct action
simplePermissionAssign.analyzeType.action = an inherited action with depth {0}
simplePermissionAssign.analyzeType.allow = an allow
simplePermissionAssign.analyzeType.disallow = a disallow
simplePermissionAssign.analyzeType.same = the two assignments are equivalent
simplePermissionAssign.assignAllowedAllow = Allow
simplePermissionAssign.assignAllowedDisallow = Disallow
simplePermissionUpdate.assignErrorRoleRequired = Error: owner role is required
simplePermissionUpdate.assignErrorMembershipRequired = Error: entity is not a member of the role. Please select an entity from the combo box
simplePermissionUpdate.assignErrorEntityRequired = Error: owner entity is required
simplePermissionUpdate.assignErrorPickRole = Error: select a role from the combo box
simplePermissionUpdate.assignErrorPickPermissionDefinition = Error: select a permission definition from the combo box
simplePermissionUpdate.assignErrorPickSubject = Error: select an entity from the combo box
simplePermissionUpdate.assignErrorPickPermissionResource = Error: select a permission resource from the combo box
simplePermissionUpdate.assignSuccess = Success: the permission was assigned
simplePermissionUpdate.errorAssignedAlready = Error: the permission already exists and cannot be assigned twice. If you want to change the assignment, first unassign the current assignment, then reassign
simplePermissionUpdate.assignHeaderOwnerMember = Entity
simplePermissionUpdate.assignHeaderPermissionResource = Resource
simplePermissionUpdate.assignHeaderActions = Actions
simplePermissionUpdate.errorNotEnoughChars = Enter 2 or more characters
simplePermissionUpdate.errorNoRolesFound = No results found
simplePermissionUpdate.errorTooManyRoles = Not all results returned, narrow your query
simplePermissionUpdate.errorNoAttributeDefsFound = No results found
simplePermissionUpdate.errorTooManyAttributeDefs = Not all results returned, narrow your query
simplePermissionUpdate.errorTooManySubjects = Too many entities, narrow your query
simplePermissionUpdate.errorNoSubjectResults = No results found
simplePermissionUpdate.errorCantFindAttributeDef = Error: Cannot find permission definition, please type in search text and select a result from the drop down
simplePermissionUpdate.errorCantFindAttributeDefName = Error: Cannot find permission resource, please type in search text and select a result from the drop down
simplePermissionUpdate.errorCantFilterByActionWithNoDefOrName = Error: To filter by action, select a permission definition or permission resource
simplePermissionUpdate.errorNoPermissionResourcesFound = No results found
simplePermissionUpdate.errorTooManyPermissionResources = Not all results returned, narrow your query
simplePermissionAssign.ownerType = Permission type:
tooltipTargetted.simplePermissionAssign.ownerType = Permissions can be assigned to a role. To view / edit role permissions, select Role. Entities can have roles, or permissions can be assigned to entities directly in the context of a role. To view / edit permissions associated with entities, select Entity.
simplePermissionAssign.ownerTypeRole = Role
simplePermissionAssign.ownerTypeEntity = Entity
simplePermissionAssign.requiredOwnerType = Owner type is required
simplePermissionUpdate.assignErrorPickSubjectForRoleSubject = The Owner Type selected is Entity. The Owner Entity is required, select a result from the Owner Entity combo box. To assign a permission to all entities in the Role, select the Owner Type of Role.
simplePermissionUpdate.assignErrorPickAction = Select an Action from the combo box
simplePermissionAssign.assignFilterEnabledDisabled = Enabled / disabled:
simplePermissionAssign.assignFilterEnabledDisabledValueEnabled = Enabled only
simplePermissionAssign.assignFilterEnabledDisabledValueDisabled = Disabled only
simplePermissionAssign.assignFilterEnabledDisabledValueAll = All
simplePermissionAssign.unassignedTooltip = This permission is not allowed
simplePermissionAssign.immediateTooltip = This permission is immediately assigned and can be unassigned
simplePermissionAssign.effectiveTooltip = This permission is effectively assigned due to a group membership, a role assignment, role inheritance, action inheritance, or resource inheritance. This can be unassigned by removing the subject from the group, or unassignment the root permission assignment that this assignment inherits from
simplePermissionAssign.immediateAndEffectiveTooltip = This permission is immediately assigned and can be unassigned. However this permission is also effectively assigned due to a group membership, a role assignment, role inheritance, action inheritance, or resource inheritance. It can be completely unassigned by subsequently addressing the effective permission
simplePermissionUpdate.permissionImageConfirmDeny = Are you sure you want to allow this permission?
simplePermissionUpdate.permissionImageConfirmAllow = Are you sure you want to revoke the assignment of this permission?
simplePermissionUpdate.errorCantManageRole = Error: you are not allowed to edit permissions for this role
simplePermissionUpdate.errorCantEditAttributeDef = Error: you are not allowed to assign this permission definition
simplePermissionUpdate.permissionAllowRole = Success: Role: {0} can now perform action: {1} on permission resource: {2}
simplePermissionUpdate.permissionRevokeRole = Success: Role: {0} is no longer assigned action: {1} on permission resource: {2}
simplePermissionUpdate.permissionAllowRoleSubject = Success: Subject: {0} can now perform action: {1} on permission resource: {2} in the context of role: {3}
simplePermissionUpdate.permissionRevokeRoleSubject = Success: Subject: {0} is no longer assigned action: {1} on permission resource: {2} in the context of role: {3}
simplePermissionUpdate.permissionPanelSubmitButton = Submit
simplePermissionUpdate.permissionPanelCancelButton = Cancel
simplePermissionUpdate.noPermissionChangesDetected = Warning: no permission changes detected
contextOptionsAlt = Options
simplePermissionAssign.editAssignment = Edit assignment
simplePermissionAssign.editAssignmentTooltip = Edit the enabled and disabled dates for this assignment
simplePermissionAssign.addLimit = Add limit
simplePermissionAssign.addLimitTooltip = Add a limit to this assignment. Note you can only do this for an immediate allow permission assignment.
simplePermissionUpdate.noImmediatePermissionFound = No immediate permission assignment found
simplePermissionUpdate.noImmediatePermissionFoundForLimit = A limit can only be assigned to an immediate permission assignment allow, and the selected permission is not immediate or is disallowed
simplePermissionAssign.assignEditSubtitle = Edit permission assignment
simplePermissionAssign.assignEditSubtitleInfodot = Edit permission assignment to assign enabled or disabled dates
simplePermissionAssign.assignEditCancelButton = Cancel
simplePermissionUpdate.assignEditSuccess = Success: your changes were saved
simplePermissionUpdate.editAssignmentAlt = Edit assignment details
simplePermissionAssign.assignEditSubmitButton = Submit
simplePermissionUpdate.assignEditEnabledDisabledDateMask = (yyyy/mm/dd)
simplePermissionUpdate.assignEnabled = enabled
tooltipTargetted.simplePermissionUpdate.assignEnabled = This permission assignment is enabled based on the enabled and disabled dates
simplePermissionUpdate.assignDisabled = disabled
tooltipTargetted.simplePermissionUpdate.assignDisabled = This attribute assignment is disabled based on the enabled and disabled dates
permissionUpdateRequestContainer.permissionType = Permission type
permissionUpdateRequestContainer.permissionType.role = Role
permissionUpdateRequestContainer.permissionType.role_subject = Entity
simplePermissionUpdate.assignHeaderRoleName = Role
simplePermissionUpdate.assignHeaderEntity = Entity
simplePermissionUpdate.assignHeaderResource = Permission resource
simplePermissionUpdate.assignHeaderPermissionDefinition = Permission definition
simplePermissionUpdate.assignHeaderDefinition = Permission definition
simplePermissionAssign.assignEditId = UUID
simplePermissionAssign.assignMenuAnalyzeAssignment = Analyze result
simplePermissionAssign.assignMenuAnalyzeAssignmentTooltip = The result of the permission is ALLOW or NOT ALLOWED. This item will show the underlying permission assignments that could affect the decision for this combination of Role, Entity, Action, Resource.
simplePermissionUpdate.analyzeNoPermissionFound = No permissions affect this result, the default result is NOT ALLOWED
simplePermissionAssign.analyzeSubtitle = Analyze permission result
simplePermissionAssign.analyzeSubtitleInfodot = The overall result of whether a role or a subject in a role can perform an action on a resource could depend on many permission assignments which imply other permissions. This screen shows the relevant assignments and which assignment is responsible for the result.
simplePermissionAssign.analyzeOkButton = OK
simplePermissionUpdate.analyzeResult = Permission result
simplePermissionUpdate.assignHeaderAction = Action
simplePermissionAssign.analyzeRelevantAssignmentsSubtitle = Relevant assignments
simplePermissionAssign.analyzeRelevantAssignmentsSubtitleInfodot = This explains why the relevant assignments cause the result. For instance, each row could be an assignment of a resource that implies this resource, or actions, or role inheritance, or group memberships.
simplePermissionUpdate.assignHeaderOwnerUuid = UUID
permissionUpdateRequestContainer.analyzeImmediateAssignment = Direct permission assignment to a subject in a role
permissionUpdateRequestContainer.analyzeSubjectRoleAssignmentImmediate = There is a direct permission assigned to the subject in the role, and it takes precendence over other assignments
permissionUpdateRequestContainer.analyzeSubjectRoleAssignmentResource = There is an indirect permission assigned to the subject in the role, and the assignment is for a permission resource which implies this permission resource, and that assignment takes precendence over other assignments
permissionUpdateRequestContainer.analyzeSubjectRoleAssignmentAction = There is an indirect permission assigned to the subject in the role, and the assignment is for an action which implies this action, and that assignment takes precendence over other assignments
permissionUpdateRequestContainer.analyzeSubjectRoleAssignmentNone = There are no direct or indirect permission assignments to the subject in the role
simplePermissionAssign.limitSimulationButton = Simulate limits
simplePermissionAssign.limitProcessor = Permission processor
tooltipTargetted.simplePermissionAssign.limitProcessor = None will show all permissions without taking into acccount limits. Process Limits will use the environment variables in the filter form to simulate a permissions query. This might cause some allows to become disallows.
simplePermissionAssign.limitDropDownNone = None
simplePermissionAssign.limitDropDownProcessLimits = Process limits
simplePermissionAssign.limitEnvironmentVariables = Limit environment variables
tooltipTargetted.simplePermissionAssign.limitEnvironmentVariables = If you are processing limits, then you probably need to pass in some environment variables similar to how the system using the permissions will pass them in at run-time. You need to use the variable names required by the limits used.
simplePermissionAssign.limitEnvironmentVariableName = Environment variable name
simplePermissionAssign.limitEnvironmentVariableValue = Environment variable value
simplePermissionAssign.limitEnvironmentVariableType = Type
simplePermissionAssign.limitEnvironmentVariableTypeString = Text
simplePermissionAssign.limitEnvironmentVariableTypeInteger = Whole number
simplePermissionAssign.limitEnvironmentVariableTypeDecimal = Decimal
simplePermissionAssign.limitEnvironmentVariableTypeTimestamp = Timestamp
simplePermissionAssign.limitEnvironmentVariableTypeBoolean = True or False
simplePermissionAssign.limitEnvironmentVariableTypeNull = Null
simplePermissionAssign.limitEnvironmentVariableTypeEmpty = Empty text
simplePermissionAssign.moreLimitEnvVars = More...
simplePermissionUpdate.addLimitPanelSubtitle = Add limit to permission
simplePermissionUpdate.addLimitPanelSubtitleInfodot = A permission limit is a runtime check which probably involves data from the querying application. For example, you could limit a permission to be during business hours.
simplePermissionUpdate.addLimitRole = Permission role
tooltipTargetted.simplePermissionUpdate.addLimitRole = This is the role involved in the permission assignment. If it is a role assignment, this is the role. If it is a subject assignment, then this is the role that the assignment is in the context of.
simplePermissionUpdate.addLimitSubject = Permission subject
tooltipTargetted.simplePermissionUpdate.addLimitSubject = This is the subject involved in the permission assignment. If it is a role assignment, this will not display.
simplePermissionUpdate.addLimitPermissionName = Permission name
tooltipTargetted.simplePermissionUpdate.addLimitPermissionName = This is the permission name in the permission assignment.
simplePermissionUpdate.addLimitPermissionAction = Permission action
tooltipTargetted.simplePermissionUpdate.addLimitPermissionAction = This is part of the permission assignment: there is a subject/role, an action, and a resource. For example, John Smith can read data from the Arts and Sciences school In this case, the subject is John Smith, the action is read, and the resource is Arts and Sciences
simplePermissionUpdate.addLimitName = Limit name
tooltipTargetted.simplePermissionUpdate.addLimitName = This is the attribute name of the limit to add. Only limits which are allowed to be assigned will show in the results. Type in the combobox to see the results.
simplePermissionUpdate.addLimitDefinition = Limit definition
tooltipTargetted.simplePermissionUpdate.addLimitDefinition = The limit definition narrows down the search results for the permission limits. This is optional, you can also just search for all permission limits.
simplePermissionAssign.addLimitValue = Limit value
tooltipTargetted.simplePermissionAssign.addLimitValue = If the limit is a marker attribute, then you cannot enter a value. Most limits are single values and you can enter it here. You need to know the type of attribute (text, whole number, decimal, timestamp, etc) so the value will save correctly. Note you can add/edit/delete the value on permissions filter screen as well.
simplePermissionAssign.addLimitCancelButton = Cancel
simplePermissionAssign.addLimitSubmitButton = Submit
simplePermissionUpdate.addLimitSuccess = Success: the limit was assigned successfully
simplePermissionUpdate.errorCantEditLimit = Error: cannot edit the limit
simplePermissionUpdate.addLimitAlreadyAssigned = Error: the limit was already assigned is not multi-assignable
simplePermissionUpdate.addLimitValueSuccess = Success: the limit value was assigned successfully
simplePermissionUpdate.errorLimitNameIsRequired = Error: limit name is required, type in a search string and pick a limit from the results
simplePermissionUpdate.addLimitValueError = Error: problem assigning limit value to the limit. Maybe it is not the right type.
simplePermissionUpdate.limitDeleteConfirm = Are you sure you want to delete this limit?
simplePermissionUpdate.deleteLimitAlt = Delete limit
simplePermissionUpdate.deleteLimitSuccessMessage = Success: the limit was successfully deleted
simplePermissionUpdate.limitLabel = Limit
simplePermissionUpdate.limitActions = Actions:
simplePermissionUpdate.limitAction = Action:
simplePermissionUpdate.limitValueLabel = Value:
simplePermissionUpdate.limitAssignedToLabel = Assigned to
simplePermissionUpdate.limitRoleTypeLabel = Role limit:
simplePermissionUpdate.limitMembershipTypeLabel = Membership limit:
simplePermissionUpdate.limitPermisssionTypeLabel = Permission assignment limit:
simplePermissionUpdate.limitAssignedToRoleLabel = Role:
simplePermissionUpdate.limitAssignedToEntityLabel = Entity:
simplePermissionUpdate.limitIdLabel = Limit UUID:
simplePermissionUpdate.limitAssignedToPermissionActionLabel = Action:
simplePermissionUpdate.limitAssignedToPermissionNameLabel = Permission name:
simplePermissionUpdate.editLimitAlt = Edit limit
simplePermissionAssign.limitEditSubtitle = Edit limit assignment
simplePermissionAssign.limitEditSubtitleInfodot = Edit limit assignment to assign enabled or disabled dates
simplePermissionUpdate.assignHeaderOwnerRole = Permission role
simplePermissionUpdate.assignHeaderOwnerRoleMembership = Permission role membership
simplePermissionUpdate.assignHeaderPermissionName = Permission name
simplePermissionAssign.limitEditId = Permission assignment UUID
simplePermissionAssign.limitAction = Action
simplePermissionUpdate.assignEditEnabledDate = Start permission on date
simplePermissionUpdate.assignEditDisabledDate = End permission on date
simplePermissionUpdate.limitEditEnabledDate = Start limit on date
simplePermissionUpdate.limitEditDisabledDate = End limit on date
simplePermissionAssign.limitEditCancelButton = Cancel
simplePermissionAssign.limitEditSubmitButton = Submit
simplePermissionAssign.editLimitNotAllowed = You are not allowed to edit the limit
simplePermissionUpdate.editLimitSuccess = Success: your changes were saved
simplePermissionAssign.limitName = Limit name
simplePermissionAssign.limitMenuAddValue = Add value
simplePermissionAssign.limitMenuAddValueTooltip = Add a value to this assignment
simplePermissionAssign.limitMenuEditLimit = Edit limit
simplePermissionAssign.limitMenuEditLimitTooltip = Edit limit
simplePermissionAssign.limitMenuDeleteLimit = Delete limit
simplePermissionAssign.limitMenuDeleteLimitTooltip = Delete limit
simplePermissionAssign.limitMenuEditValue = Edit value
simplePermissionAssign.limitMenuEditValueTooltip = Edit the attribute assignment value
simplePermissionAssign.limitMenuDeleteValue = Delete value
simplePermissionAssign.limitMenuDeleteValueTooltip = Delete the limit value
simplePermissionAssign.limitAddValueSubtitle = Add value to attribute assignment
simplePermissionAssign.limitAddValueSubtitleInfodot = Attribute assignment can have one or more values associated with it. Add a value to the assignment
simplePermissionAssign.limitAddValueCancelButton = Cancel
simplePermissionAssign.limitAddValueSubmitButton = Submit
simplePermissionUpdate.limitAddValue = Value to add
simplePermissionUpdate.addLimitValueRequired = Enter a value to add
simplePermissionUpdate.limitAddValueSuccess = Success: the limit value was added
simplePermissionUpdate.limitValueDeleteConfirm = Are you sure you want to delete this limit value?
simplePermissionUpdate.limitDeleteValueAlt = Delete the limit value
simplePermissionUpdate.limitValueSuccessDelete = Success: the limit value was deleted
simplePermissionUpdate.editLimitValueAssignmentAlt = Edit the attribute assignment value
simplePermissionUpdate.limitValueEditSubtitle = Edit the attribute assignment value
simplePermissionUpdate.limitValueEditSubtitleInfodot = Attribute assignment can have one or more values associated with it. Edit this value to the assignment
simplePermissionUpdate.limitValueEdit = Value to edit
simplePermissionUpdate.limitValueEditId = Value UUID
simplePermissionUpdate.limitValueEditCancelButton = Cancel
simplePermissionUpdate.limitValueEditSubmitButton = Submit
simplePermissionUpdate.editLimitValueRequired = Enter a value to edit
simplePermissionUpdate.limitEditValueSuccess = Success: the attribute assignment value was saved
simplePermissionUpdate.noLimitDocumentationConfigured = No documentation configured for this limit
simplePermissionUpdate.limitDocumentation = Documentation of limits
tooltipTargetted.simplePermissionUpdate.limitDocumentation = Documentation of limits which are applicable to the permission filter. Only limits shown above are documented here.
grouperPermissionExpressionLanguage.doc = The expression limit allows a value which is an expression language script.
Note: the caller needs to be configured to process the amount or labels etc.
e.g. check that an amount is less than 50000: amount < 50000
e.g. check that an amount is less than 30000 and authentication is two factor or certificate: amount < 30000 && limitElUtils.labelsContain(authnAttributes, 'twoFactor, certificate')
e.g. check the time is between 9am and 5pm: hourOfDay >= 9 && hourOfDay <= 17
e.g. check that the user's IP address is on a certain network: limitElUtils.ipOnNetwork(ipAddress, '1.2.3.0', 24)
e.g. check that the user's IP address is on certain networks: limitElUtils.ipOnNetworks(ipAddress, '1.2.3.0/24, 2.3.4.0/16')
e.g. check that the user's IP address is on a configured network (note, these are the configured network realms: {0}): limitElUtils.ipOnNetworkRealm(ipAddress, 'myInstitutionLocal')
grouperPermissionAmountLessThan.doc = This limit checks that the environment variable 'amount' is less than a certain value. The value must be a whole number without commas. Note that the application checking permissions needs to configure an environment variable named 'amount' which has a whole number type
grouperPermissionAmountLessThanEquals.doc = This limit checks that the environment variable 'amount' is less than or equal to a certain value. The value must be a whole number without commas. Note that the application checking permissions needs to configure an environment variable named 'amount' which has a whole number type
grouperPermissionIpOnNetworks.doc = This limit checks that the environment variable 'ipAddress' is on any of the specified networks. The value must be a comma separated list of CIDR notation networks, e.g. 1.2.3.0/24, 4.5.0.0/16 This example means that the IP address on the network 1.2.3.0 with a 24 bit mask, or any host on the 4.5.0.0 network with a 16 bit mask. Note that the application checking permissions needs to configure an environment variable named 'ipAddress' which has an IPv4 ip address, e.g. 1.2.3.4
grouperPermissionIpOnNetworkRealm.doc = This limit checks that the environment variable 'ipAddress' is on any of the configured networks. The value must be one of the following values: {0}. Note that the application checking permissions needs to configure an environment variable named 'ipAddress' which has an IPv4 ip address, e.g. 1.2.3.4
grouperPermissionWeekday9to5.doc = This limit checks that the time is between 9am and 5pm and that the day is Monday through Friday. If the application checking permissions does not pass in the hourOfDay environment variable, then the time used will be the time of the Grouper server.
grouperPermissionLabelsContain.doc = This limit checks that a comma separated list of text labels sent by the calling application contains one of the configured comma separated labels. For example, if the calling application passes in the labels environment variable with the values: authenticated, twoFactor. And the configured labels in this limit are: twoFactor, certificate, then it would be allowed.
simplePermissionUpdate.limitNameHelpButtonAlt = Documentation of limits
simplePermissionUpdate.limitTypeProblemInt = Whole number is expected
simplePermissionUpdate.limitTypeProblemDate = Date is expected in the format: yyyy/mm/dd, yyyy/mm/dd hh:mi:ss
simplePermissionUpdate.limitTypeProblemDecimal = Decimal is expected
grouperPermissionInvalidIpNetworks = The network specification is a comma separated list of CIDR notated networks, e.g. 1.2.3.4/32, 5.6.7.8/16 Note that a /32 is a single IP Address.
grouperPermissionIpOnNetworks.required = The network is required
grouperPermissionIpOnNetworkRealm.required = The network realm is required. It must be one of the following values: {0}.
grouperPermissionInvalidIpNetworkRealm = The network realm must be one of the following values: {0}.
#####################
## Directed graph text
#####################
directedGraph.radialLayoutToggle = Radial layout toggle
directedGraph.collapseSelectedNode = Collapse selected node
directedGraph.expandSelectedNode = Expand selected node
directedGraph.zoom = Zoom
directedGraph.switchToSelectingMode = Switch to selecting mode
directedGraph.switchToTransformingMode = Switch to transforming mode
#####################
## UI visualization
#####################
visualization.title = Visualization
visualization.form.method = Visualization method
visualization.form.method.description = Whether to display using an SVG frame or a text-only description
visualization.form.objectNameType = Display object names using
visualization.form.objectNamesByDisplayExtension = name
visualization.form.objectNamesByFullPath = full path
visualization.form.objectNameType.description = Label objects using either their display name, or their full path
#visualization.form.filterSubHeading = Objects to display
visualization.form.filterShowAll = All
visualization.form.showParents = Number of parent levels to show
visualization.form.showParents.description = To limit the number of parent levels, uncheck the All box and enter a number. To show all levels, check the All box or enter -1
visualization.form.showChildren = Number of child levels to show
visualization.form.showChildren.description = To limit the number of child levels, uncheck the All box and enter a number. To show all levels, check the All box or enter -1
#visualization.form.parents = Parents
#visualization.form.children = Children
visualization.form.maxSiblings = Show number of sibling objects
visualization.form.maxSiblings.description = To limit the number of similar objects connected to the same parent/child, uncheck the All box and enter a number. To show all levels, check the All box or enter -1
visualization.form.showStems = Show folders
visualization.form.showStems.description = Whether to include folder connections in the output
visualization.form.showLoaders = Show loader jobs
visualization.form.showLoaders.description = Whether to include connections to loader jobs in the output
visualization.form.showProvisioners = Show provisioners
visualization.form.showProvisioners.description = Whether to include PSPNG provision_to targets in the output
visualization.form.showAllMemberCounts = Show all member counts
visualization.form.showAllMemberCounts.description = Whether to include total member counts. If there are many groups, this may increase the time taken to build the output
visualization.form.showDirectMemberCounts = Show direct member counts
visualization.form.showDirectMemberCounts.description = Whether to include counts of direct members. If there are many groups, this may increase the time taken to build the output
visualization.form.showObjectTypes = Show Grouper object types (e.g., ref, basis)
visualization.form.showObjectTypes.description = Whether to include Grouper object types on groups and folders. If there are many objects, this may increase the time taken to build the output
visualization.form.includeGroupsInMemberCounts = Include groups in member counts
visualization.form.includeGroupsInMemberCounts.description = If including member counts, should the count include groups that are members, or just subjects
visualization.form.showLegend = Include legend in graph
visualization.form.showLegend.description = Whether to include an inset for the graph, which illustrates the symbols used for objects and relations
visualization.form.legend.objectTypeLegend.basis = \\l- basis: members have an arcane code in an\\l external system, used in ref groups
visualization.form.legend.objectTypeLegend.ref = \\l- ref: a reference group is an institutionally\\l meaningful cohort used in policy groups
visualization.form.legend.objectTypeLegend.policy = \\l- policy: can be used to deny or allow access\\l to a resource, composed of ref groups,\\l composites, ad hocs, and others
visualization.form.legend.objectTypeLegend.manual = \\l- manual: ad hoc group that is direct members\\l who cannot be managed automatically
visualization.form.legend.objectTypeLegend.intermediate = \\l- intermediate: internal group that is used\\l to construct other groups like policies
visualization.form.legend.objectTypeLegend.etc = \\l- etc: objects with configuration information,\\l administrative access control groups,\\l and loader jobs
visualization.form.legend.objectTypeLegend.grouperSecurity = \\l- grouperSecurity: has privileges on resources for\\l the service, e.g. ADMIN, UPDATE, READ
visualization.form.legend.objectTypeLegend.org = \\l- org: groups have organizational structures\\l in the institution
visualization.form.legend.objectTypeLegend.app = \\l- app: resources used in an application
visualization.form.legend.objectTypeLegend.service = \\l- service: resources used in a service. A service\\l might contain multiple apps
visualization.form.legend.objectTypeLegend.readOnly = \\l- readOnly: a readOnly group should not be edited\\l in the UI
visualization.form.legend.objectTypeLegend.test = \\l- test: non-production resources for testing
visualization.form.legend.objectTypeLegend = Object type descriptions:
visualization.form.submit = Generate
visualization.graph.copyDot = Copy raw .dot data
visualization.graph.copySVG = Copy SVG
visualization.graph.expand = fullscreen
# exception in visualization
visualizationProgressSubheadingInProgress = The visualization is in progress (running for ${grouperRequestContainer.visualizationContainer.progressBean.elapsedSeconds} seconds), please wait...
# subheading visualization
visualizationProgressSubheading = ${textContainer.text[grouperRequestContainer.visualizationContainer.progressBean.complete ? 'visualization.title' : 'visualizationProgressSubheadingInProgress']}
# exception in visualization
visualizationException = Error: the visualization could not be completed
#####################
## Main menu
#####################
mainMenu.liteLink = Lite UI menu
mainMenu.link = Main menu
miscMenu.index = Lite UI home
miscMenu.indexTooltip = Lite UI home is the start screen for the Grouper Lite UI. This is a newer UI than the Admin UI; it allows management of the new attribute framework and centrally managed permissions.
miscMenu.admin = Admin UI home
miscMenu.adminTooltip = Admin UI home is the start screen for the Grouper Admin UI. This is the traditional Grouper UI intended for Grouper admins.
miscMenu.new = New UI home
miscMenu.newTooltip = New UI home is the start screen for the New Grouper UI. This is the newly redesigned Grouper UI which is easier to use.
miscMenu.groupsAndRoles = Groups / roles / local entities
miscMenu.groupsAndRolesTooltip = The Groups / roles / local entities screen allows creation, updates, and deletes of groups / roles / local entities. You can manage Group privileges (e.g. who is allowed to manage Group memberships), and convert a Group into a Role and vice versa. You can manage Role permission inheritance.
miscMenu.groupMemberships = Group and role memberships
miscMenu.groupMembershipsTooltip = View or edit group and role memberships. You can add or remove individual members, or import/export in bulk.
miscMenu.attributesAndPermissions = Attributes and permissions
miscMenu.attributesAndPermissionsTooltip = View or edit the new attribute framework or centrally managed permissions.
miscMenu.attributesAndPermissionsCreateEdit = Create or edit attributes
miscMenu.attributesAndPermissionsCreateEditTooltip = Create or edit attribute or permission definitions. Manage privileges (e.g. who can view the privileges), manage permission actions, action inheritance, etc.
miscMenu.attributesAndPermissionsCreateEditNames = Create or edit attribute names
miscMenu.attributesAndPermissionsCreateEditNamesTooltip = Create or edit attribute or permission names. Attribute or permission names are the objects that are assigned to the attribute owners or the permission role or subject. Manage permission resource inheritance, etc.
miscMenu.attributesAndPermissionsAssign = View or assign attributes
miscMenu.attributesAndPermissionsAssignTooltip = View attribute assignments or assign or unassign attributes.
miscMenu.attributesAndPermissionsPermAssign = View or assign permissions
miscMenu.attributesAndPermissionsPermAssignTooltip = View centrally managed permission assignments or assign or unassign permissions. Analyze permissions, assign limits, etc
#########################################################################################
## End of nav.properties, start of UI v2.2
#########################################################################################
########################################
## Common text
########################################
# title in browser
guiTitle = Grouper Group Management and Authorization
# misc error on screen
guiMiscErrorPrefix = Error:
# misc error on screen for no session
guiMiscNoSessionError = Your session has expired or is invalid, please try again
# short link for a subject with a tooltip perhaps
guiSubjectShortLink = ${grouperRequestContainer.commonRequestContainer.showIcon ? grouperRequestContainer.commonRequestContainer.guiSubject.screenSubjectIcon2Html : ""}${grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiSubject.screenLabelShort2)}
#guiSubjectShortLink = ${grouperRequestContainer.commonRequestContainer.showIcon ? ' ' : ""}${grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiSubject.screenLabelShort2)}
# short text for a subject with a tooltip perhaps
guiSubjectShort = ${grouperRequestContainer.commonRequestContainer.showIcon ? ' ' : ""}${grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiSubject.screenLabelShort2)}
# long link with icon for group
guiGroupLongLinkWithIcon = ${grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiSubject.screenLabelLong)}
# if you cant view a group or entity, this will be in the extension and name
# the prefix is what it uses to set the folder
guiCantViewPrefix = You cannot VIEW
guiGroupCantView = You cannot VIEW group: ${grouperRequestContainer.commonRequestContainer.subjectId}
guiEntityCantView = You cannot VIEW local entity: ${grouperRequestContainer.commonRequestContainer.subjectId}
# long link with icon for subject
guiSubjectLongLinkWithIcon = ${grouperRequestContainer.commonRequestContainer.guiSubject.screenSubjectIcon2Html} ${grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiSubject.screenLabelLong)}
# when a subject cannot be resolved
guiUnresolvableSubject = Entity not found
# when an object cant be found
guiObjectUnknown = Unknown
#displayed for an attribute def when it is a short link, i.e. just the display extension should be shown
guiAttributeDefShortLink = ${grouperRequestContainer.commonRequestContainer.showIcon ? ' ' : ""}${grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiAttributeDef.attributeDef.extension)}${grouperRequestContainer.commonRequestContainer.showPath ? ('
' + grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiAttributeDef.pathColonSpaceSeparated) + '') : ""}
#displayed for an attribute def when it is a short link, i.e. just the display extension should be shown
guiAttributeDefLink = ${grouperRequestContainer.commonRequestContainer.showIcon ? ' ' : ""}${grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiAttributeDef.attributeDef.name)}${grouperRequestContainer.commonRequestContainer.showPath ? ('
' + grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiAttributeDef.pathColonSpaceSeparated) + '') : ""}
#displayed for an attribute def name when it is a short link, i.e. just the display extension should be shown
guiAttributeDefNameShortLink = ${grouperRequestContainer.commonRequestContainer.showIcon ? ' ' : ""}${grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiAttributeDefName.attributeDefName.displayExtension)}${grouperRequestContainer.commonRequestContainer.showPath ? ('
' + grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiAttributeDefName.pathColonSpaceSeparated) + '') : ""}
#displayed for an attribute def name when it is a short link, i.e. just the display extension should be shown
guiAttributeDefNameLink = ${grouperRequestContainer.commonRequestContainer.showIcon ? ' ' : ""}${grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiAttributeDefName.attributeDefName.displayName)}
# folder label in tooltip of group
guiTooltipFolderLabel = FOLDER
#displayed for a group when it is a short link, i.e. just the display extension should be shown
guiGroupShortLink = ${grouperRequestContainer.commonRequestContainer.showIcon ? ' ' : ""}${grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiGroup.group.displayExtension)}${grouperRequestContainer.commonRequestContainer.showPath ? ('
' + grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiGroup.pathColonSpaceSeparated) + ' ' + grouperRequestContainer.commonRequestContainer.guiGroup.userFriendlyTypesNames + '') : grouperUtil.concat(' ',grouperRequestContainer.commonRequestContainer.guiGroup.userFriendlyTypesNames)}
#displayed for a group when it is a link, i.e. the full name should be shown
guiGroupLink = ${grouperRequestContainer.commonRequestContainer.showIcon ? ' ' : ""}${grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiGroup.nameColonSpaceSeparated)} ${grouperRequestContainer.commonRequestContainer.guiGroup.userFriendlyTypesNames}
# displayed for group with no link
guiGroupShort = ${grouperRequestContainer.commonRequestContainer.showIcon ? ' ' : ""}${grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiGroup.group.displayExtension)}${grouperRequestContainer.commonRequestContainer.showPath ? ('
' + grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiGroup.pathColonSpaceSeparated) + ' ' + grouperRequestContainer.commonRequestContainer.guiGroup.userFriendlyTypesNames + '') : grouperUtil.concat(' ',grouperRequestContainer.commonRequestContainer.guiGroup.userFriendlyTypesNames)}
#displayed for a folder when it is a short link, i.e. just the display extension should be shown
guiStemShortLink = ${grouperRequestContainer.commonRequestContainer.showIcon ? ' ' : ""}${grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiStem.guiDisplayExtension)}${grouperRequestContainer.commonRequestContainer.showPath ? ('
' + grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiStem.pathColonSpaceSeparated) + ' ' + grouperRequestContainer.commonRequestContainer.guiStem.userFriendlyTypesNames + '') : grouperUtil.concat(' ', grouperRequestContainer.commonRequestContainer.guiStem.userFriendlyTypesNames)}
#displayed for a folder when it is a link, i.e. the display name should be shown
guiStemLink = ${grouperRequestContainer.commonRequestContainer.showIcon ? ' ' : ""}${grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiStem.nameColonSpaceSeparated)}${grouperRequestContainer.commonRequestContainer.showPath ? ('
' + grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiStem.pathColonSpaceSeparated) + ' ' + grouperRequestContainer.commonRequestContainer.guiStem.userFriendlyTypesNames + '') : grouperUtil.concat(' ',grouperRequestContainer.commonRequestContainer.guiStem.userFriendlyTypesNames)}
#displayed for a service when it is a short link, i.e. just the display extension should be shown, if there is more than one folder that has the service attribute
guiServiceShortLink = ${grouperRequestContainer.commonRequestContainer.showIcon ? ' ' : ""}${grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiService.guiAttributeDefName.attributeDefName.displayExtension)}${grouperRequestContainer.commonRequestContainer.showPath ? ('
' + grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiService.guiAttributeDefName.pathColonSpaceSeparated) + '') : grouperUtil.concat(' ',grouperRequestContainer.commonRequestContainer.guiService.guiAttributeDefName.pathColonSpaceSeparated)}
#displayed for a service when it is a link, i.e. display name should be shown, if there is more than one folder that has the service attribute
guiServiceLink = ${grouperRequestContainer.commonRequestContainer.showIcon ? ' ' : ""}${grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiService.guiAttributeDefName.nameColonSpaceSeparated)}${grouperRequestContainer.commonRequestContainer.showPath ? ('
' + grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiService.guiAttributeDefName.pathColonSpaceSeparated) + '') : grouperUtil.concat(' ',grouperRequestContainer.commonRequestContainer.guiService.guiAttributeDefName.pathColonSpaceSeparated)}
#displayed for a service when it is a short link, i.e. just the display extension should be shown, if there is only one folder that has the service attribute
guiServiceFolderShortLink = ${grouperRequestContainer.commonRequestContainer.showIcon ? ' ' : ""}${grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiService.guiAttributeDefName.attributeDefName.displayExtension)}${grouperRequestContainer.commonRequestContainer.showPath ? ('
' + grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiService.guiAttributeDefName.pathColonSpaceSeparated) + '') : ""}
#displayed for a service when it is a link, i.e. display name should be shown, if there is only one folder that has the service attribute
guiServiceFolderLink = ${grouperRequestContainer.commonRequestContainer.showIcon ? ' ' : ""}${grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiService.guiAttributeDefName.nameColonSpaceSeparated)}${grouperRequestContainer.commonRequestContainer.showPath ? ('
' + grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiService.guiAttributeDefName.pathColonSpaceSeparated) + '') : ""}
# in the breadcrumbs, this is the home link
guiBreadcrumbsHomeLabel = Home
# in the breadcrumbs, when user is on provisioning page within a folder, group, etc
guiBreadcrumbsProvisioningLabel = provisioning
backToTop = Back to top
guiBreadcrumbsAriaLabel = Breadcrumbs: You are here:
# if there is more details to show, this is the details button
guiMore = Show details
# hide details to show, this is the less button
guiLess = Hide details
# aria Label properties for Stems, Attribute Defs, Groups and Subjects
ariaLabelGuiMoreGroupDetails = Show more details for this group
ariaLabelGuiMoreAttributeDefDetails = Show more details for this attribute definition
ariaLabelGuiMoreAttributeDefNameDetails = Show more details for this attribute name
ariaLabelGuiMoreStemDetails = Show more details for this stem
ariaLabelGuiMoreSubjectDetails = Show more details for this subject
ariaLabelGuiMoreGroupActions = Show more actions for this group
ariaLabelGuiMoreAttributeDefActions = Show more actions for this attribute definition
ariaLabelGuiMoreStemActions = Show more actions for this stem
ariaLabelGuiMoreMembershipActions = Show more actions for this membership
ariaLabelGuiMoreAttributeNameActions = Show more actions for this attribute name
ariaLabelGuiMoreAttributeActionActions = Show more actions for this action
ariaLabelGuiMoreSubjectActions = Show more actions for this subject
ariaLabelGuiMoreOptions = Show more options
ariaLabelGuiRefreshFolderBrowse = Refresh folder browse
ariaLabelGuiEntityName = Enter entity name
ariaLabelGuiSearch = Search
# when there is a subject not found, but the subject id is known
guiSubjectNotFound = Entity not found: ${grouperRequestContainer.commonRequestContainer.subjectId}
# if a subject for instance is in search results, then there is no stem
guiStemNotApplicable = N/A
########################################
## Errors
########################################
# the alert that will be shown before the page is refreshed for a CSRF problem
guiErrorCsrfAlert = Your session has ended. A new session has been created, please try your request again.
# Errors on the error screen
# IdP is not sending eppn?
errorCode_noUserAuthenticated = No username found. Your identity provider might not be sending your username to this application. Either you need to use a different identity provider, or ask your IT department to send your username to this application.
# subject not found who is logged in
errorCode_authenticatedSubjectNotFound = Your username could not be found in the system as an entity.
# cannot have an anonymous session in this part of the application
errorCode_anonymousSessionNotAllowed = You have an anonymous session since you are not logged in, but this section requires you to be logged in. Maybe $$errorCode_noUserAuthenticated$$
# if the CSRF token was not submitted for protected URL
errorCode_csrf = Maybe your session timed out and you need to start again. This should not happen under normal operation. CSRF error.
# ajax error, not sure of the specifics
errorCode_ajaxError = There was an error with your request.
# header on error screen
guiErrorHeader = Error
# start over with the application
guiStartOver = Click here to start over.
########################################
## Index page text
########################################
# name of the group app
grouperAppName = Grouper
# institution name
institutionName = Institute of Higher Education
# could be something like: $$institutionName$$ - $$grouperAppName$$:
browserTitlePrefix =
browserTitleSuffix = , $$grouperAppName$$
# index description text
indexGrouperDescription = This website allows you to manage groups associated with your organization and the members of those groups. For a list of answers to frequently asked questions, refer to the support documentation.
# Logged in as string in top right corner
indexLoggedInAs = Logged in as
# Logout link on index page
indexLogoutLink = Log out
# index quick links
indexQuickLinksLabel = Quick links
# Recent activity section label
indexRecentActivity = Recent activity
# Recent activity table header
indexRecentActivityTableHeader = Recent activity
# Recent activity date table header
indexRecentActivityDateTableHeader = Activity Date
# Button for my groups
indexMyGroupsButton = My groups
# Button for my activity
indexMyActivityButton = My activity
# button to browse folders
indexBrowseFolders = Browse folders
# Button for my folders
indexMyStemsButton = My folders
# title of my favorites widget
indexMyFavoritesTitle = My favorites
# title of my activity widget
indexMyActivityTitle = My activity
# Button for my favorites
indexMyFavoritesButton = My favorites
# if not loaded, this link will load them
indexMyFavoritesButtonLoad = Load list of my favorites
# link at bottom of my services section
indexMyServicesViewAllServices = View all services
# Button for my services
indexMyServicesButton = My services
# link at the button of groups I manage section
indexMyGroupsViewAllGroups = View all groups
# title at top of groups I manage section
indexMyGroupsTitle = Groups I manage
# if not loaded, this link will load them
indexMyGroupsTitleLoad = Load list of groups I manage
# link at bottom of folders I manage section
indexMyStemsViewAllStems = View all folders
# link at bottom of my favorites section
indexMyFavoritesViewAllFavorites = View all favorites
# title of the section for my services
indexMyServicesSectionTitle = My services
# if not loaded, this link will load them
indexMyServicesSectionTitleLoad = Load my services
# view all my memberships on index page
indexMyMembershipsViewAllMyMemberships = View all my memberships
# my memberships panel
indexMyMembershipsMyMemberships = My memberships
# if not loaded, this link will load them
indexMyMembershipsMyMembershipsLoad = Load my memberships
# recently used title
indexRecentlyUsedRecentlyUsed = Recently used
# load this if not loaded already
indexRecentlyUsedRecentlyUsedLoad = Load list of recently used items
# stems I manage title
indexStemsImanageStemsImanage = My folders
# load this if takes too long
indexStemsImanageStemsImanageLoad = Load list of my folders
# view all recently used
indexRecentlyUsedViewAllRecentlyUsed = View all recently used
# is javascript is disabled
indexNoJavascript = Error: Javascript is detected to be disabled in your browser. Please enable Javascript to use this application.
# select a widget to display
indexSelectWidgetToDisplay = Select a widget to display
########################################
## My groups
########################################
# breadcrumb for home
myGroupsHomeBreadcrumb = Home
# breadcrumb on the my groups screen
myGroupsBreadcrumb = My groups
# title of my groups screen
myGroupsTitle = My groups
# tab for my groups
myGroupsTabMyGroups = Groups I manage
# tab for my memberships
myGroupsTabMyMemberships = My memberships
# tab for groups i can join
myGroupsTabGroupsCanJoin = Groups I can join
# description for my groups
myGroupsDescription = The following table lists all groups in which you are allowed to manage the group's membership list.
# my groups filter for label
myGroupsFilterFor = Filter for:
# my groups name placeholder
myGroupsSearchNamePlaceholder = Group name or folder
# my groups search button
myGroupsSearchButton = Apply filter
# my groups reset button
myGroupsResetButton = Reset
# not enough chars in the filter for my groups
myGroupsErrorNotEnoughChars = Error: enter 2 or more characters
# on my groups results table, stem header
myGroupsFolderHeader = Folder
# on my groups results table, group header
myGroupsGroupHeader = Group name
# if no results found
myGroupsNoResultsFound = No results found
########################################
## My groups join
########################################
# description on my groups join screen
myGroupsJoinDescription = The following table lists all groups which you are allowed to join as a member.
# join group button
myGroupsJoinGroupButton = Join group
# problem getting group to join
myGroupsJoinGroupCantFindGroup = Cannot find group or not allowed to join group
# success joined group
myGroupsJoinGroupSuccess = Success: joined group
# already in group
myGroupsJoinGroupNoChangesSuccess = Note: already in group
########################################
## My groups memberships
########################################
# description on my groups memberships screen
myGroupsMembershipsDescription = The following table lists all groups in which you are a member, whether directly or indirectly.
# leave group button
myGroupsMembershipsLeaveButton = Leave group
# problem getting group to leave
myGroupsMembershipsCantFindGroup = Cannot find group or not allowed to leave group
# success left group
myGroupsMembershipsLeftSuccess = Success: you have left the group
# already out of group
myGroupsMembershipsLeftNoChangesSuccess = Note: already out of group
########################################
## My stems
########################################
# breadcrumb for home
myStemsHomeBreadcrumb = Home
# breadcrumb on the my stems screen
myStemsBreadcrumb = My folders
# title of my stems screen
myStemsTitle = My folders
# description for my stems
myStemsDescription = The following table lists the folders on which you have privileges
# my stems filter for label
myStemsFilterFor = Filter for:
# my stems name placeholder
myStemsSearchNamePlaceholder = Folder name
# my stems search button
myStemsApplyFilterButton = Apply filter
# my stems reset button
myStemsResetButton = Reset
# not enough chars in the filter for my stems
myStemsErrorNotEnoughChars = Error: enter 2 or more characters
# on my stems results table, parent stem header
myStemsParentStemHeader = Folder path
# on my stems results table, stem header
myStemsStemHeader = Folder name
# if no results found
myStemsNoResultsFound = No results found
# filter options
myStemsFilterOptionCreateGroups = Folders where I can create groups or attributes
myStemsFilterOptionCreateStems = Folders where I can create folders
myStemsFilterOptionGroupsManage = Folders containing groups I manage
myStemsFilterOptionAll = All
myStemsFilterOptionAttributeRead = Folders where I can read attributes
myStemsFilterOptionAttributeUpdate = Folders where I can update attributes
# folders I manage tab
myStemsImanageTab = Folders I manage
# folders with groups I manage tab
myStemsContainingGroupsImanageTab = Folders with groups I manage
# folders with attributes I manage tab
myStemsContainingAttributesImanageTab = Folders with attributes I manage
# description for stems with groups i manage
myStemsContainingGroupsImanageDescription = The following table lists the folders containing groups that I manage
# description for stems with attributes i manage
myStemsContainingAttributesImanageDescription = The following table lists the folders containing attributes that I manage
########################################
## My services
########################################
# breadcrumb for home
myServicesHomeBreadcrumb = Home
# breadcrumb on the my services screen
myServicesBreadcrumb = My services
# title of my services screen
myServicesTitle = My services
# description for my services
myServicesDescription = The following table lists all of your services that match the search filter
# my services filter for label
myServicesFilterFor = Filter for:
# my services name placeholder
myServicesSearchNamePlaceholder = Service name
# my services search button
myServicesApplyFilterButton = Apply filter
# my services reset button
myServicesResetButton = Reset
# not enough chars in the filter for my services
myServicesErrorNotEnoughChars = Error: enter 2 or more characters
# on my services results table, parent stem header
myServicesParentStemHeader = Service path
# on my services results table, service header
myServicesStemHeader = Service name
# if no results found
myServicesNoResultsFound = No results found
########################################
## Service
########################################
# If the URL is not valid
viewServiceCantFindServiceId = Error: cannot find attributeDefNameId, nameOfAttributeDefName, or attributeDefNameIndex in url
# If the service cant be found but the id or name is passed in
viewServiceCantFindService = Error: cannot find service
# label above the h1 on the service that tells the user this page is a service
viewServiceHeaderLabel = Service
# labels in table of screen for stems of a service
viewServiceParentStemHeader = Parent folder
# labels in table of screen for stems of a service
viewServiceStemNameHeader = Folder name
# if no folders found for this service
viewServiceNoResultsFound = No results found
########################################
## My favorites
########################################
# breadcrumb for home
myFavoritesHomeBreadcrumb = Home
# breadcrumb on the my favorites screen
myFavoritesBreadcrumb = My favorites
# title of my favorites screen
myFavoritesTitle = My favorites
# description for my favorites
myFavoritesDescription = The following table lists all favorites that match the search filter
# my favorites filter for label
myFavoritesFilterFor = Filter for:
# my favorites name placeholder
myFavoritesSearchNamePlaceholder = Favorite name
# my stems search button
myFavoritesApplyFilterButton = Apply filter
# my favorites reset button
myFavoritesResetButton = Reset
# not enough chars in the filter for my favorites
myFavoritesErrorNotEnoughChars = Error: enter 2 or more characters
# on my favorites results table, parent stem header
myFavoritesParentStemHeader = Favorite path
# on my stems results table, favorite header
myFavoritesStemHeader = Favorite name
# if no results found
myFavoritesNoResultsFound = No results found
########################################
## My activity
########################################
# breadcrumb for home
myActivityHomeBreadcrumb = Home
# breadcrumb on the my activity screen
myActivityBreadcrumb = My activity
# title of my activity screen
myActivityTitle = My activity
# description for my activity
myActivityDescription = The following table lists all activity that match the search filter
# my activity filter date range label
myActivityFilterFor = Date Range:
# my activity search range from placeholder
myActivitySearchRangeFromPlaceholder = From
# my activity search range to placeholder
myActivitySearchRangeToPlaceholder = To
# my stems search button
myActivityApplyFilterButton = Apply filter
# my activity reset button
myActivityResetButton = Reset
# date format not correct
myActivityIncorrectDateFormat = Error: Date format is not correct.
# start date cannot be after end date
myActivityStartDateAfterEndDate = Error: Start date cannot be after end date
# on my activity results table, parent stem header
myActivityParentStemHeader = Activity name
# on my stems results table, activity header
myActivityStemHeader = Activity date
# if no results found
myActivityNoResultsFound = No results found
########################################
## Membership pages text
########################################
# If the URL is not valid
membershipCantFindFieldId = Error: cannot find fieldId, fieldName, or field in url
# URL is ok, but cant find field
membershipCantFindField = Error: cannot find field
# membership trace subheader
membershipTraceSubHeader = Trace membership for ${grouperRequestContainer.subjectContainer.guiSubject.ScreenLabelShort2noLink}
# membership trace breadcrumb
membershipTraceBreadcrumb = Trace membership
# lead at the top of the page that explains trace membership
membershipTracePageLead = ${grouperRequestContainer.subjectContainer.guiSubject.ScreenLabelShort2noLink} is a member of the ${grouperUtil.xmlEscape(grouperRequestContainer.groupContainer.guiGroup.group.displayExtension)} group by the following paths:
# pit membership trace
pitMembershipTracePageLead = ${grouperRequestContainer.subjectContainer.guiSubject.ScreenLabelShort2noLink} was a member of the ${grouperUtil.xmlEscape(grouperRequestContainer.groupContainer.guiGroup.group.displayExtension)} group by the following path:
pitMembershipTracePathFirstLineCurrentMembership = ${grouperRequestContainer.subjectContainer.guiSubject.shortLink} is a direct member of
pitMembershipTracePathFirstLinePreviousMembership = ${grouperRequestContainer.subjectContainer.guiSubject.shortLink} is NOT a direct member of (ended ${grouperRequestContainer.membershipGuiContainer.getGuiAuditDateLabelCurrent()})
pitMembershipTraceGroupLine = ${grouperRequestContainer.membershipGuiContainer.guiPITGroupCurrent.linkOrName}
pitMembershipTraceGroupMemberOfCurrentMembership = which is a direct member of
pitMembershipTraceGroupMemberOfPreviousMembership = which is NOT a direct member of (ended ${grouperRequestContainer.membershipGuiContainer.getGuiAuditDateLabelCurrent()})
# membership trace timeline
membershipTraceTimelinePageLead = Membership timeline:
membershipTraceTimelineButton = Show timeline
membershipTraceTimelineShowUserAudit = Show user audit
membershipTraceTimelineShowPITAudit = Show point in time audit
membershipTraceTimelineShowProvisioningEvents = Show provisioning events
membershipTraceTimelineDescription = The following are times when the subject was added or removed from any of the groups in the membership path above. The events include all membership adds and removes for the subject around the time. And the state includes whether the subject was a member of each of the groups in the membership path at that time.
membershipTraceTimelineMomentOfInterestEventsLabel = Event(s)
membershipTraceTimelineMomentOfInterestStateLabel = State
membershipTraceTimelineMomentOfInterest = ${grouperRequestContainer.membershipGuiContainer.getGuiAuditDateLabelCurrent()}
membershipTraceTimelineUserAuditAddMembership = ${grouperRequestContainer.membershipGuiContainer.getGuiAuditEntryCurrent().getGuiDateWithSeconds()} - [user audit] ${grouperRequestContainer.membershipGuiContainer.getGuiAuditEntryCurrent().getGuiSubjectPerformedAction().shortLink} added ${grouperRequestContainer.membershipGuiContainer.getGuiAuditEntryCurrent().getGuiMember().shortLink} to ${grouperRequestContainer.membershipGuiContainer.getGuiAuditEntryCurrent().groupLinkOrName} group using ${grouperRequestContainer.membershipGuiContainer.getGuiAuditEntryCurrent().getGrouperEngineLabel()}
membershipTraceTimelineUserAuditUpdateMembership = ${grouperRequestContainer.membershipGuiContainer.getGuiAuditEntryCurrent().getGuiDateWithSeconds()} - [user audit] ${grouperRequestContainer.membershipGuiContainer.getGuiAuditEntryCurrent().getGuiSubjectPerformedAction().shortLink} updated ${grouperRequestContainer.membershipGuiContainer.getGuiAuditEntryCurrent().getGuiMember().shortLink} in ${grouperRequestContainer.membershipGuiContainer.getGuiAuditEntryCurrent().groupLinkOrName} group using ${grouperRequestContainer.membershipGuiContainer.getGuiAuditEntryCurrent().getGrouperEngineLabel()}
membershipTraceTimelineUserAuditDeleteMembership = ${grouperRequestContainer.membershipGuiContainer.getGuiAuditEntryCurrent().getGuiDateWithSeconds()} - [user audit] ${grouperRequestContainer.membershipGuiContainer.getGuiAuditEntryCurrent().getGuiSubjectPerformedAction().shortLink} removed ${grouperRequestContainer.membershipGuiContainer.getGuiAuditEntryCurrent().getGuiMember().shortLink} from ${grouperRequestContainer.membershipGuiContainer.getGuiAuditEntryCurrent().groupLinkOrName} group using ${grouperRequestContainer.membershipGuiContainer.getGuiAuditEntryCurrent().getGrouperEngineLabel()}
membershipTraceTimelineUserAuditDeleteGroup = ${grouperRequestContainer.membershipGuiContainer.getGuiAuditEntryCurrent().getGuiDateWithSeconds()} - [user audit] ${grouperRequestContainer.membershipGuiContainer.getGuiAuditEntryCurrent().getGuiSubjectPerformedAction().shortLink} deleted ${grouperRequestContainer.membershipGuiContainer.getGuiAuditEntryCurrent().groupLinkOrName} group using ${grouperRequestContainer.membershipGuiContainer.getGuiAuditEntryCurrent().getGrouperEngineLabel()}
membershipTraceTimelinePITAuditAddMembership = ${grouperRequestContainer.membershipGuiContainer.getGuiAuditDateLabelCurrent()} - [point in time audit] added ${grouperRequestContainer.subjectContainer.guiSubject.shortLink} to ${grouperRequestContainer.membershipGuiContainer.guiPITGroupCurrent.linkOrName} group
membershipTraceTimelinePITAuditDeleteMembership = ${grouperRequestContainer.membershipGuiContainer.getGuiAuditDateLabelCurrent()} - [point in time audit] removed ${grouperRequestContainer.subjectContainer.guiSubject.shortLink} from ${grouperRequestContainer.membershipGuiContainer.guiPITGroupCurrent.linkOrName} group
membershipTraceTimelineProvisioningTargetStart = ${grouperRequestContainer.membershipGuiContainer.getGuiGcGrouperSyncMembershipCurrent().getInTargetStartLabel()} - [provisioning] added ${grouperRequestContainer.subjectContainer.guiSubject.shortLink} to ${grouperRequestContainer.membershipGuiContainer.getGuiGcGrouperSyncMembershipCurrent().groupLinkOrName} group in target ${grouperRequestContainer.membershipGuiContainer.getGuiGcGrouperSyncMembershipCurrent().provisionerName}
membershipTraceTimelineProvisioningTargetEnd = ${grouperRequestContainer.membershipGuiContainer.getGuiGcGrouperSyncMembershipCurrent().getInTargetEndLabel()} - [provisioning] removed ${grouperRequestContainer.subjectContainer.guiSubject.shortLink} from ${grouperRequestContainer.membershipGuiContainer.getGuiGcGrouperSyncMembershipCurrent().groupLinkOrName} group in target ${grouperRequestContainer.membershipGuiContainer.getGuiGcGrouperSyncMembershipCurrent().provisionerName}
membershipTraceTimelineStateMembershipYes = ${grouperRequestContainer.membershipGuiContainer.guiPITGroupCurrent.linkOrName}
membershipTraceTimelineStateMembershipNo = ${grouperRequestContainer.membershipGuiContainer.guiPITGroupCurrent.linkOrName}
# no memberships found on trace memberships screen
membershipTraceNoMembershipFound = No memberships found
# membership path first line introduces the subject to the path
membershipTracePathFirstLine = ${grouperRequestContainer.subjectContainer.guiSubject.shortLink} is a direct member of
# membership path group line
membershipTraceGroupLine = ${grouperRequestContainer.membershipGuiContainer.guiGroupCurrent.link} ${grouperRequestContainer.membershipGuiContainer.guiMembershipCurrentHasMembershipDates ? "(Membership enabled date: " + grouperRequestContainer.membershipGuiContainer.guiMembershipCurrent.startDateLabel + ", Membership disabled date: " + grouperRequestContainer.membershipGuiContainer.guiMembershipCurrent.endDateLabel + ")" : ""}
membershipTraceStemLine = ${grouperRequestContainer.membershipGuiContainer.guiStemCurrent.link}
membershipTraceAttributeDefLine = ${grouperRequestContainer.membershipGuiContainer.guiAttributeDefCurrent.link}
# membership path group member of line
membershipTraceGroupMemberOf = which is a direct member of
# membership path group composite union of line
membershipTraceGroupCompositeOfUnion = which is a composite factor union with ${grouperRequestContainer.membershipGuiContainer.guiGroupFactor.shortLink} of
# membership path group composite intersect of line
membershipTraceGroupCompositeOfIntersection = which is a composite factor intersect with ${grouperRequestContainer.membershipGuiContainer.guiGroupFactor.shortLink} of
# membership path group composite minus of line
membershipTraceGroupCompositeOfMinus = which is a composite factor minus ${grouperRequestContainer.membershipGuiContainer.guiGroupFactor.shortLink} of
# button to go to back to entity
membershipTraceBackToSubjectButton = Back to entity
# button to go back to group
membershipTraceBackToGroupButton = Back to group
# button to go back to stem
membershipTraceBackToStemButton = Back to folder
# button to go back to membership
membershipTraceBackToMembershipButton = Back to membership
# button to go to back to attribute def
membershipTraceBackToAttributeDefButton = Back to attribute
# if there are no paths
membershipTraceGroupNoPaths = There are no current indirect paths for this entity and group.
# if there are no paths allowed by user
membershipTraceGroupNoPathsAllowed = There are no current indirect paths for this entity and group that you are allowed to read.
# if there are some paths cannot see
membershipTraceGroupPathsNotAllowed = Note: there are ${grouperRequestContainer.membershipGuiContainer.pathCountNotAllowed} current paths for this entity and group that you are not allowed to see since you cannot READ a group in the path.
########################################
## Edit memberships
########################################
# no memberships found on edit memberships screen
membershipEditNoMembershipFound = No memberships found
# subheader on edit membership screen
membershipEditSubHeader = Membership and privileges in ${grouperUtil.xmlEscape(grouperRequestContainer.groupContainer.guiGroup.group.displayExtension)} group
# membership label for is direct or indirect member, note: these do not show up on screen
membershipEditLabelMembership = Direct membership:
membershipEditLabelIndirectMembership = Indirect membership:
# membership label for if the user is a direct/indirect member or not
membershipEditHasDirectMembership = ${grouperRequestContainer.subjectContainer.guiSubject.shortLink} is a direct member of the ${grouperRequestContainer.groupContainer.guiGroup.shortLink} group
membershipEditNotHasDirectMembership = ${grouperRequestContainer.subjectContainer.guiSubject.shortLink} is not a direct member of the ${grouperRequestContainer.groupContainer.guiGroup.shortLink} group
membershipEditHasIndirectMembership = ${grouperRequestContainer.subjectContainer.guiSubject.shortLink} is an indirect member of the ${grouperRequestContainer.groupContainer.guiGroup.shortLink} group
membershipEditNotHasIndirectMembership = ${grouperRequestContainer.subjectContainer.guiSubject.shortLink} is not an indirect member of the ${grouperRequestContainer.groupContainer.guiGroup.shortLink} group
# membership edit start date label
membershipEditLabelStartDate = Start date:
# membership start date subtext
membershipEditLabelStartDateSubtext = The date on which this entity's membership begins. Expected timezone is ${grouperUtil.getFriendlyTimezoneStringForInputDescription()}.
# membership edit end date label
membershipEditLabelEndDate = End date:
# membership end date subtext
membershipEditLabelEndDateSubtext = The date on which this entity's membership expires. Expected timezone is ${grouperUtil.getFriendlyTimezoneStringForInputDescription()}.
# membership edit direct privileges label
membershipEditLabelDirectPrivileges = Direct group privileges:
# membership edit indirect privileges label
membershipEditLabelIndirectPrivileges = Indirect group privileges:
# save button on membership edit screen
membershipEditSaveButton = Save
# cancel button on membership edit screen
membershipEditCancelButton = Cancel
# trace button on membership edit screen
membershipEditTraceButton = Trace
# invalid dates on edit membership
membershipEditFromDateInvalid = 'Start date' is invalid. Enter: yyyy/mm/dd hh:mi am/pm (12-hour clock)
membershipEditToDateInvalid = 'End date' is invalid. Enter: yyyy/mm/dd hh:mi am/pm (12-hour clock)
membershipEditToDateAfterFromDateError = 'End date' should be after 'Start date'
# placeholder in the date field
membershipEditDatePlaceholder = yyyy/mm/dd hh:mi am/pm
# success string for membership saved
membershipEditSaveSuccess = Success: membership is saved
# no change string for membership saved
membershipEditNoChange = Note: membership not changed
########################################
## Trace privileges text
########################################
# privilege trace subheader
privilegesTraceSubHeader = Trace privileges for ${grouperRequestContainer.subjectContainer.guiSubject.screenLabelShort2noLink}
privilegesTraceSubjectSubHeader = Trace privileges for ${grouperRequestContainer.groupContainer.guiGroup.group.displayName}
privilegesTraceStemSubHeader = Trace privileges for ${grouperRequestContainer.subjectContainer.guiSubject.screenLabelShort2noLink}
privilegesTraceStemSubjectSubHeader = Trace privileges for ${grouperRequestContainer.stemContainer.guiStem.stem.displayName}
privilegesTraceAttributeDefSubHeader = Trace privileges for ${grouperRequestContainer.subjectContainer.guiSubject.screenLabelShort2noLink}
privilegesTraceAttributeDefSubjectSubHeader = Trace privileges for ${grouperRequestContainer.attributeDefContainer.guiAttributeDef.attributeDef.displayName}
# privilege trace breadcrumb
privilegesTraceBreadcrumb = Trace privileges
# lead at the top of the page that explains trace privileges
privilegesTracePageLead = ${grouperRequestContainer.subjectContainer.guiSubject.screenLabelShort2noLink} has privileges on the ${grouperUtil.xmlEscape(grouperRequestContainer.groupContainer.guiGroup.group.displayExtension)} group by the following paths:
privilegesTraceStemPageLead = ${grouperRequestContainer.subjectContainer.guiSubject.screenLabelShort2noLink} has privileges on the ${grouperUtil.xmlEscape(grouperRequestContainer.groupContainer.guiStem.stem.displayExtension)} folder by the following paths:
privilegesTraceAttributeDefPageLead = ${grouperRequestContainer.subjectContainer.guiSubject.screenLabelShort2noLink} has privileges on the ${grouperUtil.xmlEscape(grouperRequestContainer.groupContainer.guiAttributeDef.attributeDef.displayExtension)} attribute definition by the following paths:
# no privileges found on trace privileges screen
privilegesTraceNoPrivilegesFound = No privileges found
# membership path first line introduces the subject to the path
privilegesTracePathFirstLine = ${grouperRequestContainer.subjectContainer.guiSubject.shortLink} has direct ${grouperRequestContainer.membershipGuiContainer.privilegeLabelsString} privileges on
# membership path first line introduces the subject to the path for every entity
privilegesTracePathEveryEntityFirstLine = ${grouperRequestContainer.subjectContainer.guiSubject.shortLink} inherits from $$term.everyEntity$$ which has direct ${grouperRequestContainer.membershipGuiContainer.privilegeLabelsString} privileges on
# membership path first line introduces the subject to the path
privilegesTraceMembershipPathEveryEntityFirstLine = ${grouperRequestContainer.subjectContainer.guiSubject.shortLink} inherites from $$term.everyEntity$$ which is a direct member of
# membership path first line introduces the subject to the path
privilegesTracePathLastLine = which has direct ${grouperRequestContainer.membershipGuiContainer.privilegeLabelsString} privileges on
# first line of privileges block which has the comma separated list of privileges
privilegesTracePrivilegesLine = ${grouperRequestContainer.membershipGuiContainer.privilegeIncludingImpliedLabelsString}
# button to go to back to entity
privilegesTraceBackToSubjectButton = Back to entity privileges
# button to go back to group
privilegesTraceBackToGroupButton = Back to group privileges
# button to go back to stem
privilegesTraceBackToStemButton = Back to folder privileges
# button to go back to attribute def
privilegesTraceBackToAttributeDefButton = Back to attribute definition privileges
# if there are no paths
privilegesTraceGroupNoPaths = There are no privilege paths for this entity and group
privilegesTraceStemNoPaths = There are no privilege paths for this entity and folder
privilegesTraceAttributeDefNoPaths = There are no privilege paths for this entity and attribute definition
# if there are no paths allowed by user
privilegesTraceGroupNoPathsAllowed = There are no privilege paths for this entity and group that you are allowed to read
# if there are some paths cannot see
privilegesTraceGroupPathsNotAllowed = Note: there are ${grouperRequestContainer.membershipGuiContainer.pathCountNotAllowed} privilege paths for this entity and group that you are not allowed to see since you cannot READ a group in the path
########################################
## Subject page text
########################################
# If the URL is not valid
subjectCantFindSubjectId = Error: cannot find subjectId, subjectIdentifier, subjectIdOrIdentifier, memberId in url
# If the subject cant be found but the id or name is passed in
subjectCantFindSubject = Error: cannot find subject
# Search for a group to add the subject to
subjectSearchForGroupButton = Search for a group
# Search for a stem to add the subject to
subjectSearchForStemButton = Search for a folder
# Search for an attribute to add the subject to
subjectSearchForAttributeDefButton = Search for an attribute
# When searching for a group, this is the placeholder
subjectSearchGroupPlaceholder = Search for a group
# When searching for an attributeDef, this is the placeholder
subjectSearchAttributeDefPlaceholder = Search for an attribute
# When searching for a stem, this is the placeholder
subjectSearchStemPlaceholder = Search for a folder
# when searching for a group to add a subject to, this is the placeholder
subjectSearchButton = Search
# when searching for a group, match exact id
subjectSearchExactIdMatch = Match exact group ID
# close button on subject search for group screen
subjectSearchCloseButton = Close
# description of the results for searching for a group to add the entity to
subjectSearchResultsDescription = The table below lists groups in which you are allowed to manage memberships.
# description of the results for searching for an attribute def to add the entity to
subjectSearchAttributeDefResultsDescription = The table below lists attribute definitions in which you are allowed to manage privileges.
# column header for the stem the object is in
subjectSearchResultsColumnHeaderStem = Folder
# column header for the group of the object
subjectSearchResultsColumnHeaderGroupName = Group name
# column header for the attributeDef of the object
subjectSearchResultsColumnHeaderAttributeDefName = Attribute name
# group name label on subject screen to add group
subjectSearchGroupName = Group name:
# stem name label on subject screen to add stem
subjectSearchStemName = Folder name:
# attribute name label on subject screen to add attribute def
subjectSearchAttributeDefName = Attribute name:
# text before the combo link
subjectSearchLabelPreComboLink = Enter a group name or ID, or
# text to search for a group
subjectSearchForGroupLink = search for a group.
# text before the combo link for stem
subjectSearchStemLabelPreComboLink = Enter a folder name or ID, or
# text to search for a stem
subjectSearchForStemLink = search for a folder.
# text before the combo link for attributeDef
subjectSearchAttributeDefLabelPreComboLink = Enter an attribute name or ID, or
# text to search for an attribute
subjectSearchForAttributeDefLink = search for an attribute.
# assign these privileges label on view subject
subjectViewAssignThesePrivileges = Assign these privileges:
# start date on view subject
subjectViewStartDate = Start date:
# end date on view subject
subjectViewEndDate = End date:
# start date subtext on view subject
subjectViewStartDateSubtext = The optional date on which this entity's membership begins. Expected timezone is ${grouperUtil.getFriendlyTimezoneStringForInputDescription()}.
# end date subtext on view subject
subjectViewEndDateSubtext = The optional date on which this entity's membership expires. Expected timezone is ${grouperUtil.getFriendlyTimezoneStringForInputDescription()}.
# subject view, start date invalid
subjectViewFromDateInvalid = 'Start date' is invalid. Enter: yyyy/mm/dd hh:mi am/pm (12-hour clock)
# subject view, end date invalid
subjectViewToDateInvalid = 'End date' is invalid. Enter: yyyy/mm/dd hh:mi am/pm (12-hour clock)
# subject view, end date should be after start date
subjectViewToDateAfterFromDateError = 'End date' should be after 'Start date'
# subject view, start/end date used with privilege
subjectAddMemberPrivStartEndDateError = Start date and end date can only be set for the default member privilege
# Add link in text of subject view screen
subjectViewAddGroupLink = Add
# Add link in text of subject view screen
subjectViewAddAttributeDefLink = Add
# Add link in text of subject view screen
subjectViewAddStemLink = Add
# or text between add button and bulk
subjectViewTextBetweenAddAndBulk = or
# text after the bulk link
subjectViewTextPostBulkLink = from a file.
# link for import a list of members
subjectViewBulkLink = import a list of members
# if default privileges should be assigned
subjectViewDefaultPrivileges = Default privileges
# if custom privileges should be assigned
subjectViewCustomPrivileges = Custom privileges
# label for subject id
subjectViewLabelId = Unique ID:
# label for email
subjectViewLabelEmail = Email:
# label for name
subjectViewLabelName = Name:
# label for description
subjectViewLabelDescription = Description:
# label for source id
subjectViewLabelSourceId = Source ID:
# label for source name
subjectViewLabelSourceName = Source name:
# label for member id
subjectViewLabelMemberId = Member ID:
# make labels like this to have custom attribute labels
subjectViewLabel__sourceTextId__attributeName = My attribute label:
subjectViewLabel__jdbc__loginid = Login ID:
subjectViewLabel__jdbc__lfname = Last/first name:
subjectViewFriendlyDescriptionMemberId = The uuid of the grouper_members table is Grouper's foreign key for this entity
subjectViewFriendlyDescriptionSourceId = The ID of the source which provides this entity
subjectViewFriendlyDescriptionId = The subjectId is the opaque unchanging ID of the entity
subjectViewFriendlyDescriptionName = The entity attribute 'name' is the first and last name of the entity
subjectViewFriendlyDescriptionDescription = The 'description' attribute differentiates entities with the same name
subjectViewFriendlyDescriptionEmail = This is the entity attribute: $$attributeName$$
# button to add to a group
subjectViewMoreActionsAddMembers = Add to a group
# subject view audit log button
subjectViewMembershipAuditButton = View membership audit log
# subject view action log button
subjectViewActionAuditButton = View action audit log
# subject view privilege log button
subjectViewPrivilegeAuditButton = View privilege audit log
# subject view provisioning button
subjectViewProvisioningButton = Provisioning
# label on subject audit screen about filtering by date
subjectAuditLogFilterByDate = Filter by date:
# label on subject audit screen of filter types: on, before, between, since
subjectAuditLogFilterType_all = all
subjectAuditLogFilterType_on = on
subjectAuditLogFilterType_before = before
subjectAuditLogFilterType_between = between
subjectAuditLogFilterType_since = since
# placeholder for audit log dates
subjectAuditLogFilterDatePlaceholder = yyyy/mm/dd
# subject audit and label between two date inputs
subjectAuditLogFilterAndLabel = and
# label to show extended results
subjectAuditLogFilterShowExtendedResults = Show extended results?
# subject audit log filter find entries
subjectAuditLogFilterFindEntriesButton = Find entries
# subject audit log filter validations
subjectAuditLogFilterFromDateRequired = 'First date' is a required field
subjectAuditLogFilterToDateRequired = 'To date' is a required field
subjectAuditLogFilterFromDateInvalid = 'First date' is invalid. Enter: yyyy/mm/dd
subjectAuditLogFilterToDateInvalid = 'To date' is invalid. Enter: yyyy/mm/dd
subjectAuditLogNoEntriesFound = No audits found
# subject audit log table headers
subjectAuditLogFilterColumnDate = Date
subjectAuditLogFilterColumnActor = Actor
subjectAuditLogFilterColumnEngine = Engine
subjectAuditLogFilterColumnSummary = Summary
subjectAuditLogFilterColumnDuration = Duration
subjectAuditLogFilterColumnDurationMillis = ms
subjectAuditLogFilterColumnDurationSeconds = s
subjectAuditLogFilterColumnQueryCount = Query count
subjectAuditLogFilterColumnServerUsername = Server username
subjectAuditLogFilterColumnUserIpAddress = IP address
subjectAuditLogFilterColumnServer = Server
subjectAuditLogFilterColumnEntryId = Entry ID
subjectAuditLogFilterColumnRawDescription = Raw description
# description of audit log screen
subjectAuditLogDescription = The audit log displays all recent activity related to this subject.
# button to add stem privilege
subjectViewMoreActionsAddMembersToStem = Add folder privilege
# button to add attribute definition privilege
subjectViewMoreActionsAddMembersToAttributeDef = Add attribute privilege
# remove from my favorites button
subjectViewMoreActionsRemoveFromMyFavorites = Remove from my favorites
# add to my favorites button
subjectViewMoreActionsAddToMyFavorites = Add to my favorites
# view/assign permissions
subjectViewPermissionsButton = Permissions
# attribute assignments button
subjectAttributeAssignmentsButton = Attribute assignments
# if not enough chars in the search form
subjectViewAddToGroupNotEnoughChars = Enter at least two characters
subjectViewAddToAttributeDefNotEnoughChars = Enter at least two characters
# group was added to my favorites
subjectSuccessAddedToMyFavorites = Entity was added to favorites
# group was removed from my favorites
subjectSuccessRemovedFromMyFavorites = Entity was removed from favorites
# if no subjects found
subjectViewAddMemberNoSubjectsFound = No entities found
# description for members tab
subjectViewGroupsDescription = The following table lists all groups in which ${grouperRequestContainer.subjectContainer.guiSubject.ScreenLabelShort2noLink} is a member.
# memberships tab on subject screen
subjectMembershipsTab = Memberships
# privileges tab
subjectPrivilegesTab = Group privileges
# stem privileges tab
subjectStemPrivilegesTab = Folder privileges
# attribute privileges tab
subjectAttributePrivilegesTab = Attribute privileges
# filter subject for
subjectFilterFor = Filter for:
# all option on select
subjectFilterAllAssignments = All groups
# direct option on select
subjectFilterDirectAssignments = Has direct membership
# indirect option on select
subjectFilterIndirectAssignments = Has indirect membership
# placeholder in text box for filtering group name
subjectFilterFormPlaceholder = Group name
# apply filter button on subject screen
subjectApplyFilterButton = Apply filter
# reset button on filter of group screen
subjectResetButton = Reset
# columns headers for subject membership tab
subjectMembershipStemColumn = Folder
subjectMembershipGroupColumn = Group name
subjectMembershipMembershipColumn = Membership
# revoke membership
subjectViewRevokeMembershipButton = Revoke membership
# button to remove selected groups from the member
subjectRemoveSelectedGroupsButton = Remove selected groups
# if group cant be found
subjectDeleteGroupCantFindGroup = Cannot find group
# if they didnt select groups
subjectMembershipsRemoveNoGroupSelects = Error: select at least one group
# cant find the group
subjectAddMemberCantFindGroup = Select a group from the search results
# cant find attribute def
subjectAddMemberCantFindAttributeDef = Select an attribute from the search results
# if the user didnt select any privileges
subjectAddMemberPrivRequired = Select at least one privilege
# if the user didnt select any privileges
subjectAddMemberStemPrivRequired = Select at least one privilege
# if the user didnt select any privileges
subjectAddMemberAttributeDefPrivRequired = Select at least one privilege
# cant find the stem
subjectAddMemberCantFindStem = Select a folder from the search results
# if a group is not allowed
subjectNotAllowedToAdminAnotherGroup = Error: not allowed to administer group
# if a privilege is not allowed
subjectAddMemberNotAllowedToAssignPrivs = Error: not allowed to select privileges for this group, you do not have the ADMIN privilege on the group
# if a stem is not allowed
subjectNotAllowedToAdminAnotherStem = Error: not allowed to administer folder
# if an attribute def is not allowed
subjectNotAllowedToAdminAnotherAttributeDef = Error: not allowed to administer attribute definition
########################################
## Subject's group privileges
########################################
# update selected on this subject privilege screens
thisSubjectPrivilegeUpdateSelectedButton = Update selected
# tab with link for this subject attributeDef privileges
thisSubjectsAttributeDefPrivilegesTab = This subject's privileges in attribute definitions
# description on this subject group privileges screen
thisSubjectsGroupPrivilegesDescription = This subject has privileges in the following groups
# description on this subject stem privileges screen
thisSubjectsStemPrivilegesDescription = This subject has privileges in the following folders
# description on this subject attribute definition privileges screen
thisSubjectsAttributeDefPrivilegesDescription = This subject has privileges in the following attribute definitions
# folder column on this subject privileges table
thisSubjectsPrivilegesFolderColumn = Folder
# group column on this subject privileges table
thisSubjectsPrivilegesGroupColumn = Group name
# error need to select a group
thisSubjectsPrivilegesErrorGroupRequired = Error: you must select at least one group
# error need to select a stem
thisSubjectsPrivilegesErrorStemRequired = Error: you must select at least one folder
# error need to select a attributeDef
thisSubjectsPrivilegesErrorAttributeDefRequired = Error: you must select at least one attribute definition
# if the objects involve attribute definitions, this is the attribute definition where the privileges are
thisSubjectsPrivilegesAttributeDefColumn = Attribute definition
# membership column on this subject privileges table
thisSubjectsPrivilegesMembershipColumn = Privilege inheritance
# filter group name textfield placeholder
thisSubjectsPrivilegesGroupFilterFormPlaceholder = Group name
# filter folder name textfield placeholder
thisSubjectsPrivilegesStemFilterFormPlaceholder = Folder name
# filter attribute def name textfield placeholder
thisSubjectsPrivilegesAttributeDefFilterFormPlaceholder = Attribute definition
# button to remove this subject from selected groups
thisSubjectsPrivilegesRemoveFromSelectedGroups = Remove selected privileges for this subject
# if they didnt select groups
thisSubjectsPrivilegesRemoveNoGroupsSelects = Error: select at least one group
# if they didnt select stems
thisSubjectsPrivilegesRemoveNoStemsSelects = Error: select at least one folder
# if they didnt select stems
thisSubjectsPrivilegesRemoveNoAttributeDefsSelects = Error: select at least one attribute definition
# folder column on this groups privileges table
thisSubjectsPrivilegesStemColumn = Folder
# button next to rows which is the actions for that row
thisSubjectsPrivilegesActionsButton = Actions
# menu for actions, edit memberships and privileges
thisSubjectsPrivilegesActionsMenuEditMembershipsAndPrivileges = Edit membership & privileges
# menu for actions, trace privileges
thisSubjectsPrivilegesActionsMenuTracePrivileges = Trace privileges
# menu for actions, view group
thisSubjectsPrivilegesActionsMenuViewGroup = View group
# menu for actions, view stem
thisSubjectsPrivilegesActionsMenuViewStem = View folder
# menu for actions, view attributeDef
thisSubjectsPrivilegesActionsMenuViewAttributeDef = View attribute definition
# title on hover over a check mark to remove privilege
thisSubjectsPrivilegesRemoveTitle = Remove this privilege
# title on hover over a blank or X to remove privilege
thisSubjectsPrivilegesAssignTitle = Assign this privilege
########################################
## Group page text
########################################
# group validations fields too long
groupValidation_groupDescriptionTooLong = Error: group description is too long
groupValidation_groupDisplayExtensionTooLong = Error: group name is too long
groupValidation_groupExtensionTooLong = Error: group ID is too long
groupValidation_groupDisplayNameTooLong = Error: the group name causes the path to be too long, please shorten it
groupValidation_groupNameTooLong = Error: the group ID causes the ID path to be too long, please shorten it
# If the URL is not valid
groupCantFindGroupId = Error: cannot find groupId, groupName, or groupIndex in url
# If the group cant be found but the id or name is passed in
groupCantFindGroup = Error: cannot find group
# if not allowed to admin group
groupNotAllowedToAdminGroup = Error: not allowed to administer group: ${grouperUtil.xmlEscape(grouperRequestContainer.groupContainer.guiGroup.group.displayName)}
# if a group is not allowed
groupNotAllowedToAdminAnotherGroup = Error: not allowed to administer group
# if a stem is not allowed
groupNotAllowedToAdminAnotherStem = Error: not allowed to administer folder
# if an attribute def is not allowed
groupNotAllowedToAdminAnotherAttributeDef = Error: not allowed to administer attribute definition
# if not allowed to update group
groupNotAllowedToUpdateGroup = Error: not allowed to update memberships in group: ${grouperUtil.xmlEscape(grouperRequestContainer.groupContainer.guiGroup.group.displayName)}
# if not allowed to read group
groupNotAllowedToReadGroup = Error: not allowed to read memberships in group: ${grouperUtil.xmlEscape(grouperRequestContainer.groupContainer.guiGroup.group.displayName)}
# if not allowed to view group
groupNotAllowedToViewGroup = Error: not allowed to view group
# if not allowed to optin group
groupNotAllowedToOptinGroup = Error: not allowed to join group: ${grouperUtil.xmlEscape(grouperRequestContainer.groupContainer.guiGroup.group.displayName)}
# if not allowed to optout group
groupNotAllowedToOptoutGroup = Error: not allowed to leave group: ${grouperUtil.xmlEscape(grouperRequestContainer.groupContainer.guiGroup.group.displayName)}
# remove all members title of confirm screen
groupRemoveMembersTitle = Remove all members
# delete button on the delete group screen
groupDeleteDeleteButton = Delete
# delete button on the delete entity screen
localEntityDeleteDeleteButton = Delete
# cancel button on the delete group screen
groupDeleteCancelButton = Cancel
# cancel button on the delete local entity screen
localEntityDeleteCancelButton = Cancel
# remove members button on the remove members group screen
groupRemoveMembersRemoveButton = Remove all members
# text on remove members screen confirming if you want to remove all members
groupRemoveMembersConfirmText = You are about to remove all members of the ${grouperUtil.xmlEscape(grouperRequestContainer.groupContainer.guiGroup.group.displayExtension)} group. You cannot undo this operation. Are you sure you want to proceed?
# cancel button on the delete group screen
groupRemoveMembersCancelButton = Cancel
# button in view group to remove all members
groupViewRemoveAllMembersButton = Remove all members
# text if group is disabled
groupViewGroupDisabled = This group is disabled.
# text if local entity is disabled
localEntityViewLocalEntityDisabled = This local entity is disabled.
# success, all members were removed from the group
groupRemoveMembersSuccess = Success: all members were removed from the group
# cannot perform an action since the group is a composite
groupProblemWithComposite = Error: cannot perform action since this group is a composite
# cannot perform an action since the group is a composite
groupProblemDeleteWithCompositeFactor = Error: cannot delete group since it is a composite factor in composite(s):
# Path label
groupLabelPath = Path:
# ID path label
groupLabelIdPath = ID path:
# alternate id path label
groupLabelAlternateIdPath = Alternate ID path:
# id label
groupLabelId = ID:
# created label
groupLabelCreated = Created:
# creator label
groupLabelCreator = Creator:
# name of group
groupLabelName = Name:
# when last edited
groupLabelLastEdited = Last edited:
# who last edits the group
groupLabelLastEditedBy = Last edited by:
# the numeric index of this group
groupLabelIdIndex = ID index:
# uuid of group
groupLabelUuid = UUID:
# type of the group
groupLabelTypeLabel = Type:
# group type of group
groupLabelType_group = Group
# group type of role
groupLabelType_role = Role
# group type of local entity
groupLabelType_entity = Local entity
# label for the group of privileges assigned to everyone
groupLabelPrivilegesAssignedToEveryone = Privileges assigned to everyone:
# If this group is a composite owner of factor groups
groupLabelCompositeOwner = Composite owner:
# If this group is a composite factor other groups
groupLabelCompositeFactors = Composite factor of other groups:
# If this group is not a composite owner
groupLabelThisGroupNotComposite = This group is not a composite owner
# If this group is not a composite owner
groupLabelThisGroupNotCompositeFactor = This group is not a direct composite factor of any other groups
# composite strings for the various types of composites
groupLabelCompositeUnion = ${grouperRequestContainer.groupContainer.compositeOwnerGuiGroup.shortLinkWithIcon} is a composite union of ${grouperRequestContainer.groupContainer.compositeLeftFactorGuiGroup.shortLinkWithIcon} and ${grouperRequestContainer.groupContainer.compositeRightFactorGuiGroup.shortLinkWithIcon}
groupLabelCompositeIntersection = ${grouperRequestContainer.groupContainer.compositeOwnerGuiGroup.shortLinkWithIcon} is a composite intersection of ${grouperRequestContainer.groupContainer.compositeLeftFactorGuiGroup.shortLinkWithIcon} and ${grouperRequestContainer.groupContainer.compositeRightFactorGuiGroup.shortLinkWithIcon}
groupLabelCompositeMinus = ${grouperRequestContainer.groupContainer.compositeOwnerGuiGroup.shortLinkWithIcon} is a composite of ${grouperRequestContainer.groupContainer.compositeLeftFactorGuiGroup.shortLinkWithIcon} minus ${grouperRequestContainer.groupContainer.compositeRightFactorGuiGroup.shortLinkWithIcon}
# in the main panel this will show composites
groupLabelCompositeOwnerMainPanel = Note: this group is a composite owner:
groupLabelCompositeFactorMainPanel = Note: this group is a composite factor:
# if you dont not have privileges to view the composite group information
groupLabelNotAllowedToViewAllGroups = You are not allowed to VIEW all the groups in the composite
# if you dont not have privileges to view the composite group information for one owner of this factor
groupLabelNotAllowedToViewOwner = Cannot VIEW group
# entity type of the group
groupLabelEntityType = Entity type:
# type of group
groupLabelTypeOfGroup = Type of group:
# label about checkbox on form to match id
groupLabelExactIdMatch = Exact ID match
# search for entity button on group screen
groupSearchForEntityButton = Search for an entity
# search for an entity placeholder
groupSearchForEntityPlaceholder = Search for an entity
# group search button
groupSearchButton = Search
# group search results column name for entity
groupSearchResultsColumnName = Entity Name
# search search member or id
groupSearchMemberOrId = Member name or ID:
# close button on group search screen
groupSearchCloseButton = Close
# text before the combo link
groupSearchLabelPreComboLink = Enter an entity name or ID, or
# text to search for an entity
groupSearchForEntityLink = search for an entity.
# label when membership
groupMembershipAssignType_IMMEDIATE = Direct
# label when membership
groupMembershipAssignType_EFFECTIVE = Indirect
# label when membership
groupMembershipAssignType_IMMEDIATE_AND_EFFECTIVE = Direct, Indirect
# label on groups screen of members tab
groupMembersTab = Members
groupPageTitle = Group
stemPageTitle = Folder
stemPrivilegesPageTitle = Folder privileges
stemInheritedPrivilegesPageTitle = Folder privileges
groupMembershipsInFolderPageTitle = Group memberships in folder
groupPrivilegesPageTitle = Group privileges
groupGroupPrivilegesPageTitle = Group privileges
groupStemPrivilegesPageTitle = Group privileges
groupAttributeDefPrivilegesPageTitle = Group privileges
groupPrivilegesInheritedFromFoldersPageTitle = Group privileges
groupPrivilegesAssignedToMembersOfThisGroupPageTitle = Group privileges
groupMembershipsPageTitle = Group memberships
groupCopyPageTitle = Group copy
stemCopyPageTitle = Folder copy
groupEditPageTitle = Group edit
stemEditPageTitle = Folder edit
groupVisualizationPageTitle = Group visualization
stemVisualizationPageTitle = Folder visualization
groupEditCompositePageTitle = Group edit composite
groupExportPageTitle = Group export
groupImportPageTitle = Group import
newAttributeDefPageTitle = New attribute def
newAttributeDefNamePageTitle = New attribute def name
newStemPageTitle = New folder
newGroupPageTitle = New group
newLocalEntityPageTitle = New local entity
groupAttestationPageTitle = Group attestation
stemAttestationPageTitle = Folder attestation
groupAuditsPageTitle = Group audits
stemAuditsPageTitle = Folder audits
groupMovePageTitle = Group move
stemMovePageTitle = Folder move
groupTemplatePageTitle = Group template
stemTemplatePageTitle = Folder template
groupAttributeAssignmentsPageTitle = Group attribute assignments
stemAttributeAssignmentsPageTitle = Folder attribute assignments
groupDeprovisioningReportPageTitle = Group deprovisioning report
stemDeprovisioningReportPageTitle = Folder deprovisioning report
groupFormsPageTitle = Group forms
groupObjectTypesPageTitle = Group object types
stemObjectTypesPageTitle = Folder object types
groupProvisioningPageTitle = Group provisioning
stemProvisioningPageTitle = Folder provisioning
groupRemoveAllMembersPageTitle = Group remove members
groupDeletePageTitle = Group delete
stemDeletePageTitle = Folder delete
groupReportConfigPageTitle = Group report config
stemReportConfigPageTitle = Folder report config
groupLoaderPageTitle = Group loader
myGroupsPageTitle = My groups
myStemsPageTitle = My folders
myFavoritesPageTitle = My favorites
gshTemplateConfigsPageTitle = Gsh templates
customUiConfigsPageTitle = Custom UI
unresolvableSubjectsPageTitle = Unresolvable subjects
sqlSyncConfigurationsPageTitle = Sql sync
viewSubjectPageTitle = Subject
externalSystemsPageTitle = External systems
scriptTesterScreenPageTitle = Jexl script tester
subjectSourcesPageTitle = Subject sources
subjectProvisioningPageTitle = Subject provisioning
subjectVisualizationPageTitle = Subject visualization
groupPrivilegesPageTitle = Group privileges
subjectViewAuditsPageTitle = View audits
stemPrivilegesPageTitle = Folder privileges
inheritedPrivilegesPageTitle = Inherited privileges
subjectPermissionPageTitle = Subject permissions
attributePrivilegesPageTitle = Attribute privileges
grouperHomePageTitle =
globalAttributeResolverConfigsPageTitle = Global entity resolvers
loaderJobsPageTitle = Loader jobs
adminDaemonJobsPageTitle = Daemon jobs
adminDaemonJobPageTitle = Daemon job
globalInheritedPrivilegesPageTitle = Global inherited privileges
workflowFormsPageTitle = Workflow forms
configurationFilesPageTitle = Configuration files
instrumentationPageTitle = Instrumentation
deprovisioningPageTitle = Deprovisioning
authenticationPageTitle = Authentication
myServicesPageTitle = My services
provisionerConfigsPageTitle = Provisioners
myActivityPageTitle = My activity
attestationPageTitle = Attestation
viewAttributeDefPageTitle = View attribute def
viewAttributeDefNamePageTitle = View attribute def name
groupMembershipAttributeAssignmentsPageTitle = Group membership attribute assignments
groupPermissionPageTitle = Group permission
# label on groups screen of members tab
localEntityViewTab = View
# label on groups screen of privileges tab
groupPrivilegesTab = Privileges
# label on filter on group screen
groupFilterFor = Filter for:
# filter for description
groupFilterForDescription = Whether to filter for all members, direct members only, or indirect members only
# placeholder in text box for filtering member name
groupFilterFormPlaceholder = Member name
# member name field description
groupFilterMemberNameDescription = Filter by member name
# apply filter button on group screen
groupApplyFilterButton = Apply filter
# reset button on filter of group screen
groupResetButton = Reset
#button hides advanced filtering
groupAdvancedButton = Advanced
# all option for groups
groupFilterAllGroups = All groups
# all option for stems
groupFilterAllStems = All folders
# all option for attributeDefs
groupFilterAllAttributeDefs = All attributes
# all option on select
groupFilterAllAssignments = All members
# direct option on select
groupFilterDirectAssignments = Has direct membership
# indirect option on select
groupFilterIndirectAssignments = Has indirect membership
# pit options
groupFilterPITOptions = Point in time audit:
# pit options description
groupFilterPITOptionsDescription = By default, only current memberships are shown. You can choose to show historical memberships based on audit data.
# custom composite options
groupFilterCustomCompositeOptions = Group filter:
# custom composite options description
groupFilterCustomCompositeOptionsDescription = Whether to filter using the memberships of another group. To add group filters, contact your administrator.
# don't use pit data
groupFilterPITNo = No, show current memberships only
# use pit data
groupFilterPITYes = Yes, show audit memberships
# pit from date
groupFilterPITFromDate = Search from date:
# pit from date description
groupFilterPITFromDateDescription = Search for historical memberships that existed after this date
# pit end date
groupFilterPITToDate = Search to date:
# pit end date
groupFilterPITToDateDescription = Search for historical memberships that existed before this date
# enabled/disabled options
groupFilterEnabledDisabledOptions = Enabled / disabled:
# enabled/disabled options description
groupFilterEnabledDisabledOptionsDescription = By default, only memberships that are currently active are shown. To view all memberships including disabled memberships due to enabled/disabled dates, select the "Enabled / disabled status" option.
# show enabled/disabled status
groupFilterEnabledDisabledOptionsStatus = Enabled / disabled status
# show members with disabled dates
groupFilterEnabledDisabledOptionsDisabledDates = Members with disabled dates
# show members with enabled dates
groupFilterEnabledDisabledOptionsEnabledDates = Members with enabled dates
# status enabled
groupFilterStatusEnabled = Enabled
# status disabled
groupFilterStatusDisabled = Disabled
# privilege revoked
groupSuccessRevokedPrivilege = Success: privilege revoked
# privilege granted
groupSuccessGrantedPrivilege = Success: privilege granted
#success message for assigned privileges
groupSuccessGrantedPrivileges = Success: privileges granted
#success message for assigned privileges
groupSuccessRevokedPrivileges = Success: privileges revoked
#note, no immediate privilegs to assign
groupNoteNoGrantedPrivileges = Note: no immediate privileges to grant
#note, no immediate privileges to revoke
groupNoteNoRevokedPrivileges = Note: no immediate privileges to revoke
#error need to select an entity
groupErrorEntityRequired = Error: you must select at least one entity
#group privileges descript at top of tab
groupPrivilegesDecription = The following table lists all entities with privileges on this group.
#local entity privileges descript at top of tab
localEntityPrivilegesDecription = The following table lists all entities with privileges on this local entity.
# group privileges tab filter for label
groupPrivilegeFilterFor = Filter for:
# dropdown for privileges filter, everyone
groupPrivilegesFilterEveryone = Any privilege
# dropdown for privileges filter, people with admin
groupPrivilegesFilterAdmins = Entities with $$priv.adminUpper$$
# dropdown for privileges filter, people with optin
groupPrivilegesFilterOptins = Entities with $$priv.optinUpper$$
# dropdown for privileges filter, people with update
groupPrivilegesFilterUpdaters = Entities with $$priv.updateUpper$$
# dropdown for privileges filter, people with read
groupPrivilegesFilterReaders = Entities with $$priv.readUpper$$
# dropdown for privileges filter, people with view
groupPrivilegesFilterViewers = Entities with $$priv.viewUpper$$
# dropdown for privileges filter, people with optout
groupPrivilegesFilterOptouts = Entities with $$priv.optoutUpper$$
# dropdown for privileges filter, people with attr read
groupPrivilegesFilterAttrReaders = Entities with $$priv.groupAttrReadUpper$$
# dropdown for privileges filter, people with attr read
groupPrivilegesFilterAttrUpdaters = Entities with $$priv.groupAttrUpdateUpper$$
# dropdown for assignment type
groupPrivilegesFilterAllAssignments = All entities
# dropdown for assignment type, has direct assignments
groupPrivilegesFilterDirectAssignments = Has direct assignments
# dropdown for assignment type, has indirect assignments
groupPrivilegesFilterIndirectAssignments = Has indirect assignments
# dropdown for what to bulk assign
groupPrivilegesAssignAdminPrivilege = Assign the $$priv.adminUpper$$ privilege
groupPrivilegesAssignUpdatePrivilege = Assign the $$priv.updateUpper$$ privilege
groupPrivilegesAssignReadUpdatePrivilege = Assign the $$priv.readUpper$$/$$priv.updateUpper$$ privilege
groupPrivilegesAssignReadPrivilege = Assign the $$priv.readUpper$$ privilege
groupPrivilegesAssignViewPrivilege = Assign the $$priv.viewUpper$$ privilege
groupPrivilegesAssignGroupAttributeReadPrivilege = Assign the $$priv.groupAttrReadUpper$$ privilege
groupPrivilegesAssignGroupAttributeUpdatePrivilege = Assign the $$priv.groupAttrUpdateUpper$$ privilege
groupPrivilegesAssignOptinPrivilege = Assign the $$priv.optinUpper$$ privilege
groupPrivilegesAssignOptoutPrivilege = Assign the $$priv.optoutUpper$$ privilege
groupPrivilegesAssignAllPrivilege = Assign ALL privileges
groupPrivilegesRevokeAdminPrivilege = Revoke the $$priv.adminUpper$$ privilege
groupPrivilegesRevokeUpdatePrivilege = Revoke the $$priv.updateUpper$$ privilege
groupPrivilegesRevokeReadUpdatePrivilege = Revoke the $$priv.readUpper$$/$$priv.updateUpper$$ privilege
groupPrivilegesRevokeReadPrivilege = Revoke the $$priv.readUpper$$ privilege
groupPrivilegesRevokeViewPrivilege = Revoke the $$priv.viewUpper$$ privilege
groupPrivilegesRevokeGroupAttributeReadPrivilege = Revoke the $$priv.groupAttrReadUpper$$ privilege
groupPrivilegesRevokeGroupAttributeUpdatePrivilege = Revoke the $$priv.groupAttrUpdateUpper$$ privilege
groupPrivilegesRevokeOptinPrivilege = Revoke the $$priv.optinUpper$$ privilege
groupPrivilegesRevokeOptoutPrivilege = Revoke the $$priv.optoutUpper$$ privilege
groupPrivilegesRevokeAllPrivilege = Revoke ALL privileges
groupPrivilegesAssignStemAdminPrivilege = Assign the $$priv.stemAdminUpper$$ privilege
groupPrivilegesAssignCreatePrivilege = Assign the $$priv.createUpper$$ privilege
groupPrivilegesAssignStemAttributeReadPrivilege = Assign the $$priv.stemAttrReadUpper$$ privilege
groupPrivilegesAssignStemAttributeUpdatePrivilege = Assign the $$priv.stemAttrUpdateUpper$$ privilege
groupPrivilegesAssignStemViewPrivilege = Assign the $$priv.stemViewUpper$$ privilege
groupPrivilegesAssignAllStemPrivilege = Assign ALL privileges
groupPrivilegesRevokeStemAdminPrivilege = Revoke the $$priv.stemAdminUpper$$ privilege
groupPrivilegesRevokeCreatePrivilege = Revoke the $$priv.createUpper$$ privilege
groupPrivilegesRevokeStemAttributeReadPrivilege = Revoke the $$priv.stemAttrReadUpper$$ privilege
groupPrivilegesRevokeStemAttributeUpdatePrivilege = Revoke the $$priv.stemAttrUpdateUpper$$ privilege
groupPrivilegesRevokeStemViewPrivilege = Revoke the $$priv.stemViewUpper$$ privilege
groupPrivilegesRevokeAllStemPrivilege = Revoke ALL privileges
groupPrivilegesAssignAttrAdminPrivilege = Assign the $$priv.adminUpper$$ privilege
groupPrivilegesAssignAttrUpdatePrivilege = Assign the $$priv.updateUpper$$ privilege
groupPrivilegesAssignAttrReadUpdatePrivilege = Assign the $$priv.readUpper$$/$$priv.updateUpper$$ privilege
groupPrivilegesAssignAttrReadPrivilege = Assign the $$priv.readUpper$$ privilege
groupPrivilegesAssignAttrViewPrivilege = Assign the $$priv.viewUpper$$ privilege
groupPrivilegesAssignAttrDefAttributeReadPrivilege = Assign the $$priv.groupAttrReadUpper$$ privilege
groupPrivilegesAssignAttrDefAttributeUpdatePrivilege = Assign the $$priv.groupAttrUpdateUpper$$ privilege
groupPrivilegesAssignAttrOptinPrivilege = Assign the $$priv.optinUpper$$ privilege
groupPrivilegesAssignAttrOptoutPrivilege = Assign the $$priv.optoutUpper$$ privilege
groupPrivilegesAssignAttrAllPrivilege = Assign ALL privileges
groupPrivilegesRevokeAttrAdminPrivilege = Revoke the $$priv.adminUpper$$ privilege
groupPrivilegesRevokeAttrUpdatePrivilege = Revoke the $$priv.updateUpper$$ privilege
groupPrivilegesRevokeAttrReadUpdatePrivilege = Revoke the $$priv.readUpper$$/$$priv.updateUpper$$ privilege
groupPrivilegesRevokeAttrReadPrivilege = Revoke the $$priv.readUpper$$ privilege
groupPrivilegesRevokeAttrViewPrivilege = Revoke the $$priv.viewUpper$$ privilege
groupPrivilegesRevokeAttrDefAttributeReadPrivilege = Revoke the $$priv.groupAttrReadUpper$$ privilege
groupPrivilegesRevokeAttrDefAttributeUpdatePrivilege = Revoke the $$priv.groupAttrUpdateUpper$$ privilege
groupPrivilegesRevokeAttrOptinPrivilege = Revoke the $$priv.optinUpper$$ privilege
groupPrivilegesRevokeAttrOptoutPrivilege = Revoke the $$priv.optoutUpper$$ privilege
groupPrivilegesRevokeAttrAllPrivilege = Revoke ALL privileges
# actions button on privileges screen
groupPrivilegesActions = Actions
# button to update selected items on privileges page
groupPrivilegesUpdateSelected = Update selected
# title on button to remove this privilege
groupPrivilegesTitleRemoveThisPrivilege = Remove this privilege
# title on button to assign this privilege
groupPrivilegesTitleAssignThisPrivilege = Assign this privilege
# label for update bulk privileges
groupPrivilegesUpdateBulkLabel = Update:
# label for update bulk privileges
stemPrivilegesUpdateBulkLabel = Update:
# button to update selected
stemUpdateSelectedPrivilegesButton = Update selected
# actions link on stem privileges page
stemPrivilegeActions = Actions
#confirm the user to make changes to privileges on this group
groupConfirmChanges = Are you sure you want to change privileges for this group?
#confirm the user to make changes to privileges on this entity
entityConfirmChanges = Are you sure you want to change privileges for this entity?
# placeholder for privilege filter textfield
groupFilterPrivilegeFormPlaceholder = Entity name
# if there are not more than two chars
groupAddMemberNotEnoughChars = Enter at least two characters
#if no privileges are selected
groupAddMemberPrivRequired = Select at least one privilege
# if no subjects found
groupAddMemberNoSubjectsFound = No entities found
# if not enough chars in the combo
comboNotEnoughChars = Enter 2 or more characters for searching...
# group was added to my favorites
groupSuccessAddedToMyFavorites = Group was added to favorites
# group was removed from my favorites
groupSuccessRemovedFromMyFavorites = Group was removed from favorites
# local entity was added to my favorites
localEntitySuccessAddedToMyFavorites = Local entity was added to favorites
# local entity was removed from my favorites
localEntitySuccessRemovedFromMyFavorites = Local entity was removed from favorites
# cant find the subject
groupAddMemberCantFindSubject = Select an entity from the search results
# if the subject was successfully added to the group
groupAddMemberMadeChangesSuccess = Success: entity was added to group
# if the subject was successfully added to the group but changes may be propagating
groupAddMemberMadeChangesSuccessButPropagating = Success: entity was added to group but may take a few moments to propagate to composite groups
# if the subject was successfully added to the local entity
localEntityAddMemberMadeChangesSuccess = Success: entity was added to the privilege for the local entity
# if no changes were made to memberships / privileges
groupAddMemberNoChangesSuccess = Note: entity was already a member of the group
# if no changes were made to memberships / privileges
localEntityAddMemberNoChangesSuccess = Note: entity already had the privileges on the local entity
# if member not found, not sure why this would happen
groupDeleteMemberCantFindMember = Error: cannot find entity to remove
# if remove this group from owner, and cant find owner
groupDeleteMemberCantFindOwnerGroup = Error: cannot find owner group
# if no changes were made on a remove
groupDeleteMemberNoChangesSuccess = Note: entity was already not a member of the group
# if subject was removed
groupDeleteMemberSuccess = Success: entity was removed from the group
# if subject was removed but changes may be propagating
groupDeleteMemberSuccessButPropagating = Success: entity was removed from the group but may take a few moments to propagate to composite groups
# if the group was removed
groupDeleteFromOwnerSuccess = Success: group was removed from the group
# if the groups had problems
groupDeleteFromOwnerErrors = Error: group has errors being removed from ${grouperRequestContainer.groupContainer.failureCount} groups, and was successfully removed from ${grouperRequestContainer.groupContainer.successCount} groups
# if the group was removed
groupDeleteFromOwnerSuccesses = Success: group was removed from ${grouperRequestContainer.groupContainer.successCount} groups
# if the members being deleted had problems
groupDeleteMembersErrors = Error: group has errors removing ${grouperRequestContainer.groupContainer.failureCount} members, and successfully removed ${grouperRequestContainer.groupContainer.successCount} members
# success removing members
groupDeleteMembersSuccesses = Success: removed ${grouperRequestContainer.groupContainer.successCount} members
# success removing members but changes may be propagating
groupDeleteMembersSuccessesButPropagating = Success: removed ${grouperRequestContainer.groupContainer.successCount} members but may take a few moments to propagate to composite groups
# if the members being deleted had problems
groupDeleteMembersFromFolderErrors = Error: there were errors removing ${grouperRequestContainer.stemContainer.failureCount} members, and successfully removed ${grouperRequestContainer.stemContainer.successCount} members
# success removing members
groupDeleteMembersFromFolderSuccesses = Success: removed ${grouperRequestContainer.stemContainer.successCount} members
# if the group was not removed (no change)
groupDeleteFromOwnerNoChangesSuccess = Note: group was already not a member of the group
# button to remove selected members from the group
groupRemoveSelectedMembersButton = Remove selected members
# if they didnt select members
groupMembershipsRemoveNoSubjectSelects = Error: select at least one member
# assign these privileges label on view group
groupViewAssignThesePrivileges = Assign these privileges:
# start date on view group
groupViewStartDate = Start date:
# end date on view group
groupViewEndDate = End date:
# start date subtext on view group
groupViewStartDateSubtext = The optional date on which this entity's membership begins. Expected timezone is ${grouperUtil.getFriendlyTimezoneStringForInputDescription()}.
# end date subtext on view group
groupViewEndDateSubtext = The optional date on which this entity's membership expires. Expected timezone is ${grouperUtil.getFriendlyTimezoneStringForInputDescription()}.
# group view, start date invalid
groupViewFromDateInvalid = 'Start date' is invalid. Enter: yyyy/mm/dd hh:mi am/pm (12-hour clock)
# group view, end date invalid
groupViewToDateInvalid = 'End date' is invalid. Enter: yyyy/mm/dd hh:mi am/pm (12-hour clock)
# group view, end date should be after start date
groupViewToDateAfterFromDateError = 'End date' should be after 'Start date'
# group view, start/end date used with privilege
groupAddMemberPrivStartEndDateError = Start date and end date can only be set for the default member privilege
# Add link in text of group view screen
groupViewAddMemberLink = Add
# or text between add button and bulk
groupViewTextBetweenAddAndBulk = or
# join group success
groupJoinSuccess = Success: you have joined this group
# leave group success
groupLeaveSuccess = Success: you have left this group
# link for import a list of members
groupViewBulkLink = import a list of members
# text after the bulk link
groupViewTextPostBulkLink = .
# if default privileges should be assigned
groupViewDefaultPrivileges = Default privileges
# if custom privileges should be assigned
groupViewCustomPrivileges = Custom privileges
# delete group button text
groupViewDeleteGroupButton = Delete group
# delete local entity button text
localEntityViewDeleteLocalEntityButton = Delete local entity
# group view join group button
groupViewJoinGroupButton = Join group
# group view leave group button
groupViewLeaveGroupButton = Leave group
# edit group button text
groupViewEditGroupButton = Edit group
# edit group button text
localEntityViewEditLocalEntityButton = Edit local entity
localEntityWsJwtKeyLocalEntityButton = WS JWT key
# edit role inheritance button text
roleViewEditInheritanceButton = Edit inheritance
# edit group composite button text
groupViewEditGroupCompositeButton = Edit composite
# copy group button text
groupViewCopyGroupButton = Copy group
# move group button text
groupViewMoveGroupButton = Move group
# copy group button text
localEntityViewCopyLocalEntityButton = Copy local entity
# move group button text
localEntityViewMoveLocalEntityButton = Move local entity
# edit memberships and privileges
groupViewEditMembershipsAndPrivilegesButton = Edit membership and privileges
# membership attribute assignments
groupViewMembershipAttributeAssignments = Attribute assignments
# view attribute assignments
groupViewMembershipsViewAttributeAssignmentsButton = Attribute assignments
# trace membership button
groupViewTraceMembershipButton = Trace membership
# revoke membership
groupViewRevokeMembershipButton = Revoke membership
# view group
groupViewViewGroupButton = View group
# actions button
groupViewActionsButton = Actions
# more action buttons on group screen
groupViewMoreActionsButton = Group actions
# more action buttons on subject screen
subjectViewMoreActionsButton = Entity actions
#text on the "more" tab
groupMoreTab = More
# description for members tab
groupViewMembersDescription = The following table lists all entities which are members of this group.
# if cannot READ group
groupViewMembersCantReadDescription = You do not have the READ privilege on this group so you cannot see its members.
# trace the privileges for this subject and owner
groupViewTracePrivilegeButton = Trace privileges
# group view details headers
groupViewDetailsHeaderFolderName = Folder name
groupViewDetailsHeaderGroupName = Group name
groupViewDetailsHeaderEntityName = Entity name
groupViewDetailsHeaderMembership = Membership
groupViewDetailsHeaderStatus = Status
groupViewDetailsHeaderEnabledDate = Enabled date
groupViewDetailsHeaderDisabledDate = Disabled date
groupViewDetailsHeaderPITStartDate = Start date
groupViewDetailsHeaderPITEndDate = End date
groupViewDetailsHeaderChooseAction = Choose action
# choose action header: shared between many screens
headerChooseAction = Choose action
# group view membership checkbox aria-label
groupViewDetailsMembershipCheckboxAriaLabel = Select this member for removal
# group view privileges checkbox aria-label
groupViewDetailsPrivilegesCheckboxAriaLabel = Select this entity to update
# group privileges in attribute defs checkbox aria-label
groupPrivilegesInAttributeDefCheckboxAriaLabel = Select this attribute definition to update
# group privileges in other groups checkbox aria-label
groupPrivilegesInOtherGropusCheckboxAriaLabel = Select this group to update the privileges
# group memberships in other groups checkbox aria-label
groupMembershipsInOtherGropusCheckboxAriaLabel = Select this to remove group from selected groups
# group privileges in folders checkbox aria-label
groupPrivilegesInOtherFoldersCheckboxAriaLabel = Select this folder to update the privileges
# stem privileges checkbox aria-label
stemPrivilegesCheckboxAriaLabel = Select this entity to update the privileges
# subject privileges in attribute defs checkbox aria-label
subjectPrivilegesInAttributeDefCheckboxAriaLabel = Select this attribute definition to update
# subject privileges in folders checkbox aria-label
subjectPrivilegesInFolderCheckboxAriaLabel = Select this folder to update the privileges
# subject privileges in groups checkbox aria-label
subjectPrivilegesInGroupCheckboxAriaLabel = Select this group to update the privileges
# attribute def checkbox
attributeDefDetailsCheckboxAriaLabel = Select this attribute definition for removal
# attribute def privilege checkbox
attributeDefPrivilegesCheckboxAriaLabel = Select this entity to update
# attribute assignment title
groupAttributeAssignmentsTitle = Attribute assignments
# group membership attribute assignment title
groupMembershipAttributeAssignmentsTitle = Membership attribute assignments
# attribute assignments description
groupAttributeAssignmentsDescription = The following table lists all attributes assigned to this group
# group membership attribute assignments description
groupMembershipAttributeAssignmentsDescription = The following table lists all membership attributes assigned to this group
# attribute def label on assign attribute screen
groupAssignAttributeAttributeDefLabel = Attribute definition:
# description text for attribute def
groupAssignAttributeAttributeDefDescription = The definition part of the attribute holds the settings, security, metadata. Generally attribute definitions have multiple attribute names.
# attribute name label
groupAssignAttributeAttributeDefNameLabel = Attribute name:
# attribute name description
groupAssignAttributeAttributeDefNameDescription = The attribute name is the part of the attribute which is assigned to owner objects. Generally multiple attribute names are related to one attribute definition.
# group assign attribute
groupAssignAttributeButton = Assign attribute
# group choose action column
groupViewAttributeAssignmentsColumnAction = Choose action
# attribute def is required
groupAssignAttributeDefRequired = Error: valid attribute def is required
# attribute def name is required
groupAssignAttributeAttributeDefNameRequired = Error: valid attribute def name is required
# enabled date/start date is not valid
groupAssignAttributeAttributeStartDateNotValid = Error: start date is not valid.
# disabled date/end date is not valid.
groupAssignAttributeAttributeEndDateNotValid = Error: end date is not valid.
# can't assign attribute because not multi-assignable
groupAssignAttributeNotMultiAssignableError = Error: the attribute is already assigned, and is not multi-assignable
# error assigning attribute to group
groupAssignAttributeError = Error: could not assign attribute
# success assigning attribute to group
groupAssignAttributeSuccess = Success: assigned attribute to group
# text to show on the view group attribute assignment screen when there are no attributes assigned
groupViewAttributeAssignsNoAssignedAttributes = No attributes assigned
########################################
## Group import
########################################
# menu button on group screen to import members
groupImportMenuButton = Import members
# breadcrumb at top of import members screen
groupImportMembersBreadcrumb = Import members
# title of import members screen
groupImportTitle = Add or remove members
# label add members to group
groupImportAddMembersToGroupLabel = Group:
# label add members to group in menu
groupImportAddMembersToGroupMenuLink = Add members to group
# if no group found
groupImportGroupNotFound = Select a group from the search results
# if not file was uploaded
groupImportUploadFile = Upload a file of member IDs
# if no group found
groupImportSubjectNotFound = Select an entity from the search results
# placeholder for name of group combobox
groupImportNameOfGroupPlaceholder = Enter the name of a group
# text below group combo
groupImportGroupLabelPreComboLink = Enter a group name or ID, or
# link to do a search instead of combobox
groupImportGroupSearchLink = search for a group.
# text below subject combo
groupImportSubjectLabelPreComboLink = Enter an entity name or ID, or
# link to do a search instead of combobox
groupImportSubjectSearchLink = search for an entity.
# button to add another group
groupImportAddAnotherGroupButton = Add another group
# validate the entities entered in the textarea
groupImportValidateButton = Validate entities
# if no entity ids or identifiers were specified
groupImportNoEntitiesSpecified = Enter entity ids or identifiers
# too many entities to validate from textarea
groupImportTooManyEntitiesToValidate = Too many entities to validate, you can still submit your import
# when validating subject ids, this is the message when some are not found
groupImportEntityIdsNotFound = Error: entity ids or identifiers not found: ${grouperUtil.xmlEscape(grouperRequestContainer.groupImportContainer.entityIdsNotFound)}
# modal label to search for a group
groupImportSearchForGroupButton = Search for a group
# placeholder on textfield
groupImportSearchGroupPlaceholder = Search for a group
# search button on modal screen
groupImportSearchButton = Search
# if not enough chars in modal screen
groupImportAddToGroupNotEnoughChars = Enter at least two characters
# if no results found
groupImportAddGroupNotFound = No groups found matching your criteria that you have the UPDATE or ADMIN privilege on
# description of the results for searching for a group to add the entity to
groupImportResultsDescription = The table below lists groups in which you are allowed to manage memberships (you have the UPDATE or ADMIN privilege).
# column header for the stem the object is in
groupImportResultsColumnHeaderStem = Folder
# column header for the group of the object
groupImportResultsColumnHeaderGroupName = Group name
# group import how to add members
groupImportHowAdd = How to specify members?
# group import, import a file
groupImportImportFile = Import a file
# group import, choice for search for members
groupImportSearchForMembersToAdd = Search for members
# group import, copy list of member ids
groupImportCopyListOfIds = Copy/paste a list of member IDs
# group import, start date invalid
groupImportFromDateInvalid = 'Start date' is invalid. Enter: yyyy/mm/dd hh:mi am/pm (12-hour clock)
# group import, end date invalid
groupImportToDateInvalid = 'End date' is invalid. Enter: yyyy/mm/dd hh:mi am/pm (12-hour clock)
# group import, end date should be after start date
groupImportToDateAfterFromDateError = 'End date' should be after 'Start date'
# group import, start date
groupImportStartDate = Start date:
# group import, start date sub text
groupImportStartDateSubtext = The optional date on which these memberships begin. Expected timezone is ${grouperUtil.getFriendlyTimezoneStringForInputDescription()}.
# group import, end date
groupImportEndDate = End date:
# group import, end date sub text
groupImportEndDateSubtext = The optional date on which these memberships expire. Expected timezone is ${grouperUtil.getFriendlyTimezoneStringForInputDescription()}.
# group import, select a file
groupImportSelectFileToImport = Select a file to import:
# description for select file option
groupImportSelectFileDescription = Your import file must be one of the following:
1) A text file with the first line labeled 'entityIdOrIdentifier', followed by each member's entityIdOrIdentifier on a separate line.
entityIdOrIdentifier
jsmith123
12345678
tjones123
some:path:to:group:idPath
-or-
2) A CSV file (comma seperated values) with one column titled sourceId and a second column which includes the entityIdOrIdentifier, entityId, or entityIdentifier for each member.
sourceId,entityIdOrIdentifier
someSourceId,jsmith123
someSourceId,12345678
g:gsa,some:path:to:group:idPath
g:gsa,123abc456def789abc
sourceId,entityId
someSourceId,12345678
someSourceId,23456789
g:gsa,12ab456bcb45db5b4b3db231
sourceId,entityIdentifier
someSourceId,jsmith123
someSourceId,tjones123
g:gsa,some:path:to:group:idPath
The value for sourceId must be one of the following:
# source ID col
groupImportSourceId = Source ID
# source name col
groupImportSourceName = Source name
# label for radio button to replace existing members
groupImportReplaceExistingMembers = Replace existing members (group members not in uploaded list will be removed)
# label for radio button to remove existing members
groupImportRemoveMembers = Remove members (all uploaded entities will be removed from the group)
groupImportDoNotModifyExistingMembers = Add members
# error if replace and remove was checked
groupImportCantReplaceAndRemove = Error: cannot replace and remove members
# button to submit form
groupImportAddMembersButton = Submit
# button to cancel form
groupImportCancelButton = Cancel
# label to enter member name or id
groupImportEnterMemberNameOrId = Member name or ID:
# add another member button
groupImportAddAnotherMemberButton = Add another member
# enter a list of member ids
groupImportEnterListOfMemberIds = Enter member IDs
# if there is a group that cannot be viewed
groupImportGroupCantView = Error: there is at least one group that you cannot view
# if you cannot update
groupImportGroupCantUpdate = Error: you do not have the UPDATE privileges on this group
# report lines
groupImportReportSummary = Before importing, the membership count was ${grouperRequestContainer.groupImportContainer.groupImportGroupSummary.groupCountOriginal} and is now ${grouperRequestContainer.groupImportContainer.groupImportGroupSummary.groupCountNew}.
groupImportReportSuccess = You successfully added ${grouperRequestContainer.groupImportContainer.groupImportGroupSummary.groupCountAdded} members, updated ${grouperRequestContainer.groupImportContainer.groupImportGroupSummary.groupCountUpdated} members and deleted ${grouperRequestContainer.groupImportContainer.groupImportGroupSummary.groupCountDeleted} members.
groupImportReportErrorSummary = ${grouperRequestContainer.groupImportContainer.groupImportGroupSummary.groupCountErrors} members were not processed due to errors, as shown below.
groupImportReportNoReplaceError = Error did not remove members not in import list because the import list had errors, correct these and try again
groupImportReportErrorsTitle = Errors
groupImportReportErrorLine = Error on row ${grouperRequestContainer.groupImportContainer.errorRowNumber}. ${grouperRequestContainer.groupImportContainer.errorText}: "${grouperUtil.xmlEscape(grouperRequestContainer.groupImportContainer.errorSubject)}"
groupImportReportErrorLineNoRow = Error: ${grouperRequestContainer.groupImportContainer.errorText}: "${grouperUtil.xmlEscape(grouperRequestContainer.groupImportContainer.errorSubject)}"
# OK button on import report
groupImportReportOkButton = OK
# page summary on import report
groupImportReportPageSummary = Here are the results of your import into the following group(s):
# group import problem finding entity
groupImportProblemFindingSubjectError = Problem finding entity
########################################
## Group export
########################################
# group export button in action menu
groupExportMenuButton = Export members
# export group title of screen
groupExportTitle = Export members
# which data to export on group export screen
groupExportWhatData = What data would you like to export?
# only export entity ids
groupExportEntityIds = Only member IDs
# export all member data
groupExportAllMemberData = All member data
# export button
groupExportExportButton = Export
# return to group
groupExportReturnToGroupButton = Return to group
########################################
## Stem audit log
########################################
# description of audit log screen
stemAuditLogDescription = The audit log displays all recent activity related to this folder.
########################################
## Group audit log
########################################
# description of audit log screen
groupAuditLogDescription = The audit log displays all recent activity related to this group.
# label on group audit screen about filtering by date
groupAuditLogFilterByDate = Filter by date:
# label on group audit screen of filter types: on, before, between, since
groupAuditLogFilterType_all = all
groupAuditLogFilterType_on = on
groupAuditLogFilterType_before = before
groupAuditLogFilterType_between = between
groupAuditLogFilterType_since = since
# placeholder for audit log dates
groupAuditLogFilterDatePlaceholder = yyyy/mm/dd
# group audit and label between two date inputs
groupAuditLogFilterAndLabel = and
# label to show extended results
groupAuditLogFilterShowExtendedResults = Show extended results?
# group audit log filter find entries
groupAuditLogFilterFindEntriesButton = Find entries
# group audit log filter validations
groupAuditLogFilterFromDateRequired = 'First date' is a required field
groupAuditLogFilterToDateRequired = 'To date' is a required field
groupAuditLogFilterFromDateInvalid = 'First date' is invalid. Enter: yyyy/mm/dd
groupAuditLogFilterToDateInvalid = 'To date' is invalid. Enter: yyyy/mm/dd
groupAuditLogNoEntriesFound = No audits found
# group audit log table headers
groupAuditLogFilterColumnDate = Date
groupAuditLogFilterColumnActor = Actor
groupAuditLogFilterColumnEngine = Engine
groupAuditLogFilterColumnSummary = Summary
groupAuditLogFilterColumnDuration = Duration
groupAuditLogFilterColumnDurationMillis = ms
groupAuditLogFilterColumnDurationSeconds = s
groupAuditLogFilterColumnQueryCount = Query count
groupAuditLogFilterColumnUser = User
groupAuditLogFilterColumnServerUsername = Server username
groupAuditLogFilterColumnUserIpAddress = IP address
groupAuditLogFilterColumnServer = Server
groupAuditLogFilterColumnEntryId = Entry ID
groupAuditLogFilterColumnRawDescription = Raw description
# type of engines that perform actions
auditLogEngine_grouperShell = GSH command
auditLogEngine_grouperUI = Web user interface
auditLogEngine_grouperWS = Web service
auditLogEngine_grouperLoader = Loader job
auditLogEngine_grouperLdappc = LDAP sync job
auditLogEngine_grouperImport = Import job
auditLogEngine_grouperUsdu = USDU job
auditLogEngine_grouperJunit = Junit
########################################
## Group view more actions buttons
########################################
# group view more actions panel add members button
groupViewMoreActionsAddMembers = Add members
# remove from my favorites button
groupViewMoreActionsRemoveFromMyFavorites = Remove from my favorites
# add to my favorites button
groupViewMoreActionsAddToMyFavorites = Add to my favorites
# group view audit log button
groupViewAuditButton = Audit log
# view membership audit log
groupViewMembershipAuditButton = Audit log - memberships
# view action audit log
groupViewActionAuditButton = Audit log - actions
# view privilege audit log
groupViewPrivilegeAuditButton = Audit log - privileges
# group run loader process from system of record
groupRunLoaderProcessButton = Run loader process to sync group
# group schedule loader group
groupScheduleLoaderProcessButton = Schedule loader process
# group - view all loader managed groups
groupViewAllLoaderManagedGroups = View all loader managed groups
# go back to admin ui button
groupViewAdminUiButton = Admin UI
# permission button
groupViewPermissionsButton = Permissions
# attribute assignments button
groupAttributeAssignmentsButton = Attribute assignments
# membership attribute assignments button
groupAttributeMembershipAssignmentsButton = Attribute assignments on memberships
# electronic forms
groupWorkflowElectronicForms = Electronic forms
# quick links
groupViewMoreActionsQuickLinks = Quick links
# templates
groupViewMoreActionsTemplates = Templates
# manage
groupViewMoreActionsManage = Manage
# auditing
groupViewMoreActionsAuditing = Auditing
# administration
groupViewMoreActionsAdministration = Administration
# delete
groupViewMoreActionsDelete = Delete
########################################
## View this group's memberships
########################################
# tab with link for this groups memberships
thisGroupsMembershipsTab = This group's memberships in other groups
# tab with link for this groups memberships
thisLocalEntitiesMembershipsTab = This local entity's memberships in other groups
# description on this groups memberships screen
thisGroupsMembershipsDescription = The following table lists all groups in which this group is a member.
# description on this groups memberships screen
thisLocalEntitysMembershipsDescription = The following table lists all groups in which this local entity is a member.
# folder column on this groups memberships table
thisGroupsMembershipsFolderColumn = Folder
# group column on this groups memberships table
thisGroupsMembershipsGroupColumn = Group
# membership column on this groups memberships table
thisGroupsMembershipsMembershipColumn = Membership
# filter group name textfield placeholder
thisGroupsMembershipsFilterFormPlaceholder = Group name
# button to remove this group from selected groups
thisGroupsMembershipsRemoveFromSelectedGroups = Remove from selected groups
# if they didnt select groups
thisGroupsMembershipsRemoveNoGroupsSelects = Error: select at least one group
# you cannot view the group
groupImportFileGroupCantView = Error: you do not have the VIEW privileges on this group
# exception in import
groupImportException = Error: the import could not be completed
# exception in import
groupImportReportSubheadingComplete = The import is complete
# exception in import
groupImportReportSubheadingInProgress = The import is in progress (${grouperRequestContainer.groupImportContainer.progressBean.percentComplete}% done), please wait
# exception in import
groupImportReportSubheading = ${textContainer.text[grouperRequestContainer.groupImportContainer.progressBean.complete ? 'groupImportReportSubheadingComplete' : 'groupImportReportSubheadingInProgress']}
########################################
## View this group's privileges
########################################
# tab with link for this groups group privileges
thisGroupsGroupPrivilegesTab = This group's privileges in other groups
# tab with link for this groups group privileges
thisLocalEntitiesGroupPrivilegesTab = This local entity's privileges in other groups
# tab with link for this groups stem privileges
thisGroupsStemPrivilegesTab = This group's privileges in folders
# tab with link for this groups stem privileges
thisLocalEntitiesStemPrivilegesTab = This local entity's privileges in folders
# tab with link for this groups stem privileges
thisGroupsInheritedPrivilegesTab = This group's privileges inherited from folders
# update selected on this group privilege screens
thisGroupPrivilegeUpdateSelectedButton = Update selected
# tab with link for this groups attributeDef privileges
thisGroupsAttributeDefPrivilegesTab = This group's privileges in attribute definitions
# tab with link for this groups attributeDef privileges
thisLocalEntitiesAttributeDefPrivilegesTab = This local entity's privileges in attribute definitions
# description on this groups group privileges screen
thisGroupsGroupPrivilegesDescription = This group has privileges in the following groups
# description on this groups stem privileges screen
thisGroupsStemPrivilegesDescription = This group has privileges in the following folders
# description on this groups attribute definition privileges screen
thisGroupsAttributeDefPrivilegesDescription = This group has privileges in the following attribute definitions
# folder column on this groups privileges table
thisGroupsPrivilegesFolderColumn = Folder
# group column on this groups privileges table
thisGroupsPrivilegesGroupColumn = Group name
# error need to select a group
thisGroupsPrivilegesErrorGroupRequired = Error: you must select at least one group
# error need to select a stem
thisGroupsPrivilegesErrorStemRequired = Error: you must select at least one folder
# error need to select a attributeDef
thisGroupsPrivilegesErrorAttributeDefRequired = Error: you must select at least one attribute definition
# if the objects involve attribute definitions, this is the attribute definition where the privileges are
thisGroupsPrivilegesAttributeDefColumn = Attribute definition
# membership column on this groups privileges table
thisGroupsPrivilegesMembershipColumn = Privilege inheritance
# filter group name textfield placeholder
thisGroupsPrivilegesGroupFilterFormPlaceholder = Group name
# filter folder name textfield placeholder
thisGroupsPrivilegesStemFilterFormPlaceholder = Folder name
# filter attribute def name textfield placeholder
thisGroupsPrivilegesAttributeDefFilterFormPlaceholder = Attribute definition
# button to remove this group from selected groups
thisGroupsPrivilegesRemoveFromSelectedGroups = Remove selected privileges for this group
# if they didnt select groups
thisGroupsPrivilegesRemoveNoGroupsSelects = Error: select at least one group
# if they didnt select stems
thisGroupsPrivilegesRemoveNoStemsSelects = Error: select at least one folder
# if they didnt select stems
thisGroupsPrivilegesRemoveNoAttributeDefsSelects = Error: select at least one attribute definition
# dropdown of privileges on the screen that shows privileges this group has
thisGroupsPrivilegesPriv_admin = Groups with ADMIN privileges
thisGroupsPrivilegesPriv_update = Groups with UPDATE privileges
thisGroupsPrivilegesPriv_read = Groups with READ privileges
thisGroupsPrivilegesPriv_view = Groups with VIEW privileges
thisGroupsPrivilegesPriv_optin = Groups with OPTIN privileges
thisGroupsPrivilegesPriv_optout = Groups with OPTOUT privileges
thisGroupsPrivilegesPriv_groupAttrRead = Groups with ATTR_READ privileges
thisGroupsPrivilegesPriv_groupAttrUpdate = Groups with ATTR_UPDATE privileges
thisGroupsPrivilegesPriv_create = Folders with CREATE privileges
thisGroupsPrivilegesPriv_stemAdmin = Folders with ADMIN privileges
thisGroupsPrivilegesPriv_stemAttrRead = Folders with ATTR_READ privileges
thisGroupsPrivilegesPriv_stemAttrUpdate = Folders with ATTR_UPDATE privileges
thisGroupsPrivilegesPriv_attrAdmin = Attribute definitions with ADMIN privileges
thisGroupsPrivilegesPriv_attrUpdate = Attribute definitions with UPDATE privileges
thisGroupsPrivilegesPriv_attrRead = Attribute definitions with READ privileges
thisGroupsPrivilegesPriv_attrView = Attribute definitions with VIEW privileges
thisGroupsPrivilegesPriv_attrOptin = Attribute definitions with OPTIN privileges
thisGroupsPrivilegesPriv_attrOptout = Attribute definitions with OPTOUT privileges
thisGroupsPrivilegesPriv_attrDefAttrRead = Attribute definitions with ATTR_READ privileges
thisGroupsPrivilegesPriv_attrDefAttrUpdate = Attribute definitions with ATTR_UPDATE privileges
# folder column on this groups privileges table
thisGroupsPrivilegesStemColumn = Folder
# button next to rows which is the actions for that row
thisGroupsPrivilegesActionsButton = Actions
# menu for actions, edit memberships and privileges
thisGroupsPrivilegesActionsMenuEditMembershipsAndPrivileges = Edit membership & privileges
# menu for actions, trace privileges
thisGroupsPrivilegesActionsMenuTracePrivileges = Trace privileges
# menu for actions, view group
thisGroupsPrivilegesActionsMenuViewGroup = View group
# menu for actions, view stem
thisGroupsPrivilegesActionsMenuViewStem = View folder
# menu for actions, view attributeDef
thisGroupsPrivilegesActionsMenuViewAttributeDef = View attribute definition
# title on hover over a check mark to remove privilege
thisGroupsPrivilegesRemoveTitle = Remove this privilege
# title on hover over a blank or X to remove privilege
thisGroupsPrivilegesAssignTitle = Assign this privilege
########################################
## Edit group
########################################
# title of edit group screen
groupEditTitle = Edit group
# error creating the group
groupEditError = Error editing group
# changes saved for group
groupEditSuccess = Success: group was saved
# no changes were detected or saved for group
groupEditNoChangeNote = Note: no changes were made to the group
# no changes were detected or saved for local entity
localEntityEditNoChangeNote = Note: no changes were made to the local entity
# title of edit group screen
localEntityEditTitle = Edit local entity
# error creating the group
localEntityEditError = Error editing local entity
# changes saved for group
localEntityEditSuccess = Success: local entity was saved
########################################
## Edit group composite
########################################
# title of edit group composite screen
groupEditCompositeTitle = Edit group composite
# label for edit group for if it is a composite owner
groupEditComposite = Composite:
# label for radio composite has composite or not
groupEditCompositeYes = Yes
groupEditCompositeNo = No
# composite labels
groupCompositeLeftFactor = First factor group:
groupCompositeRightFactor = Second factor group:
# group composite edit save button
groupCompositeSaveButton = Save
# group composite edit cancel button
groupCompositeCancelButton = Cancel
# first factor text below the combobox
groupCompositeLeftFactorComboLabel = Enter a group name or ID, or search for the first factor.
# first factor group name
groupCompositeLeftFactorPlaceholder = First factor group name
# second factor text below the combobox
groupCompositeRightFactorComboLabel = Enter a group name or ID, or search for the second factor.
# second factor group name
groupCompositeRightFactorPlaceholder = Second factor group name
# search button
groupCompositeSearchButton = Search
# match exact group ID
groupCompositeSearchExactIdMatch = Match exact group ID
# close button for composite group search
groupCompositeSearchCloseButton = Close
# title of modal factor group search panel
groupCompositeLeftFactorSearchTitle = Search for first factor group
groupCompositeRightFactorSearchTitle = Search for second factor group
# if not enough chars when searching in modal dialog
groupCompositeNotEnoughChars = Enter at least two characters
# no group composite
groupCompositeSearchNoGroupsFound = No groups found that you can READ
# description of the results for searching for a group to assign the composite
groupCompositeSearchResultsDescription = The table below lists groups in which you are allowed to READ memberships.
# column header for the stem the object is in
groupCompositeSearchResultsColumnHeaderStem = Folder
# column header for the group of the object
groupCompositeSearchResultsColumnHeaderGroupName = Group name
# group composite operation label
groupCompositeOperationLabel = Operation:
# default option in composite operation drop down
groupCompositeOperationDefault = Select
# error if the group to make composite has members
groupCompositeErrorCannotHaveMembers = Error: this group cannot be a composite until it has no members. Remove all members and try again.
# help text under operation
groupCompositeOperationHelp = There are three composite operations: intersection, complement, and union.
Intersection means members of the overall group must be in both factor groups. Intersection is used for example when requiring members to be active employees.
Complement means members are in the first group but not in the second group. Complement is used for exclude lists.
Union is not needed, you can just add the groups as members of the overall group.
# if no changes detected
groupCompositeNoteNoChangesMade = Note: no changes were made
# success if removed composite
groupCompositeSuccessRemovedComposite = Success: this group is no longer a composite group
# pick a group for first composite
groupCompositeErrorLeftGroupProblem = Error: select a group from the results of the first factor group
# if didnt pick anything for operation
groupCompositeErrorOperationRequired = Error: operation is required
# pick a group for second composite
groupCompositeErrorRightGroupProblem = Error: select a group from the results of the second factor group
# success if success composite
groupCompositeSuccess = Success: this composite group was saved
# message if you want to add members to a composite group
groupCompositeCantAddMembersToComposite = Note: you cannot add members to a composite group. You can add members to one of the factors. Click more to see composite information.
# complete
groupCompositeProgressSubheadingComplete = The composite is assigned
# composite in progress
groupCompositeProgressSubheadingInProgress = The composite is in progress (running for ${grouperRequestContainer.groupContainer.progressBean.elapsedSeconds} seconds), please wait.
Note: this action will run in the background if you nagivate away.
# subheading for composite
groupCompositeProgressSubheading = ${textContainer.text[grouperRequestContainer.groupContainer.progressBean.complete ? 'groupCompositeProgressSubheadingComplete' : 'groupCompositeProgressSubheadingInProgress']}
# exception in composite
groupCompositeException = Error: the composite could not be completed
########################################
## Invite external members
########################################
# link in group menu to invite external users
inviteExternalMenuLink = Invite external users
# if the group cant be found
inviteExternalCantFindGroup = Error: group not found or you do not have the UPDATE privilege in it
# inviting external subjects is not enabled
inviteExternalNotEnabled = Error: Inviting external users is not enabled in this environment
# header for invite external screen
inviteExternalHeader = Invite external users
# invite external search for group panel header
inviteExternalSearchGroupPanel = Search for a group
# placeholder in textfield to search for a group
inviteExternalSearchGroupPlaceholder = Search for a group
# button to search for a group
inviteExternalSearchGroupButton = Search
# invite external search instructions
inviteExtneralSearchInstructions = The table below lists groups in which you are allowed to manage memberships.
# column header for the stem the object is in
inviteExternalSearchResultsColumnHeaderStem = Folder
# column header for the group of the object
inviteExternalSearchResultsColumnHeaderGroupName = Group name
# column header for the group name of the loader managed groups table
loaderManagedGroupsColumnHeaderGroupName = Group name
# column header for the last loaded time of the loader managed groups table
loaderManagedGroupsColumnHeaderLastLoadedTime = Last loaded time
# column header for the summary of the loader managed groups table
loaderManagedGroupsColumnHeaderSummary = Summary
# when not enough chars to search for
inviteExternalAddGroupNotEnoughChars = Enter at least two characters
# exact match on group
inviteExternalSearchExactIdMatch = Match exact group ID
# no groups found
inviteExternalSearchNoGroupsFound = No groups found that you can UPDATE
# invite external combo help text
inviteExternalComboHelpText = Once the external users have registered, they will be assigned to this group. Enter a group name or browse or search for a group where you are allowed to manage memberships.
# invite external group to add to new users
inviteExternalLabelGroupToAddToNewUsers = Group to assign to new users:
# button to add another group
inviteExternalAddAnotherGroupButton = Add another group
# if the group selected cannot have external users
inviteExternalErrorGroupCannotHaveExternalUsers = Error: the selected group cannot have external users, please select a different one
# maximum groups you can invite to
inviteExternalTooManyGroups = Error: you can only invite to a maximum of 5 groups
# Label for invite by
inviteExternalLabelInviteBy = Invite by:
# Invite type for email address
inviteExternalInviteTypeEmail = Email address
# Invite type for login ID
inviteExternalInviteTypeLoginId = Login ID
# help text for invite external type
inviteExternalInviteTypeHelp = Choose if you want to invite people by email address or login ID, if you know the exact login ID. If you are not sure, invite by email address or find out from them what it is.
# Invite label for email addresses
inviteExternalLabelEmail = Email addresses of people to invite:
# Invite help text for email addresses
inviteExternalEmailHelp = Enter the email addresses of people to invite separated by space, newline, comma, or semicolon.
# Invite label for email subject
inviteExternalLabelEmailSubject = Email subject:
# Default textfield value for the email subject in invites
inviteExternalEmailSubjectDefault = Register to access applications
# Help text on invite for email subject
inviteExternalEmailSubjectHelp = Enter an optional subject for the email to the users.
# invite screen label for the email body to users
inviteExternalLabelEmailBody = Message to users:
# invite email message sample default
inviteExternalEmailMessageSample = Hello,
This is an invitation to register at our site to be able to access our applications. This invitation expires in 7 days. Click on the link below and sign in with your InCommon credentials. If you do not have InCommon credentials you can register at a site like protectnetwork.com and use those credentials.
$inviteLink$
Regards.
# invite email message help
inviteExternalEmailMessageHelp = Enter an optional message to users in the email that will be sent to them. There will be other instructions and a link in the email as well.
# invite external email address to notify when users have registered
inviteExternalEmailAddressesToNotify = Email addresses to notify when registered:
# invite external email address notify help
inviteExternalEmailAddressesToNotifyHelp = These email addresses will be notified when the registration is complete. You can enter multiple email addresses in this field separated by space, comma, or semicolon.
# invite external user ids to invite
inviteExternalLabelUserIds = Login IDs of people to invite:
# invite external user ids help text
inviteExternalUserIdsHelp = Enter the login IDs of people to invite separated by space, newline, comma, or semicolon. You must know the exact login ID. If you are not sure, invite by email address or find out from them what it is. This is the ID that the institutional authentication system sends to this application when the user logs in. It might be in the form: [email protected]
# invite external button for invite
inviteExternalInviteButton = Invite
# invite external button for cancel
inviteExternalCancelButton = Cancel
# if email addresses are needed to invite
inviteExternalEmailAddressesRequired = Error: enter some email addresses to invite
# email address is invalid
inviteExternalInvalidEmailAddress = Error: email address is invalid: ${grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.emailAddress)}
# notify email address is invalid
inviteExternalInvalidNotifyEmailAddress = Error: email address to notify is invalid: ${grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.emailAddress)}
# if there is an error in the API (this shouldnt happen)
inviteExternalApiErrorInvitingUsers=Error: Problem sending invites: ${grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.error)}
# success inviting user
inviteExternalSuccessInvitingUsers=Success: Invites have been sent
# if there was a problem inviting users
inviteExternalInvalidIdentifierInvite=Error: invalid identifier: ${grouperUtil.xmlEscape(grouperRequestContainer.inviteExternalContainer.externalId)}
# if cannot assign an external subject to a group
inviteExternalErrorAssigningGroup=Error: could not assign entity: ${grouperUtil.xmlEscape(grouperRequestContainer.inviteExternalContainer.externalId)} to group: ${grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiGroup.shortLink)}. ${grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.error)}
# successfully created an external subject
inviteExternalSuccessCreatedExternalSubject=Success: created external entity: ${grouperUtil.xmlEscape(grouperRequestContainer.inviteExternalContainer.externalId)}
# note, was already there
inviteExternalSubjectsSuccessExistedExternalSubject=Note: external entity: ${grouperUtil.xmlEscape(grouperRequestContainer.inviteExternalContainer.externalId)} was already registered in the system
# success assigned external entity to group
inviteExternalSubjectsSuccessAssignedSubjectToGroup=Success: entity: ${grouperUtil.xmlEscape(grouperRequestContainer.inviteExternalContainer.externalId)} was assigned to group: ${grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiGroup.shortLink)}
# if an external subject was already a member of a group
inviteExternalSubjectsNoteSubjectAlreadyInGroup=Note: entity: ${grouperUtil.xmlEscape(grouperRequestContainer.inviteExternalContainer.externalId)} was already a member of group: ${grouperUtil.xmlEscape(grouperRequestContainer.commonRequestContainer.guiGroup.shortLink)}
########################################
## Edit stem
########################################
# title of edit stem screen
stemEditTitle = Edit folder
# error creating the stem
stemEditError = Error editing folder
# changes saved for stem
stemEditSuccess = Success: folder was saved
# no changes were detected or saved for stem
stemEditNoChangeNote = Note: no changes were made to the folder
# exception in stem edit
stemEditProgressSubheadingInProgress = The folder edit is in progress (running for ${grouperRequestContainer.stemContainer.progressBean.elapsedSeconds} seconds), please wait.
Note: this action will run in the background if you nagivate away.
# subheading stem edit
stemEditProgressSubheading = ${textContainer.text[grouperRequestContainer.stemContainer.progressBean.complete ? 'stemEditSuccess' : 'stemEditProgressSubheadingInProgress']}
# exception in stem edit
stemEditException = Error: the folder edit could not be completed
########################################
## Attribute definition page text
########################################
# attribute definition validations fields too long
attributeDefValidation_descriptionOfAttributeDefTooLong = Error: attribute definition description is too long
attributeDefValidation_extensionOfAttributeDefTooLong = Error: attribute definition ID is too long
attributeDefValidation_nameOfAttributeDefTooLong = Error: the attribute definition ID causes the ID path to be too long, please shorten it
# describe the page a little bit
attributeDefHeaderAttributeDefinition = Attribute definition
# If the URL is not valid
attributeDefCantFindAttributeDefId = Error: cannot find attributeDefId, nameOfAttributeDef, or attributeDefIndex in url
# if not allowed to admin attributeDef
attributeDefNotAllowedToAdminAttributeDef = Error: not allowed to administer attribute definition: ${grouperUtil.xmlEscape(grouperRequestContainer.attributeDefContainer.guiAttributeDef.attributeDef.displayName)}
# if not allowed to update attributeDef
attributeDefNotAllowedToUpdateAttributeDef = Error: not allowed to update assignments of attribute definition: ${grouperUtil.xmlEscape(grouperRequestContainer.attributeDefContainer.guiAttributeDef.attributeDef.displayName)}
# if not allowed to read attributeDef
attributeDefNotAllowedToReadAttributeDef = Error: not allowed to read assignments of attribute definition: ${grouperUtil.xmlEscape(grouperRequestContainer.attributeDefContainer.guiAttributeDef.attributeDef.displayName)}
# if not allowed to view attributeDef
attributeDefNotAllowedToViewAttributeDef = Error: not allowed to view attribute definition
# If the group cant be found but the id or name is passed in
attributeDefCantFindAttributeDef = Error: cannot find attribute definition
# if they didnt select any attribute def actions
attributeDefRemoveNoActionsSelects = Error: select at least one action
# attribute assign action id not found
attributeDefRemoveNoActionNotFound = Error: action not found
# attribute def multiple actions deleted successfully
attributeDefRemoveActionsSuccess = Success: Deleted actions successfully
# attribute def single action deleted successfully
attributeDefRemoveActionSuccess = Success: Deleted action successfully
# label on attribute def screen of attribute def names tab
attributeDefAttributeDefNameTab = Attribute names
# label on attribute def screen of attribute def action tab
attributeDefAttributeDefActionTab = Attribute actions
# label on attribute def name screen of privileges tab
attributeDefPrivilegesTab = Privileges
# label on filter on attributeDef screen
attributeDefFilterFor = Filter for:
# description for attribute def names tab
attributeDefViewAttributeDefNamesDescription = The following table lists all attribute names associated with this attribute definition
# description for attribute def actions tab
attributeDefViewAttributeDefActionsDescription = The following table lists all actions associated with this attribute definition
# placeholder in textfield for attribute name
attributeDefFilterFormPlaceholder = Attribute name
# placeholder in textfield for attribute def action
attributeDefActionFilterFormPlaceholder = Action name
# apply filter button on attribute def screen
attributeDefApplyFilterButton = Apply filter
# this text shows the delete button for attribute def names
attributeDefRemoveSelectedAttributeDefNamesButton = Delete selected attribute names
# this text shows the delete button for attribute def actions
attributeDefRemoveSelectedAttributeDefActionsButton = Delete selected attribute actions
# reset button on filter of attributeDef screen
attributeDefResetButton = Reset
# search for attributeDefName button on attributeDef screen
attributeDefSearchForEntityButton = Search for an attribute name
# actions button
attributeDefViewActionsButton = Actions
# actions dropdown
attributeDefViewActionsDropdownButton = Attribute name actions
# view attribute def name button
attributeDefViewAttributeDefNameButton = View attribute name
# edit attribute def name button
attributeDefEditAttributeDefNameButton = Edit attribute name
# edit attribute def action button
attributeDefEditAttributeDefActionButton = Edit attribute action
# delete attribute def name button
attributeDefDeleteAttributeDefNameButton = Delete attribute name
# edit attribute def name inheritance
attributeDefEditInheritanceAttributeDefNameButton = Edit inheritance
# view where this attribute def name is assigned
attributeDefViewAssignedEntitiesAttributeDefNameButton = View assigned owners
# delete attribute def action button
attributeDefDeleteAttributeDefActionButton = Delete attribute action
# for name of attribute def
attributeDefLabelIdPath = ID path:
# id label
attributeDefLabelId = ID:
# created label
attributeDefLabelCreated = Created:
# creator label
attributeDefLabelCreator = Creator:
# stem of attributeDef
attributeDefHeaderStem = Folder
# name of attributeDef
attributeDefHeaderName = Attribute name
# action of attributeDef
attributeDefHeaderAction = Action
# name of attributeDef
attributeDefLabelName = Name:
# when last edited
attributeDefLabelLastEdited = Last edited:
# who last edits the attributeDef
attributeDefLabelLastEditedBy = Last edited by:
# the numeric index of this attributeDef
attributeDefLabelIdIndex = ID index:
# uuid of attributeDef
attributeDefLabelUuid = UUID:
# type of attribute definition
attributeDefLabelType = Type:
# value type of attribute definition
attributeDefLabelValueType = Value type:
# is attribute definition is multi assignable
attributeDefMultiAssignable = Multi-assignable:
attributeDefMultiAssignableYes = Yes
attributeDefMultiAssignableNo = No
# description of the multi assignable field
attributeDefMultiAssignableDescription = If this attribute can be assigned to the same owner object more than once. For instance, a Group can have more than one Rule attached to it, so the Rule attribute is multi-assignable
# is attribute definition multi valued
attributeDefMultiValued = Multi-valued:
attributeDefMultiValuedYes = Yes
attributeDefMultiValuedNo = No
attributeDefManageMarkerScope = Manage marker scope:
attributeDefManageMarkerScopeDescription = If this checkbox is checked, then reflect the scope from the 'Name of marker attribute def'. If the 'Name of marker attribute def' is blank, then remove the scope. If this checkbox is not checked, then do not make changes to the scope.
markerAttributeDefName = Name of marker attribute def:
markerAttributeDefNameDescription = This will remove any existing scopes and add the name of the attribute definition for the marker where this assignment on assignment can be assigned (e.g. a:b:c:myMarkerDef)
# description of the multi valued field
attributeDefMultiValuedDescription = If this attribute has values, if it can have more than one value assigned at once.
# label for assign to
attributeDefLabelAssignTo = Assign to:
attributeDefLabelAssignToDescription = Designate which types of objects that this definition can be assigned to. There are six base object types, or you can assign attributes to the assignment of attributes to those base object types. Membership can be assigned to an immediate or an effective membership, and will still exist as an orphan if the membership is unassigned until the membership is reassigned. Immediate membership attribute assignments are only assignable to immediate memberships and are automatically deleted once the membership is unassigned.
# labels for what an attribute definition can be assigned to
attributeDefAssignTo.attributeDef = Attribute definition
attributeDefAssignTo.stem = Folder
attributeDefAssignTo.group = Group / Role / Local entity
attributeDefAssignTo.member = Member
attributeDefAssignTo.membership = Membership
attributeDefAssignTo.immediateMembership = Membership - immediate only
attributeDefAssignTo.attributeDefAssign = Attribute definition attribute assignment
attributeDefAssignTo.stemAssign = Folder attribute assignment
attributeDefAssignTo.groupAssign = Group / Role / Local entity attribute assignment
attributeDefAssignTo.memberAssign = Member attribute assignment
attributeDefAssignTo.membershipAssign = Membership attribute assignment
attributeDefAssignTo.immediateMembershipAssign = Membership - immediate only - attribute assignment
#button hides advanced filtering
attributeDefAdvancedButton = Advanced
# remove from my favorites button
attributeDefViewMoreActionsRemoveFromMyFavorites = Remove from my favorites
# add to my favorites button
attributeDefViewMoreActionsAddToMyFavorites = Add to my favorites
# attributeDef was added to my favorites
attributeDefSuccessAddedToMyFavorites = Attribute definition was added to favorites
# attributeDef was removed from my favorites
attributeDefSuccessRemovedFromMyFavorites = Attribute definition was removed from favorites
# edit button on attribute def
attributeDefViewEditAttributeDefButton = Edit attribute
# create new attribute def name button on attribute def
attributeDefViewNewAttributeDefNameButton = Create new attribute name
# create new attribute def action button on attribute def
attributeDefViewNewAttributeDefActionButton = Create new attribute action
# view attribute assignments
attributeDefViewAttributeAssignments = Attribute assignments
# view where this attribute def is assigned
attributeDefViewAssignedEntitiesAttributeDefButton = View assigned owners
########################################
## Attribute name page text attributeDefName
########################################
#confirm the user to make changes to privileges on this folder
attributeDefNameConfirmChanges = Are you sure you want to delete these attribute names and their assignments?
# remove from my favorites button
attributeDefNameViewMoreActionsRemoveFromMyFavorites = Remove from my favorites
# add to my favorites button
attributeDefNameViewMoreActionsAddToMyFavorites = Add to my favorites
# attributeDef was added to my favorites
attributeDefNameSuccessAddedToMyFavorites = Attribute name was added to favorites
# attributeDef was removed from my favorites
attributeDefNameSuccessRemovedFromMyFavorites = Attribute name was removed from favorites
# if attribute def name was deleted
attributeDefAttributeDefNameDeleteSuccess = Success: attribute name was deleted
# if they didnt select any atttribute names
attributeDefRemoveNoAttributeDefNameSelects = Error: select at least one attribute name
# if the attributeDefNames being deleted had problems
attributeDefDeleteAttributeDefNamesErrors = Error: had problems deleting ${grouperRequestContainer.attributeDefContainer.failureCount} attribute names, and successfully deleted ${grouperRequestContainer.attributeDefContainer.successCount} attribute names
# success deleting attribute def names
attributeDefDeleteAttributeDefNamesSuccesses = Success: deleted ${grouperRequestContainer.attributeDefContainer.successCount} attribute names
# If the URL is not valid
attributeDefNameCantFindAttributeDefNameId = Error: cannot find attributeDefNameId, nameOfAttributeDefName, or attributeDefNameIndex in url
# If the group cant be found but the id or name is passed in
attributeDefCantFindAttributeDefName = Error: cannot find attribute name
# edit button on attribute def name
attributeDefNameViewEditAttributeDefNameButton = Edit attribute name
# describe the page a little bit
attributeDefNameHeaderAttributeDefinitionName = Attribute name
# add attribute name on attribute def
attributeDefViewAddAttributeNameButton = Add attribute name
# description text for attribute definition field on the create attribute def name screen
attributeDefNameCreateIntoAttributeDefDescription = The attribute definition holds the settings and security for attribute. Each attribute definition can have multiple attribute names. Every attribute name is associated with one and only one attribute definition.
# description text for attribute definition field on the create attribute def create screen
attributeDefActionCreateIntoAttributeDefDescription = The attribute definition holds the settings and security for attribute. Each attribute definition can have multiple attribute actions. Every attribute action is associated with one and only one attribute definition.
# breadcrumb of the new attribute name screen
attributeNameNewBreadcrumb = New attribute name
# breadcrumb of the new attribute action screen
attributeActionNewBreadcrumb = New attribute action
# title of the new attribute name screen
attributeNameNewTitle = New attribute name
# title of the new attribute action screen
attributeActionNewTitle = New attribute action
# button text for save button
attributeDefNameCreateSaveButton = Save
# button text for cancel button
attributeDefNameCreateCancelButton = Cancel
# button text for save button
attributeDefActionCreateSaveButton = Save
# button text for cancel button
attributeDefActionCreateCancelButton = Cancel
# folder is required
attributeDefNameCreateRequiredParentStemId = Error: folder is required
# attribute def is required
attributeDefNameCreateRequiredAttributeDef = Error: valid attribute def is required
# can't find folder
attributeDefNameCreateCantFindStemId = Error: Cannot find folder. Select a folder from the combobox results.
# error creating the attribute def name
attributeDefNameCreateError = Error creating attribute def name
# attribute def already exists
attributeDefNameExistsError = Error: attribute name already exists.
# error that attribute def name name is required
attributeDefNameCreateErrorDisplayExtensionRequired = Error: name is required
# error that attribute def id is required
attributeDefNameCreateErrorExtensionRequired = Error: ID is required
# success the attribute def name was created
attributeDefNameCreateSuccess = Success: the attribute def name was created
# label for the attribute def name create in attribute definition
attributeDefNameCreateAttributeDefLabel = Attribute definition:
# label for the action create in attribute definition
attributeDefActionCreateAttributeDefLabel = Attribute definition:
# label for the create in folder
attributeDefNameCreateFolderLabel = Folder:
# title of modal dialog to search for folder
attributeDefNameCreateSearchForFolderTitle = Search for a folder
# placeholder in textfield to search for a folder
attributeDefNameCreateSearchPlaceholder = Search for a folder
# button text for search button
attributeDefNameCreateSearchButton = Search
# button text for closing the search modal
attributeDefNameCreateSearchClose = Close
# description text for folder field on the create attribute def name screen
attributeDefNameCreateIntoFolderDescription = Enter a folder name or search for a folder where you are allowed to create new attribute def names..
# label for id field on the create attribute def name screen
attributeDefNameIdLabel = ID of attribute name:
# description text for id field on the create attribute def name screen
attributeDefNameIdDescription = ID is the unique identifier you set for this attribute name. The ID must be unique within this folder, and should rarely change. It can be used by other systems to refer to this attribute name. The ID field cannot contain spaces or special characters.
# label for name field on the create attribute def name screen
attributeDefNameNameLabel = Name of attribute name:
# label for name field on the create attribute def action screen
attributeDefActionNameLabel = Name of attribute action:
# description text for name field on the create attribute def name screen
attributeDefNameNameDescription = Name is the label that identifies this attribute name, and might change.
# label for name field on the create attribute def name screen
attributeDefNamePathLabel = Path:
# description text for name field on the create attribute def name screen
attributeDefNamePathDescription = Path is the name of all folders and the attribute name, and might change.
# label for name field on the create attribute def name screen
attributeDefNameIdPathLabel = ID path:
# description text for name field on the create attribute def name screen
attributeDefNameIdPathDescription = ID path is the ID of all folders and the attribute name, and should rarely change.
# label for created field on the create attribute def name screen
attributeDefNameLabelCreated = Created:
# description text for created field on the create attribute def name screen
attributeDefNameDescriptionCreated = When this attribute name was created
# label for name field on the create attribute def name screen
attributeDefNameLabelLastEdited = Last edited:
# description text for name field on the create attribute def name screen
attributeDefNameDescriptionLastEdited = When this attribute name was last edited (this does not include assignments)
# label for description field on the create attribute def name screen
attributeDefNameDescriptionLabel = Description:
# description text for description field on the create attribute def name screen
attributeDefNameDescriptionDescription = Description contains notes about the attribute name, which could include: what the attribute name represents, why it was created, etc.
# label for ID index field on the create attribute def name screen
attributeDefNameLabelIdIndex = ID index:
# description text for ID index field on the create attribute def name screen
attributeDefNameDescriptionIdIndex = ID index is a unique sequential integer assigned to each attribute name. This cannot be changed and is not re-used.
# label for description field on the create attribute def name screen
attributeDefNameLabelUuid = UUID:
# description text for description field on the create attribute def name screen
attributeDefNameDescriptionUuid = Universal unique identifier (opaque) for this object. This cannot be changed and is not re-used.
# delete button on attribute def
attributeDefViewDeleteAttributeDefButton = Delete attribute
# search for an entity placeholder
attributeDefSearchForEntityPlaceholder = Search for an entity
# attributeDef search button
attributeDefSearchButton = Search
# attributeDef search results column name for entity
attributeDefSearchResultsColumnName = Entity Name
# close button on attributeDef search screen
attributeDefSearchCloseButton = Close
# text before the combo link
attributeDefSearchLabelPreComboLink = Enter an entity name or ID, or
# text to search for an entity
attributeDefSearchForEntityLink = search for an entity.
# assign these privileges label on view attributeDef
attributeDefViewAssignThesePrivileges = Assign these privileges:
# Add link in text of attributeDef view screen
attributeDefViewAddMemberLink = Add
# cant find the subject
attributeDefAddMemberCantFindSubject = Select an entity from the search results
#if no privileges are selected
attributeDefAddMemberPrivRequired = Select at least one privilege
########################################
## New attribute def action
########################################
# attribute def is required
attributeDefActionCreateRequiredAttributeDef = Error: valid attribute def is required
# action is required
attributeDefActionCreateRequiredAction = Error: action is required
# error creating attribute def action
attributeDefActionCreateError = Error creating attribute def action
# success the attribute def action was created
attributeDefActionCreateSuccess = Success: the attribute def action was created
#####################################################
## Edit attribute def name inheritance
#####################################################
# attribute def name
attributeDefNameEditAttributeDefNameInheritance = Attribute name:
# label for attribute def name that imply
attributeDeNameEditAttributeDefNamesThatImply = Attribute names that imply {0}
# label for attribute def names that immediate imply
attributeDeNameEditAttributeDefNamesThatImmediateImply = Immediate attribute names that imply {0}
# label for attribute def names implied by
attributeDeNameEditAttributeDefNamesImpliedBy = Attribute names implied by {0}
# label for attribute def names implied by immediate
attributeDeNameEditAttributeDefNamesImpliedByImmediate = Immediate Attribute names implied by {0}
# success: attribute def name inheritance was saved
attributeDefNameInheritanceEditSuccess = Success: attribute name inheritance was saved.
# error on saving attribute def inheritance
attributeDefNameInheritanceEditError = Error: attribute name inheritance was not saved.
# save button on attribute def name inheritance edit screen
attributeDefNameInheritanceEditSaveButton = Save
# cancel button on attribute def name inheritance edit screen
attributeDefNameInhertianceEditCancelButton = Cancel
########################################
## Edit attribute def name
########################################
# title of edit attributeDefName screen
attributeDefNameEditTitle = Edit attribute name
# label for the edit in attribute definition
attributeDefNameEditAttributeDefLabel = Attribute definition:
# description text for attribute definition field on the edit attribute def name screen
attributeDefNameEditIntoAttributeDefDescription = The attribute definition holds the settings and security for attribute. Each attribute definition can have multiple attribute names.
# label for the edit in folder
attributeDefNameEditFolderLabel = Folder:
# description text for folder field on the edit attribute def name screen
attributeDefNameEditIntoFolderDescription = Folder is the namespace where this attribute name resides.
# save button on attribute def naem edit screen
attributeDefNameEditSaveButton = Save
# attribute def name not found
attributeDefNameNotFoundError = Error: Attribute name not found.
# logged in subject doesn't have admin privileges on the attribute def
attributeDefNoAdminPriv = You do not have privileges to edit this attribute definition
# success the attribute def name was saved
attributeDefNameEditSuccess = Success: the attribute name was saved
# error on saving attribute def name
attributeDefNameEditError = Error: the attribute name was not saved.
########################################
## Delete attribute def name
########################################
# title of the delete attribute def name screen
attributeDefNameDeleteTitle = Delete attribute name
# main text of the delete attribute def name screen
attributeDefNameDeleteText = You are about to delete the this attribute name and all its assignments. You cannot undo this operation. Are you sure you want to proceed?
# If deletion through UI not allowed (see uiV2.attributeDefName.preventDeleteInUi)
attributeDefNameDeleteUiDisallowedText = Deletion of attribute names in the UI is not allowed. Did you mean to delete an attribute assignment instead? Please contact your administrators to delete this attribute name. (Ref: property uiV2.attributeDefName.preventDeleteInUi)
# generic insufficient privileges
attributeDefNameDeleteInsufficientPrivileges = Error: Insufficient privileges
# success the attribute def name was deleted
attributeDefNameDeleteSuccess = Success: the attribute name was deleted
# if there was an error deleting the attribute def name
attributeDefNameErrorCantDelete = Error: there was a problem deleting the attribute name
# delete button on the delete attribute def name screen
attributeDefNameDeleteDeleteButton = Delete
# cancel button on the delete attribute def name screen
attributeDefNameDeleteCancelButton = Cancel
########################################
## Edit attribute def
########################################
# title of edit attributeDef screen
attributeDefEditTitle = Edit attribute definition
# error creating the attributeDef
attributeDefEditError = Error editing attribute definition
# changes saved for attributeDef
attributeDefEditSuccess = Success: attribute definition was saved
# no changes were detected or saved for attributeDef
attributeDefEditNoChangeNote = Note: no changes were made to the attribute definition
# save button on attribute def edit screen
attributeDefEditSaveButton = Save
########################################
## Edit attribute def action
########################################
# title of edit attributeDefAction screen
attributeDefActionEditTitle = Edit attribute action
# label for action name on attribute def action edit screen
attributeDeActionEditAttributeDefAction = Action name:
# label for actions that imply this action we are editing
attributeDeActionEditActionsThatImply = Actions that imply {0}:
# label for actions that immediately imply this action we are editing
attributeDeActionEditActionsThatImmediatelyImply = Actions that immediately imply {0}:
# label for actions implied by this action we are editing
attributeDeActionEditActionsImpliedBy = Actions implied by {0}:
# label for actions immediately implied by this action we are editing
attributeDeActionEditActionsImmediatelyImpliedBy = Actions immediately implied by {0}:
# label for the edit in attribute definition
attributeDeActionEditAttributeDefLabel = Attribute definition:
# description text for attribute definition field on the edit attribute def action screen
attributeDefActionEditIntoAttributeDefDescription = The attribute definition holds the settings and security for attribute. Each attribute definition can have multiple attribute actions.
# save button on attribute def action edit screen
attributeDefActionEditSaveButton = Save
# cancel button on attribute def action edit screen
attributeDefActionEditCancelButton = Cancel
# attribute def action not found
attributeDefActionNotFoundError = Error: Attribute def action not found.
# success the attribute def action was saved
attributeDefActionEditSuccess = Success: the attribute action was saved
# error on saving attribute def action
attributeDefActionEditError = Error: the attribute action was not saved.
########################################
## Attribute def privileges page
########################################
# attributeDef privileges descript at top of tab
attributeDefPrivilegesDecription = The following table lists all entities with privileges for this attribute definition.
# attributeDef privileges tab filter for label
attributeDefPrivilegeFilterFor = Filter for:
# dropdown for privileges filter, everyone
attributeDefPrivilegesFilterEveryone = Any privilege
# dropdown for privileges filter, people with admin
attributeDefPrivilegesFilterAdmins = Entities with $$priv.attrAdminUpper$$
# dropdown for privileges filter, people with optin
attributeDefPrivilegesFilterOptins = Entities with $$priv.attrOptinUpper$$
# dropdown for privileges filter, people with update
attributeDefPrivilegesFilterUpdaters = Entities with $$priv.attrUpdateUpper$$
# dropdown for privileges filter, people with read
attributeDefPrivilegesFilterReaders = Entities with $$priv.attrReadUpper$$
# dropdown for privileges filter, people with view
attributeDefPrivilegesFilterViewers = Entities with $$priv.attrViewUpper$$
# dropdown for privileges filter, people with optout
attributeDefPrivilegesFilterOptouts = Entities with $$priv.attrOptoutUpper$$
# dropdown for privileges filter, people with attr read
attributeDefPrivilegesFilterAttrReaders = Entities with $$priv.attrDefAttrReadUpper$$
# dropdown for privileges filter, people with attr read
attributeDefPrivilegesFilterAttrUpdaters = Entities with $$priv.attrDefAttrUpdateUpper$$
# dropdown for assignment type
attributeDefPrivilegesFilterAllAssignments = All entities
# dropdown for assignment type, has direct assignments
attributeDefPrivilegesFilterDirectAssignments = Has direct assignments
# dropdown for assignment type, has indirect assignments
attributeDefPrivilegesFilterIndirectAssignments = Has indirect assignments
# dropdown for what to bulk assign
attributeDefPrivilegesAssignAttrAdminPrivilege = Assign the $$priv.attrAdminUpper$$ privilege
attributeDefPrivilegesAssignAttrUpdatePrivilege = Assign the $$priv.attrUpdateUpper$$ privilege
attributeDefPrivilegesAssignAttrReadUpdatePrivilege = Assign the $$priv.attrReadUpper$$/$$priv.attrUpdateUpper$$ privilege
attributeDefPrivilegesAssignAttrReadPrivilege = Assign the $$priv.attrReadUpper$$ privilege
attributeDefPrivilegesAssignAttrViewPrivilege = Assign the $$priv.attrViewUpper$$ privilege
attributeDefPrivilegesAssignAttrDefAttributeReadPrivilege = Assign the $$priv.attrDefAttrReadUpper$$ privilege
attributeDefPrivilegesAssignAttrDefAttributeUpdatePrivilege = Assign the $$priv.attrDefAttrUpdateUpper$$ privilege
attributeDefPrivilegesAssignAttrOptinPrivilege = Assign the $$priv.attrOptinUpper$$ privilege
attributeDefPrivilegesAssignAttrOptoutPrivilege = Assign the $$priv.attrOptoutUpper$$ privilege
attributeDefPrivilegesAssignAttrAllPrivilege = Assign ALL privileges
attributeDefPrivilegesRevokeAttrAdminPrivilege = Revoke the $$priv.attrAdminUpper$$ privilege
attributeDefPrivilegesRevokeAttrUpdatePrivilege = Revoke the $$priv.attrUpdateUpper$$ privilege
attributeDefPrivilegesRevokeAttrReadUpdatePrivilege = Revoke the $$priv.attrReadUpper$$/$$priv.attrUpdateUpper$$ privilege
attributeDefPrivilegesRevokeAttrReadPrivilege = Revoke the $$priv.attrReadUpper$$ privilege
attributeDefPrivilegesRevokeAttrViewPrivilege = Revoke the $$priv.attrViewUpper$$ privilege
attributeDefPrivilegesRevokeAttrDefAttributeReadPrivilege = Revoke the $$priv.attrDefAttrReadUpper$$ privilege
attributeDefPrivilegesRevokeAttrDefAttributeUpdatePrivilege = Revoke the $$priv.attrDefAttrUpdateUpper$$ privilege
attributeDefPrivilegesRevokeAttrOptinPrivilege = Revoke the $$priv.attrOptinUpper$$ privilege
attributeDefPrivilegesRevokeAttrOptoutPrivilege = Revoke the $$priv.attrOptoutUpper$$ privilege
attributeDefPrivilegesRevokeAttrAllPrivilege = Revoke ALL privileges
# label for update bulk privileges
attributeDefPrivilegesUpdateBulkLabel = Update:
# button to update selected items on privileges page
attributeDefPrivilegesUpdateSelected = Update selected
#error need to select an entity
attributeDefErrorEntityRequired = Error: you must select at least one entity
# label about checkbox on form to match id
attributeDefLabelExactIdMatch = Exact ID match
# edit memberships and privileges
attributeDefViewEditMembershipsAndPrivilegesButton = Edit privileges
# trace the privileges for this subject and owner
attributeDefViewTracePrivilegeButton = Trace privileges
# privilege revoked
attributeDefSuccessRevokedPrivilege = Success: privilege revoked
# privilege granted
attributeDefSuccessGrantedPrivilege = Success: privilege granted
#success message for assigned privileges
attributeDefSuccessGrantedPrivileges = Success: privileges granted
#success message for assigned privileges
attributeDefSuccessRevokedPrivileges = Success: privileges revoked
#note, no immediate privilegs to assign
attributeDefNoteNoGrantedPrivileges = Note: no immediate privileges to grant
#note, no immediate privileges to revoke
attributeDefNoteNoRevokedPrivileges = Note: no immediate privileges to revoke
#confirm the user to make changes to privileges on this folder
attributeDefConfirmChanges = Are you sure you want to change privileges for this attribute definition?
# placeholder for privilege filter textfield
attributeDefFilterPrivilegeFormPlaceholder = Entity name
# add members to be privilegees of the attributeDef
attributeDefViewMoreActionsAddMembers = Add members
# actions button on privileges screen
attributeDefPrivilegesActions = Actions
# title on button to remove this privilege
attributeDefPrivilegesTitleRemoveThisPrivilege = Remove this privilege
# title on button to assign this privilege
attributeDefPrivilegesTitleAssignThisPrivilege = Assign this privilege
# search search member or id
attributeDefSearchMemberOrId = Member name or ID:
# if the subject was successfully added to the attributedef
attributeDefAddMemberMadeChangesSuccess = Success: entity was assigned privileges on the attribute
# if no changes were made to memberships / privileges
attributeDefAddMemberNoChangesSuccess = Note: entity already had privileges on the attribute
########################################
## Stem page text
########################################
# stem validations fields too long
stemValidation_stemDescriptionTooLong = Error: folder description is too long
stemValidation_stemDisplayExtensionTooLong = Error: folder name is too long
stemValidation_stemExtensionTooLong = Error: folder ID is too long
stemValidation_stemDisplayNameTooLong = Error: the folder name causes the path to be too long, please shorten it
stemValidation_stemNameTooLong = Error: the folder ID causes the ID path to be too long, please shorten it
# If the URL is not valid
stemCantFindStemId = Error: cannot find stemId, stemName, or stemIndex in url
# If the stem cant be found but the id or name is passed in
stemCantFindStem = Error: cannot find folder
# if not allowed to edit stem
stemNotAllowedToAdminStem = Error: not allowed to administer folder: ${grouperUtil.xmlEscape(grouperRequestContainer.stemContainer.guiStem.stem.name)}
# if not allowed to create groups in the stem
stemNotAllowedToCreateGroupsStem = Error: not allowed to create groups in folder: ${grouperUtil.xmlEscape(grouperRequestContainer.stemContainer.guiStem.stem.name)}
# privilege revoked
stemSuccessRevokedPrivilege = Success: folder privilege revoked
# privilege granted
stemSuccessGrantedPrivilege = Success: folder privilege granted
#success message for assigned privileges
stemSuccessGrantedPrivileges = Success: folder privileges granted
#success message for assigned privileges
stemSuccessRevokedPrivileges = Success: folder privileges revoked
#note, no immediate privilegs to assign
stemNoteNoGrantedPrivileges = Note: no immediate folder privileges to grant
#note, no immediate privileges to revoke
stemNoteNoRevokedPrivileges = Note: no immediate folder privileges to revoke
#error need to select an entity
stemErrorEntityRequired = Error: you must select at least one entity
# ID label
stemLabelId = ID:
# ID path label
stemLabelIdPath = ID path:
# Alternate ID path label
stemLabelAlternateIdPath = Alternate ID path:
# Path label
stemLabelPath = Path:
# When this stem was created
stemLabelCreated = Created:
# who created this stem
stemLabelCreator = Creator:
# When this stem was last edited
stemLabelLastEdited = Last edited:
# who last edited this stem
stemLabelLastEditor = Last editor:
# the numeric index of this group
stemLabelIdIndex = ID index:
# label for UUID of folder
stemLabelUuid = UUID:
# text to go up one folder
stemUpOneFolder = Up one folder
# test that shows the object names
stemObjectName = Name
# placeholder in the textfield for the search box
stemFilterFormPlaceholder = Folder, group, or attribute name
# apply filter button on stem screen
stemApplyFilterButton = Apply filter
# reset the filter for stem contents
stemResetButton = Reset
#button hides advanced filtering
stemAdvancedButton = Advanced
# Folder contents tab
stemContents = Folder contents
# Folder privileges tab
stemPrivileges = Privileges
# User cannot manage folder
stemCantManageStem = You cannot manage this folder
# placeholder for privilege filter textfield
stemFilterPrivilegeFormPlaceholder = Entity name
# filter for label on stem screen
stemFilterFor = Filter for:
# filter for label on privileges tab
stemPrivilegeFilterFor = Filter for:
# description at top of stem privileges tab
stemPrivilegesDecription = The following table lists all entities with privileges in this folder.
# dropdown for privileges filter, everyone
stemPrivilegesFilterEveryone = Any privilege
# dropdown for privileges filter, people with create group
stemPrivilegesFilterStemViewers = Entities with $$priv.stemViewUpper$$
# dropdown for privileges filter, people with create group
stemPrivilegesFilterCreators = Entities with $$priv.createUpper$$
# dropdown for privileges filter, people with create stem
stemPrivilegesFilterStemAdmins = Entities with $$priv.stemAdminsUpper$$
# dropdown for privileges filter, people with attr read
stemPrivilegesFilterAttrReaders = Entity with $$priv.stemAttrReadUpper$$
# dropdown for privileges filter, people with attr update
stemPrivilegesFilterAttrUpdaters = Entity with $$priv.stemAttrUpdateUpper$$
# dropdown for assignment type
stemPrivilegesFilterAllAssignments = All entities
# dropdown for assignment type, has direct assignments
stemPrivilegesFilterDirectAssignments = Has direct assignments
# dropdown for assignment type, has indirect assignments
stemPrivilegesFilterIndirectAssignments = Has indirect assignments
# button to update selected items on privileges page
stemPrivilegesUpdateSelected = Update selected
# title on button to remove this privilege
stemPrivilegesTitleRemoveThisPrivilege = Remove this privilege
# title on button to assign this privilege
stemPrivilegesTitleAssignThisPrivilege = Assign this privilege
# inherited privileges for folders
stemInheritedPrivilegesFoldersDecription = Inherited privileges for folders
# inherited privileges for groups
stemInheritedPrivilegesGroupsDecription = Inherited privileges for groups
# inherited privileges for attribute defs
stemInheritedPrivilegesAttributeDefsDecription = Inherited privileges for attribute definitions
#confirm the user to make changes to privileges on this folder
stemConfirmChanges = Are you sure you want to change privileges for this folder?
# stem was added to my favorites
stemSuccessAddedToMyFavorites = Folder was added to favorites
# stem was removed from my favorites
stemSuccessRemovedFromMyFavorites = Folder was removed from favorites
# not enough chars when searching on search form for parent stem
stemSearchNotEnoughChars = Enter at least two characters
# if no subjects found
stemSearchNoStemsFound = No folders found
# edit folder button text
stemViewEditStemButton = Edit folder
# stem actions copy stem
stemViewCopyStemButton = Copy folder
# stem actions delete stem
stemViewDeleteStemButton = Delete folder
# stem actions move folder
stemViewMoveStemButton = Move folder
# stem view audit log button
stemViewAuditButton = Audit log
# stem view attribute assignments
stemViewAttributeAssignmentsButton = Attribute assignments
# stem assign attribute
stemAssignAttributeButton = Assign attribute
# text to show on the view stem attribute assignment screen when there are no attributes assigned
stemViewAttributeAssignsNoAssignedAttributes = No attributes assigned
# title of the stem attribute assignments screen
stemAttributeAssignmentsTitle = Attribute Assignments
# description of the stem attribute assignments screen
stemAttributeAssignmentsDescription = The following table lists all attributes assigned to this folder
# more actions on stem more actions panel
stemViewMoreActionsButton = Folder actions
# add members to be privilegees of the stem
stemViewMoreActionsAddMembers = Add members
# label about checkbox on form to match id
stemLabelExactIdMatch = Exact ID match
# search for entity button on stem screen
stemSearchForEntityButton = Search for an entity
# search for an entity placeholder
stemSearchForEntityPlaceholder = Search for an entity
# stem search button
stemSearchButton = Search
# stem search results column name for entity
stemSearchResultsColumnName = Entity Name
# search search member or id
stemSearchMemberOrId = Member name or ID:
# close button on stem search screen
stemSearchCloseButton = Close
# text before the combo link
stemSearchLabelPreComboLink = Enter an entity name or ID, or
# text to search for an entity
stemSearchForEntityLink = search for an entity.
# assign these privileges label on view stem
stemViewAssignThesePrivileges = Assign these privileges:
# Add link in text of stem view screen
stemViewAddMemberLink = Add
# cant find the subject
stemAddMemberCantFindSubject = Select an entity from the search results
#if no privileges are selected
stemAddMemberPrivRequired = Select at least one privilege
# if the subject was successfully added to the stem
stemAddMemberMadeChangesSuccess = Success: entity was assigned privileges in folder
# if no changes were made to memberships / privileges
stemAddMemberNoChangesSuccess = Note: entity already had privileges in folder
# remove from my favorites button
stemViewMoreActionsRemoveFromMyFavorites = Remove from my favorites
# add to my favorites button
stemViewMoreActionsAddToMyFavorites = Add to my favorites
# actions button
stemViewActionsButton = Actions
# quick links
stemViewMoreActionsQuickLinks = Quick links
# templates
stemViewMoreActionsTemplates = Templates
# manage
stemViewMoreActionsManage = Manage
# auditing
stemViewMoreActionsAuditing = Auditing
# administration
stemViewMoreActionsAdministration = Administration
# delete
stemViewMoreActionsDelete = Delete
########################################
# Stem group memberships
########################################
# description in the more tab
stemGroupMembershipsInFolder = Group memberships for groups under this folder
# description at top of page
stemGroupMembershipsInFolderDecription = The following table lists all group memberships for groups under this folder
########################################
## Stem more tab
########################################
# text on the "more" tab
stemMoreTab = More
########################################
## Subject more tab
########################################
# text on the "more" tab
subjectMoreTab = More
########################################
## Attribute def more tab
########################################
# text on the "more" tab
attributeDefMoreTab = More
########################################
## Stem inherit privileges
########################################
# text on stem tab to show inherited privileges
stemPrivilegesInheritedToObjectsInFolder = Privileges inherited to objects in folder
# remove selected inherited privileges
stemRemoveSelectedInheritedPrivilegesButton = Remove selected inherited privileges
# no rules selected
stemPrivilegesInheritedRemoveNoRuleSelects = Error: select at least one inherited privilege assignment
# if the rules for inherited privileges being deleted had problems
stemPrivilegesInheritedRemoveErrors = Error: folder has errors removing ${grouperRequestContainer.stemContainer.failureCount} inherited privileges, and successfully removed ${grouperRequestContainer.stemContainer.successCount} inherited privileges
# success removing rules for inherited privileges
stemPrivilegesInheritedRemoveSuccesses = Success: removed ${grouperRequestContainer.stemContainer.successCount} inherited privileges
# if the rules for inherited privileges being deleted had problems
stemPrivilegesInheritedRemoveErrorsNotDone = Error: folder has errors removing ${grouperRequestContainer.stemContainer.failureCount} inherited privileges, and successfully removed ${grouperRequestContainer.stemContainer.successCount} inherited privileges. Still processing other child objects to remove privileges.
# success removing rules for inherited privileges
stemPrivilegesInheritedRemoveSuccessesNotDone = Success: removed ${grouperRequestContainer.stemContainer.successCount} inherited privileges. Still processing other child objects to remove privileges.
# success removing rules for inherited privileges
stemPrivilegesInheritedAddSuccesses = Success: added ${grouperRequestContainer.stemContainer.successCount} inherited privilege entries
stemPrivilegesInheritedAddSuccessesNotDone = Success: added ${grouperRequestContainer.stemContainer.successCount} inherited privilege entries, but sub-object assignments are still being processed
# assign folder privileges
stemPrivilegesInheritedAddStemPrivileges = Folder privileges:
# assign group privileges
stemPrivilegesInheritedAddGroupPrivileges = Group privileges:
# assign attribute definition privileges
stemPrivilegesInheritedAddAttributeDefPrivileges = Attribute privileges:
# add member button
stemPrivilegesInheritedAddMemberLink = Add
# assign to label
stemPrivilegesInheritedAssignTo = Assign to:
# one or all
stemPrivilegesInheritedLevels = Levels:
# description at top of stem privileges tab
stemPrivilegesInheritedDecription = The following table lists privileges assigned to objects in folder
# description at top of group privileges tab
groupPrivilegesInheritedFromFoldersDecription = The following table lists privileges assigned to this group inherited from a folder
# description at top of attributeDef privileges tab
attributeDefPrivilegesInheritedFromFoldersDecription = The following table lists privileges assigned to this attribute inherited from a folder
# description at top of stem privileges tab
stemPrivilegesInheritedFromFoldersDecription = The following table lists privileges assigned to this folder inherited from an ancestor folder
# description at top of subject priv
subjectPrivilegesInheritedFromFoldersDecription = The following table lists inherited privileges assigned to this subject
# menu item for subject privileges from folder
thisSubjectsPrivilegesFromFolders = This subject's privileges inherited from folders
# subtitle
subjectPrivilegesInheritedFromFoldersSubtitle = Note: you can only see entries in folders where you are the admin of relevant objects
# description at top of subject priv
assignedToGroupPrivilegesInheritedFromFoldersDecription = The following table lists inherited privileges assigned to members of this group
# subtitle
assignedToGroupPrivilegesInheritedFromFoldersSubtitle = Note: you can only see entries in folders where you are the admin of relevant objects
# menu item
inheritedPrivilgesAssignedToThisGroupFromFolders = Inherited privileges assigned to members of this group
# menu item
inheritedPrivilgesAssignedToThisLocalEntityFromFolders = Inherited privileges assigned to this local entity
# menu item
grouperMenuItemLoader = Loader
# subtitle
stemPrivilegesInheritedSubtitle = Note: you cannot edit an entry. You must create a new entry and delete the old one.
# subtitle
groupPrivilegesInheritedSubtitle = Note: you can create or delete inherited privileges in the folder screen.
# subtitle
stemPrivilegesInheritedFromStemSubtitle = Note: you can create or delete inherited privileges in the ancestor folder screen.
# subtitle
attributeDefPrivilegesInheritedSubtitle = Note: you can create or delete inherited privileges in the folder screen.
# if no inherited privileges
stemPrivilegesInheritedNone = There are currently no inherited privileges related to this folder.
# if no inherited privilege
subjectPrivilegesInheritedNone = There are currently no inherited privileges related to this subject.
# if no inherited privileges
groupPrivilegesInheritedNone = There are currently no inherited privileges related to this group.
# if no inherited privileges
stemPrivilegesInheritedFromStemNone = There are currently no inherited privileges from ancestor folders related to this folder.
# if no inherited privileges
attributeDefPrivilegesInheritedNone = There are currently no inherited privileges related to this attribute.
# description for all or one in levels for assignment
stemPrivilegesInheritedLevelsDecription = Assign these privileges to ALL objects in this folder or subfolders, or only to objects directly in this ONE folder
# when not selected the object type to assign to
stemPrivilegesInheritedAssignedToRequired = Error: object type to assign to is required
# column header of stem name
stemPrivilegesInheritColumnHeaderStemName = Folder
# column header of assigned to
stemPrivilegesInheritColumnHeaderAssignedTo = Entity
# column header of object type
stemPrivilegesInheritColumnHeaderObjectType = Object type
# column header of direct?
stemPrivilegesInheritColumnHeaderDirect = Assigned to
this folder
# column header of levels
stemPrivilegesInheritColumnHeaderLevels = Levels
# column header of privileges
stemPrivilegesInheritColumnHeaderPrivileges = Privileges
# labels for radio for levels
stemPrivilegesInheritOneLabel = One level, only assign to objects directly in this folder, not subfolders
stemPrivilegesInheritAllLabel = All levels, in this folder and subfolders
#if no privileges are selected
stemPrivilegesInheritAddMemberStemPrivRequired = Select at least one folder privilege
stemPrivilegesInheritAddMemberGroupPrivRequired = Select at least one folder privilege
stemPrivilegesInheritAddMemberAttributeDefPrivRequired = Select at least one attribute privilege
# more tab button link for groups privileges inherited from folders
thisGroupsPrivilegesFromFolders = This group's privileges inherited from folders
# more tab button link for groups privileges inherited from folders
thisLocalEntitiesPrivilegesFromFolders = This local entity's privileges inherited from folders
# more tab button link for stems privileges inherited from folders
thisFoldersPrivilegesFromFolders = This folder's privileges inherited from ancestor folders
# more tab button link for attribute actions
thisAttributeDefsActions = Attribute actions
# more tab button link for attributes privileges inherited from folders
thisAttributeDefsPrivilegesFromFolders = This attribute's privileges inherited from folders
# Button for miscellaneous
indexMiscellaneousButton = Miscellaneous
# miscellaneous breadcrumb
miscellaneousBreadcrumb = Miscellaneous
# Miscellaneous title
miscellaneousTitle = Miscellaneous
miscellaneousSubtitle = Functions across the repository
miscellaneousPageAdministrationHeader = Administration
# global inherited privileges
miscellaneousGlobalInheritedPrivileges = Inherited privileges
# description of global page
miscellaneousPrivilegesInheritedFromFoldersDecription = Privileges inherited from folders
miscellaneousPrivilegesInheritedFromFoldersSubtitle = Note: you can only see entries in folders where you are the admin of relevant objects. You can create or delete inherited privileges in the folder screen.
# no results
miscellaneousPrivilegesInheritedNone = There are currently no inherited privileges in the registry.
# breadcrumb
miscellaneousInheritedPrivilegesBreadcrumb = Inherited privileges
########################################
## Stem attribute assignments
########################################
# stem view attribute assignments table headers
stemViewAttributeAssignmentsColumnAssignmentType = Assignment Type
stemViewAttributeAssignmentsColumnAttributeName = Attribute name
stemViewAttributeAssignmentsColumnEnabled = Enabled
stemViewAttributeAssignmentsColumnAssignmentValues = Assignment values
stemViewAttributeAssignmentsColumnAttributeDefinition = Attribute definition
stemViewAttributeAssignmentsColumnAction = Choose action
stemAttributeAssignEnabledYes = Yes
stemAttributeAssignEnabledNo = No
# breadcrumb of the assign attribute screen
stemAssignAttributeBreadcrumb = Assign attribute
# title of assign attribute to stem screen
stemAssignAttributeTitle = Assign attribute
# owner folder label on assign attribute screen
stemAssignAttributeOwnerFolderLabel = Owner Folder:
# description text for owner folder
stemAssignAttributeOwnerFolderDescription = The folder which has attributes assigned to it. Enter a folder name or search for a folder.
Enter '$$stem.root.display-name$$' for the top level folder
# attribute def label on assign attribute screen
stemAssignAttributeAttributeDefLabel = Attribute definition:
# description text for attribute def
stemAssignAttributeAttributeDefDescription = The definition part of the attribute holds the settings, security, metadata. Generally attribute definitions have multiple attribute names.
# attribute name label
stemAssignAttributeAttributeDefNameLabel = Attribute name:
# attribute name description
stemAssignAttributeAttributeDefNameDescription = The attribute name is the part of the attribute which is assigned to owner objects. Generally multiple attribute names are related to one attribute definition.
# enabled date label
stemAssignAttributeEnabledDateLabel = Start date:
# enabled date description
stemAssignAttributeEnabledDateDescription = Start attribute assignment date.
# disabled date label
stemAssignAttributeDisabledDateLabel = End date:
# disabled date description
stemAssignAttributeDisabledDateDescription = End attribute assignment date.
# placeholder for start/end date
stemAssignAttributeDatePlaceholder = yyyy/mm/dd
# attribute def is required
stemAssignAttributeDefRequired = Error: valid attribute def is required
# folder is required
stemAssignAttributeStemIdRequired = Error: folder is required
# attribute def name is required
stemAssignAttributeAttributeDefNameRequired = Error: valid attribute def name is required
# can't find folder
stemAssignAttributeCantFindStemId = Error: Cannot find folder. Select a folder from the combobox results.
# enabled date/start date is not valid
stemAssignAttributeAttributeStartDateNotValid = Error: start date is not valid.
# disabled date/end date is not valid.
stemAssignAttributeAttributeEndDateNotValid = Error: end date is not valid.
# can't assign attribute because not multi-assignable
stemAssignAttributeNotMultiAssignableError = Error: the attribute is already assigned, and is not multi-assignable
# error assigning attribute to stem
stemAssignAttributeError = Error: could not assign attribute
# success assigning attribute to stem
stemAssignAttributeSuccess = Success: assigned attribute to stem.
########################################
## Rules
########################################
# type of rules then clause
rulesThenTypeGroup = Group
rulesThenTypeFolder = Folder
rulesThenTypeAttribute = Attribute
# direct assigned or not
rulesCheckDirect = Direct
rulesCheckIndirect = Indirect
# step scope check
rulesStemScopeOne = One
rulesStemScopeSub = All
# separate rules privileges with this separator
rulesPrivilegesSeparator = ,
########################################
## Stem move
########################################
# title of the move folder screen
stemMoveTitle = Move folder
# label for the move to this folder combobox
stemMoveIntoFolder = Move to this folder:
# stem move into folder instructions for combobox
stemMoveIntoFolderDescription = Enter a folder name or search for a folder where you are allowed to create new subfolders.
# label next to checkbox to change alternate names
stemMoveChangeAlternateNamesDescription = Set alternate names for groups?If you select this option, the alternate ID path of the groups being moved will be set to the groups' old ID path.
# generic insufficient privileges
stemMoveInsufficientPrivileges = Error: Insufficient privileges
# success the stem was copied
stemMoveSuccess = Success: the folder was moved
# stem move move button
stemMoveMoveButton = Move
# stem move cancel button
stemMoveCancelButton = Cancel
# stem move search for folder link
stemMoveSearchForFolderLink = Search for a folder
# stem move search for folder placeholder
stemMoveSearchForFolderPlaceholder = Search for a folder
########################################
## Group move
########################################
# title of the move group screen
groupMoveTitle = Move group
# label for the move to this folder combobox
groupMoveIntoFolder = Move to this folder:
# group move into folder instructions for combobox
groupMoveIntoFolderDescription = Enter a folder name or search for a folder where you are allowed to create new subfolders.
# label next to checkbox to change alternate names
groupMoveChangeAlternateNamesDescription = Set alternate names for groups?If you select this option, the alternate ID path of the groups being moved will be set to the groups' old ID path.
# generic insufficient privileges
groupMoveInsufficientPrivileges = Error: Insufficient privileges
# success the group was copied
groupMoveSuccess = Success: the group was moved
# group move move button
groupMoveMoveButton = Move
# group move cancel button
groupMoveCancelButton = Cancel
# group move search for folder link
groupMoveSearchForFolderLink = Search for a folder
# group move search for folder placeholder
groupMoveSearchForFolderPlaceholder = Search for a folder
########################################
## Stem search
########################################
# description on stem search modal window for creating new groups
stemSearchDescriptionNewGroups = The table below lists folders where you are allowed to create new groups.
# description on stem search modal window for creating new attribute def names
stemSearchDescriptionNewAttributeDefNames = The table below lists folders where you are allowed to create new attribute def names.
# description on stem search modal window for creating new folders
stemSearchDescriptionNewFolders = The table below lists folders where you are allowed to create new folders.
########################################
## Delete group
########################################
# title of the delete group screen
groupDeleteTitle = Delete group
# main text of the delete group screen
groupDeleteText = You are about to delete the this group and all its memberships. You cannot undo this operation. Are you sure you want to proceed?
# generic insufficient privileges
groupDeleteInsufficientPrivileges = Error: Insufficient privileges
# success the group was deleted
groupDeleteSuccess = Success: the group was deleted
# if there was an error deleting the group
groupErrorCantDelete = Error: there was a problem deleting the group
# title of the delete group screen
localEntityDeleteTitle = Delete local entity
# main text of the delete group screen
localEntityDeleteText = You are about to delete the this local entity. You cannot undo this operation. Are you sure you want to proceed?
# generic insufficient privileges
localEntityDeleteInsufficientPrivileges = Error: Insufficient privileges
# success the group was deleted
localEntityDeleteSuccess = Success: the local entity was deleted
# if there was an error deleting the group
localEntityErrorCantDelete = Error: there was a problem deleting the local entity
########################################
## New Stem
########################################
# when clicking on disabled id field, this will tell the user to check the checkbox
stemNewAlertWhenClickingOnDisabledId = Select the checkbox to edit the ID
# click this checkbox to edit the id
stemNewEditTheId = Edit the ID
# menu button to create new folder
stemNewCreateNewStemMenuButton = Create new folder
# title of the new stem screen
stemNewBreadcrumb = New folder
# title of the new stem screen
stemNewTitle = New folder
# generic insufficient privileges
stemCreateInsufficientPrivileges = Error: Insufficient privileges
# success the group was created
stemCreateSuccess = Success: the folder was created
# if there was an error creating the stem
stemErrorCantCreate = Error: there was a problem creating the folder
# new folder folder instructions for combobox
stemCreateIntoFolderDescription = Enter a folder name or search for a folder where you are allowed to create new folders.
Enter '$$stem.root.display-name$$' for the top level folder
# title of modal dialog to search for folder
stemCreateSearchForFolderTitle = Search for a folder
# placeholder in textfield to search for a folder
stemCreateSearchPlaceholder = Search for a folder
# button text for search button
stemCreateSearchButton = Search
# button text for closing the search modal
stemCreateSearchClose = Close
# label for the create in folder combo
stemCreateFolderLabel = Create in this folder:
# label for the stem display extension textfield
stemCreateNameLabel = Folder name:
# description help for the folder display extension textfield
stemCreateNameDescription = Name is the label that identifies this folder, and might change.
# label for the stem alternate name textfield
stemCreateAlternateNameLabel = Alternate ID path:
# description help for the folder alternate name textfield
stemCreateAlternateNameDescription = Alternate ID path allows folders to be searchable using an alternate name. The format is the same as the format of ID path.
# label for the group alternate name checkbox textfield
stemRenameUpdateAlternateNameLabel = Update alternate ID path:
# description help for the folder alternate name checkbox
stemRenameUpdateAlternateNameDescription = Alternate ID path allows groups and folders to be searchable using an alternate name. If you select this option when renaming a folder, the alternate ID path of this folder and objects under this folder will be set to the objects' old ID path.
# label for the stem extension textfield
stemCreateIdLabel = Folder ID:
# description help for the stem id textfield
stemCreateIdDescription = ID is the unique identifier for this folder. It should be short and simple, and might have character restrictions. The ID should rarely change, if ever.
# label for the description textfield
stemCreateDescriptionLabel = Description:
# description for the description textfield
stemCreateDescriptionDescription = Description contains notes about the folder, which could include: what the folder represents, why it was created, etc.
# button text for save button
stemCreateSaveButton = Save
# button text for cancel button
stemCreateCancelButton = Cancel
# cant find parent folder
stemCreateCantFindParentStemId = Error: Cannot find parent folder. Select a folder from the combobox results.
# if a stem with that name already exists
stemCreateCantCreateAlreadyExists = Error: A folder with that ID in the parent folder already exists
# error creating the stem
stemCreateError = Error creating folder
# error that stem id is required
stemCreateErrorExtensionRequired = Error: folder ID is required
# folder is required
stemCreateRequiredParentStemId = Error: parent folder is required
# error that group display extension is required
stemCreateErrorDisplayExtensionRequired = Error: folder name is required
########################################
## Permissions
########################################
# title of the group permissions screen
groupPermissionsTitle = Role permissions
# title of the subject permissions screen
subjectPermissionsTitle = Subject permissions
# text underneath the title on the group permissions screen
groupPermissionsDescription = Permissions assigned to roles are inherited to all entities who are members of the role
# text underneath the title on the subject permissions screen
subjectPermissionsDescription = Permissions assigned to roles are inherited to all entities who are members of the role
# text to show on the permissions screen when group is not marked as role
groupPermissionsGroupNotRoleText = This group cannot have permissions since it is not marked as a "role"
# text to show on the view permissions screen when there are no permissions assigned
groupViewPermissionsNoAssignedPermissions = No permissions assigned
# convert group to role button
groupPermissionsGroupToRoleButton = Convert to role
# more action buttons on group screen
groupPermissionViewMoreActionsButton = Permission actions
# aria label accessibility for more actions for this group
ariaLabelGuiMoreGroupPermissionActions = Show permission actions
# button to assign permission
groupPermissionnMoreActionsAssignPermission = Assign permission
# button to view assigned permissions
groupPermissionnMoreActionsViewPermission = View permissions
# error when trying to assign permission to group instead of role
groupPermissionErrorNotRole = Permissions cannot be assigned to groups.
# name of permission def for group
groupAssignPermissionPermissionDefLabel = Permission def
# name of permission def for subject
subjectAssignPermissionPermissionDefLabel = Permission def
# description for the permission def
groupAssignPermissionPermissionDefDescription = The definition part of the permission holds the settings, security, metadata. Generally permission definitions have multiple permission resources.
# description for the permission def
subjectAssignPermissionPermissionDefDescription = The definition part of the permission holds the settings, security, metadata. Generally permission definitions have multiple permission resources.
# name of resource
groupAssignPermissionResourceLabel = Resource name
# name of resource
subjectAssignPermissionResourceLabel = Resource name
# description for the resource name
groupAssignPermissionResourceDescription = The permission resource is the part of the permission which is assigned to owner objects. Generally multiple permission resources are related to one permission definition.
# description for the resource name
subjectAssignPermissionResourceDescription = The permission resource is the part of the permission which is assigned to owner objects. Generally multiple permission resources are related to one permission definition.
# action label
groupAssignPermissionActionLabel = Action
# action label
subjectAssignPermissionActionLabel = Action
# action description
groupAssignPermissionActionDescription = A permission assignment has multiple parts, the role, or entity (in the context of a role), the resource, and the action. For example, the role might be Payroll User, the entity might be John Smith, the resource might be Org123, and the action might be Read or Write. The permission definition defines which actions are available for that definition. The list of actions is free-form. Generally there are not more than a few dozen actions for a permission definition.
# action description
subjectAssignPermissionActionDescription = A permission assignment has multiple parts, the role, or entity (in the context of a role), the resource, and the action. For example, the role might be Payroll User, the entity might be John Smith, the resource might be Org123, and the action might be Read or Write. The permission definition defines which actions are available for that definition. The list of actions is free-form. Generally there are not more than a few dozen actions for a permission definition.
# allowed label
groupAssignPermissionAllowedLabel = Allowed
# allowed label
subjectAssignPermissionAllowedLabel = Allowed
# allow option
groupAssignPermissionAllowLabel = Allow
# allow option
subjectAssignPermissionAllowLabel = Allow
# disallow option
groupAssignPermissionDisallowLabel = Disallow
# disallow option
subjectAssignPermissionDisallowLabel = Disallow
# description for allowed field
groupAssignPermissionAllowedDescription = Normally a permission assignment will be allow. The default is for the permission to not be allowed. But if you have inheritance, and you want to allow a wider set, and restrict a part, then disallow here. For example you could allow All and disallow one part of All.
# description for allowed field
subjectAssignPermissionAllowedDescription = Normally a permission assignment will be allow. The default is for the permission to not be allowed. But if you have inheritance, and you want to allow a wider set, and restrict a part, then disallow here. For example you could allow All and disallow one part of All.
# role label
subjectAssignPermissionRoleLabel = Role
# description for role field
subjectAssignPermissionRoleDescription = The role is a special type of Group which can associate members with permissions or allow members to have individual permissions assigned in the context of the role.
# error when trying to enter action without selecting permission definition or resource
groupAssignPermissionErrorNoPermDefOrResource=Error: To filter by action, select a permission definition or permission resource
# assign permission save button
groupAssignPermissionSaveButton = Save
# assign permission save button
subjectAssignPermissionSaveButton = Save
# assign permission cancel button
groupAssignPermissionCancelButton = Cancel
# error when action is left blank on assign permission to group screen
groupAssignPermissionBlankActionError = Error: action is required
# error when action is left blank on assign permission to subject screen
subjectAssignPermissionBlankActionError = Error: action is required
# error when role is left blank on assign permission to subject screen
subjectAssignPermissionBlankRoleError = Error: role is required
# error when group is not of type role on assign permission to subject screen
subjectAssignPermissionGroupNotTypeRoleError = Error: group not of type role
# error when invalid permission def on the group assign permission form
groupAssignPermissionInvalidPermissionDefError = Error: Invalid permission def
# error when invalid permission def on the subject assign permission form
subjectAssignPermissionInvalidPermissionDefError = Error: Invalid permission def
# error when invalid permission resource name on the group assign permission form
groupAssignPermissionInvalidPermissionResourceNameError = Error: Invalid permission resource name
# error when invalid permission resource name on the subject assign permission form
subjectAssignPermissionInvalidPermissionResourceNameError = Error: Invalid permission resource name
# error when invalid action on assign permission to group form
groupAssignPermissionInvalidActionError = Error: invalid action
# error when invalid action on assign permission to subject form
subjectAssignPermissionInvalidActionError = Error: invalid action
# error when subject being assigned permission is not a member of selected role.
subjectAssignPermissionSubjectNotMemberOfRole = Error: subject is not a member of the role.
# assign permission to group success
groupAssignPermissionSuccess = Success: assigned permission to group
# assign permission to subject success
subjectAssignPermissionSuccess = Success: assigned permission to subject
# group was converted to role successfully
groupConvertedToRoleSuccess = Success: group converted to role
# actions header in the view permissions table
groupViewPermissionsColumnActionsHeader = Actions
# role name in the view permissions table
groupViewPermissionsColumnRoleName = Role
# resource name in the view permissions table
groupViewPermissionsColumnResourceName = Resource
# permission definition in the view permissions table
groupViewPermissionsColumnPermissionDefinition = Permission Definition
########################################
## Attestation
########################################
# title of the group attestation screen
groupAttestationTitle = Group attestation
# edit attestation group screen
groupAttestationEditTitle = Edit group attestation
# title of the stem attestation screen
stemAttestationTitle = Stem attestation
# attestation button
attestationButton = Attestation
# label for the direct assignment checkbox
attestationDirectAssignmentLabel = Attestation
# description help for the direct assignment checkbox
attestationDirectAssignmentDescription = Has direct attestation configuration instead of inheriting from a folder or none
# if attestation is assigned (drop down on edit screen)
grouperAttestationNoDoesNotHaveAttestationLabel = No, does not have attestation directly assigned
grouperAttestationYesHasAttestationLabel = Yes, does have attestation directly assigned
# description under the attestation drop down
grouperAttestationHasAttestationDescription = If this group has attestation configured on it directly, not inherited from ancestor folder
grouperAttestationStemHasAttestationDescription = If this folder has attestation configured on it directly, not inherited from ancestor folder
# if should send email
grouperAttestationNoDoNotSendEmailLabel = No, do not send email alerts
grouperAttestationYesSendEmailLabel = Yes, send email alerts (recommended)
# description under the attestation drop down
grouperAttestationSendEmailDescription = If email alerts should be sent out to people who need to review the membership
# attestation type
grouperAttestationTypeGroupLabel = Attest group memberships
grouperAttestationTypeReportLabel = Attest a report
# description under the attestation drop down
grouperAttestationTypeDescription = Whether this attestation is based on group memberships or based on the results of a report
# description under attestation report
grouperAttestationReportConfigurationDescription = The name of the report to be attested
# description under authorized group
grouperAttestationAuthorizedGroupDescription = The name of the group that is authorized to attest this report
# error message to add email addresses if emailing list
grouperAttestationEmailAddressesRequired = Email addresses are required
# error message to add email grop if not emailing a group
grouperAttestationEmailGroupRequired = Email group is required
grouperAttestationEmailGroupCantRead = You need to be able READ the email group (Grouper privilege)
# error message to add report if using report
grouperAttestationReportNameRequired = Report name is required
# error message to add authorized group if using report
grouperAttestationAuthorizedGroupRequired = Authorized group is required
# if we should set the recertify date to today
grouperAttestationMarkAsReviewedLabel = Mark this group as reviewed
grouperAttestationMarkStemAsReviewedLabel = Mark groups as reviewed
grouperAttestationReportMarkStemAsReviewedLabel = Mark report as reviewed
# stem scope label
grouperAttestationStemScopeLabel = Folder scope
grouperAttestationStemScopeDescription = Do these attestation settings affect groups in this folder and all subfolders (default) or only groups directly in this folder
grouperAttestationYesStemScopeLabel = All groups in this folder or subfolders
grouperAttestationNoStemScopeLabel = Only groups directly in this folder
# Mark this groups last recertify date as today
grouperAttestationMarkAsReviewedDescription = Mark this group's last certified date as today
grouperAttestationMarkStemAsReviewedDescription = For the groups in this folder, mark the last certified date as today
grouperAttestationReportMarkStemAsReviewedDescription = Mark this folder's last certified date as today
# drop down for if should email group managers
grouperAttestationYesMarkAsReviewedLabel = Yes, mark this group as reviewed
grouperAttestationNoDontMarkAsReviewedLabel = No, do not mark this group as reviewed
grouperAttestationYesStemMarkAsReviewedLabel = Yes, mark these groups as reviewed
grouperAttestationNoStemDontMarkAsReviewedLabel = No, do not mark these groups as reviewed
grouperAttestationReportYesStemMarkAsReviewedLabel = Yes, mark this report as reviewed
grouperAttestationReportNoStemDontMarkAsReviewedLabel = No, do not mark this report as reviewed
# if should email group managers
attestationEmailManagersLabel = Email type
attestationReportEmailManagersLabel = Email authorized group members
# drop down for if should email group managers
grouperAttestationDontEmailManagersLabel = No, email a custom list of email addresses
grouperAttestationReportEmailManagersLabel = Yes, email the authorized group members
grouperAttestationEmailCustomListLabel = Email a custom list of email addresses
grouperAttestationEmailManagersLabel = Email the group admins and updaters
grouperAttestationEmailGroupLabel = Email members of a group (recommended)
# description of email group managers field
grouperAttestationEmailManagersDescription = Email the group managers (people who can ADMIN or UPDATE), a custom email list, or members of a group (recommended)
grouperAttestationReportEmailManagersDescription = If the authorized group members should be emailed when attestation is due
# description of email addresses field
grouperAttestationEmailAddressesDescription = Enter comma separated email addresses if not emailing the group managers
grouperAttestationEmailGroupDescription = Email the members of the specified group, who are able to UPDATE/ADMIN this group (with attestation) but are likely a subset of everyone allowed. Generally this would be one or two responsible parties which means the specified group has one or two members.
grouperAttestationReportEmailAddressesDescription = Enter comma separated email addresses if not emailing the authorized group members
# remove direct attestation configuration
grouperAttestationEditRemoved = The attestation configuration assigned to this group was removed
# when attestation is saved
grouperAttestationEditSaveSuccess = Attestation configuration was saved
grouperAttestationEditSaveSuccessNotFinished = Attestation configuration was saved but descendant groups are still being processed...
# save button for attestation
grouperAttestationEditButtonSave = Save
# cancel button for attestation
grouperAttestationEditButtonCancel = Cancel
# label for the send email checkbox
attestationSendEmailLabel = Send email
# label for the type drop down
attestationTypeLabel = Attestation type
# label for the report configuration drop down
attestationReportConfigurationLabel = Report name
# label for the authorized group text field
attestationAuthorizedGroupLabel = Authorized group
# description help for the send email checkbox
attestationSendEmailDescription = Send email?
# label for the email addresses textfield
attestationEmailAddressesLabel = Email addresses (comma separated)
# description help for the email addresses textfield
attestationEmailAddressesDescription = Comma separated email addresses to send reminders to. If not set, then get email addresses from list of Admins and Read/Update users.
# label for the email addresses textfield
attestationEmailGroupLabel = Email group
# description help for the email addresses textfield
attestationEmailGroupDescription = Group of people to send attestation emails to. The email will go to the members of this group
#default certify label
attestationDefaultCertifyLabel = Use default recertify days
# if use the default certify time
attestationDoDefaultCertifyLabel = Yes, use default recertify days (${grouperRequestContainer.attestationContainer.defaultRecertifyDays} days)
# if not using default certify days
attestationDontDefaultCertifyLabel = No, use custom recertify days
# if use the default certify time
attestationDefaultCertifyDescription = Use the system wide default of ${grouperRequestContainer.attestationContainer.defaultRecertifyDays} days for recertification
# label for the days until rectify textfield
attestationDaysUntilRecertifyLabel = Days until recertify
# description help for the days until rectify textfield
attestationDaysUntilRecertifyDescription = Number of days until need to recertify from last certification
# custom recertify days must be greater than zero
attestationCustomRecertifyDaysGreaterThanZero = Days until recertify must be greater than 0
# days until recertify must be numberic
attestationCustomRecertifyDaysNumeric = Days until recertify must be numeric
# label for attestation status
attestationStatusLabel = Attestation status
attestationStatusDescription = If this group's memberships need to be reviewed
attestationReportStatusDescription = If this report needs to be reviewed
# label for has attestation
attestationHasAttestationLabel = Has attestation
attestationHasAttestationDescription = If configured to be attested. It is possible that attestation is configured to be off.
# if attestation is ok or not
attestationHasAttestationYes = Yes, attestation is enabled
attestationHasAttestationNo = No, attestation is not enabled
# if attestation is ok or not
attestationStatusOk = OK, this group's memberships do not need to be reviewed
attestationStatusNotOk = Overdue, this group's memberships need to be reviewed
attestationReportStatusOk = OK, this report does not need to be reviewed
attestationReportStatusNotOk = Overdue, this report needs to be reviewed
# days until recertify required
attestationCustomRecertifyDaysRequired = Days until recertify is required
# label for the last emailed date textfield
attestationLastEmailedDateLabel = Last emailed date
# description help for the last emailed date textfield
attestationLastEmailedDateDescription = The most recent date that group admins were emailed to ask them to review this group's memberships
attestationReportLastEmailedDateDescription = The most recent date that the authorized group members were emailed to ask them to review this report
# label for the days before attestation reminder textfield
attestationDaysBeforeToRemindLabel = Days before attestation reminder
# label for the days before attestation needed
attestationDateNeedsRecertifyLabel = Date needs recertify
# label for the days before attestation needed
attestationDateNeedsRecertifyDescription = Date this group needs to be recertified
attestationReportDateNeedsRecertifyDescription = Date this report needs to be recertified
# label for the days before attestation needed
attestationDaysLeftUntilRecertifyLabel = Days left until recertify
# description for the days before attestation needed
attestationDaysLeftUntilRecertifyDescription = Number of days left before this group needs to be recertified. 0 means overdue. This is computed by the attestation daemon which runs nightly.
attestationReportDaysLeftUntilRecertifyDescription = Number of days left before this report needs to be recertified. 0 means overdue. This is computed by the attestation daemon which runs nightly.
# description help for the days before attestation reminder textfield
attestationDaysBeforeToRemindDescription = number of days before attestation to start sending emails about it
# label for the stem scope textfield
attestationStemScopeLabel = Stem scope
# description help for the stem scope textfield
attestationStemScopeDescription = one|sub (for folders only, scope one level or all levels). Default to all levels
# label for the update last certified date checkbox
attestationUpdateLastCertifiedLabel = Update the last certified date
# description help for the update last certified date checkbox for group
attestationUpdateLastCertifiedDescription = Update the last certified date for this group to today's date
# description help for the update last certified date checkbox for folder
attestationUpdateLastCertifiedFolderDescription = Update the last certified date for this folder's groups to today's date
# label for the last date certified textfield
attestationDateCertifiedLabel = Last date certified
# description help for the last date certified textfield
attestationDateCertifiedDescription = Last date this group's memberships were reviewed and marked as certified
attestationReportDateCertifiedDescription = Last date this report was reviewed and marked as certified
# button text to configure attestation for a group
configureAttestationGroupButton = Configure attestation for this group
# button text to configure attestation for a folder
configureAttestationStemButton = Configure attestation for this folder
# button text to configure attestation for a folder
configureAttestationFolderButton = Configure attestation for this folder
# button text to update the attestationDateCertified attribute for a group
updateAttestationDateCertifiedGroupButton = Members of this group have been reviewed
# button text to update the attestationDateCertified attribute for all groups under this folder
updateAttestationCertifyAllGroupsUnderThisFolderButton = Certify this folder's groups
# button text to update the attestationDateCertified attribute for all groups which are not certified
updateAttestationCertifyUncertifiedGroupsUnderThisFolderButton = Certify this folder's uncertified groups
# button text for the edit button for attestation
editAttestationGroupButton = Edit Attestation
# error message when attestation attribute doesn't exist
attestationAttributeNotFoundError = Error: etc:attribute:attestation:attestation attribute doesn't exist
# error message when group doesn't have attestation
noDirectAttestationAttributeOnGroupError = Error: No direct attestation is configured on this group
# error message when etc:attribute:attestation:attestation is assigned to something other than Group or Stem (not in use)
attestationAttributeAssignedError = Error: etc:attribute:attestation:attestation can only be assigned to Groups or Stems
# validation error message when daysUntilRectify is not a number
attestationDaysUntilRectifyValidationError = Error: Days until rectify field can only be a number
# validation error message when daysBeforeReminder is not a number
attestationDaysBeforeReminderValidationError = Error: Days before reminder field can only be a number
# success message when the attestation last certified is updated
attestationLastCertifiedUpdateSuccess = Success: Updated last certified date
# if attestation is configured
attestationConfiguredForGroup = This group has attestation configured directly on this group
attestationConfiguredOnGroupForAncestorStem = This group has attestation configured on ancestor folder ${grouperRequestContainer.attestationContainer.parentGuiStemWithAttestation.shortLinkWithIcon}
noAttestationConfiguredOnGroup = No attestation is configured on this group or parent folder
attestationConfiguredForStem = This folder has attestation configured directly on this folder
attestationConfiguredOnStemForAncestorStem = This folder has attestation configured on ancestor folder ${grouperRequestContainer.attestationContainer.parentGuiStemWithAttestation.shortLinkWithIcon}
noAttestationConfiguredOnStem = No attestation is configured on this folder or parent folder
# aria label accessibility for more actions for this group
ariaLabelGuiMoreGroupAttestationActions = Show attestation actions
ariaLabelGuiMoreStemAttestationActions = Show attestation actions
ariaLabelGuiMoreOverallAttestationActions = Show attestation actions
# more action buttons on group screen
groupAttestationViewMoreActionsButton = Attestation actions
stemAttestationViewMoreActionsButton = Attestation actions
# buttons in attestation drop down
groupAttestationMoreActionsEditAttestation = Edit attestation settings
stemAttestationMoreActionsEditAttestation = Edit attestation settings
# buttons to view attestation
groupAttestationMoreActionsViewAttestation = View attestation settings
stemAttestationMoreActionsViewAttestation = View attestation settings
# run the daemon
groupAttestationMoreActionsRunDaemon = Run attestation daemon
# daemon messages to screen
groupAttestationSuccessDaemonRan = Success: daemon ran successfully
groupAttestationInfoDaemonInRunning = Note: daemon is running, took too long so it will continue to run
# buttons in attestation drop down view ancentor attestation
groupAttestationMoreActionsViewFolderAttestation = View folder attestation
stemAttestationMoreActionsViewFolderAttestation = View folder attestation
# make this group require attestation
groupAttestationMoreActionsClearAttestation = Clear last reviewed date
# success message for clearing attestation date
groupAttestationSuccessClearedAttestationDate = Success: Attestation was cleared for this group
# attest the group
groupAttestationMoreActionsAttestGroup = Attest group as reviewed
# group view audit log button
groupAttestationViewAuditButton = View audit log
# audit log title
attestationAuditLogDescription = Attestation audit logs
# labels in group screen if needs review
attestationGroupNeedsAttestationNow = Attention: this group's memberships need to be attested now.
attestationGroupNeedsAttestationSoon = Attention: this group's memberships need to be attested soon.
# button to attest group
groupAttestationMarkAsReviewed = Mark group as reviewed
# labels if report needs to be reviewed
attestationReportNeedsAttestationNow = Attention: this report need to be attested now.
attestationReportNeedsAttestationSoon = Attention: this report need to be attested soon.
# button to attest report
reportAttestationMarkAsReviewed = Mark report as reviewed
# attestation link on the misc page
miscAttestationLink = Attestation
# attestation overall breadcrumb
miscellaneousAttestationOverallBreadcrumb = Attestation
# attestation overall title
miscellaneousAttestationOverallDecription = Groups that need attestation
miscellaneousAttestationOverallSubtitle = Groups that have attestation assigned that you can READ and UPDATE with less than two weeks remaining until certification required
# attestation overall settings title
miscellaneousAttestationOverallSettingsDecription = Attestation settings
miscellaneousAttestationOverallSettingsSubtitle = Folders and groups that you can READ and UPDATE with attestation settings configured
# days until recertify
grouperAttestationOverallColumnTooltipDaysUntilRecertify = Number of days until needs certification. Or use the default (${grouperRequestContainer.attestationContainer.defaultRecertifyDays} days)
grouperAttestationOverallColumnHeaderDaysUntilRecertify = Days until recertify
grouperAttestationOverallColumnDefaultRecertify = Default: ${grouperRequestContainer.attestationContainer.defaultRecertifyDays}
# enabled
grouperAttestationOverallColumnTooltipEnabled = If attestation is enabled
grouperAttestationOverallColumnHeaderEnabled = Enabled
grouperAttestationOverallColumnEnabled = true
grouperAttestationOverallColumnNotEnabled = false
# e.g. stem scope is not applicable for groups
grouperAttestationOverallSettingsNotApplicable = Not applicable
# stem scope
grouperAttestationOverallColumnTooltipStemScope = This is either SUB (default) for all subfolders or ONE for inheritance one level deep
grouperAttestationOverallColumnHeaderStemScope = Folder inheritance
grouperAttestationOverallColumnScopeDefault = Default: SUB
# attestation settings screen send email?
grouperAttestationOverallColumnTooltipSendEmail = Send email reminders when attestation is needed
grouperAttestationOverallColumnHeaderSendEmail = Send email?
grouperAttestationOverallColumnDefaultSendEmail = Default: true
# attestation settings screen email addresses
grouperAttestationOverallColumnTooltipEmailAddresses = Blank is the default, email group ADMINS and UPDATERS. Otherwise specify email addresses to send reminders to
grouperAttestationOverallColumnHeaderEmailAddresses = Email addresses
grouperAttestationOverallColumnDefaultEmailAddresses = Default: send to group managers
# attestation overall no groups
miscellaneousAttestationOverallNoGroups = No groups found
miscellaneousAttestationOverallNoSettings = No settings found
# attestation overall column headers and tooltips
grouperAttestationOverallColumnTooltipGroup = Group that you can READ or UPDATE that has attestation assigned
grouperAttestationOverallColumnHeaderGroup = Group
# attestation overall column headers and tooltips
grouperAttestationOverallColumnTooltipOwner = Folder or group which you can ADMIN or READ which has attestation settings
grouperAttestationOverallColumnHeaderOwner = Folder or group
# overall screen column for days left until recertify
grouperAttestationOverallColumnTooltipDaysLeftUntilNeedsAttestation = Number of days left before this group needs to be recertified. 0 means overdue. This is computed by the attestation daemon which runs nightly.
grouperAttestationOverallColumnHeaderDaysLeftUntilNeedsAttestation = Days left until recertify
# overall screen column for needs attestation
grouperAttestationOverallColumnTooltipNeedsAttestation = If this group's memberships need to be reviewed. OK means does not need attestation. Overdue means it needs attestation.
grouperAttestationOverallColumnHeaderNeedsAttestation = Attestation status
# if attestation is ok or not
grouperAttestationOverallColumnStatusOk = OK
grouperAttestationOverallColumnStatusNotOk = Overdue
# last certified date
grouperAttestationOverallColumnHeaderLastCertifiedDate = Last date certified
grouperAttestationOverallColumnTooltipLastCertifiedDate = Last date this group's memberships were reviewed and marked as certified
# view all button on group or stem
groupAttestationViewAllButton = View all attestable groups
# view groups in folder with groups that need attestation
groupAttestationViewGroupsInStem = This folder's attestable groups
# title of stem groups attestation
stemAttestationGroupsTitle = This folder's attestable groups
stemAttestationGroupsDescription = Groups in this folder that have attestation assigned that you can READ or UPDATE with less than two weeks remaining until certification required
# overall more actions all settings
groupAttestationOverallMoreActionsAllSettings = Folders and groups with settings
# stem groups and stems with settings
groupAttestationStemMoreActionsSettings = Sub-folders and sub-groups with settings
# title of stem attestation settings
stemAttestationSettingsTitle = Attestation settings on objects in this folder
stemAttestationSettingsDescription = Folders and groups in this folder with attestation settings including this folder itself.
########################################
## Deprovisioning
########################################
## if there is
## deprovisioningAffiliationLabel_ = My affiliation
## deprovisioningAffiliationLabel_employee = Employees
## then that will be shown wherever the label for the affiliation "employee" on the UI
# main link on the misc screen about deprovisioning
deprovisioningMainLink = Deprovisioning
# label to select affiliation
deprovisioningSelectAffiliationLabel = Affiliation
# description below the select affiliation dropdown
deprovisioningSelectAffiliationDescription = Select an affiliation to deprovision. These are configured by the admin.
# submit button on Select Affiliation screen
deprovisioningSelectAffiliationSubmitButton = Submit
# error message when no affiliation is selected
deprovisioningNoAffiliationSelected = Please select a valid affiliation
# more actions button for deprovisioning
ariaLabelGuiMoreDeprovisionMainActions = Show more actions for deprovisioning
# more actions button for deprovisioning
deprovisioningMainMoreActionsButton = Deprovisioning actions
# more actions button main link for deprovisioning
deprovisioningMainMoreActionsDefault = Recently deprovisioned entities
# if there are no recently deprovisioned users
deprovisioningMainNoMembers = There are no recently deprovisioned users
# in the list of recently deprovisioned users, this is the subject col
deprovisioningMainColumnTooltipSubject = The user who has been recently deprovisioned
# header of the deprovisioned columns
deprovisioningMainColumnHeaderSubject = Deprovisioned users
# deprovision a user
deprovisioningMainMoreActionsDeprovision = Deprovision User
# deprovisioning user search
deprovisioningUserSearchBreadcrumb = Deprovision user
# deprovision user title
deprovisioningUserSearchDecription = Deprovision user
# subtitle on deprovision user screen
deprovisioningUserSearchSubtitle = Search for a user to view their access and deprovision them
# submit the user search form
deprovisionUserSubmitButton = View user access to deprovision
# deprovisioning cant find user
deprovisioningCantFindSubject = Cannot find user
# deprovision user and remove from groups button
deprovisionUserDeprovisionButtonSubmit = Deprovision user and remove access
# object could be group, folder, attribute definition
deprovisioningObjectColumn = Object
# object type could be group, folder, attribute definition
deprovisioningObjectTypeColumn = Object type
# object type of assignment
deprovisioningObjectType_group = Group
deprovisioningObjectType_stem = Folder
deprovisioningObjectType_attributeDef = Attribute
# if use is a member of a group
deprovisioningMemberColumn = Group
Member?
# not a group
deprovisioningMemberColumnCantBeMember = NA
deprovisioningMemberColumnIsMember = true
deprovisioningMemberColumnIsNotMember = false
# privileges a user has
deprovisioningPrivilegeColumn = Privileges
# description of deprovisioning screen
deprovisioningUserResultsDescription = Below are the directly assigned memberships and privileges. Objects which are restricted from deprovisioning are not shown by default.
# description of deprovisioning screen
deprovisioningUserGroupReportDescription = Deprovisioning report on group
# description of deprovisioning screen
deprovisioningUserAttributeDefReportDescription = Deprovisioning report on attribute definition
# deprovision access
deprovisionUserDeprovisionReportButtonSubmit = Remove access
# deprovision access
deprovisionReportUpdateCertifyDateButtonSubmit = Certify that these entries should remain
# deprovision access
deprovisionReportDescription = This report shows assignments to entities who have been deprovisioned. This means they no longer have the affiliation at your institution. Generally you sould remove all access that deprovisioned entities have. Do this by checking the checkboxes and clicking "Remove access". If access should not be removed, then instead, click "Certify that these entries should remain". You will not receive an email about these privileges again until other entities are deprovisioned.
# deprovision column subject
deprovisioningSubjectColumn = Entity
# deprovisioning from column
deprovisioningFromColumn = Deprovisioned
affiliations
# link on misc screen about deprovisioning
miscDeprovisioningLink = Deprovisioning
# breadcrumb on misc deprovisioning screen
miscellaneousDeprovisioningOverallBreadcrumb = Deprovisioning
# title of deprovisioning page
miscellaneousDeprovisioningMainDecription = Deprovisioning
miscellaneousDeprovisioningUsersDecription = Deprovision a user
miscellaneousDeprovisioningViewRecentDecription = View deprovisioned users
# subtitle of deprovisioning page
miscellaneousDeprovisioningMainSubtitle = Identify users who need access to services removed
miscellaneousDeprovisioningUsersSubtitle = Deprovision a user who has left the institution
miscellaneousDeprovisioningViewRecentSubtitle = Users who have been deprovisioned recently
# reason to deprovision
deprovisionUserNotesLabel = Reason:
# the user was deprovisioned
deprovisioningDeprovisionSuccess = Success: the user was deprovisioned
# error occurred while deprovisioning a user
deprovisioningDeprovisionError = Error: the user was not deprovisioned. Please try again later.
# error no members selected
deprovisioningNoMembersSelected = Error: select at least one entity to remove access
# success from deprovisioning from report
deprovisioningDeprovisionFromReportSuccess = Success: deprovisioned entities had access removed
# error from removing access from report
deprovisioningDeprovisionFromReportError = Error: there was an error removing access from deprovisioned users
# success message when the deprovisioning last certified is updated
deprovisioningLastCertifiedUpdateSuccess = Success: Updated last certified date for deprovisioning
deprovisioningLastCertifiedClearSuccess = Success: Cleared last certified date for deprovisioning
# in the more actions menu for groups/folders/attributes
deprovisioningMoreActionsMenuLabel = Deprovisioning
# if the attribute dont exist. they should, wonder why not
deprovisioningAttributeNotFoundError = Error: deprovisioning attributes do not exist
# if deprovisioning is not enabled
deprovisioningNotEnabledError = Error: deprovisioning is not enabled
# title of the stem deprovisioning screen
deprovisioningStemSettingsTitle = Folder deprovisioning settings
# title of the group deprovisioning screen
deprovisioningGroupSettingsTitle = Group deprovisioning settings
# title of the attribute def deprovisioning screen
deprovisioningAttributeDefSettingsTitle = Attribute definition deprovisioning settings
# aria label for deprovisioning action (context menu)
ariaLabelGuiMoreDeprovisioningActions = Show deprovisioning actions
# more actions menu view more actions
deprovisioningMoreActionsButton = Deprovisioning actions
# more actions menu view more actions
deprovisioningMoreActionsStemSettings = View deprovisioning settings
# more actions menu edit more actions
deprovisioningMoreActionsStemEditSettings = Edit deprovisioning settings
# more actions menu view more actions
deprovisioningMoreActionsAttributeDefSettings = View deprovisioning settings
# more actions menu edit more actions
deprovisioningMoreActionsAttributeDefEditSettings = Edit deprovisioning settings
# more actions menu view more actions
deprovisioningMoreActionsGroupSettings = View deprovisioning settings
# more actions menu edit more actions
deprovisioningMoreActionsGroupEditSettings = Edit deprovisioning settings
# more actions menu edit more actions
deprovisioningMoreActionsOverallDeprovision = Deprovisioning main
# deprovisioning affiliation label
deprovisioningAffiliationLabel = Affiliation
# deprovisioning none configured label
deprovisioningNoneAllConfigured = No deprovisioning is configured for any affiliation on this object or any parent folder
# deprovisioning not allowed write label folder
deprovisioningNotAllowedToWriteDeprovisioningFolder = Error: not allowed to edit deprovisioning. You need the ADMIN privilege on the folder.
# deprovisioning not allowed read label folder
deprovisioningNotAllowedToReadDeprovisioningFolder = Error: not allowed to read deprovisioning. You need the ADMIN privilege on the folder.
# deprovisioning not allowed write label group
deprovisioningNotAllowedToWriteDeprovisioningGroup = Error: not allowed to edit deprovisioning. You need the READ/UPDATE privilege on the group.
# deprovisioning no entities found
deprovisioningReportNoEntitiesFoundOnGroup = Note: there are no deprovisioned entities with memberships or privileges on this group
deprovisioningReportNoEntitiesFoundOnFolder = Note: there are no deprovisioned entities with privileges on this folder
deprovisioningReportNoEntitiesFoundOnAttributeDef = Note: there are no deprovisioned entities with privileges on this attribute definition
# daemon messages to screen
deprovisioningSuccessDaemonRan = Success: daemon ran successfully
deprovisioningInfoDaemonInRunning = Note: daemon is running, took too long so it will continue to run
# run the daemon
groupDeprovisioningMoreActionsRunDaemon = Run deprovisioning daemon
# deprovisioning not allowed read label group
deprovisioningNotAllowedToReadDeprovisioningGroup = Error: not allowed to read deprovisioning. You need the READ/UPDATE privilege on the group.
# deprovisioning not allowed write label group
deprovisioningNotAllowedToWriteDeprovisioningAttributeDef = Error: not allowed to edit deprovisioning. You need the READ/UPDATE privilege on the attribute.
# deprovisioning not allowed read label group
deprovisioningNotAllowedToReadDeprovisioningAttributeDef = Error: not allowed to read deprovisioning. You need the READ/UPDATE privilege on the attribute.
# title on the screen for editing folder deprovisioning settings
deprovisioningStemEditSettingsTitle = Edit folder deprovisioning settings
# error when deprovisioning is not enabled or no affiliations configured
deprovisioningErrorNotConfigured = Error: deprovisioning is not enabled or no affiliations configured
# error when deprovisioning is not enabled or no affiliations configured
deprovisioningAffiliationHint = Affiliation is a set of users to be deprovisioned. Affiliations are configured by the administrator.
# label on if there is deprovisioning
deprovisioningHasDeprovisioningLabel = Deprovisioning
# label on if there is deprovisioning
deprovisioningHasDirectDeprovisioningLabel = Direct configuration
# label on if there is deprovisioning hint
deprovisioningHasDeprovisioningHint = If this affiliation has deprovisioning configuration directly assigned to this object
# select box for if has deprovisioning
deprovisioningYesHasDeprovisioningLabel = Yes, has direct deprovisioning configuration
deprovisioningNoDoesNotHaveDeprovisioningLabel = No, does not have direct deprovisioning configuration
# label on if should deprovision
deprovisioningDeprovisionLabel = Deprovision
# label on if there is deprovisioning hint
deprovisioningDeprovisionHint = When someone is deprovisioned from this affiliation, should they be removed from this object? Default: true
# select box for if has deprovisioning
deprovisioningYesDeprovisionLabel = Yes, deprovision entities that leave
deprovisioningNoDontDeprovisionLabel = No, do not deprovision entities that leave
# label on if should deprovision
deprovisioningStemScopeLabel = Folder scope
# label on if there is deprovisioning hint
deprovisioningStemScopeHint = Do these deprovisioning settings affect objects in this folder and all subfolders (default) or only objects directly in this folder
# select box for if has deprovisioning
deprovisioningStemScopeAllLabel = All objects in this folder or subfolders
deprovisioningStemScopeOneLabel = Only objects directly in this folder
# label on if has configuration
deprovisioningHasConfigurationLabel = Has configuration
# label on if there is deprovisioning hint
deprovisioningHasConfigurationHint = If there is configuration for this affiliation directly assigned to the object or assigned to an ancestor folder. If there is no configuration the object will not be deprovisioned
# select box for if has deprovisioning
deprovisioningYesHasConfigurationLabel = Yes, there is configuration on this object or ancestor folder
deprovisioningNoHasConfigurationLabel = No, there is not configuration on this object or ancestor folder
# no objects deprovision for this object
deprovisioningNoAffiliationsDeprovisionForThisObject = This object is not being deprovisioned for any affiliations
# label for the parent folder
deprovisioningParentFolderLabel = Folder with settings
deprovisioningParentFolderDescription = This object inherits deprovisioning settings from this folder
# need to put in groupId
deprovisioningGroupIdIsBlank = Error: group ID path to email is a required field
# need to put in groupId the user can find
deprovisioningGroupIdNotFound = Error: cannot find the group to email. Is the name or ID path entered correctly and can you READ that group?
# label on folder scope
deprovisioningFolderScopeLabel = Folder scope
# label on folder scope
deprovisioningFolderScopeHint = Do these deprovisioning settings affect objects in this folder and all subfolders (default) or only objects directly in this folder
# select box for folder scope
deprovisioningYesFolderScopeLabel = All objects in this folder or subfolders
deprovisioningNoFolderScopeLabel = Only objects directly in this folder
# label for the send email checkbox
deprovisioningSendEmailLabel = Send email
# description help for the send email checkbox
deprovisioningSendEmailHint = If an email should be sent when someone is deprovisioned or needs to be deprovisioned
# if should send email
deprovisioningNoDoNotSendEmailLabel = No, do not send email alerts
deprovisioningYesSendEmailLabel = Yes, send email alerts
# if should email group managers
deprovisioningEmailManagersLabel = Email group managers
# drop down for if should email group managers
deprovisioningDontEmailManagersLabel = No, email a group or a custom list of email addresses
deprovisioningYesEmailManagersLabel = Yes, email the admins and updaters
# description of email group managers field
deprovisioningEmailManagersDescription = If the managers (can ADMIN or can READ and UPDATE) should be emailed when someone is deprovisioned or needs to be deprovisioned
# if should email group managers
deprovisioningEmailMembersGroupLabel = Email members of a group
# drop down for if should email group managers
deprovisioningDontEmailGroupMembersLabel = No, email a custom list of email addresses
deprovisioningYesEmailGroupMembersLabel = Yes, email a group
# description of email group managers field
deprovisioningEmailGroupMembersDescription = If the members of a group should be emailed when someone is deprovisioned or needs to be deprovisioned
# error message to add email addresses if not emailing the manager
deprovisioningEmailAddressesRequired = Email addresses are required
# label for the email addresses textfield
deprovisioningEmailAddressesLabel = Email addresses (comma separated)
# description help for the email addresses textfield
deprovisioningEmailAddressesDescription = Comma separated email addresses to send notifications to
# label for the email addresses textfield
deprovisioningEmailBodyLabel = Custom email body
# description help for the email addresses textfield
deprovisioningEmailBodyDescription = If you want to override the default email body, enter it here. You can use variables: $$name$$ $$netId$$ $$userEmailAddress$$ $$userDescription$$ $$objectDeprovisioningUrl$$
# label for the email addresses textfield
deprovisioningEmailGroupIdMembersLabel = Group name or ID path to email
# description help for the email addresses textfield
deprovisioningEmailGroupIdMembersDescription = Group name or ID path to email when someone is deprovisioned or needs to be deprovisioned
# button text save button
deprovisioningEditButtonSave = Save
# button text cancel button
deprovisioningEditButtonCancel = Cancel
# validation that affiliation is required
deprovisioningAffiliationRequired = Affiliation is required
# if save was successful
deprovisioningEditSaveSuccess = Deprovisioning configuration was saved
# if save took too long in a folder
deprovisioningEditSaveSuccessNotFinished = Deprovisioning configuration was saved but descendant objects are still being processed...
# show on deprovisioning screen
deprovisioningShowForRemovalLabel = Show for removal
# options show for removal
deprovisioningNoDontShowForRemovalLabel = No, do not show this object
deprovisioningYesShowForRemovalLabel = Yes, show this object on deprovisioning screen
# hint to show for removal
deprovisioningShowForRemovalHint = On the deprovisioning screen should this object be displayed
# should the checkbox on the deprovisioning be checked by default
deprovisioningAutoselectForRemovalLabel = Autoselect for removal
deprovisioningAutoselectForRemovalHint = On the deprovisioning screen should the checkbox be checked by default
deprovisioningYesAutoselectForRemoval = Yes
deprovisioningNoAutoselectForRemovalHint = No
# if allow adds while deprovisioned
deprovisioningAllowAddsLabel = Allow deprovisioned assignments
deprovisioningAllowAddsHint = If an entity is deprovisioned, allow assignments between that entity and this object. Default is no, veto assignments.
deprovisioningYesAllowAddsLabel = Yes
deprovisioningNoDontAllowAddsLabel = No
# if auto change loader
deprovisioningAutoChangeLoaderLabel = Auto change loader
deprovisioningAutoChangeLoaderHint = If this relates to a loader job, then should deprovisioned entities not be allowed to be loaded. Default is ${edu.internet2.middleware.grouper.cfg.GrouperConfig.retrieveConfig().propertyValueString("deprovisioning.autoChangeLoader")}
deprovisioningYesAutoChangeLoader = Yes
deprovisioningNoDontAutoChangeLoader = No
# yyyy/mm/dd date that this was last emailed so multiple emails dont go out on same day
deprovisioningLastEmailedDateLabel = Last emailed date
deprovisioningLastEmailedDateHint = The most recent date that group admins were emailed to ask them to review this group's memberships for deprovisioned entities
# (String) number of millis since 1970 that this group was certified for deprovisioning. i.e. the group managers
# indicate that the deprovisioned users are ok being in the group and do not send email reminders about it
# anymore until there are newly deprovisioned entities
deprovisioningCertifiedDateLabel = Last date certified
deprovisioningCertifiedDateHint= Last date this group's deprovisioned memberships were reviewed and marked as certified
# more actions deprovisioning report
deprovisioningMoreActionsDeprovisioningReport = Deprovisioning report
# make this group require report
deprovisioningMoreActionsClearCertify = Clear last certify date
#########################################
############ Provisioning in UI
#########################################
# menu item
groupMenuItemProvisioning = Provisioning
# in the more actions menu for groups/folders/attributes
provisioningMoreActionsMenuLabel = Provisioning
# if provisioning in UI is not enabled
provisioningNotEnabledError = Error: provisioning is not enabled
# if the attribute dont exist. they should, wonder why not
provisioningAttributeNotFoundError = Error: provisioning attributes do not exist
# title of the folder provisioning screen
provisioningFolderSettingsTitle = Folder provisioning settings
# provisioning none configured label
provisioningNoneAllConfigured = No provisioning target is configured on this object or any parent folder
provisioningNoTargets = No provisioning targets exist for this object
provisioningNoneConfiguredMembership = No provisioning configured for this membership
provisioningNoneConfiguredMember = No provisioning configured for this member
# aria label for provisioning action (context menu)
ariaLabelGuiMoreProvisioningActions = Show provisioning actions
# more actions menu view more actions
provisioningMoreActionsButton = Provisioning actions
# more actions menu view more actions
provisioningMoreActionsViewSettings = View provisioners
# more actions menu edit more actions
provisioningMoreActionsEditSettings = Edit provisioning settings
# run the daemon
provisioningMoreActionsRunDaemon = Run provisioning daemon
# provisioning not allowed write label group
provisioningNotAllowedToWriteStem = Error: not allowed to edit. You need ADMIN privilege on the folder.
# provisioning no metadata attached
provisioningNoMetadataAttached = There are no metadata items for this provisioner.
# provisioning not allowed write label group
provisioningNotAllowedToWriteGroup = Error: not allowed to edit provisioning settings. You need READ/UPDATE privilege on the group.
# button text save button
provisioningEditButtonSave = Save
# button text cancel button
provisioningEditButtonCancel = Cancel
# label for provisioning target name
provisioningTargetNameLabel = Target name
provisioningTargetNameHint = Target where you want to provision
metadataValueCollectionTypeSuffix = For multivalued values, comma is the delimiter so use U+002C to add a comma in the value. e.g. A, B U+002C, C, D
# select box for if has type
provisioningYesHasDirectLabel = Yes, has direct provisioning configuration
provisioningNoDoesNotHaveDirectLabel = No, does not have direct provisioning configuration
# label on if there is type hint
provisioningHasTypeHint = If this group/folder has provisioning configuration directly assigned
# label on if there is direct/indirect
provisioningDirectIndirectTypeLabel = Type
# label on if should provision
provisioningProvisionLabel = Provision
# label on if there is provisioning hint
provisioningProvisionHint = If this object should be provisioned or not
# select box for if has provisioning
provisioningYesProvisionLabel = Yes, provision the object
provisioningNoDontProvisionLabel = No, do not provision the object
# label on for folder scope
provisioningStemScopeLabel = Folder scope
# select box for folder scope
provisioningStemScopeAllLabel = All objects in this folder or subfolders
provisioningStemScopeOneLabel = Only objects directly in this folder
# label on if there is provisioning hint
provisioningStemScopeHint = Do these provisioning settings affect objects in this folder and all subfolders (default) or only objects directly in this folder
# validation that metadata item is required
provisioningMetadataItemRequired = $$metadataLabel$$ is required
# validation that metadata item is not unique
provisioningMetadataItemNotUnique = $$metadataLabel$$ is not unique
# value is not of correct type
provisioningMetadataValueNotCorrectTypeRequired = $$value$$ is not of type $$type$$
# validation that target name is required
provisioningTargetNameRequired = Target name is required
provisioningEditSaveSuccess = Provisioning configuration was saved
# if save took too long in a folder
provisioningEditSaveSuccessNotFinished = Provisioning configuration was saved but descendant objects are still being processed...
# label on if has configuration
provisioningHasConfigurationLabel = Has configuration
# if has configuration
provisioningYesHasConfigurationLabel = Yes, there is configuration on this object or ancestor folder
# if no configuration (direct or inherited)
provisioningNoHasConfigurationLabel = No, there is not configuration on this object or ancestor folder
# label on if there is provisioning hint
provisioningHasConfigurationHint = If there is configuration for this target directly assigned to the object or assigned to an ancestor folder.
# label for groups count in stem for a particular provisioning target
provisioningGroupsCountLabel = Groups count
# hint for provisioning groups count in stem
provisioningGroupsInStemCountHint = Number of groups in folder in a particular provisioning target
# hint for provisioning groups count for subject
provisioningGroupsInSubjectCountHint = Number of groups in a particular provisioning target that also contain the subject
# label for users count in stem for a particular provisioning target
provisioningUsersCountLabel = Users count
# hint for provisioning users count in stem
provisioningUsersInStemCountHint = Number of users in folder in a particular provisioning target
# hint for provisioning users count in group
provisioningUsersInGroupCountHint = Number of users in group in a particular provisioning target
# label for memberships count in stem for a particular provisioning target
provisioningMembershipsCountLabel = Memberships count
# hint for provisioning memberships count
provisioningMembershipsCountHint = Number of memberships in folder in a particular provisioning target
# label on if there is direct provisioning configuration
provisioningHasDirectConfigLabel = Direct configuration
# label for the parent folder
provisioningParentFolderLabel = Folder with settings
provisioningParentFolderDescription = This object inherits provisioning settings from this folder
# title of the group provisioning settings screen
provisioningGroupSettingsTitle = Group provisioning settings
provisioningGroupSettingsDescription = Inherited or direct provisioning configuration specific to this group
# title of the group provisioning screen
provisioningGroupProvisioningTitle = Group provisioning
provisioningGroupProvisioningDescription = List of all provisioners that are allowed to be viewed
provisioningFolderProvisioningDescription = List of all provisioners that are allowed to be viewed
# title of the subject provisioning screen
provisioningSubjectProvisioningTitle = Subject provisioning
# title of the group membership provisioning screen
provisioningMembershipProvisioningTitle = Membership provisioning
provisioningMembershipProvisioningDescription = List of provisioners that provision this membership
provisioningMembershipProvisioningSubjectFor = Provisioning in this group for entity
provisioningMembershipProvisioningGroupFor = Provisioning for this subject in group
provisioningSubjectGroupMembershipProvisioningDescription = Provisioning details for ${grouperRequestContainer.provisioningContainer.guiGrouperSyncObject.targetName} for ${grouperRequestContainer.subjectContainer.guiSubject.shortLink} in group ${grouperRequestContainer.groupContainer.guiGroup.shortLink}
# title of the group provisioning logs screen
provisioningGroupLogsTitle = Group provisioning logs
provisioningGroupLogsDescription = Logs for each "group sync" (not including overall full syncs)
provisioningGroupDetailsTitle = Group provisioning details
# daemon messages to screen
provisioningSuccessDaemonRan = Success: daemon ran successfully
provisioningInfoDaemonInRunning = Note: daemon is running, took too long so it will continue to run
provisioningConfigTableHeaderProvisionerName = Provisioner name
provisioningConfigTableHeaderLastTimeWorkWasDone = Last time work done
provisioningConfigTableHeaderInTarget = In target
provisioningConfigTableHeaderInTargetYesLabel = Yes
provisioningConfigTableHeaderInTargetNoLabel = No
provisioningConfigTableHeaderProvisionable = Provisionable
provisioningConfigTableHeaderProvisionableYesLabel = Yes
provisioningConfigTableHeaderProvisionableNoLabel = No
provisioningConfigTableHeaderHasDirectSettings = Has metadata
provisioningConfigTableHeaderMetadata = Metadata
provisioningConfigTableHeaderDirectAssignment = Direct
assignment
provisioningConfigTableHeaderParentFolderIsProvisionable = Ancestor
folder is
provisionable
provisioningConfigTableHeaderHasDirectSettingsYesLabel = Yes
provisioningConfigTableHeaderHasDirectSettingsNoLabel = No
provisioningConfigTableHeaderActions = Actions
provisioningConfigTableHeaderParentFolderIsProvisionableYesLabel = Yes
provisioningConfigTableHeaderParentFolderIsProvisionableNoLabel = No
privsioningConfigDetailsInTargetInsertsOrExists = Grouper inserted this object
privsioningConfigDetailsInTargetInsertsOrExistsTrueLabel = Yes, grouper inserted this object
privsioningConfigDetailsInTargetInsertsOrExistsFalseLabel = No, this object already existed in the target
privsioningConfigDetailsInTargetStart = Target start time
privsioningConfigDetailsInTargetStartDescription = The time that grouper inserted this object or detected that it already existed
privsioningConfigDetailsInTargetEnd = Target end time
privsioningConfigDetailsInTargetEndDescription = If the object is no longer in the target, this is the time that was removed or the time it was detected to not exist
privsioningConfigDetailsProvisionableStart = Provisionable start time
privsioningConfigDetailsProvisionableStartDescription = The time this object was marked as provisionable
privsioningConfigDetailsProvisionableEnd = Provisionable end time
privsioningConfigDetailsProvisionableEndDescription = The time this object was no longer marked as provisionable
privsioningConfigDetailsLastUpdated = Sync row last updated
privsioningConfigDetailsLastUpdatedDescription = Synchronization database row last updated
privsioningConfigDetailsLastGroupSync = Last sync time
privsioningConfigDetailsLastGroupSyncStart = Last sync start time
privsioningConfigDetailsLastGroupSyncDescription = The time this object was last fully synced (not including overall full sync)
privsioningConfigDetailsLastGroupSyncStartDescription = The time this object was started to be last fully synced (not including overall full sync)
privsioningConfigDetailsLastGroupMetadataSync = Last metadata sync time
privsioningConfigDetailsLastGroupMetadataSyncStart = Last metadata sync start time
privsioningConfigDetailsLastGroupMetadataSyncDescription = Last time when this group's name and description and metadata was synced (not including memberships)
privsioningConfigDetailsLastGroupMetadataSyncStartDescription = Last time when this group's name and description and metadata was started to be synced (not including memberships)
privsioningConfigDetailsGroupAttributeValueCache0 = Group cache 0
privsioningConfigDetailsGroupAttributeValueCache0Description = Data cached for group in bucket 0. Stored in database in grouper_sync_group.group_from_id2.
privsioningConfigDetailsGroupAttributeValueCache1 = Group cache 1
privsioningConfigDetailsGroupAttributeValueCache1Description = Data cached for group in bucket 1. Stored in database in grouper_sync_group.group_from_id3.
privsioningConfigDetailsGroupAttributeValueCache2 = Group cache 3
privsioningConfigDetailsGroupAttributeValueCache2Description = Data cached for group in bucket 2. Stored in database in grouper_sync_group.group_to_id2.
privsioningConfigDetailsGroupAttributeValueCache3 = Group cache 4
privsioningConfigDetailsGroupAttributeValueCache3Description = Data cached for group in bucket 3. Stored in database in grouper_sync_group.group_to_id3.
privsioningConfigDetailsMetadataUpdated = Sync link last updated
privsioningConfigDetailsMetadataUpdatedDescription = If this object has a link data cached, this is the last time it was updated from the target
privsioningConfigDetailsErrorMessage = Error message
privsioningConfigDetailsErrorMessageDescription = If the last sync had an error, this is the error message
privsioningConfigDetailsErrorTimestamp = Error time
privsioningConfigDetailsErrorCode = Error type
privsioningConfigDetailsErrorTimestampDescription = If the last sync had an error, this is the error time
privsioningConfigDetailsErrorCodeDescription = Error type for the last sync
privsioningConfigDetailsMembershipErrorMessage = Membership error message
privsioningConfigDetailsMembershipErrorMessageDescription = If the last sync had an error, this is the error message
privsioningConfigDetailsMembershipErrorCode = Membership error type
privsioningConfigDetailsMembershipErrorCodeDescription = Error type for the last sync
privsioningConfigDetailsMembershipErrorTimestamp = Membership error time
privsioningConfigDetailsMembershipErrorTimestampDescription = If the last sync had an error, this is the error time
privsioningConfigDetailsGroupErrorMessage = Group error message
privsioningConfigDetailsGroupErrorMessageDescription = If the last sync had an error, this is the error message
privsioningConfigDetailsGroupErrorCode = Group error type
privsioningConfigDetailsGroupErrorCodeDescription = Error type for the last sync
privsioningConfigDetailsGroupErrorTimestamp = Group error time
privsioningConfigDetailsGroupErrorTimestampDescription = If the last sync had an error, this is the error time
privsioningConfigDetailsMemberErrorMessage = User error message
privsioningConfigDetailsMemberErrorMessageDescription = If the last sync had an error, this is the error message
privsioningConfigDetailsMemberErrorCode = User error type
privsioningConfigDetailsMemberErrorCodeDescription = Error type for the last sync
privsioningConfigDetailsMemberErrorTimestamp = User error time
privsioningConfigDetailsMemberErrorTimestampDescription = If the last sync had an error, this is the error time
privsioningConfigDetailsLastUserSync = Last user sync
privsioningConfigDetailsLastUserSyncStart = Last user sync start time
privsioningConfigDetailsLastUserSyncDescription = The time when this user was last synced (including metadata and memberships)
privsioningConfigDetailsLastUserSyncStartDescription = The time when this user was last started to be synced (including metadata and memberships)
privsioningConfigDetailsLastUserMetadataSync = Last metadata sync time
privsioningConfigDetailsLastUserMetadataSyncStart = Last metadata sync start time
privsioningConfigDetailsLastUserMetadataSyncDescription = Last time when this user's name and description and metadata was synced
privsioningConfigDetailsLastUserMetadataSyncStartDescription = Last time when this user's name and description and metadata was started to be synced
privsioningConfigDetailsErrorCode.ERR = Error or exception while provisioning
privsioningConfigDetailsErrorCode.INV = Invalid data, based on script
privsioningConfigDetailsErrorCode.LEN = Attribute value is more than max length
privsioningConfigDetailsErrorCode.REQ = Required field is missing
privsioningConfigDetailsErrorCode.DNE = Object is missing in the target and not able to be inserted
privsioningConfigDetailsMembershipId = Membership id
privsioningConfigDetailsMembershipIdDescription = Membership id
privsioningConfigDetailsMembershipId2 = Membership id2
privsioningConfigDetailsMembershipId2Description = Membership id2
privsioningConfigDetailsProvisionable = Provisionable
privsioningConfigDetailsEntityAttributeValueCache0 = Entity cache 0
privsioningConfigDetailsEntityAttributeValueCache0Description = Data cached for entity in bucket 0. Stored in database in grouper_sync_member.member_from_id2.
privsioningConfigDetailsEntityAttributeValueCache1 = Entity cache 1
privsioningConfigDetailsEntityAttributeValueCache1Description = Data cached for entity in bucket 1. Stored in database in grouper_sync_member.member_from_id3.
privsioningConfigDetailsEntityAttributeValueCache2 = Entity cache 2
privsioningConfigDetailsEntityAttributeValueCache2Description = Data cached for entity in bucket 2. Stored in database in grouper_sync_member.member_to_id2.
privsioningConfigDetailsEntityAttributeValueCache3 = Entity cache 3
privsioningConfigDetailsEntityAttributeValueCache3Description = Data cached for entity in bucket 3. Stored in database in grouper_sync_member.member_to_id3.
provisioningGroupSyncSuccess = A message was sent to the incremental provisioner to recalculate the group if the provisioner is capable and configured to do so.
provisioningMemberSyncSuccess = A message was sent to the incremental provisioner to recalculate the entity if the provisioner is capable and configured to do so.
provisioningMembershipSyncSuccess = A message was sent to the incremental provisioner to recalculate the membership if the provisioner is capable and configured to do so.
provisioningConfigTableActionsButton = Actions
provisioningConfigTableActionsViewConfiguration = View configuration
provisioningConfigTableActionsViewLogs = View logs
provisioningConfigTableActionsViewDetails = View details
provisioningConfigTableActionsEditProvisioning = Edit provisioning
provisioningConfigTableActionsRunGroupSync = Fix group in target
provisioningConfigTableActionsRunMemberSync = Fix entity in target
provisioningConfigTableActionsRunMembershipSync = Fix membership in target
provisioningConfigTableActionsDoNotProvision = Do not provision to
provisioningConfigTableActionsProvisionTo = Provision to
provisioningConfigTableActionsEditConfiguration = Edit provisioning settings
provisioningSubjectInTargetLabel = In target
provisioningSubjectInTargetInsertOrExistsLabel = Insert
provisioningSubjectInTargetStartLabel = In target start
provisioningSubjectInTargetEndLabel = In target end
provisioningSubjectInTargetProvisionableLabel = In target provisionable
provisioningSubjectProvisionableStartLabel = Provisionable start
provisioningSubjectProvsionableEndLabel = Provisionable end
provisioningSubjectLastUpdatedLabel = Last updated
provisioningSubjectLastUserSyncLabel = Last user sync
provisioningSubjectLastUserMetadataSyncLabel = Last user metadata sync
provisioningSubjectEntityAttributeValueCache0Label = Entity cache 0
provisioningSubjectEntityAttributeValueCache1Label = Entity cache 1
provisioningSubjectEntityAttributeValueCache2Label = Entity cache 2
provisioningSubjectEntityAttributeValueCache3Label = Entity cache 3
provisioningSubjectMembershipIdLabel = Membership id
provisioningSubjectMembershipId2Label = Membership id2
provisioningSubjectMembershipMetadataUpdatedLabel = Membership metadata updated
provisioningSubjectInTargetYesLabel = Yes, subject is in target
provisioningSubjectInTargetNoLabel = No, subject is not in target
provisioningSubjectInTargetInsertOrExistsYesLabel = Yes, subject in target was inserted or already existed
provisioningSubjectInTargetInsertOrExistsNoLabel = No, subject in target was not inserted or existed already
provisioningSubjectInTargetProvisionableYesLabel = Yes, subject is provisionable in target
provisioningSubjectInTargetProvisionableNoLabel = No, subject is not provisionable in target
provisioningSubjectNoDetailsFound = No provisioning details found
provisioningGroupLabel = Group name
provisioningSubjectLabel = Subject id
########################################
## Grouper Object Types
########################################
# title of the group object type screen
objectTypeGroupSettingsTitle = Group type settings
# title of the folder object type screen
objectTypeFolderSettingsTitle = Folder type settings
# in the more actions menu for groups/folders
objectTypeMoreActionsMenuLabel = Types
# aria label for object type action (context menu)
ariaLabelGuiMoreObjectTypeActions = Show type actions
# more actions menu view more actions
objectTypeMoreActionsButton = Type actions
# more actions menu view more actions
objectTypeMoreActionsViewSettings = View type settings
# more actions menu edit more actions
objectTypeMoreActionsEditSettings = Edit type settings
# more actions type menu auto assign types
objectTypeMoreActionsAutoAssignTypes = Auto assign types
# run the daemon
groupObjectTypeMoreActionsRunDaemon = Run type daemon
# object type none configured label
objectTypeNoneAllConfigured = No object type is configured for any affiliation on this object or any parent folder
# object type not allowed write label group
grouperObjectTypeNotAllowedToWriteGroup = Error: not allowed to edit object type. You need the READ/UPDATE privilege on the group.
# object type not allowed write label stem
grouperObjectTypeNotAllowedToWriteStem = Error: not allowed to edit object type. You need the ADMIN privilege on the stem.
# button text save button
objectTypeEditButtonSave = Save
# button text cancel button
objectTypeEditButtonCancel = Cancel
# label on if there is direct/indirect
objectTypeHasTypeLabel = Type
# select box for if has type
objectTypeYesHasTypeLabel = Yes, has direct type configuration
objectTypeNoDoesNotHaveTypeLabel = No, does not have direct type configuration
# label on if there is type hint
objectTypeHasTypeHint = If this group/folder has type configuration directly assigned
# label for object type name
objectTypeNameLabel = Type name
objectTypeAssignAllTypesLabel = Assign all types
objectTypeAutoAssignSizeLimitExceedMessage = Warning: there are ${grouperRequestContainer.objectTypeContainer.totalAutoAssignSize} objects to auto-assign but only ${grouperRequestContainer.objectTypeContainer.maxAutoAssignSize} are displayed
objectTypeNameHint = Type you want to assign
objectTypeDataOwnerHint = e.g. Registrar's office owns this data
objectTypeMemberDescriptionLabel = Member description:
objectTypeMemberDescriptionHint = Human readable description of the members of this group
objectTypeServiceNameLabel = Service name
objectTypeServiceNameHint = name of the service that this app falls under
objectTypeEditSaveSuccess = Type configuration was saved
# label on if there is direct type configuration
objectTypeHasDirectTypeLabel = Direct configuration
# label on if has configuration
objectTypeHasConfigurationLabel = Has configuration
# if has configuration
objectTypeYesHasConfigurationLabel = Yes, there is configuration on this object or ancestor folder
# if no configuration (direct or inherited)
objectTypeNoHasConfigurationLabel = No, there is not configuration on this object or ancestor folder
# label on if there is object type hint
objectTypeHasConfigurationHint = If there is configuration for this type directly assigned to the object or assigned to an ancestor folder.
# label for the parent folder
objectTypeParentFolderLabel = Folder with settings
objectTypeParentFolderDescription = This object inherits type settings from this folder
objectTypeDirectYes = Yes
objectTypeDirectNo = No
# label to show on group header
objectTypeGroupTypesLabel = Group types:
# label to show on folder header
objectTypeFolderTypesLabel = Folder types:
# data owner label for group/folder header
objectTypeDataOwnerLabel = Data owner:
objectTypeWikiAppText = This is in the $$folder$$ app.
objectTypeStudentSystemsText = This is the $$folder$$ service.
# daemon messages to screen
objectTypeSuccessDaemonRan = Success: daemon ran successfully
objectTypeInfoDaemonInRunning = Note: daemon is running, took too long so it will continue to run
# if object type is not enabled
objectTypeNotEnabledError = Error: object type is not enabled
# if the attribute dont exist. they should, wonder why not
objectTypeAttributeNotFoundError = Error: object type attributes do not exist
# validation that object type name is required
objectTypeTypeNameRequired = Type name is required
### title of the remove object type link
objectTypeTitleRemoveThisObjectType = Remove this object type
# text of the remove object type link
objectTypeTextRemoveThisObjectType = remove
#confirm the user to remove object type
objectTypeConfirmObjectTypeRemoval = Are you sure you want to remove object type?
# label for description when viewing types
objectTypeViewTypeDescriptionLabel = Description
objectTypeRefFolderDescription = A reference group is a set of entities that is largely intended to be used by reference within an access policy group. A ref group is an institutionally meaningful cohort. Access policies often require cohorts organized via institutional affiliation (faculty, staff, student), a particular office or department (president's office, finance division, chaplain), program (chemistry students), and even residence or class year. Reference groups are constructed of basis or reference groups or loaded from external sources. Reference groups should not be used directly from an application.
objectTypeBasisFolderDescription = Basis groups represent arcane codes from external systems (e.g. HR, payroll, student, etc). Basis groups are used by the IAM team to build reference groups. Basis groups are usually loaded from external sources or might be constructed of other basis groups.
objectTypePolicyFolderDescription = Access policy groups can be used to deny or allow access to a resource (e.g. VPN, unix login, online directory) based on policy or to place a subject in an application specific role. Policy groups are another level of indirection from reference groups that allow policies to be changed at runtime without changes in configuration. Policy groups are generally constructed from reference groups, ad hoc groups, and various composites and rules.
objectTypeEtcFolderDescription = The etc folder holds objects with configuration information, administrative access control groups, and loader jobs.
objectTypeOrgFolderDescription = The org folder contains folders which have organizational structures in the organization. These folders might be used for delegated administration. The org folder might have a folder named "iam", or "hr", or "engineeringSchool".
objectTypeTestFolderDescription = The test folder contains folders with resources used for testing.
objectTypeServiceFolderDescription = A service folder contains groups used for a service. A service might have multiple apps. Service folders contain policy groups, reference groups, attributes, etc.
objectTypeAppFolderDescription = An app folder contains resources for an application. For example there might be a "vpn" or "wiki" app folder.
objectTypeReadOnlyFolderDescription = Read-only groups should not be edited in the UI and are managed from external sources such as the loader or web services.
objectTypeGrouperSecurityFolderDescription = The security folder contains groups which have privileges on resources for the service. These are the admins, updaters, readers, etc for the app or service.
objectTypeManualFolderDescription = Manual group
objectTypeIntermediateFolderDescription = Intermediate group
objectTypeOption_basis = basis - members have an arcane code in an external system, used in ref groups
objectTypeOption_ref = ref - a reference group is an institutionally meaningful cohort used in policy groups
objectTypeOption_policy = policy - can be used to deny or allow access to a resource, composed of ref groups, composites, ad hocs, etc
objectTypeOption_etc = etc - objects with configuration information, administrative access control groups, and loader jobs
objectTypeOption_grouperSecurity = grouperSecurity - has privileges on resources for the service, e.g. ADMIN, UPDATE, READ, etc
objectTypeOption_org = org - groups have organizational structures in the institution
objectTypeOption_app = app - resources used in an application
objectTypeOption_service = service - resources used in a service. A service might contain multiple apps
objectTypeOption_readOnly = readOnly - a readOnly group should not be edited in the UI
objectTypeOption_test = test - non-production resources for testing
objectTypeOption_manual = manual - manually managed groups where the members are generally individual users
objectTypeOption_intermediate = intermediate - internal helper group that is used as a component to compose another group
######################################
## Object type auto assign
########################################
# label for folder column
objectTypeAutoAssignTableFolderLabel = Folder
# label for group column
objectTypeAutoAssignTableGroupLabel = Group
# label for select column
objectTypeAutoAssignTableSelectLabel = Assign type?
# label for data owner
objectTypeAutoAssignTableDataOwnerLabel = Data owner
# label for member description
objectTypeAutoAssignTableMemberDescriptionLabel = Member description
# label for service name
objectTypeAutoAssignTableServiceLabel = Service name
# auto assign folders checkbox aria-label
objectTypeAutoAssignCheckboxAriaLabel = Select this to auto assign type
# auto assign folders submit button
objectTypeAutoAssignSubmitButton = Submit
# auto assign folders none detected
objectTypeAutoAssignNoFoldersFound = No folders or groups were found matching the object types
########################################
### Grouper workflow approvals
########################################
# if workflow is not enabled
workflowNotEnabledError = Error: workflow is not enabled
# if the attribute dont exist. they should, wonder why not
workflowAttributeNotFoundError = Error: workflowConfigDef attribute does not exist
# grouper workflow description
grouperWorkflowDescription = Workflow forms
# message when no workflows are configured on a group
grouperWorkflowConfigNoEntitiesFound = There are no workflows configured
# message when no instances are on a workflow config
grouperWorkflowConfigNoInstancesFound = There are no instances
# workflow actions dropdown button text
grouperWorkflowMoreActionsButton = Workflow actions
# workflow group config description
grouperWorkflowGroupConfigDescription = Workflow configs on group
# aria label workflow actions dropdown button text
ariaLabelGuiMoreGrouperWorkflowActions = Show gropuer workflow actions
# more action view forms option
grouperWorkflowMoreActionsViewForms = View forms
# more action edit form option
grouperWorkflowMoreActionsEditForm = Edit form
# more action add form option
grouperWorkflowMoreActionsAddForm = Add form
# grouper workflow not allowed to add label
grouperWorkflowNotAllowedToAdd = Error: not allowed to add workflow form
# grouper workflow config type label
grouperWorkflowConfigTypeLabel = Config type
# grouper workflow config type hint text
grouperWorkflowConfigTypeHint = Workflow config type
# grouper workflow config name label
grouperWorkflowConfigNameLabel = Config name
# grouper workflow config name hint
grouperWorkflowConfigNameHint = Name of workflow. No two workflows in the same owner can have the same name
# grouper workflow config id label
grouperWorkflowConfigIdLabel = Config id
# grouper workflow config id hint
grouperWorkflowConfigIdHint = Camel-case alphanumeric id of workflow. No two workflows in all of Grouper can have the same ID
# grouper workflow config description label
grouperWorkflowConfigDescriptionLabel = Config description
# grouper workflow config description hint
grouperWorkflowConfigDescriptionHint = Config description. Use this to desribe the information in the config
# grouper workflow config approvals label
grouperWorkflowConfigApprovalsLabel = Workflow approvals
# grouper workflow config approvals hint
grouperWorkflowConfigApprovalsHint = JSON config of the workflow approvals. It must have "initiate" and "complete"
# grouper workflow config params label
grouperWorkflowConfigParamsLabel = Config params
# grouper workflow config params hint
grouperWorkflowConfigParamsHint = Json formatted text with maximum 10 params.
# grouper workflow config form label
grouperWorkflowConfigFormLabel = Config form
# grouper workflow config form hint
grouperWorkflowConfigFormHint = Grouper with javascript will enable or disable these form fields, or fill in values, as needed. The form field names need to match the names in the params. The id must match with "Id" appended to the end. If a name or id doesnt exist in the HTML there will be an error
# gropuer workflow config viewers group id
grouperWorkflowConfigViewersGroupIdLabel = Viewers group id
# grouper workflow config vieweres group id
grouperWorkflowConfigViewersGroupIdHint = Group id of people who can view this workflow and instances of this workflow
# grouper workflow config send email label
grouperWorkflowConfigSendEmailLabel = Send email
# if should send email
grouperWorkflowConfigNoDoNotSendEmailLabel = No, do not send email
grouperWorkflowConfigYesSendEmailLabel = Yes, send email
# grouper workflow send email hint
grouperWorkflowConfigSendEmailHint = If an email should be sent
# grouper workflow config enabled label
grouperWorkflowConfigEnabledLabel = Workflow enabled
# enable dropdown options
grouperWorkflowConfigNoDoNotEnableLabel = No, do not enable workflow
grouperWorkflowConfigYesEnableLabel = Yes, enable workflow
grouperWorkflowConfigNoNewSubmissionsLabel = Do not allow new submissions anymore
# grouper workflow config button save
workflowAddConfigButtonSave = Save
# grouper workflow config save success
grouperWorkflowConfigSaveSuccess = Workflow config was saved
# grouper workflow config button cancel
workflowConfigButtonCancel = Cancel
# grouper workflow config table header config id header column
grouperWorkflowConfigTableHeaderConfigId = Id
# grouper workflow config table header config name header column
grouperWorkflowConfigTableHeaderConfigName = Name
# grouper workflow config table header config type header column
grouperWorkflowConfigTableHeaderConfigType = Type
# grouper workflow config table header config enabled header column
grouperWorkflowConfigTableHeaderConfigEnabled = Enabled
# grouper workflow config table header config actions header column
grouperWorkflowConfigTableHeaderConfigActions = Actions
# grouper workflow config table config enabled true value
grouperWorkflowConfigTableEnabledTrueValue = Yes
# grouper workflow config table config enabled false value
grouperWorkflowConfigTableEnabledFalseValue = No
# grouper workflow config table config enabled No New Submission value
grouperWorkflowConfigTableEnabledNoNewSubmissionsValue = No new submissions
# view config details option in dropdown in config table
grouperWorkflowConfigTableViewDetailsActionOption = View config details
# edit config details option in dropdown in config table
grouperWorkflowConfigTableEditDetailsActionOption = Edit config details
# grouper join group workflow initiate button submit
workflowJoinGroupInitiateWorkflowButtonSubmit = Submit
# workflow type required error
workflowTypeRequiredError = Workflow type is required
# workflow type unknown error
workflowTypeUnknownError = Workflow type $$workflowType$$ is not configured
# workflow approvals required error
workflowApprovalsRequiredError = Workflow approvals is required
# workflow approvals json invalid error
workflowApprovalsInvalidJsonError = Workflow approvals json is not well formatted
# workflow approvals states key not there error
workflowApprovalsStatesRequiredError = Workflow approvals must have "states" key
# workflow approvals must have initiate state error
workflowApprovalsInitiateStateRequiredError = Workflow approvals must have "initiate" state
# workflow approvals must have complete state error
workflowApprovalsCompleteStateRequiredError = Workflow approvals must have "complete" state
# workflow approval non initiate, complete state must have approvers
workflowApprovalsStateApproversMissing = Workflow state $$stateName$$ is missing approvers
# workflow approval states json object has stateName missing
workflowApprovalsStateNameMissing = Workflow approvals must have "stateName" key at index $$index$$
# workflow approval states json object has multiple initiate states
workflowApprovalsMultipleInitiateStatesFound = Workflow approvals must have only one "initiate" state
# workflow approval states json object has multiple complete states
workflowApprovalsMultipleCompleteStatesFound = Workflow approvals must have only one "complete" state
# workflow approval non initiate, complete state must have only one type of approvers
workflowApprovalsStateMultipleTypesOfApprovers = Workflow state $$stateName$$ has multiple types of approvers. Only one type is allowed.
# workflow approval approver group not found
workflowApprovalsStateApproverGroupNotFound = Approver group id $$groupId$$ not found for workflow state $$stateName$$
# workflow approval allowed group id not found
workflowApprovalsStateAllowedGroupNotFound = Allowed group id $$groupId$$ not found for workflow state $$stateName$$
# workflow complete state not containing assignToGroup action
workflowApprovalsStateCompleteStateAssignToGroupActionNotFound = assignToGroup must be there in complete state
# workflow complete state assignToGroup group id not found
workflowApprovalsStateCompleteStateAssignToGroupIdNotFound = Group not found for assignToGroup group id $$assignToGroupId$$
# workflow approval success
grouperWorkflowApproveSuccess = Workflow was approved successfully
# workflow approval approver subject source id cannot be blank/null when approver subject id is provided
workflowApprovalsStateApproverSubjectSourceIdMissing = Approver subject source id cannot be blank/null for workflow state $$stateName$$
# workflow approval approver subject not found
workflowApprovalsStateApproverSubjectNotFound = Approver subject id $$subjectId$$ not found from source $$sourceId$$ for workflow state $$stateName$$
# workflow conig name is required error
workflowConfigNameRequiredError = Workflow config name is required
# workflow config name is already in use by the same group
workflowConfigNameAlreadyInUseError = Workflow config name is already in use
# workflow config id required error
workflowConfigIdRequiredError = Workflow config id is required
# workflow config id not valid error
workflowConfigIdNotValidError = Workflow config id is not valid. It can only be alphanumeric with underscores and hyphens.
# workflow config id already in use error
workflowConfigIdAlreadyInUseError = Workflow config id is already in use
# workflow config description required error
workflowConfigDescriptionRequiredError = Workflow config description is required
# workflow config description length exceeds max length error
workflowConfigDescriptionLengthExceedsMaxLengthError = Workflow description cannot be greater than 4000 characters
# workflow config params required error
workflowConfigParamsRequiredError = Workflow config params is required
# workflow params json not well formatted
workflowParamsInvalidJsonError = Workflow params json is not well formatted
# workflow params not having "params" key error
workflowParamsParamsRequiredError = Workflow parmas must have "params" key
# workflow params missing paramName property error
workflowParamsParamNameMissingError = Workflow params must have "paramName" key at index $$index$$
# workflow params missing type property error
workflowParamsTypeMissingError = Workflow params must have "type" key at index $$index$$
# workflow params missing editableInStates property error
workflowParamsEditableInStatesMissingError = Workflow params must have "editableInStates" key at index $$index$$
# workflow params editable state not found in approval states json
workflowParamsEditableStateNotFoundInApprovalStates = Workflow params editable state $$editableState$$ not found in approval states json
# workflow params invalid value for required key for type checkbox
workflowParamsInvalidCheckboxValueError = Invalid value for "required" key for workflow params with type "checkbox"
# workflow params exceeds max size error
workflowParamsExceedsMaxSizeError = Maximum 10 workflow params are allowed
# workflow params invalid param type
workflowParamsInvalidParamType = Param type $$paramType$$ is invalid
# workflow config form invalid
workflowConfigInvalidConfigForm = Workflow config html form is invalid
# workflow config form element not found in params json
workflowConfigFormElementNotFoundInJsonParams = Html element with name $$elementName$$ and type $$elementType$$ not found in params json
# worflow config viewers group id not found error
workflowViewerGroupIdNotFoundError = Workflow viewers group id not found
# workflow config enabled required error
workflowConfigEnabledRequiredError = Workflow enabled is required
# workflow config enabled invalid value
workflowConfigEnabledInvalidValueError = Workflow enabled can only have "true", "false" and "noNewSubmissions" values
# workflow fields non editable in edit state
workflowConfigFieldsNotEditableError = Config params, form, and approvals are not editable when there is any instance which is not in 'complete', 'rejected' or 'exception' state
# workflow config default description
workflowConfigDefaultDescription = Group: "${grouperUtil.xmlEscape(grouperRequestContainer.groupContainer.guiGroup.group.displayName)}" approval for membership. The group's managers will be notified about requests and can approve them.
# workflow initiate submit success
workflowInitiateSubmitSuccessMessage = Your request to join this group has been sent. You will be notified by email of the approval or denial.
# workflow initiate submit error
workflowInitiateSubmitErrorMessage = Sorry, your request could not be sent. Please try again later.
# workflow join group request but workflow already in progress
workflowJoinGroupRequestAlreadyInProgress = Your request to join this group is already in progress. You will be notified by email of the approval or denial.
# workflow initiate not allowed error
workflowInitiateNotAllowedError = You are not allowed to request membership of this group.
# workflow form name label
workflowElectronicFormNameLabel = Electronic form:
# workflow form description label
workflowElectronicFormDescriptionLabel = Description:
# workflow form audit line
workflowFormAuditLine = $$subjectSource$$: $$subjectId$$, $$subjectName$$ clicked $$buttonText$$ at state $$state$$ on timestamp: $$timestamp$$
# workflow misc forms link
workflowMiscFormsLink = Forms
# workflow misc forms title
workflowMiscFormsTitle = Electronic forms actions
# workflow misc my forms link
workflowMiscMyFormsLink = My forms
# workflow misc forms waiting for my approval link
workflowMiscFormsWaitingForApprovalLink = Forms waiting for my approval
# workflow misc forms search link
workflowMiscFormsSearchLink = Forms search
# workflow instance table instance id column header
workflowInstanceTableColumnHeaderInstanceId = Id
# workflow instance table instance's config name column header
workflowInstanceTableColumnHeaderInstanceConfigName = Workflow name
# workflow instance table instance's subject who initiated column header
workflowInstanceTableColumnHeaderInstanceInitiatorSubject = Initiator subject
# workflow instance table instance state column header
workflowInstanceTableColumnHeaderInstanceState = State
# workflow instance table instance last updated column header
workflowInstanceTableColumnHeaderInstanceLastUpdated = Last updated
# workflow instance table instance actions column header
workflowInstanceTableColumnHeaderInstanceActions = Actions
# workflow instance table instance actions dropdown approve button
workflowInstanceTableColumnHeaderInstanceActionsApprove = Approve
# workflow instance table instance actions dropdown view button
workflowInstanceTableColumnHeaderInstanceActionsViewInstanceForm = View form
# workflow misc forms waiting for my approval title
workflowMiscFormsWaitingForApprovalTitle = Forms waiting for approval
# workflow misc forms subject initiated
workflowMiscFormsSubjectInitiatedTitle = Forms initiated
# workflow misc forms - instance details
workflowMiscFormsInstanceDetails = Instance details
# workflow view instance screen Approve button
workflowApproveWorkflowButton = Approve
# workflow view instance screen Disapprove button
workflowDisapproveWorkflowButton = Disapprove
# workflow view instance screen Cancel button
workflowCancelWorkflowButton = Cancel
# worklflow request rejected email subject
workflowRequestRejectedSubject = $$app.name.short$$ electronic form: $$formName$$ - rejected
# worklflow request rejected email body
workflowRequestRejectedBody = Dear $$subjectName$$, \n\n Your request has been rejected in the $$app.name.short$$ electronic form: $$formName$$ - $$formDescripton$$. The people who disapproved will followup with you. \n\n Thanks!
# worklflow request approved email subject
workflowRequestApprovedSubject = $$app.name.short$$ electronic form: $$formName$$ - approved
# worklflow request approved email body
workflowRequestApprovedBody = Dear $$subjectName$$, \n\n Your request has been approved in the $$app.name.short$$ electronic form: $$formName$$ - $$formDescripton$$. Your request is complete.
# worklflow request waiting for approval email subject
workflowRequestWaitingForApprovalSubject = $$app.name.short$$ electronic forms - waiting for approval
# worklflow request waiting for approval email body
workflowRequestWaitingForApprovaldBody = Dear $$subjectName$$, \n\n $$app.name.short$$ electronic forms waiting for your approval:
# workflow submit form field not editable error
workflowSubmitFormFieldNotEditable = Field $$fieldName$$ is not editable
# workflow submit form field required
workflowSubmitFormFieldRequired = Field $$fieldName$$ is required
# worfklow html form default
workflowConfigDefaultHtmlForm = Submit this form to be added to this group.
The managers of the group will be notified to approve this request.
Notes (optional):
Notes for approvers:
########################################
## New Service Template
########################################
# menu button to create new template
createNewTemplateMenuButton = Run template
stemTemplateTypeLabel = Template to run
stemTemplateTypeServiceLabel = Application
stemCreateTemplateInThisFolder = Create in this folder, do not create a subfolder
stemTemplateTypeDescription = Pick the template you want to run. Templates are pre-defined tasks that take inputs and perform multiple actions.
stemServiceKey = Key
stemServiceKeyDescription = Alphanumeric key for template being run. Might be used for object names.
stemServiceFriendlyName = Friendly Name
stemServiceFriendlyNameDescription = This will typically be the same as the key though could be more friendly. Might be used for object display names.
stemServiceEditFriendlyName = Edit friendly name
stemServiceDescription = Description
stemServiceDescriptionDescription = Describe the purpose that the template is being run. Might be used on object descriptions.
stemTemplateNextButton = Next
stemTemplateSubmitButton = Submit
stemTemplateCancelButton = Cancel
stemTemplateTypeRequiredError = Template type is required
stemTemplateImplementationClassConfigError = Template implementation class could not be initialized. Please check the config.
stemTemplateHierarchySelectError = All the parent actions need to be checked before selecting any child action.
stemServiceKeyRequiredError = Key is required
stemServiceKeyInvaldError = Key can only contain alphanumeric characters and underscore
stemServiceBaseFolderCreationConfirmation = Create folder: "${grouperRequestContainer.groupStemTemplateContainer.currentServiceAction.argMap['stemDisplayName']}"?
stemServiceFolderTypeConfirmation = Assign "${grouperRequestContainer.groupStemTemplateContainer.currentServiceAction.argMap['type']}" type to folder: "${grouperRequestContainer.groupStemTemplateContainer.currentServiceAction.argMap['stemDisplayName']}"?
stemServiceGroupTypeConfirmation = Assign "${grouperRequestContainer.groupStemTemplateContainer.currentServiceAction.argMap['type']}" type to group: "${grouperRequestContainer.groupStemTemplateContainer.currentServiceAction.argMap['groupDisplayName']}"?
stemServiceBaseGroupCreationConfirmation = Create group "${grouperRequestContainer.groupStemTemplateContainer.currentServiceAction.argMap['groupDisplayName']}"?
stemServiceBasePrivilegeCreationConfirmation = Assign "${grouperRequestContainer.groupStemTemplateContainer.currentServiceAction.argMap['groupDisplayName']}" to have inherited ${grouperRequestContainer.groupStemTemplateContainer.currentServiceAction.argMap['privilegeType']} privilege on ${grouperRequestContainer.groupStemTemplateContainer.currentServiceAction.argMap['templateItemType']} on the "${grouperRequestContainer.groupStemTemplateContainer.currentServiceAction.argMap['parentStemDisplayName']}" folder?
stemServiceBaseMemberAdditionConfirmation = Assign "${grouperRequestContainer.groupStemTemplateContainer.currentServiceAction.argMap['groupNameMembershipDisplayName']}" to be a member of "${grouperRequestContainer.groupStemTemplateContainer.currentServiceAction.argMap['groupNameMembershipOfDisplayName']}"?
stemServiceBaseFolderDescription = This folder contains resources for the ${grouperRequestContainer.groupStemTemplateContainer.friendlyNameOrTemplateKey} service.
stemServiceServiceFolderDescription = The service folder contains policy groups, reference groups, attributes, etc.
stemServicePolicyFolderDescription = The policy folder contains access policy groups for the service. Access policy groups can be used to deny or allow access to a resource (e.g. access to VPN) based on policy or to place a subject in an application specific role.
stemServiceRefFolderDescription = The ref folder contains reference groups. A reference group is a set of entities that is largely intended to be used by reference within access policy. Reference groups are institutionally meaningful cohorts. Access policies often require cohorts organized via institutional affiliation (faculty, staff, student), a particular office or department (president's office, finance division, chaplain), program (chemistry students), and even residence or class year.
stemServiceAttributeFolderDescription = The attribute folder organizes any attribute definitions and attribute names needed for the service.
stemServiceSecurityFolderDescription = The security folder contains groups which have privileges on resources for the service. These are the admins, updaters, readers, etc for the service.
stemServiceSecurityAdminsGroupDescription = This group contains admins for the ${grouperRequestContainer.groupStemTemplateContainer.friendlyNameOrTemplateKey} service. Members of this group can perform any action for this service. For example they can assign or unassign memberships and privileges, and they create or delete groups or folders.
stemServiceSecurityReadersGroupDescription = This group has people or principals who can see that objects in this service exist and can READ all memberships of groups for this service including the security groups.
stemServiceSecurityUpdatersGroupDescription = This group has users who can read all groups for the service, and who can update memberships of the non-security groups.
stemTemplateCreateSuccess = Success: ${textContainer.text[grouperRequestContainer.groupStemTemplateContainer.templateLogic.selectLabelKey]} was created.
stemTemplateCustomGshTemplateHeader = Running template
stemTemplateCustomGshTemplateSubheading = Running template, ${grouperRequestContainer.gshTemplateContainer.progressBean.percentComplete}% complete
stemTemplateCustomGshTemplateTestSubheading = Testing template, ${grouperRequestContainer.gshTemplateContainer.progressBean.percentComplete}% complete
stemTemplateCustomGshTemplateExecuteSuccess = Success: gsh template was run successfully.
stemTemplateCustomGshTemplateExecuteError = Error: there was an error running the gsh template. Please contact your Grouper administrator.
stemServiceActionsHelpText = Check the checkboxes below to create folders, groups, and assign privileges. If the folder or group already exists or privilege is already assigned, then that individual action is skipped.
policyGroupTemplateRootFolderError = You cannot make a policy group in the root folder
policyGroupTemplateBaseGroupDescription = This group contains members who have access to resources for the ${grouperRequestContainer.groupStemTemplateContainer.friendlyNameOrTemplateKey} policy.
policyGroupTemplateTypeLabel = Policy group
policyGroupKeyRequired = '$$stemServiceKey$$' is a required field
policyGroupOverallCreationLabel = Create overall group "${grouperRequestContainer.groupStemTemplateContainer.currentServiceAction.argMap['groupDisplayName']}"?
policyGroupAllowCreationLabel = Create allow group to hold the allowed ref groups "${grouperRequestContainer.groupStemTemplateContainer.currentServiceAction.argMap['groupDisplayName']}"?
policyGroupAllowDescription = This group is the allow policy for the policy group "${grouperRequestContainer.groupStemTemplateContainer.currentServiceAction.argMap['overallGroupDisplayName']}". This group should generally contain ref groups.
policyGroupAllowManualCreationLabel = Create allow ad hoc group to hold individuals who are manually added to the allow policy "${grouperRequestContainer.groupStemTemplateContainer.currentServiceAction.argMap['groupDisplayName']}"?
policyGroupAllowManualDescription = This group is the list of ad hoc individuals who are manually added to the allow policy for the policy group "${grouperRequestContainer.groupStemTemplateContainer.currentServiceAction.argMap['overallGroupDisplayName']}".
policyGroupDenyCreationLabel = Create deny group to hold the denied ref groups "${grouperRequestContainer.groupStemTemplateContainer.currentServiceAction.argMap['groupDisplayName']}"?
policyGroupDenyDescription = This group is the deny policy for the policy group "${grouperRequestContainer.groupStemTemplateContainer.currentServiceAction.argMap['overallGroupDisplayName']}". This group should generally contain ref groups.
policyGroupDenyManualCreationLabel = Create deny ad hoc group to hold individuals who are manually removed from the policy "${grouperRequestContainer.groupStemTemplateContainer.currentServiceAction.argMap['groupDisplayName']}"?
policyGroupDenyManualDescription = This group is the list of ad hoc individuals who are manually removed from the policy for the policy group "${grouperRequestContainer.groupStemTemplateContainer.currentServiceAction.argMap['overallGroupDisplayName']}".
policyGroupMembershipsLabel = Add group "${grouperRequestContainer.groupStemTemplateContainer.currentServiceAction.argMap['groupDisplayNameMembership']}" as a member of "${grouperRequestContainer.groupStemTemplateContainer.currentServiceAction.argMap['groupDisplayNameMembershipOf']}"?
policyGroupRequireGroupLabel = Require members in the overall policy group to also be in this group: "${grouperRequestContainer.groupStemTemplateContainer.currentServiceAction.argMap['groupDisplayName']}"?
policyGroupRequireGroupDescription = This is a helper group that facilitates a "require group" intersect composite. This group's members are the members before requiring the group: "${grouperRequestContainer.groupStemTemplateContainer.currentServiceAction.argMap['groupDisplayName']}"
policyGroupCompositeGroupHasMembers = Error: in order for groups to be composites, they cannot have members already
policyGroupDenyNeedsAllow = Error: you cannot have a deny group without an allow group
########################################
## Tier Structure Wizard
########################################
stemTemplateTypeTierStructureLabel = Grouper Deployment Guide structure
stemTierBaseFolderDescription = Grouper Deployment Guide structure
stemTierBasisFolderDescription = The basis folder holds basis groups. $$objectTypeBasisFolderDescription$$
stemTierRefFolderDescription = The ref folder contains reference groups. $$objectTypeRefFolderDescription$$
stemTierBundleFolderDescription = $$objectTypeBundleFolderDescription$$
stemTierAppFolderDescription = The app folder contains folders for apps. $$objectTypeAppFolderDescription$$
stemTierOrgFolderDescription = $$objectTypeOrgFolderDescription$$
stemTierTestFolderDescription = $$objectTypeTestFolderDescription$$
stemTierEtcFolderDescription = $$objectTypeEtcFolderDescription$$
stemTierSecurityFolderDescription = $$objectTypeGrouperSecurityFolderDescription$$
stemTierSecurityAdminsGroupDescription = This group contains admins for the GDG structure. Members of this group can perform any action in the GDG base folder. For example they can assign or unassign memberships and privileges, and they create or delete groups or folders.
stemTierSecurityReadersGroupDescription = This group has people or principals who can see that objects in this GDG folder exist and can READ all memberships of groups for this GDG folder including the security groups.
stemTierSecurityUpdatersGroupDescription = This group has users who can read all groups for the GDG folder, and who can update memberships of the non-security groups.
########################################
## Gsh Templates
########################################
gshTemplatesMainLink = GSH templates
miscellaneousGshTemplatesOverallBreadcrumb = GSH templates
miscellaneousGshTemplatesMainDescription = GSH templates
gshTemplatesMoreActionsButton = Actions
gshTemplatesMoreActionsAddButton = Add GSH template
gshTemplatesMoreActionsViewButton = View GSH templates
ariaLabelGuiMoreGshTemplateActions = Show GSH template actions
gshTemplatesNoConfiguredGshTemplates = There are no GSH templates configured.
gshTemplatesTableHeaderConfigId = Config id
gshTemplatesTableHeaderEnabled = Enabled
gshTemplatesTableHeaderActions = Actions
gshTemplatesTableEnabledTrueValue = Enabled
gshTemplatesTableEnabledFalseValue = Disabled
gshTemplatesRowActionsButton = Actions
gshTemplatesTableViewDetailsActionOption = View details
gshTemplatesTableEditDetailsActionOption = Edit details
gshTemplatesTableRunTemplateActionOption = Run template
gshTemplatesTableDeleteDetailsActionOption = Delete GSH template
gshTemplatesTableTestActionOption = Test
gshTemplatesNoTestsDefined = No tests defined. Tests need to be instance methods, no inputs, and return GshTemplateV2test
gshTemplatesTableDisableActionOption = Disable
gshTemplatesTableEnableActionOption = Enable
gshTemplatesConfirmDeleteConfig = Are you sure you want to delete this GSH template?
miscellaneousGshTemplatesAddBreadcrumb = Add GSH template
miscellaneousGshTemplatesEditBreadcrumb = Edit GSH template
gshTemplatesConfigAddFormSubmitButton = Submit
gshTemplatesConfigAddFormCancelButton = Cancel
gshTemplateConfigIdLabel = Config id
gshTemplateTypeLabel = Template
gshTemplateTypeHint = Template
gshTemplateError = There was an error running the template
gshTemplateConfigIdHint = The Config id is an alphanumeric key for the template that will be referred to from places that use the template. It is also used in the configuration keys.
gshTemplateConfigSaveErrorGroupNotFound = Group could not be found for uuid/name '$$groupUUIDOrName$$'.
gshTemplateConfigSaveErrorFolderNotFound = Folder could not be found for uuid/name '$$folderUUIDOrName$$'.
gshTemplateConfigSaveErrorDefaultRunGroupNotInGroupsToShowList = Default run group '$$groupUUIDOrName$$' is not in the groups to show list.
gshTemplateConfigSaveErrorDefaultRunGroupNotUnderFolderToShow = Default run group '$$groupUUIDOrName$$' is not a child of folder '$$folderUUIDOrName$$'.
gshTemplateConfigSaveErrorDefaultRunFolderNotInFoldersToShowList = Default run folder '$$folderUUIDOrName$$' is not in the folders to show list.
gshTemplateScreenDecription = Run template
gshTemplateCreateErrorConfigIdRequired = Error: Config id is required
gshTemplateSaveErrorInputNotValidFormat = Input name must start with gsh_input_ and can only contain alpha-numeric and underscore characters.
gshTemplateSaveErrorInputDefaultValueNotCorrectType = Default value '$$defaultValue$$' must be of the selected type '$$selectedType$$'.
gshTemplateSaveErrorInputInvalidRegex = Problem with regex:
config.GshTemplateConfiguration.attribute.option.groupShowType.certainGroups.label = Certain groups
config.GshTemplateConfiguration.attribute.option.groupShowType.groupsInFolder.label = Groups in a specified folder
config.GshTemplateConfiguration.attribute.option.groupShowType.allGroups.label = All groups
config.GshTemplateConfiguration.attribute.option.groupShowOnDescendants.oneChildLevel.label = One child level
config.GshTemplateConfiguration.attribute.option.groupShowOnDescendants.descendants.label = All descendants
config.GshTemplateConfiguration.attribute.option.folderShowOnDescendants.certainFolders.label = Certain folders
config.GshTemplateConfiguration.attribute.option.folderShowOnDescendants.oneChildLevel.label = One child level
config.GshTemplateConfiguration.attribute.option.folderShowOnDescendants.certainFoldersAndOneChildLevel.label = Certain folders and one child
config.GshTemplateConfiguration.attribute.option.folderShowOnDescendants.descendants.label = All descendants
config.GshTemplateConfiguration.attribute.option.folderShowOnDescendants.certainFoldersAndDescendants.label = Certain folders and all descendants
config.GshTemplateConfiguration.attribute.option.securityRunType.wheel.label = Wheel group
config.GshTemplateConfiguration.attribute.option.securityRunType.specifiedGroup.label = Specified group
config.GshTemplateConfiguration.attribute.option.securityRunType.privilegeOnObject.label = Privilege on object
config.GshTemplateConfiguration.attribute.option.securityRunType.everyone.label = Everyone
config.GshTemplateConfiguration.attribute.option.requireFolderPrivilege.admin.label = Admin
config.GshTemplateConfiguration.attribute.option.requireFolderPrivilege.create.label = Create
config.GshTemplateConfiguration.attribute.option.requireFolderPrivilege.stemAttrRead.label = Stem attribute read
config.GshTemplateConfiguration.attribute.option.requireFolderPrivilege.stemAttrUpdate.label = Stem attribute udpate
config.GshTemplateConfiguration.attribute.option.requireGroupPrivilege.admin.label = Admin
config.GshTemplateConfiguration.attribute.option.requireGroupPrivilege.read.label = Read
config.GshTemplateConfiguration.attribute.option.requireGroupPrivilege.update.label = Update
config.GshTemplateConfiguration.attribute.option.requireGroupPrivilege.read_and_update.label = Read and update
config.GshTemplateConfiguration.attribute.option.requireGroupPrivilege.optin.label = Opt-in
config.GshTemplateConfiguration.attribute.option.requireGroupPrivilege.optout.label = Opt-out
config.GshTemplateConfiguration.attribute.option.requireGroupPrivilege.view.label = View
config.GshTemplateConfiguration.attribute.option.requireGroupPrivilege.groupAttrRead.label = Group attribute read
config.GshTemplateConfiguration.attribute.option.requireGroupPrivilege.groupAttrUpdate.label = Group attribute udpate
config.GshTemplateConfiguration.attribute.option.folderShowType.certainFolders.label = Certain folders
config.GshTemplateConfiguration.attribute.option.folderShowType.allFolders.label = All folders
config.GshTemplateConfiguration.attribute.option.input.i.type.integer.label = Integer
config.GshTemplateConfiguration.attribute.option.input.i.type.boolean.label = Boolean
config.GshTemplateConfiguration.attribute.option.input.i.type.string.label = String
config.GshTemplateConfiguration.attribute.option.input.i.formElementType.text.label = Textfield
config.GshTemplateConfiguration.attribute.option.input.i.formElementType.textarea.label = Textarea
config.GshTemplateConfiguration.attribute.option.input.i.formElementType.dropdown.label = Dropdown
config.GshTemplateConfiguration.attribute.option.input.i.formElementType.password.label = Password
config.GshTemplateConfiguration.attribute.option.input.i.dropdownValueFormat.sql.label = SQL
config.GshTemplateConfiguration.attribute.option.input.i.dropdownValueFormat.csv.label = CSV
config.GshTemplateConfiguration.attribute.option.input.i.dropdownValueFormat.json.label = Json array of objects with "key" and "label" fields
config.GshTemplateConfiguration.attribute.option.input.i.dropdownValueFormat.javaclass.label = Java class implementing OptionValueDriver
config.GshTemplateConfiguration.attribute.option.input.i.dropdownValueFormat.dynamicFromTemplate.label = Dynamic values from template
config.GshTemplateConfiguration.attribute.option.input.i.validationType.builtin.label = Built-in
config.GshTemplateConfiguration.attribute.option.input.i.validationType.regex.label = Regex
config.GshTemplateConfiguration.attribute.option.input.i.validationType.jexl.label = Jexl expression (must return true)
config.GshTemplateConfiguration.attribute.option.input.i.validationType.none.label = No validation
config.GshTemplateConfiguration.attribute.option.input.i.validationBuiltin.alpha.label = Alphabets only
config.GshTemplateConfiguration.attribute.option.input.i.validationBuiltin.alphaNumeric.label = Alpha-numeric
config.GshTemplateConfiguration.attribute.option.input.i.validationBuiltin.alphaNumericUnderscore.label = Alpha-numeric and underscores
config.GshTemplateConfiguration.attribute.option.input.i.validationBuiltin.alphaNumericDash.label = Alpha-numeric and dashes
config.GshTemplateConfiguration.attribute.option.input.i.validationBuiltin.alphaNumericUnderscoreDash.label = Alpha-numeric, underscores, and dashes
config.GshTemplateConfiguration.attribute.option.input.i.validationBuiltin.noColons.label = No colons
config.GshTemplateConfiguration.attribute.option.runAsType.currentUser.label = Current user
config.GshTemplateConfiguration.attribute.option.runAsType.GrouperSystem.label = GrouperSystem
config.GshTemplateConfiguration.attribute.option.runAsType.specifiedSubject.label = Specified subject
config.GshTemplateConfiguration.attribute.enabled.label = Enabled
config.GshTemplateConfiguration.attribute.enabled.description = if this template is enabled
config.GshTemplateConfiguration.attribute.showOnGroups.label = Show on groups
config.GshTemplateConfiguration.attribute.showOnGroups.description = if this template option is available on groups
config.GshTemplateConfiguration.attribute.groupShowType.label = Group show type
config.GshTemplateConfiguration.attribute.groupShowType.description = Is this supposed to show for one group, groups in a certain folder, or allGroups
config.GshTemplateConfiguration.attribute.groupUuidToShow.label = Group uuid to show
config.GshTemplateConfiguration.attribute.groupUuidToShow.description = Which group to show the template on
config.GshTemplateConfiguration.attribute.groupShowOnDescendants.label = Group show on descendants
config.GshTemplateConfiguration.attribute.groupShowOnDescendants.description = OneChildLevel: only show on groups directly in folder. Descendants: show in all groups under the folder
config.GshTemplateConfiguration.attribute.templateVersion.label = Template version
config.GshTemplateConfiguration.attribute.templateVersion.description = GSH template version. V1 is the original legacy version. V2 needs to implement GshTemplateV2 and assign to: gsh_builtin_gshTemplateRuntime.assignGshTemplateV2(gshTemplateV2);
config.GshTemplateConfiguration.attribute.showOnFolders.label = Show on folders
config.GshTemplateConfiguration.attribute.showOnFolders.description = if this template option is available on folders
config.GshTemplateConfiguration.attribute.allowWsFromNoOwner.label = Allow WS from no owner
config.GshTemplateConfiguration.attribute.allowWsFromNoOwner.description = Allow a WS call where the request does not need an owner folder or group
config.GshTemplateConfiguration.attribute.folderShowType.label = Folder show type
config.GshTemplateConfiguration.attribute.folderShowType.description = Where should this template be available
config.GshTemplateConfiguration.attribute.folderUuidToShow.label = Folder uuids or names to show
config.GshTemplateConfiguration.attribute.folderUuidToShow.description = Comma separated UUIDs or names of folders to show this template
config.GshTemplateConfiguration.attribute.folderShowOnDescendants.label = Folder show on descendants
config.GshTemplateConfiguration.attribute.folderShowOnDescendants.description = certainFolders: just show on the certain folders. oneChildLevel: only show on child level under certain folders. certainFoldersAndOneChildLevel: show the folder and one level of children. descendants: show all folders under the folder. certainFoldersAndDescendants: show all certain folders and all descendants.
config.GshTemplateConfiguration.attribute.groupUuidsToShow.label = Group uuids or names to show
config.GshTemplateConfiguration.attribute.groupUuidsToShow.description = Comma separated UUIDs or names of groups to show this template
config.GshTemplateConfiguration.attribute.folderUuidForGroupsInFolder.label = Parent folder UUID or name
config.GshTemplateConfiguration.attribute.folderUuidForGroupsInFolder.description = Folder UUID or name under which groups can see this template
config.GshTemplateConfiguration.attribute.runButtonGroupOrFolder.label = Run template owner type
config.GshTemplateConfiguration.attribute.runButtonGroupOrFolder.description = If you select an option here, you can run this template from the gsh template screen. There will be a button called 'Run template'. Select folder if that button runs this template from a folder. Select group if that button runs this template from a group.
config.GshTemplateConfiguration.attribute.defaultRunButtonGroupUuidOrName.label = Run template group name or uuid
config.GshTemplateConfiguration.attribute.defaultRunButtonGroupUuidOrName.description = When you run this template from the gsh template screen, this is the group that it will run on
config.GshTemplateConfiguration.attribute.defaultRunButtonFolderUuidOrName.label = Run template folder name or uuid
config.GshTemplateConfiguration.attribute.defaultRunButtonFolderUuidOrName.description = When you run this template from the gsh template screen, this is the folder that it will run on
config.GshTemplateConfiguration.attribute.securityRunType.label = Security run type
config.GshTemplateConfiguration.attribute.securityRunType.description = Who can run this template. Only GrouperSystem / wheel group, or specify a group
config.GshTemplateConfiguration.attribute.groupUuidCanRun.label = Group uuid or name
config.GshTemplateConfiguration.attribute.groupUuidCanRun.description = UUID or name of group that can run this template
config.GshTemplateConfiguration.attribute.requireFolderPrivilege.label = Require folder privilege
config.GshTemplateConfiguration.attribute.requireFolderPrivilege.description = If running this template requires any of these privs on the folder it is run on
config.GshTemplateConfiguration.attribute.requireGroupPrivilege.label = Require group privilege
config.GshTemplateConfiguration.attribute.requireGroupPrivilege.description = The option to run the template will only show if the user has this privilege on the group at least (e.g. if the user has ADMIN they can READ)
config.GshTemplateConfiguration.attribute.runAsType.label = Run as type
config.GshTemplateConfiguration.attribute.runAsType.description = Select the type of user to run as. "currentUser" means run as the user using the UI. "GrouperSystem" means run as root user, "specifiedSubject" means you can pick a subject to run as (not common).
config.GshTemplateConfiguration.attribute.externalizedText.label = Externalized text?
config.GshTemplateConfiguration.attribute.externalizedText.description = Selec 'True' if you would like to use externalized text for template name, description, and input labels & descriptions.
config.GshTemplateConfiguration.attribute.runAsSpecifiedSubjectSourceId.label = Run as specified subject source
config.GshTemplateConfiguration.attribute.runAsSpecifiedSubjectSourceId.description = Select the source ID of the specified subject to run as
config.GshTemplateConfiguration.attribute.runAsSpecifiedSubjectId.label = Run as specified subject id
config.GshTemplateConfiguration.attribute.runAsSpecifiedSubjectId.description = Subject id of the specified subject to run as
config.GshTemplateConfiguration.attribute.templateNameExternalizedTextKey.label = Template name externalized key
config.GshTemplateConfiguration.attribute.templateNameExternalizedTextKey.description = Externalized key for the template name
config.GshTemplateConfiguration.attribute.templateName.label = Template name
config.GshTemplateConfiguration.attribute.templateName.description = Template name
config.GshTemplateConfiguration.attribute.gshLightweight.label = Lightweight GSH
config.GshTemplateConfiguration.attribute.gshLightweight.description = If you are managing your own imports and don't want built-ins select true. This reduces the GSH execution time by a few seconds.
config.GshTemplateConfiguration.attribute.showInMoreActions.label = Show in actions dropdown
config.GshTemplateConfiguration.attribute.showInMoreActions.description = If you want this template to show under folders 'Folder actions' or groups 'Group actions' dropdown, select 'True'.
config.GshTemplateConfiguration.attribute.moreActionsLabel.label = Template label in actions dropdown
config.GshTemplateConfiguration.attribute.moreActionsLabel.description = Label you want for this template to show under folders 'Folder actions' or groups 'Group actions' dropdown.
config.GshTemplateConfiguration.attribute.moreActionsLabelExternalizedTextKey.label = Externalized key for label
config.GshTemplateConfiguration.attribute.moreActionsLabelExternalizedTextKey.description = Externalized key for this template label to show under folders 'Folder actions' or groups 'Group actions' dropdown.
config.GshTemplateConfiguration.attribute.displayErrorOutput.label = Display error messages and output on error
config.GshTemplateConfiguration.attribute.displayErrorOutput.description = If you want to see error messages and output when you run gsh template and experience problems, Select 'True'
config.GshTemplateConfiguration.attribute.runGshInTransaction.label = Run gsh script in transaction
config.GshTemplateConfiguration.attribute.runGshInTransaction.description = Run gsh script in a database transaction so that if any statement fails, then all the database changes are rolled back.
config.GshTemplateConfiguration.attribute.useIndividualAudits.label = Use individual audits
config.GshTemplateConfiguration.attribute.useIndividualAudits.description = If each Grouper action that is run should have an individual audit record. If false, just have an audit record that the user ran the template in general.
config.GshTemplateConfiguration.attribute.consolidateOutput.label = Consolidate output
config.GshTemplateConfiguration.attribute.consolidateOutput.description = When printing multiple output statements to the UI, should the successes be merged into one green block (and errors, and info into their blocks)
config.GshTemplateConfiguration.attribute.simplifiedUi.label = Simplified UI
config.GshTemplateConfiguration.attribute.simplifiedUi.description = If the UI should not show the left panel, top part, search, etc, and should just show the template being run.
config.GshTemplateConfiguration.attribute.actAsGroupUUID.label = Group can WS act as
config.GshTemplateConfiguration.attribute.actAsGroupUUID.description = Group UUID or name where members of the group, when they execute a template via WS can act as other users
config.GshTemplateConfiguration.attribute.templateDescriptionExternalizedTextKey.label = Template description externalized key
config.GshTemplateConfiguration.attribute.templateDescriptionExternalizedTextKey.description = Externalized key for the template description
config.GshTemplateConfiguration.attribute.templateDescription.label = Template description
config.GshTemplateConfiguration.attribute.templateDescription.description = Template description
config.GshTemplateConfiguration.attribute.gshTemplate.label = GSH script
config.GshTemplateConfiguration.attribute.gshTemplate.description = This is the GSH template to run
config.GshTemplateConfiguration.attribute.numberOfInputs.label = Number of inputs
config.GshTemplateConfiguration.attribute.numberOfInputs.description = Number of inputs (form elements on ui or in ws)
config.GshTemplateConfiguration.subSection.input.i.title = Input __i+1__
config.GshTemplateConfiguration.subSection.input.i.description = Input item configuration and validation. An input item is provided by the user using the UI or WS.
config.GshTemplateConfiguration.attribute.input.i.name.label = Input __i+1__: name
config.GshTemplateConfiguration.attribute.input.i.name.description = Name of the ui form element, ws param, template variable. Must start with gsh_input_
config.GshTemplateConfiguration.attribute.input.i.labelExternalizedTextKey.label = Input __i+1__: externalized text key
config.GshTemplateConfiguration.attribute.input.i.labelExternalizedTextKey.description = Externalized text key of the label on the UI for this input
config.GshTemplateConfiguration.attribute.input.i.label.label = Input __i+1__: label
config.GshTemplateConfiguration.attribute.input.i.label.description = Label on the UI for this input
config.GshTemplateConfiguration.attribute.input.i.maxLength.label = Input __i+1__: max length
config.GshTemplateConfiguration.attribute.input.i.maxLength.description = Max length
config.GshTemplateConfiguration.attribute.input.i.descriptionExternalizedTextKey.label = Input __i+1__: description externalized text key
config.GshTemplateConfiguration.attribute.input.i.descriptionExternalizedTextKey.description = Externalized text key of the description on the UI for this input
config.GshTemplateConfiguration.attribute.input.i.description.label = Input __i+1__: description
config.GshTemplateConfiguration.attribute.input.i.description.description = Description on the UI for this input
config.GshTemplateConfiguration.attribute.input.i.type.label = Input __i+1__: input type
config.GshTemplateConfiguration.attribute.input.i.type.description = Type of the data
config.GshTemplateConfiguration.attribute.input.i.formElementType.label = Input __i+1__: form element type
config.GshTemplateConfiguration.attribute.input.i.formElementType.description = Form element type on UI
config.GshTemplateConfiguration.attribute.input.i.dropdownValueFormat.label = Input __i+1__: dropdown value format
config.GshTemplateConfiguration.attribute.input.i.dropdownValueFormat.description = Dropdown value format
config.GshTemplateConfiguration.attribute.input.i.dropdownSqlDatabase.label = Input __i+1__: dropdown database
config.GshTemplateConfiguration.attribute.input.i.dropdownSqlDatabase.description = Database that this SQL runs against
config.GshTemplateConfiguration.attribute.input.i.dropdownSqlValue.label = Input __i+1__: dropdown SQL
config.GshTemplateConfiguration.attribute.input.i.dropdownSqlValue.description = Enter a SQL that has two columns (ordered): first column is the key, second column is the label. Can use $$subjectId$$ once in the SQL and will be substituted by a bind variable for the user using the application subjectId.
config.GshTemplateConfiguration.attribute.input.i.dropdownSqlCacheForMinutes.label = Input __i+1__: dropdown SQL cache minutes
config.GshTemplateConfiguration.attribute.input.i.dropdownSqlCacheForMinutes.description = Number of minutes to cache this SQL call result.
config.GshTemplateConfiguration.attribute.input.i.dropdownCsvValue.label = Input __i+1__: CSV values
config.GshTemplateConfiguration.attribute.input.i.dropdownCsvValue.description = Enter comma separated values
config.GshTemplateConfiguration.attribute.input.i.dropdownJsonValue.label = Input __i+1__: json values
config.GshTemplateConfiguration.attribute.input.i.dropdownJsonValue.description = Json values e.g [{"key": "1234", "label": "Business school"},{"key": "2345", "label": "Engineering school"}]
config.GshTemplateConfiguration.attribute.input.i.dropdownJavaClassValue.label = Input __i+1__: values class
config.GshTemplateConfiguration.attribute.input.i.dropdownJavaClassValue.description = Class to retrieve dropdown values from. Class must implement 'edu.internet2.middleware.grouper.cfg.dbConfig.OptionValueDriver'
config.GshTemplateConfiguration.attribute.input.i.index.label = Input __i+1__: form element index
config.GshTemplateConfiguration.attribute.input.i.index.description = Form elements will show on the form in order of "index". DefaultValue is 0. If two elements have the same index then they will show in order of configuration.
config.GshTemplateConfiguration.attribute.input.i.validationType.label = Input __i+1__: validation type
config.GshTemplateConfiguration.attribute.input.i.validationType.description = Type of validation on the input
config.GshTemplateConfiguration.attribute.input.i.validationBuiltin.label = Input __i+1__: builtin validation
config.GshTemplateConfiguration.attribute.input.i.validationBuiltin.description = Type of builtin validation on the input
config.GshTemplateConfiguration.attribute.input.i.validationRegex.label = Input __i+1__: validation regex
config.GshTemplateConfiguration.attribute.input.i.validationRegex.description = Regex to check the input and if it doesnt match then fail. For example, this is alphanumeric or underscore length between 1 and 50
config.GshTemplateConfiguration.attribute.input.i.validationJexl.label = Input __i+1__: validation jexl
config.GshTemplateConfiguration.attribute.input.i.validationJexl.description = Run a validation (and include all variables for cross-validations), return true for valid, and false for invalid
config.GshTemplateConfiguration.attribute.input.i.validationMessageExternalizedTextKey.label = Input __i+1__: validation message externalized text key
config.GshTemplateConfiguration.attribute.input.i.validationMessageExternalizedTextKey.description = Key in externalized text for builtin validation messages
config.GshTemplateConfiguration.attribute.input.i.validationMessage.label = Input __i+1__: validation message
config.GshTemplateConfiguration.attribute.input.i.validationMessage.description = Validation message that should be shown for builtin validations
config.GshTemplateConfiguration.attribute.input.i.required.label = Input __i+1__: required
config.GshTemplateConfiguration.attribute.input.i.required.description = If this input is required for template to run
config.GshTemplateConfiguration.attribute.input.i.trimWhitespace.label = Input __i+1__: trim whitespace
config.GshTemplateConfiguration.attribute.input.i.trimWhitespace.description = If whitespace should be trimmed from the value for this input
config.GshTemplateConfiguration.attribute.input.i.defaultValue.label = Input __i+1__: default value
config.GshTemplateConfiguration.attribute.input.i.defaultValue.description = default value for the input if none is provided
config.GshTemplateConfiguration.attribute.input.i.showEl.label = Input __i+1__: Jexl for showEl
config.GshTemplateConfiguration.attribute.input.i.showEl.description = Jexl for if this field should show, note all inputs are available to use as variables
config.GshTemplateConfiguration.attribute.numberOfTests.label = Input __i+1__: number of tests
config.GshTemplateConfiguration.attribute.numberOfTests.description = Number of tests to make sure this template functions
config.GenericConfiguration.subSection.test.title = Test settings
config.GenericConfiguration.subSection.test.description = Test settings
provisioning.documentationLink = Documentation
provisioning.folder.documentation = You will see a row for each provisioner that you can at least VIEW. You can edit provisioning settings for each provisioner that you can MANAGE.
Provisioner name: this is the configuration ID of the provisioner
Provisionable: based on direct settings on an ancestor folder or this folder, groups in this folder and potentially descendant folders will be managed by the provisioner. It might depend on the type of group (if it is a policy group), the group name (if there is a regex), or how far in the descendant tree the group is
Metadata: if there are settings on this folder that will be inherited by provisionable groups in this folder (if they do not have direct settings), those settings will be displayed here
Direct assignment: if this folder has provisioning settings (not inherited by an ancestor folder)
Ancestor folder is provisionable: This is 'Yes' if this folder would be provisionable (due to an ancestor folder), if this folder did not have direct provisioning settings
provisioning.group.documentation = You will see a row for each provisioner that you can at least VIEW. You can edit provisioning settings for each provisioner that you can MANAGE.
Provisioner name: this is the configuration ID of the provisioner
Provisionable: based on direct settings on this group or an ancestor folder, this group will be managed by the provisioner. It might depend on the type of group (if it is a policy group), the group name (if there is a regex), or how far in the descendant tree the group is
In target: if this group has been processed by the provisioner and is detected to be in the target system. Note: Grouper could have inserted it or it could have already existed
Metadata: if there are settings on this group that controls how this group is provisioned, those settings will be displayed here
Direct assignment: if this group has provisioning settings (not inherited by an ancestor folder)
Ancestor folder is provisionable: This is 'Yes' if this group would be provisionable (due to an ancestor folder), if this group did not have direct provisioning settings
Last time work was done: This is the last time any changes were made in the target system regarding this group
config.GenericConfiguration.subSection.test.i.title = Test __i+1__: settings
config.GenericConfiguration.subSection.test.i.description = Test settings
config.GshTemplateConfiguration.attribute.test.i.deleteSideEffectsIfExistGsh.label = Test __i+1__: delete side effects
config.GshTemplateConfiguration.attribute.test.i.deleteSideEffectsIfExistGsh.description = Will be run before and after test (first and last) to clean up what the test and setup and verification do. Will not run after test if test fails.
config.GshTemplateConfiguration.attribute.test.i.setupGsh.label = Test __i+1__: setup code
config.GshTemplateConfiguration.attribute.test.i.setupGsh.description = Will be run before test
config.GshTemplateConfiguration.attribute.test.i.testGsh.label = Test __i+1__: GSH code
config.GshTemplateConfiguration.attribute.test.i.testGsh.description = Call the Java API for the template exec with inputs
config.GshTemplateConfiguration.attribute.test.i.verifyGsh.label = Test __i+1__: verify GSH code
config.GshTemplateConfiguration.attribute.test.i.verifyGsh.description = Verify that the test succeeded
gshTemplateConfigAddEditSuccess = GSH template was saved successfully.
gshTemplateConfigDeleteSuccess = GSH template was deleted successfully.
gshTemplateChangeStatusSuccess = GSH template status was changed successfully.
gshTemplateConfigTestNotRightVersion = GSH template version must be V2 to run tests (and it must contain tests).
gshTemplate.error.alpha.message = '$$valueFromUser$$' contains non-alpha character(s).
gshTemplate.error.alphaNumeric.message = '$$valueFromUser$$' contains non-alphanumeric character(s).
gshTemplate.error.alphaNumericUnderscore.message = '$$valueFromUser$$' contains non-alphanumeric and underscore character(s).
gshTemplate.error.alphaNumericDash.message = '$$valueFromUser$$' contains non-alphanumeric and dash character(s).
gshTemplate.error.alphaNumericUnderscoreDash.message = '$$valueFromUser$$' contains non-alphanumeric, underscore and dash character(s).
gshTemplate.error.noColons.message = '$$valueFromUser$$' contains colon(s).
gshTemplate.error.configId.notEnabled.message = Template with config id '$$configId$$' is not enabled.
gshTemplate.error.ownerTypeStem.blank.message = For gshTemplateOwnerType 'stem', ownerStemName cannot be blank.
gshTemplate.error.ownerTypeGroup.blank.message = For gshTemplateOwnerType 'group', ownerGroupName cannot be blank.
gshTemplate.error.ownerStem.notFound.message = Could not find ownerStem for name: '$$ownerStemName$$'.
gshTemplate.error.ownerGroup.notFound.message = Could not find ownerGroup for name: '$$ownerGroupName$$'.
gshTemplate.error.ownerType.required.message = gshTemplateOwnerType is a required field.
gshTemplate.error.currentUser.notMemberOfGroupThatCanRunTemplate.message = currentUser with subject id '$$subjectId$$' is not a member of '$$groupName$$'.
gshTemplate.error.currentUser.notMemberOfWheelGroup.message = currentUser with subject id '$$subjectId$$' is not a member of wheelGroup '$$groupName$$'.
gshTemplate.error.currentUser.noPrivilegeOnOwnerStem.message = currentUser with subject id '$$subjectId$$' does not have privilege '$$privilege$$' on owner stem '$$ownerStemName$$'.
gshTemplate.error.currentUser.noPrivilegeOnOwnerGroup.message = currentUser with subject id '$$subjectId$$' does not have privilege '$$privilege$$' on owner group '$$ownerGroupName$$'.
gshTemplate.error.wheelGroupMissing.message = Security run type was chosen as wheelGroup but value of wheelGroup is not set.
gshTemplate.error.input.notConfiguredInTemplate.message = '$$inputName$$' does not exist in the input names configured in the template. Valid names are '$$validInputNames$$'.
gshTemplate.error.input.required.message = '$$inputName$$' is a required input field.
gshTemplate.error.input.conversion.message = '$$valueFromUser$$' cannot be converted to '$$type$$'.
gshTemplate.error.input.maxLength.message = '$$inputName$$' cannot be more than '$$maxLength$$' character(s).
gshTemplate.error.input.regex.message = '$$valueFromUser$$' does not match regex '$$regex$$'.
gshTemplate.error.input.jexl.message = '$$inputName$$' does not return true for jexl expression '$$jexl$$'.
gshTemplate.error.input.requiredNotSent.message = '$$inputName$$' is a required input and must exist in the input params.
gshTemplate.error.configIdBlank.message = Config id cannot be blank.
gshTemplate.error.input.invalidDropdownValue.message = '$$inputName$$' is not valid. Valid values are '$$validValues$$'.
########################################
## JEXL Script Tester
########################################
scriptTesterLink = JEXL script tester
miscellaneousScriptTesterOverallBreadcrumb = JEXL script tester
miscellaneousScriptTesterMainDescription = JEXL script tester
miscellaneousScriptTesterWarningMessage = The script will be executed on the server in the ${edu.internet2.middleware.grouper.cfg.GrouperConfig.retrieveConfig().propertyValueString("grouper.env.name")} environment. Do not do anything destructive.
scriptTypeLabel = Script type
nullCheckingJexlScriptLabel = Null checking JEXL script
nullCheckingJexlScriptHint = You could put a JEXL script here to check for nulls safely because JEXL will throw exception if any variables are null e.g. ${a != null}
scriptTypeHint = Select script type
availableBeansLabel = Available beans GSH script
availableBeansHint = Available beans GSH script
scriptTestFormSubmitButton = Submit
beanName = Bean name
exampleLabel = Example
exampleHint = Example
beanClass = Bean class
scriptSourceLabel = Script
scriptResult = Result
scriptExecuted = Gsh script executed
showHideGshScript = Show/Hide gsh script
scriptSourceHint = Add your script here
scriptTypeRequired = Script type is required
userNotInJexlScriptTestingGroup = User must be in ${edu.internet2.middleware.grouper.cfg.GrouperConfig.retrieveConfig().propertyValueString("jexlScriptTestingGroup")} and sysadmin to be able to run JEXL tests.
exampleRequired = Example is required
availableBeansRequired = Available beans GSH script is required
jexlScriptRequired = JEXL script is required
jexlScriptType_ABAC_description = Scripted group based on group memberships and data fields
jexlScriptType_LDAP_LOADER_NAME_EXPRESSION_description = Dynamically configuring group name for an ldap loader
jexlScriptType_PROVISIONING_GROUP_TRANSLATION_description = Target group attribute name configuration
jexlScriptType_PROVISIONING_ENTITY_TRANSLATION_description = Target entity attribute name configuration
jexlScriptType_PROVISIONING_MEMBERSHIP_TRANSLATION_description = Target membership attribute name configuration
jexlScriptType_SUBJECT_SOURCE_description = Virtual subject source attribute script
jexlScriptType_GSH_TEMPLATE_SHOW_EL_description = Gsh template show EL script
jexlScriptExample_ABAC__THREE_PART_COMPOSITE_description = ABAC group membership intersection and minus
jexlScriptExample_LDAP_LOADER_NAME_EXPRESSION__CONVERT_DN_description = Concatenate two subject source attributes together
jexlScriptExample_PROVISIONING_ENTITY_TRANSLATION__GENERIC_description = Format name for an entity
jexlScriptExample_PROVISIONING_GROUP_TRANSLATION__GENERIC_description = Concatenate two attributes together
jexlScriptExample_PROVISIONING_GROUP_TRANSLATION__REVERSE_STRING_description = Reverse the group name, change the delimiter to period, and max length 64
jexlScriptExample_PROVISIONING_GROUP_TRANSLATION__LDAP_DN_TRANSLATION_description = Remove a prefix and generate a bushy DN
jexlScriptExample_PROVISIONING_GROUP_TRANSLATION__METADATA_OVERRIDE_description = Check to see if a metadata exists for a group
jexlScriptExample_PROVISIONING_MEMBERSHIP_TRANSLATION__GENERIC_description = Construct a multikey based on group attribute and entity attribute
jexlScriptExample_SUBJECT_SOURCE__GENERIC_description = Concatenate two non virtual attributes together
jexlScriptExample_GSH_TEMPLATE_SHOW_EL__ACTION_IN_SET_description = Check if input action is one of the two strings
########################################
## Sql Sync
########################################
sqlSyncMainLink = Sql sync
miscellaneousSqlSyncOverallBreadcrumb = Sql sync
miscellaneousSqlSyncMainDescription = Sql sync
sqlSyncMoreActionsButton = Actions
sqlSyncConfigIdLabel = Config id
sqlSyncMoreActionsAddButton = Add sql sync
sqlSyncMoreActionsViewButton = View Sql sync configs
ariaLabelGuiMoreSqlSyncActions = Show Sql sync actions
sqlSyncNoConfiguredSqlSyncs = There are no sql syncs configured.
miscellaneousSqlSyncAddBreadcrumb = Add sql sync
miscellaneousSqlSyncEditBreadcrumb = Edit sql sync
sqlSyncConfigAddFormSubmitButton = Submit
sqlSyncConfigAddFormCancelButton = Cancel
sqlSyncConfigIdHint = The Config id is an alphanumeric key for the sql sync that will be referred to from places that use the sql sync. It is also used in the configuration keys.
sqlSyncTypeLabel = Sql sync configuration
sqlSyncTypeHint = Sql sync configuration
sqlSyncCreateErrorConfigIdRequired = Error: Config id is required
sqlSyncConfigAddEditSuccess = Sql sync config was saved successfully.
sqlSyncConfigDeleteSuccess = Sql sync config was deleted successfully.
sqlSyncConfigChangeStatusSuccess = Sql sync config's status was changed successfully.
sqlSyncConfigsTableHeaderConfigId = Config id
sqlSyncConfigsTableHeaderEnabled = Enabled
sqlSyncConfigsTableHeaderActions = Actions
sqlSyncConfigsTableEnabledTrueValue = Enabled
sqlSyncConfigsTableEnabledFalseValue = Disabled
sqlSyncConfigsRowActionsButton = Actions
sqlSyncConfigsTableViewDetailsActionOption = View details
sqlSyncConfigsTableEditDetailsActionOption = Edit details
sqlSyncConfigsTableRunActionOption = Run
sqlSyncConfigsTableDeleteDetailsActionOption = Delete sql sync config
sqlSyncConfigsTableDisableActionOption = Disable
sqlSyncConfigsTableEnableActionOption = Enable
sqlSyncConfigsConfirmDeleteConfig = Are you sure you want to delete this sql sync config?
config.SqlSyncConfiguration.attribute.databaseFrom.label = Database from
config.SqlSyncConfiguration.attribute.tableFrom.label = Table from
config.SqlSyncConfiguration.attribute.databaseTo.label = Database to
config.SqlSyncConfiguration.attribute.databaseToReadonly.label = Database to readonly
config.SqlSyncConfiguration.attribute.tableTo.label = Table to
config.SqlSyncConfiguration.attribute.columns.label = Columns
config.SqlSyncConfiguration.attribute.primaryKeyColumns.label = Primary key columns
config.SqlSyncConfiguration.attribute.changeFlagColumn.label = Change flag column
config.SqlSyncConfiguration.attribute.groupingColumn.label = Grouping column
config.SqlSyncConfiguration.attribute.groupingSize.label = Grouping size
config.SqlSyncConfiguration.attribute.batchSize.label = Batch size
config.SqlSyncConfiguration.attribute.maxBindVarsInSelect.label = Max bind variables in select
config.SqlSyncConfiguration.attribute.switchFromIncrementalToFullIfOverRecords.label = Incremental to full if over records
config.SqlSyncConfiguration.attribute.switchFromIncrementalToFullSubtype.label = Incremental to full subtype
config.SqlSyncConfiguration.attribute.switchFromIncrementalToGroupIfOverRecordsInGroup.label = Incremental to group if over records
config.SqlSyncConfiguration.attribute.switchFromIncrementalToFullIfOverGroupCount.label = Incremental to full if over group count
config.SqlSyncConfiguration.attribute.incrementalPrimaryKeyTable.label = Incremental primary key table
config.SqlSyncConfiguration.attribute.incrementalProgressColumn.label = Incremental progress column
config.SqlSyncConfiguration.attribute.incrementalAllColumnsColumn.label = Incremental all columns column
config.SqlSyncConfiguration.attribute.statusDatabase.label = Status database
config.SqlSyncConfiguration.attribute.removeNullCharactersFromStrings.label = Remove nulls from strings
config.SqlSyncConfiguration.attribute.removeNullCharactersFromStrings.description = Remove nulls from strings (not null values) e.g. when syncing to postgres. Defaults to ${edu.internet2.middleware.grouperClient.util.GrouperClientConfig.retrieveConfig().propertyValueString("grouperClient.syncTableDefault.removeNullCharactersFromStrings", "false")}
config.SqlSyncConfiguration.attribute.ignoreDuplicateSourceKeys.label = Ignore duplicate source keys
config.SqlSyncConfiguration.attribute.ignoreDuplicateSourceKeys.description = If there are multiple source records with the same key, that is an error, this will ignore those to not be an error
sqlSyncConfigSaveErrorTableFromContainsIllegalCharacters = Table from value can only contain alphanumeric characters, underscores, and dots
sqlSyncConfigSaveErrorTableToContainsIllegalCharacters = Table to value can only contain alphanumeric characters, underscores, and dots
########################################
## Subject Resolution / USDU
########################################
# main link on the misc screen about subject resolution
subjectResolutionMainLink = Unresolvable subjects
# main link on the misc screen about subject sources
subjectSourcesMainLink = Subject sources
# breadcrumb on misc subject resolution screen
miscellaneousSubjectResolutionOverallBreadcrumb = Unresolvable subjects
miscellaneousSubjectSourcesOverallBreadcrumb = Subject sources
# breadcrumb on misc subject resolution stats screen
miscellaneousSubjectResolutionStatsBreadcrumb = Unresolvable subject stats
# breadcrumb on misc subject resolution audits screen
miscellaneousSubjectResolutionAuditsBreadcrumb = Unresolvable subject audits
# breadcrumb on misc subject resolution subject search screen
miscellaneousSubjectResolutionSubjectSearchBreadcrumb = Unresolvable subject search
# breadcrumb on misc subject resolution unresolved subjects screen
miscellaneousSubjectResolutionSubjectUnresolvedBreadcrumb = Unresolvable subject list
# title of subject resolution page
miscellaneousSubjectResolutionMainDecription = Unresolvable subjects
# subtitle of subject resolution page
miscellaneousSubjectResolutionMainSubtitle = Unresolvable subject stats
# more actions button for subject resolution
ariaLabelGuiMoreSubjectResolutionMainActions = Show more actions for unresolvable subjects
# more actions button main link for subject resolution
subjectResolutionMainMoreActionsStats = Unresolvable subjects stats
# more actions button search subjects link for subject resolution
subjectResolutionMainMoreActionsSearchSubjects = Search subjects
# view unresolved
subjectResolutionMainMoreActionsViewUnresolved = View unresolvable subjects
# view subject resolution deletion audit logs
subjectResolutionMainMoreActionsViewAuditLogs = View audit logs
# view subject resolution daemon logs
subjectResolutionMainMoreActionsViewDaemonLogs = View daemon logs
# subject resolution stats table source name column header
subjectResolutionStatsTableHeaderSourceName = Source name
# subject resolution stats table unresolved count column header
subjectResolutionStatsTableHeaderUnresolvableCount = Unresolvable non-deleted
# subject resolution stats table resolved count column header
subjectResolutionStatsTableHeaderResolvableCount = Resolved subjects count
# subject resolution stats table deleted count column header
subjectResolutionStatsTableHeaderDeletedCount = Deleted unresolvables
# subtitle of unresolved subjects page
miscellaneousSubjectResolutionUnresolvedSubjectSubtitle = Unresolvable subjects. If there is information cached by Grouper it will be displayed (name, description, subjectIdentifier, etc).
# unresolved subjects table subject source column header
subjectResolutionUnresolvedSubjectsTableHeaderSubjectSource = Subject source
# unresolved subjects table subject id column header
subjectResolutionUnresolvedSubjectsTableHeaderSubjectId = Subject id
# unresolved subjects table subject identifier column header
subjectResolutionUnresolvedSubjectsTableHeaderSubjectIdentifier = Subject identifier
# unresolved subjects table subject description column header
subjectResolutionUnresolvedSubjectsTableHeaderSubjectDescription = Subject description
# unresolved subjects table subject name column header
subjectResolutionUnresolvedSubjectsTableHeaderSubjectName = Subject name
# unresolved subjects table last resolved column header
subjectResolutionUnresolvedSubjectsTableHeaderLastResolved = Last resolved
# unresolved subjects table last checked column header
subjectResolutionUnresolvedSubjectsTableHeaderLastChecked = Last checked
# unresolved subjects table days unresolved column header
subjectResolutionUnresolvedSubjectsTableHeaderDaysUnresolved = Days unresolved
# unresolved subjects table days unresolved column header
subjectResolutionUnresolvedSubjectsTableHeaderStatus = Status
# unresolved subjects table days unresolved column header
subjectResolutionUnresolvedSubjectsTableStatusUnresolved = Unresolved
# unresolved subjects table days unresolved column header
subjectResolutionUnresolvedSubjectsTableStatusDeleted = Deleted
# if all, unresolved, or deleted
subjectResolutionFilterTypeLabel = Unresolvable type
# option to show unresolvable
subjectResolutionFilterTypeOptionDoNotShowDelete = Show non-deleted unresolvables
# option to show deleted
subjectResolutionFilterTypeOptionShowDeleted = Show only deleted unresolvables
# option to show all
subjectResolutionFilterTypeOptionShowAll = Show all unresolvables
# tooltip for subject resolution
subjectResolutionFilterDescription = Show deleted entites or non-deleted unresolvables or show both deleted and non-deleted unresolvables
# group view membership checkbox aria-label
subjectResolutionCheckboxAriaLabel = Select this unresolvable to delete
# button to delete selected entities
subjectResolutionDeleteSelectedEntitiesButton = Delete selected entities
# if they didnt select members
subjectResolutionRemoveNoSubjectSelects = Error: select at least one entity
# success message if deleted entities
subjectResolutionRemoveSuccess = Success: deleted ${grouperRequestContainer.subjectResolutionContainer.deleteCount} entities
# unresolved subjects table delete date unresolved column header
subjectResolutionUnresolvedSubjectsTableHeaderDeleteDate = Delete date
# subtitle of audit entries page
miscellaneousSubjectResolutionAuditEntriesSubtitle = View audit entries
# label on subject resolution -> audit logs screen about filtering by date
subjectResolutionSubjectDeleteLogFilterByDate = Filter by date:
# label on subject resolution -> audit logs screen of filter types: on, before, between, since
subjectResolutionSubjectDeleteLogFilterType_all = all
subjectResolutionSubjectDeleteLogFilterType_on = on
subjectResolutionSubjectDeleteLogFilterType_before = before
subjectResolutionSubjectDeleteLogFilterType_between = between
subjectResolutionSubjectDeleteLogFilterType_since = since
# placeholder for audit log dates
subjectResolutionSubjectDeleteLogFilterDatePlaceholder = yyyy/mm/dd
# group audit and label between two date inputs
subjectResolutionSubjectDeleteLogFilterAndLabel = and
# label to show extended results
subjectResolutionSubjectDeleteLogFilterShowExtendedResults = Show extended results?
# group audit log filter find entries
subjectResolutionSubjectDeleteLogFilterFindEntriesButton = Find entries
# group audit log filter validations
subjectResolutionSubjectDeleteLogFilterFromDateRequired = 'First date' is a required field
subjectResolutionSubjectDeleteLogFilterToDateRequired = 'To date' is a required field
subjectResolutionSubjectDeleteLogFilterFromDateInvalid = 'First date' is invalid. Enter: yyyy/mm/dd
subjectResolutionSubjectDeleteLogFilterToDateInvalid = 'To date' is invalid. Enter: yyyy/mm/dd
subjectResolutionSubjectDeleteLogNoEntriesFound = No audits found
# subject delete audit log table headers
subjectResolutionSubjectDeleteAuditLogFilterColumnDate = Date
subjectResolutionSubjectDeleteLogFilterColumnActor = Actor
subjectResolutionSubjectDeleteLogFilterColumnEngine = Engine
subjectResolutionSubjectDeleteLogFilterColumnSummary = Summary
subjectResolutionSubjectDeleteLogFilterColumnDuration = Duration
# subtitle of search subjects page
miscellaneousSubjectResolutionSearchSubjectSubtitle = Search subjects
miscellaneousSubjectResolutionSearchSubjectEntityLabel = Enter an entity name or ID
# subject resolution view subject - source id
subjectResolutionViewSubjectTableSubjectSource = Subject source ID
# subject resolution view subject - subject id
subjectResolutionViewSubjectTableSubjectId = Subject ID
# subject resolution view subject - subject identifier
subjectResolutionViewSubjectTableSubjectIdentifier = Subject identifier
# subject resolution view subject - subject name
subjectResolutionViewSubjectTableSubjectName = Subject name
# subject resolution view subject - subject description
subjectResolutionViewSubjectTableSubjectDescription = Subject description
# subject resolution view subject - subject status
subjectResolutionViewSubjectTableSubjectStatus = Status (unresolvable or deleted)
# subject resolution view subject - is subject resolvable
subjectResolutionViewSubjectTableSubjectIsResolvable = Subject resolvable
# subject resolution view subject - resolvable yes
subjectResolutionViewSubjectTableSubjectResolvableYes = Yes
# subject resolution view subject - resolvable no
subjectResolutionViewSubjectTableSubjectResolvableNo = No
# subject resolution view subject - last resolved date
subjectResolutionViewSubjectTableSubjectLastResolvedDate = Subject last resolved date
# subject resolution view subject - last checked date
subjectResolutionViewSubjectTableSubjectLastCheckedDate = Subject last checked date
# subject resolution view subject - days subject has been unresolved
subjectResolutionViewSubjectTableSubjectDaysUnresolved = Days subject has been unresolved
# subject resolution view subject - subject deleted?
subjectResolutionViewSubjectTableSubjectIsDeleted = Is deleted
# subject resolution view subject - subject delete date
subjectResolutionViewSubjectTableSubjectDeletedDate = Subject deleted date
# subject resolution select member
subjectResolutionSelectMemberId = Please select a member
# subjects search table "is subject resolvable" column
subjectResolutionSubjectsSearchTableHeaderIsSubjectResolvable = Is subject resolvable
# subject resolution search subject query text field placeholder
subjectResolutionSubjectsSearchQueryTextFieldPlaceholder = Subject id
# subject resolution search subject query text field placeholder aria label
ariaLabelSubjectResolutionSubjectsSearchQueryTextFieldPlaceholder = Enter subject id
# subject resolution search subject screen subject not found
subjectResolutionSubjectSearchSubjectNotFound = Subject not found
# subject resolution search subject screen submit was clicked without entering any subject id
subjectResolutionSubjectSearchSubjectIdBlank = Subject id is required
########################################
## New Attribute def
########################################
# menu button to create new attribute definition
attributeDefNewCreateNewAttributeDefMenuButton = Create new attribute definition
# menu button to create new attribute name
attributeDefNameNewCreateNewAttributeDefNameMenuButton = Create new attribute name
# menu button to create new attribute action
attributeDefActionNewCreateNewAttributeDefActionMenuButton = Create new attribute action
# title of the new attribute definition screen
attributeDefNewBreadcrumb = New attribute definition
# title of the new attribute definition screen
attributeDefNewTitle = New attribute definition
# generic insufficient privileges
attributeDefCreateInsufficientPrivileges = Error: Insufficient privileges
# success the group was created
attributeDefCreateSuccess = Success: the attribute definition was created
# if there was an error creating the group
attributeDefErrorCantCreate = Error: there was a problem creating the attribute definition
# new attribute definition folder instructions for combobox
attributeDefCreateIntoFolderDescription = Enter a folder name or search for a folder where you are allowed to create new attribute definitions.
# title of modal dialog to search for folder
attributeDefCreateSearchForFolderTitle = Search for a folder
# placeholder in textfield to search for a folder
attributeDefCreateSearchPlaceholder = Search for a folder
# button text for search button
attributeDefCreateSearchButton = Search
# button text for closing the search modal
attributeDefCreateSearchClose = Close
# label for the create in folder combo
attributeDefCreateFolderLabel = Create in this folder:
# label for the attribute definition extension textfield
attributeDefCreateIdLabel = Attribute definition ID:
# description help for the attribute definition id textfield
attributeDefCreateIdDescription = ID is the unique identifier for this attribute definition. It should be short and simple, and might have character restrictions. The ID should rarely change, if ever.
# label for the create attribute definition type (attribute, permission, etc)
attributeDefCreateTypeLabel = Type:
# label for the create attribute definition type (attribute, permission, etc)
attributeDefCreateTypeDescription = Attribute definition type describes the attribute definition. Generally it will be attribute or permission. Type is used for templates, limit describes a permission, and service identifies which application the object refers to.
# label for the create attribute definition value type (marker, string, etc)
attributeDefCreateValueTypeLabel = Value type:
# label for the create attribute definition type (attribute, permission, etc)
attributeDefCreateValueTypeDescription = If this attribute assignment holds one or more values, this is the type. If there are no allowed values, select No value.
# label for the description textfield
attributeDefCreateDescriptionLabel = Description:
# description for the description textfield
attributeDefCreateDescriptionDescription = Description contains notes about the attribute definition, which could include: what the attribute definition represents, why it was created, etc.
# show advanced properties button
attributeDefCreateAdvanced = Show advanced properties
# show advanced properties button
attributeDefCreateHideAdvanced = Hide advanced properties
# assign privileges to everyone
attributeDefCreateAssignPrivilegesToEveryone = Assign privileges to everyone:
# description under the privileges
attributeDefCreatePrivilegeDescription = Select which privileges should be public for everyone. This is the same as assigning a privilege to EveryEntity.
# button text for save button
attributeDefCreateSaveButton = Save
# button text for cancel button
attributeDefCreateCancelButton = Cancel
# cant find parent folder
attributeDefCreateCantFindParentStemId = Error: Cannot find parent folder. Select a folder from the combobox results.
# cant create attribute definition in root folder
attributeDefCreateCantCreateInRoot = Error: Cannot create attribute definitions in the root folder. Select another folder.
# if a attribute definition with that name already exists
attributeDefCreateCantCreateAlreadyExists = Error: An attribute definition in that folder with that ID already exists
# error creating the attribute definition
attributeDefCreateError = Error creating attribute definition
# folder is required
attributeDefCreateRequiredParentStemId = Error: folder is required
# error that attribute definition display extension is required
attributeDefCreateErrorDisplayExtensionRequired = Error: attribute definition name is required
# error when no type of attribute definition is selected
attributeDefCreateErrorAttributeTypeRequired = Error: type of attribute definition is required
# error when no value type of attribute definition is selected
attributeDefCreateErrorAttributeValueTypeRequired = Error: value type of attribute definition is required
# if assign to is not filled in
attributeDefCreateErrorAssignToRequired = Invalid entry: select at least one object type that this attribute type can be assigned to
attributeDefCreateErrorPermissionAssignToGroupOrMshipOnly = Invalid entry: permission type attributes can only be assigned to groups or memberships (non-immediate only)
attributeDefCreateErrorExtensionRequired = Invalid entry: input an ID
attributeDefCreateErrorPermissionSingleAssignRequired = Invalid entry: permission type attributes cannot be multi-assignable
attributeDefCreateErrorPermissionNoValueRequired = Invalid entry: permission type attributes must have a no-value value type
attributeDefCreateErrorMarkerAttributeDefNameInvalid = Invalid entry: marker attribute def name not found
attributeDefCreateErrorMarkerAttributeDefNotCorrectPermissions = Invalid entry: You don't have the privileges to use this marker attribute def name
# types of attributes
attributeDefType_attr = Attribute
attributeDefType_service = Service
attributeDefType_limit = Limit
attributeDefType_perm = Permission
attributeDefType_type = Type
# value types for attributes
attributeDefValueType_integer = Integer number
attributeDefValueType_timestamp = Timestamp
attributeDefValueType_string = String
attributeDefValueType_floating = Decimal number
attributeDefValueType_marker = No value
attributeDefValueType_memberId = Member UUID
########################################
## Delete attribute def
########################################
# title of the delete attribute def screen
attributeDefDeleteTitle = Delete attribute definition
# main text of the delete attributeDef screen
attributeDefDeleteText = You are about to delete the this attribute definition and all its attributes and assignments. You cannot undo this operation. Are you sure you want to proceed?
# If deletion through UI not allowed (see uiV2.attributeDefName.preventDeleteInUi)
attributeDefDeleteUiDisallowedText = Deletion of attribute definitions in the UI is not allowed. Did you mean to delete an attribute assignment instead? Please contact your administrators to delete this attribute definition. (Ref: property uiV2.attributeDef.preventDeleteInUi)
# generic insufficient privileges
attributeDefDeleteInsufficientPrivileges = Error: Insufficient privileges
# success the attribute def was deleted
attributeDefDeleteSuccess = Success: the attribute definition was deleted
# if there was an error deleting the attribute def
attributeDefErrorCantDelete = Error: there was a problem deleting the attribute definition
# delete button on the delete attributeDef screen
attributeDefDeleteDeleteButton = Delete
# cancel button on the delete attributeDef screen
attributeDefDeleteCancelButton = Cancel
########################################
## New Group
########################################
# when clicking on disabled id field, this will tell the user to check the checkbox
groupNewAlertWhenClickingOnDisabledId = Select the checkbox to edit the ID
# click this checkbox to edit the id
groupNewEditTheId = Edit the ID
# menu button to create new group
groupNewCreateNewGroupMenuButton = Create new group
# menu button to create new group
groupNewCreateNewLocalEntityMenuButton = Create new local entity
# title of the new group screen
groupNewBreadcrumb = New group
# title of the new group screen
groupNewTitle = New group
# title of the new local entity screen
localEntityNewBreadcrumb = New local entity
# title of the new local entity screen
localEntityNewTitle = New local entity
# generic insufficient privileges
groupCreateInsufficientPrivileges = Error: Insufficient privileges
# generic insufficient privileges
localEntityCreateInsufficientPrivileges = Error: Insufficient privileges
# success the group was created
groupCreateSuccess = Success: the group was created
# success the group was created
localEntityCreateSuccess = Success: the local entity was created
# if there was an error creating the group
groupErrorCantCreate = Error: there was a problem creating the group
# new group folder instructions for combobox
groupCreateIntoFolderDescription = Enter a folder name or search for a folder where you are allowed to create new groups.
# title of modal dialog to search for folder
groupCreateSearchForFolderTitle = Search for a folder
# placeholder in textfield to search for a folder
groupCreateSearchPlaceholder = Search for a folder
# button text for search button
groupCreateSearchButton = Search
# button text for closing the search modal
groupCreateSearchClose = Close
# label for the create in folder combo
groupCreateFolderLabel = Create in this folder:
# label for the group display extension textfield
localEntityCreateNameLabel = Local entity name:
# description help for the group display extension textfield
localEntityCreateNameDescription = Name is the label that identifies this local entity, and might change.
# label for the group display extension textfield
groupCreateNameLabel = Group name:
# description help for the group display extension textfield
groupCreateNameDescription = Name is the label that identifies this group, and might change.
# label for the group extension textfield
groupCreateIdLabel = Group ID:
# description help for the group id textfield
groupCreateIdDescription = ID is the unique identifier for this group. It should be short and simple, and might have character restrictions. The ID should rarely change, if ever.
# label for the group alternate name textfield
groupCreateAlternateNameLabel = Alternate ID path:
# description help for the group alternate name textfield
groupCreateAlternateNameDescription = Alternate ID path allows groups to be searchable using an alternate name. The format is the same as the format of ID path.
# label for the group alternate name checkbox textfield
groupRenameUpdateAlternateNameLabel = Update alternate ID path:
# description help for the group alternate name checkbox
groupRenameUpdateAlternateNameDescription = Alternate ID path allows groups to be searchable using an alternate name. If you select this option when renaming a group, the alternate ID path of this group will be set to the group's old ID path.
# label for the local entity extension textfield
localEntityCreateIdLabel = Local entity ID:
# description help for the local entity id textfield
localEntityCreateIdDescription = ID is the unique identifier for this local entity. It should be short and simple, and might have character restrictions. The ID should rarely change, if ever.
# label for the description textfield
groupCreateDescriptionLabel = Description:
# description for the description textfield
groupCreateDescriptionDescription = Description contains notes about the group, which could include: what the group represents, why it was created, etc.
# label for the description textfield
localEntityCreateDescriptionLabel = Description:
# description for the description textfield
localEntityCreateDescriptionDescription = Description contains notes about the local entity, which could include: what the local entity represents, why it was created, etc.
# label for the enabled date field
groupCreateEnabledDateLabel = Enabled date:
# description for the enabled date field
groupCreateEnabledDateDescription = When this group will be enabled if the time is in the future. Expected timezone is ${grouperUtil.getFriendlyTimezoneStringForInputDescription()}.
# label for the disabled date field
groupCreateDisabledDateLabel = Disabled date:
# description for the disabled date field
groupCreateDisabledDateDescription = When this group will be disabled if the time is in the future. Expected timezone is ${grouperUtil.getFriendlyTimezoneStringForInputDescription()}.
# placeholder in the date field
groupCreateDatePlaceholder = yyyy/mm/dd hh:mi am/pm
# invalid dates on edit group
groupCreateErrorEnabledDateInvalid = 'Enabled date' is invalid. Enter: yyyy/mm/dd hh:mi am/pm (12-hour clock)
groupCreateErrorDisabledDateInvalid = 'Disabled date' is invalid. Enter: yyyy/mm/dd hh:mi am/pm (12-hour clock)
groupCreateErrorDisabledDateAfterEnabledDateError = 'Disabled date' should be after 'Enabled date'
# label for the enabled date field
localEntityCreateEnabledDateLabel = Enabled date:
# description for the enabled date field
localEntityCreateEnabledDateDescription = When this local entity will be enabled if the time is in the future. Expected timezone is ${grouperUtil.getFriendlyTimezoneStringForInputDescription()}.
# label for the disabled date field
localEntityCreateDisabledDateLabel = Disabled date:
# description for the disabled date field
localEntityCreateDisabledDateDescription = When this local entity will be disabled if the time is in the future. Expected timezone is ${grouperUtil.getFriendlyTimezoneStringForInputDescription()}.
# placeholder in the date field
localEntityCreateDatePlaceholder = yyyy/mm/dd hh:mi am/pm
# invalid dates on edit group
localEntityCreateErrorEnabledDateInvalid = 'Enabled date' is invalid. Enter: yyyy/mm/dd hh:mi am/pm (12-hour clock)
localEntityCreateErrorDisabledDateInvalid = 'Disabled date' is invalid. Enter: yyyy/mm/dd hh:mi am/pm (12-hour clock)
localEntityCreateErrorDisabledDateAfterEnabledDateError = 'Disabled date' should be after 'Enabled date'
# show advanced properties button
groupCreateAdvanced = Show advanced properties
# show advanced properties button
groupCreateHideAdvanced = Hide advanced properties
# assign privileges to everyone
groupCreateAssignPrivilegesToEveryone = Assign privileges to everyone:
# description under the privileges
groupCreatePrivilegeDescription = Select which privileges should be public for everyone. This is the same as assigning a privilege to EveryEntity.
# if cannot add self label on left
groupCreateCannotAddSelfLabel = Can add self:
# if cannot add self description helper
groupCreateCannotAddSelfDescription = If 'No', then this group has separation of duties where updaters/admins of the group cannot add themselves as a member. Someone else would need to add them.
# if cannot add self, true
groupCreateCannotAddSelfTrue = No, updaters or admins cannot add themselves to this group
# if cannot add self, false
groupCreateCannotAddSelfFalse = Yes, updaters or admins can add themselves to this group
# veto message when someone adds self and cannot
hook.veto.cannotAddSelfToGroup = Error: you cannot add yourself to this group: ${grouperUtil.xmlEscape(grouperRequestContainer.groupContainer.guiGroup.group.displayName)}. Someone else must add you.
# veto message when cannot add every entity
hook.veto.cannotAddEveryEntity = Error: you cannot add EveryEntity to a group or privilege. Only a system administrator can do this.
# veto message when attributeDef with same name
veto.attributeDef.unique.idCaseInsensitive.default = The attribute definition ID is already in use, please use a different ID
# veto message when group with invalid default chars
veto.group.invalidDefaultChars = The group ID can only contain letters, numbers, underscore, or dash
# veto message when stem with invalid default chars
veto.stem.invalidDefaultChars = The folder ID can only contain letters, numbers, underscore, or dash
# veto message when attributeDef with invalid default chars
veto.attributeDef.invalidDefaultChars = The attribute definition ID can only contain letters, numbers, underscore, or dash
# veto message when attributeDefName with invalid default chars
veto.attributeDefName.invalidDefaultChars = The attribute definition name ID can only contain letters, numbers, underscore, or dash
# veto message when stem with same name
veto.stem.unique.idCaseInsensitive.default = The folder ID is already in use, please use a different ID: '$stemName$'
veto.stem.unique.nameCaseInsensitive.default = The folder name is already in use, please use a different name: '$stemDisplayName$'
# veto message when group with same name
veto.group.unique.idCaseInsensitive.default = The group ID is already in use, please use a different ID: '$groupName$'
veto.group.unique.nameCaseInsensitive.default = The group name is already in use, please use a different name: '$groupDisplayName$'
# type of the group
groupCreateTypeLabel = Type:
# group type of group
groupCreateTypeGroup = Group
# group type of role
groupCreateTypeRole = Role
# group type of local entity
groupCreateTypeLocalEntity = Local entity
# description of group type
groupCreateTypeDescription = This could be a Group or a Role. A Group is a collection of entities. A Role is a Group which can also hold permission information centrally for the application.
# button text for save button
groupCreateSaveButton = Save
# button text for save button
localEntityCreateSaveButton = Save
# button text for cancel button
groupCreateCancelButton = Cancel
# button text for cancel button
localEntityCreateCancelButton = Cancel
# cant find parent folder
groupCreateCantFindParentStemId = Error: Cannot find parent folder. Select a folder from the combobox results.
# cant create group in root folder
groupCreateCantCreateInRoot = Error: Cannot create groups in the root folder. Select another folder.
# if a group with that name already exists
groupCreateCantCreateAlreadyExists = Error: A group or local entity in that folder with that ID already exists
# error creating the group
groupCreateError = Error creating group
# error that group id is required
groupCreateErrorExtensionRequired = Error: group ID is required
# folder is required
groupCreateRequiredParentStemId = Error: folder is required
# error that group display extension is required
groupCreateErrorDisplayExtensionRequired = Error: group name is required
# error that group id is required
localEntityCreateErrorExtensionRequired = Error: local entity ID is required
# error that group display extension is required
localEntityCreateErrorDisplayExtensionRequired = Error: local entity name is required
# cant create group in root folder
localEntityCreateCantCreateInRoot = Error: Cannot create local entities in the root folder. Select another folder.
# error creating the group
localEntityCreateError = Error creating local entity
########################################
## Delete stem
########################################
# title of the delete folder screen
stemDeleteTitle = Delete
# main text of the delete folder screen
stemDeleteText = You are about to delete this folder or objects in this folder. You cannot undo this operation. Proceed with caution
# generic insufficient privileges
stemDeleteInsufficientPrivileges = Error: Insufficient privileges
# if we should delete some or all objects
stemDeleteObliterateLabel = Delete some or all objects
# if we should delete this empty stem
stemObliterateOptionDeleteStem = Delete this empty folder
# if we should delete most objects
stemObliterateOptionMost = Delete certain types of objects
# if we should delete all objects
stemObliterateOptionAll = Delete all ${grouperRequestContainer.stemDeleteContainer.obliterateCount} objects including this folder
# obliterate is required
stemObliterateRequired = Error: '$$stemDeleteObliterateLabel$$' is required
# hint for stem obliterate
stemDeleteObliterateHint = In order to delete this folder, you need to delete all objects in this folder. You can select which types of objects to delete.
# label for delete point in time
obliteratePointInTimeLabel = Delete point in time auditing
# label for yes delete point in time
obliteratePointInTimeTrue = Yes, delete point in time
# label for no do not delete point in time
obliteratePointInTimeFalse = No, do not delete point in time
# hint for point in time
obliteratePointInTimeHint = Point in time auditing stores a partial history of objects. If you do not need to keep this history, then delete it. This frees up storage in the database.
# label for delete empty stems
obliterateEmptyStemsLabel = Delete ${grouperRequestContainer.stemDeleteContainer.stemCount} folders if they are empty
# label for yes delete empty stems
obliterateEmptyStemsTrue = Yes, delete empty folders
# label for no do not delete empty stems
obliterateEmptyStemsFalse = No, do not delete empty folders
# hint for delete empty stems
obliterateEmptyStemsHint = Delete any folders in this folder which do not have any objects inside
# label for delete empty stems
obliterateAttributeDefsLabel = Delete ${grouperRequestContainer.stemDeleteContainer.attributeDefCount} attribute definitions
# label for yes delete empty stems
obliterateAttributeDefsTrue = Yes, delete attribute definitions
# label for no do not delete empty stems
obliterateAttributeDefsFalse = No, do not delete attribute definitions
# hint for delete empty stems
obliterateAttributeDefsHint = If attribute definitions should be deleted inside this folder
# label for delete empty stems
obliterateAttributeDefNamesLabel = Delete ${grouperRequestContainer.stemDeleteContainer.attributeDefNameCount} attribute names
# label for yes delete empty stems
obliterateAttributeDefNamesTrue = Yes, delete attribute names
# label for no do not delete empty stems
obliterateAttributeDefNamesFalse = No, do not delete attribute names
# hint for delete empty stems
obliterateAttributeDefNamesHint = If attribute names should be deleted inside this folder
# label for delete groups
obliterateGroupsLabel = Delete ${grouperRequestContainer.stemDeleteContainer.groupCount} groups
# label for yes delete groups
obliterateGroupsTrue = Yes, delete groups
# label for no do not delete groups
obliterateGroupsFalse = No, do not delete groups
# hint for delete groups
obliterateGroupsHint = If groups should be deleted inside this folder
# label for delete groups
obliterateGroupMembershipsLabel = Delete group memberships from ${grouperRequestContainer.stemDeleteContainer.groupCount} groups
# label for yes delete groups
obliterateGroupMembershipsTrue = Yes, delete group memberships
# label for no do not delete groups
obliterateGroupMembershipsFalse = No, do not delete group memberships
# hint for delete groups
obliterateGroupMembershipsHint = If group memberships should be deleted for groups in this folder
# obliterate folder scope
obliterateStemScopeLabel = Folder scope
# obliterate folder scope hint
obliterateStemScopeDescription = Delete objects in this folder and all subfolders (default) or only groups directly in this folder
# obliterate folder scope all
obliterateAllStemScopeLabel = Delete all objects in this folder or subfolders
# obliterate folder scope one
obliterateOneStemScopeLabel = Delete only objects directly in this folder
# label for are you sure?
stemDeleteAreYouSureLabel = Are you sure?
# yes, proceed
stemDeleteAreYouSureTrue = Yes, I am sure, proceed with the 'delete'
# no do not proceed
stemDeleteAreYouSureFalse= No, do not delete
# hint to confirm
stemDeleteAreYouSureHint = This is a permanent operation, you cannot undo. Proceed with caution.
# success the stem was copied
stemDeleteSuccess = Success: the folder was deleted
# if obliterate is done
obliterateSuccess = Success: the delete operation finished successfully
# if it is still working
obliterateSuccessNotFinished = The delete operation is still being processed...
# success the stem was deleted
stemDeleteStemsSuccess = Success: ${grouperRequestContainer.stemDeleteContainer.stemCount} folders were deleted
# success the groups were deleted
stemDeleteGroupsSuccess = Success: ${grouperRequestContainer.stemDeleteContainer.groupCount} groups were deleted
# success from deleting memberships from groups
stemDeleteGroupMembershipsSuccess = Success: memberships from ${grouperRequestContainer.stemDeleteContainer.groupCount} groups were deleted
# success the attributeDefNames was deleted
stemDeleteAttributeDefNamesSuccess = Success: ${grouperRequestContainer.stemDeleteContainer.attributeDefNameCount} attribute names were deleted
# success the attributeDefs was deleted
stemDeleteAttributeDefsSuccess = Success: ${grouperRequestContainer.stemDeleteContainer.attributeDefCount} attribute definitions were deleted
# if there was an error deleting the stem
stemErrorCantDelete = Error: there was a problem deleting the folder. Make sure it does not have any child objects such as folders, groups, or attributes.
# stem delete button
stemDeleteButton = Delete
# stem cancel button
stemCancelButton = Cancel
########################################
### Reports
########################################
# Show Reports option in group more actions button
groupViewReportButton = Reports
# Show Reports option in stem more actions button
stemViewReportButton = Reports
# description of gropuer report for folders
groupReportOnFolderDescription = Report on folder
# description of gropuer report for groups
groupReportOnGroupDescription = Report on group
# aria label for grouper report action (context menu)
ariaLabelGuiMoreGrouperReportActions = Show grouper report actions
# more actions menu view more actions
grouperReportMoreActionsButton = Report actions
# more actions menu view reports on folder
grouperReportMoreActionsStemViewReports = View reports
# more actions menu add a report on folder
grouperReportMoreActionsStemAddReport = Add report
# more actions menu edit reports on folder
grouperReportMoreActionsStemEditReports = Edit reports
# grouper reports nothing to show for folder
grouperReportNoEntitiesFound = There are no reports you are allowed to view
grouperReportNoInstancesFound = Note: there are no report instances run so far
grouperReportDescription = SQL reports that generate a CSV spreadsheets can be configured on this object. The system admin can add reports.
# grouper report not allowed to edit label
grouperReportNotAllowedToEdit = Error: not allowed to edit grouper reports
# grouper report not allowed to add label
grouperReportNotAllowedToAdd = Error: not allowed to add grouper reports
# if reports are not enabled
grouperReportNotEnabledError = Error: reports are not enabled
# title on the screen for adding folder report config
grouperReportStemAddConfigTitle = Add report config
# title on the screen for editing folder report config
grouperReportStemEditConfigTitle = Edit report config
# button text save button
reportAddConfigButtonSave = Save
# button text cancel button
reportAddConfigButtonCancel = Cancel
grouperReportConfigTypeLabel = Config type
grouperReportSqlConfigLabel = Sql config
grouperReportSqlConfigHint = Sql external system against which you want to run this report
grouperReportConfigFormatLabel = Config format
grouperReportConfigNameLabel = Report name
grouperReportConfigFileNameLabel = File name
grouperReportConfigDescriptionLabel = Description
grouperReportConfigViewersGroupIdLabel = Viewers group id
grouperReportConfigQuartzCronLabel = Quartz cron
grouperReportConfigSendEmailLabel = Send email
# if should send email
grouperReportConfigNoDoNotSendEmailLabel = No, do not send email
grouperReportConfigYesSendEmailLabel = Yes, send email when the report is ready
grouperReportConfigNoDoNotSendEmailToViewersLabel = No, specify a group to send to
grouperReportConfigYesSendEmailToViewersLabel = Yes, send email to the viewers of the report
# if report config should be enabled
grouperReportConfigNoDoNotEnableLabel = No, do not enable the config
grouperReportConfigYesEnableLabel = Yes, enable the config
grouperReportConfigEmailSubjectLabel = Email subject
grouperReportConfigEmailBodyLabel = Email body
grouperReportConfigStoreWithNoDataLabel = Store report if no results
grouperReportConfigStoreWithNoDataHint = If there are no results from the query, should the report be stored in the database and be able to be retrieved (default true)
grouperReportConfigNoDoNotStoreWithNoDataLabel = No, do not store the report if no results
grouperReportConfigYesStoreWithNoDataLabel = Yes, store the report if no results
grouperReportConfigSendEmailWithNoDataLabel = Email report if no results
grouperReportConfigSendEmailWithNoDataHint = If there are no results from the query, should emails go out about the empty report being ready (default true)
grouperReportConfigNoDoNotEmailWithNoDataLabel = No, do not send email if no results
grouperReportConfigYesEmailWithNoDataLabel = Yes, send email if no results
grouperReportConfigSendEmailToViewersLabel = Send email to viewers
grouperReportConfigSendEmailToGroupIdLabel = Group id to send email to
grouperReportConfigScriptLabel = GSH script
grouperReportConfigQueryLabel = Query
grouperReportConfigEnabledLabel = Config enabled
grouperReportConfigTypeHint = Data source for the query
grouperReportConfigFormatHint = Output format
grouperReportConfigNameHint = Name of report. No two reports in the same owner should have the same name
grouperReportConfigFileNameHint = File name format. e.g. usersOfMyService_$$timestamp$$.csv - $$timestamp$$ translates to current time in this format: yyyy_mm_dd_hh24_mi_ss
grouperReportConfigDescriptionHint = Config description. Use this to describe the information in the report
grouperReportConfigViewersGroupIdHint = GroupId of people who can view this report. Grouper admins can view any report (blank means admin only)
grouperReportConfigQuartzCronHint = Quartz cron-like string: Seconds Minutes Hours Day-of-Month Month Day-of-Week Year (optional field).
e.g. 0 0 6 * * ? is everyday at 6am
grouperReportConfigSendEmailHint = If an email should be sent when the report is ready
grouperReportConfigEmailSubjectHint = subject for email (optional, will be generated from report name if blank)
grouperReportConfigEmailBodyHint = optional, will be generated by a grouper default if blank. body for email, support \n for newlines, and substitute in: $$reportConfigName$$, $$reportConfigDescription$$, $$subjectName$$ and $$reportLink$$ The link will go to the report instance screen for this report note: the $$reportLink$$ must be in the email template if it is not blank
grouperReportConfigSendEmailToViewersHint = If an email should be sent to report viewers when the report is ready
grouperReportConfigSendEmailToGroupIdHint = Group id to retrieve the members from to send the email to
grouperReportConfigQueryHint = SQL for the report. The columns must be named in the SQL (e.g. not select *) and generally this comes from a view
grouperReportConfigScriptHint = Enter the source for the GSH script. The results should be put in the file: gsh_builtin_gshReportRuntime.getGrouperReportData().getFile()
grouperReportConfigNoDoNotEnabledLabel = No, does not have configuration enabled
grouperReportConfigYesEnabledLabel = Yes, has configuration enabled
grouperReportConfigEnabledHint = If this group/folder has report configuration
grouperReportConfigTypeBlankError = Config type is a required field
grouperReportConfigFormatBlankError = Config format is a required field
grouperReportSqlConfigBlankError = Sql config is a required field
grouperReportConfigNameBlankError = Report name is a required field
grouperReportConfigNameAlreadyExistsError = Report name already exists for this group/stem
grouperReportConfigFilenameBlankError = Filename is a required field
grouperReportConfigDescriptionBlankError = Description is a required field
grouperReportConfigDescriptionTooLongError = Description cannot be longer than 4000 characters
grouperReportConfigInvalidViewersGroupNameIdError = Vieweres group name/id is invalid
grouperReportConfigSendEmailToGroupIdBlankError = Group id to send email to is a required field
grouperReportConfigInvalidSendEmailToGroupNameIdError = Group id to send email to is invalid
grouperReportConfigQueryBlankError = Query is a required field
grouperReportConfigScriptBlankError = GSH script is a required field
grouperReportConfigQuartzCronBlankError = Cron schedule is a required field
grouperReportConfigQuartzCronInvalidError = Cron schedule is invalid
grouperReportJobScheduleError = Error: Could not save the config. Please try again later.
grouperReportConfigTableHeaderReportName = Report Name
grouperReportConfigTableHeaderReportEnabled = Enabled
grouperReportConfigTableHeaderReportLastRunTime = Last run time
grouperReportConfigTableHeaderReportStatus = Status
grouperReportConfigTableHeaderReportNumberOfRows = Report size
grouperReportConfigTableHeaderReportCronSchedule = Cron schedule
grouperReportConfigTableHeaderReportActions = Actions
grouperReportConfigTableReportEnabledTrueValue = Yes
grouperReportConfigTableReportEnabledFalseValue = No
grouperReportConfigTableReportActionsDownloadMostRecent = Download most recent
grouperReportConfigTableReportActionsViewMostRecent = View most recent
grouperReportConfigTableReportActionsReportInstances = Report instances
grouperReportConfigTableReportActionsReportLogs = Report logs
grouperReportConfigTableReportActionsEnableReportConfig = Enable report
grouperReportConfigTableReportActionsDisbleReportConfig = Disable report
grouperReportConfigTableReportActionsDeleteReportConfig = Delete report
grouperReportConfigInstanceTableViewDetails = View details
grouperReportConfigInstanceDetailsConfigName = Report name
grouperReportConfigInstanceDetailsReportRunTime = Report timestamp
grouperReportConfigInstanceDetailsConfigDescription = Report description
grouperReportConfigInstanceDetailsDownload = Download
grouperReportConfigInstanceDetailsDownloadReport = download report
grouperReportConfigInstanceDetailsFileSize = File size
grouperReportConfigInstanceDetailsFilename = File name
grouperReportConfigInstanceDetailsNumberOfRows = Rows in report
grouperReportConfigInstanceDetailsReportDownloadCount = Report download count
grouperReportConfigInstanceDetailsSuccessSubjects = Subjects who received report successfully
grouperReportConfigInstanceDetailsErrorSubjects = Subjects who did not receive report
grouperReportConfigInstanceDetailsEncryptionKey = Encryption key (masked)
grouperReportConfigStatusChangeSuccess = Report status was changed successfully
grouperReportInstanceNeverRun = Never run
grouperReportConfigDeleteSuccess = Report config was deleted successfully
grouperReportConfigAddEditSuccess = Report was saved successfully
grouperReportNotAllowedToViewDetails = You do not have privileges to view the report details
grouperReportNotAllowedToDownload = You do not have privileged to download the report
########################################
## Hook errors
########################################
# if not allowing same name objects of different object type
veto.uniqueObject.group.name = The ID is already in use by a group, please use a different ID
veto.uniqueObject.stem.name = The ID is already in use by a folder, please use a different ID
veto.uniqueObject.attributeDef.name = The ID is already in use by an attribute definition, please use a different ID
veto.uniqueObject.attributeDefName.name = The ID is already in use by an attribute, please use a different ID
# if users shouldnt be able to remove this group from opt out from this group
self.optout.remove.veto = You cannot remove this group from OPTOUT for this group
# if readonly admin group is being removed and not a group delete
readonlyAdmin.remove.veto = Cannot remove read-only admin's READ privilege.
group.unique.extension.in.folder.email.subject = Grouper error: multiple groups in restricted folder(s) have the same extension
group.unique.extension.in.folder.email.body = Hello, these are invalid groups based on configured folders that must have unique extensions: $groupNames$
# this will append the group name after this message
veto.group.unique.extension.in.folder = You cannot use this extension since it is in use with another related group (in this folder or another related folder):
########################################
## Stem copy
########################################
# title of the copy folder screen
stemCopyTitle = Copy folder
# label of copy stem name
stemCopyNewStemNameLabel = New folder name:
# description of copy stem name
stemCopyNewStemNameDescription = Enter a name for the new folder or leave this field blank to use the same name as the folder you are copying.
# label of copy stem id
stemCopyNewStemIdLabel = New folder ID:
# description of copy id
stemCopyNewStemIdDescription = ID is the unique identifier for this folder. It should be short and simple, and might have character restrictions. The ID should rarely change, if ever.
# stem copy into folder
stemCopyIntoFolder = Copy into this folder:
# stem copy into folder instructions for combobox
stemCopyIntoFolderDescription = Enter a folder name or search for a folder where you are allowed to create new subfolders.
Enter '$$stem.root.display-name$$' for the top level folder
# stem copy cant find parent stem
stemCopyCantFindParentStemId = Error: Cannot find parent folder. Select a folder from the combobox results.
# stem copy no privileges on parent stem
stemCopyCantStemParent = Error: You do not have 'Create' privilege on the parent folder
# generic insufficient privileges
stemCopyInsufficientPrivileges = Error: Insufficient privileges
# success the stem was copied
stemCopySuccess = Success: the folder was copied
# stem copy search for folder
stemCopySearchForFolder = Search for a folder
# stem copy search for a folder placeholder
stemCopySearchForFolderPlaceholder = Search for a folder
# stem copy search button
stemCopySearchButton = Search
# stem copy close button
stemCopyCloseButton = Close
# stem copy group attributes checkbox
stemCopyGroupAttributes = Copy group attributes?
# stem copy group attributes checkbox help
stemCopyGroupAttributesHelp = If you select this option, all custom attributes for the groups in the folder will be copied to the new groups.
# stem copy list memberships checkbox
stemCopyListMemberships = Copy list memberships of groups?
# stem copy list memberships checkbox help
stemCopyListMembershipsHelp = If you select this option, all members of the groups in the folder in the default list along with any custom lists will be copied to the new groups.
# stem copy group privileges checkbox
stemCopyGroupPrivileges = Copy privileges of groups?
# stem copy group privileges checkbox help
stemCopyGroupPrivilegesHelp = If you select this option, all privileges of the groups in the folder will be copied to the new groups.
# stem copy groups as members checkbox
stemCopyGroupsAsMembers = Copy list memberships where groups in the folder being copied are members of other groups?
# stem copy groups as members checkbox help
stemCopyGroupsAsMembersHelp = If you select this option and groups in the folder being copied are members of other groups, the new copied groups will be added to the other groups' membership list. If you do not have access to add members to the other groups, you will get a privilege error.
# stem copy groups have privileges elsewhere checkbox
stemCopyGroupsAsPrivilegees = Copy privileges where the groups in the folder being copied have privileges to other groups or folders?
# stem copy groups have privileges elsewhere checkbox help
stemCopyGroupsAsPrivilegeesHelp = If you select this option and groups in the folder being copied have privileges to other groups or folders, the new copied groups will also be given privileges to those other groups or folders. If you do not have access to add privileges to the other groups or folders, you will get a privilege error.
# stem copy folder privileges checkbox
stemCopyFolderPrivileges = Copy folder privileges?
# stem copy folder privileges checkbox help
stemCopyFolderPrivilegesHelp = If you select this option, all folder privileges will be copied.
# stem copy copy button
stemCopyCopyButton = Copy
# stem copy cancel button
stemCopyCancelButton = Cancel
########################################
## Admin menu instrumentation
########################################
# link to the instrumentation page
adminInstrumentationLink = Instrumentation
# error if not allowed to see screen
adminInstrumentationErrorNotAllowed = Not allowed to see instrumentation, it is either disabled or you are not an admin or in the appropriate group
# breadcrumb for home
adminInstrumentationHomeBreadcrumb = Home
# breadcrumb on the instrumentation screen
adminInstrumentationBreadcrumb = Instrumentation
# title of instrumentation
adminInstrumentationTitle = Instrumentation
# no results
adminInstrumentationInstancesNone = There are currently no instances in the registry.
# instance uuid
adminInstrumentationInstanceUuidColumn = UUID
# instance engine name
adminInstrumentationInstanceEngineNameColumn = Engine name
# instance server label
adminInstrumentationInstanceServerLabelColumn = Server label
# instance last update
adminInstrumentationInstanceLastUpdateColumn = Last update
# filter by day
adminInstrumentationFilterByDate = Filter by date
# filter button
adminInstrumentationFilterButton = Filter
# type descriptions
adminInstrumentationDataType_UI_REQUESTS = Grouper UI servlet requests
adminInstrumentationDataType_WS_REQUESTS = Grouper WS servlet requests
adminInstrumentationDataType_API_STEM_ADD = Folder adds
adminInstrumentationDataType_API_STEM_DELETE = Folder deletes
adminInstrumentationDataType_API_GROUP_ADD = Group adds
adminInstrumentationDataType_API_GROUP_DELETE = Group deletes
adminInstrumentationDataType_API_MEMBERSHIP_ADD = Membership adds
adminInstrumentationDataType_API_MEMBERSHIP_DELETE = Membership deletes
########################################
## Provisioner configs
########################################
# link to provisioner configurations
adminProvisionerConfigurationsLink = Provisioning
# Actions button on the main screen of the provisioner configs
provisionerConfigsMainScreenMoreActionsButton = Provisioning actions
provisionerConfigsMoreActionsButton = Actions
# aria label provisioner configs actions dropdown button text
ariaLabelGuiMoreProvisionerConfigsActions = Show provisioner configuration actions
# more action add form option
provisionerConfigMoreActionsAddButton = Add provisioner
# more action view provisioner configs option
provisionerConfigMoreActionsViewButton = View provisioners
# message when no provisioner configurations are in the system
provisionerConfigNoConfiguredProvisionerConfigsFound = There are no provisioners configured.
provisionerConfigNoRecentActivityFound = There is no recent activity
# message when no provisioner logs are in the system
provisionerConfigNoLogsFound = There are no logs found for:
provisionerConfigNoErrorsFound = There are no errors found for:
provisionerConfigNoGroupsProvisionableFound = There are no provisionable groups found for:
provisionerConfigNoAssignmentsFound = There are no provisionable assignments found for:
# message when no provisioner jobs are in the system
provisionerConfigNoJobsFound = There are no jobs found for:
# provisioner configs table header config id column
provisionerConfigsTableHeaderConfigId = Id
# provisioner configs table header type column
provisionerConfigsTableHeaderType = Type
# provisioner configs table header full sync last run timestamp column
provisionerConfigsTableHeaderFullSyncLastRunTimestamp = Full sync last run timestamp
provisionerConfigsTableHeaderLastFullSyncStartTimestamp = Last full sync start timestamp
provisionerConfigsTableHeaderLastFullMetadataSyncStartTimestamp = Last full metadata sync start timestamp
provisionerConfigsTableHeaderLastFullMetadataSyncRunTimestamp = Last full metadata sync run timestamp
# provisioner configs table header incremental sync last run timestamp column
provisionerConfigsTableHeaderIncrementalSyncLastRunTimestamp = Incremental sync last run timestamp
# provisioner configs table header group count column
provisionerConfigsTableHeaderGroupCount = Group count
# provisioner configs table header user count column
provisionerConfigsTableHeaderUserCount = User count
# provisioner configs table header record count column
provisionerConfigsTableHeaderMembershipCount = Membership count
provisionerConfigsTableHeaderExceptionCount = Exception count
provisionerConfigsTableHeaderTargetErrorCount = Missing target object count
provisionerConfigsTableHeaderValidationErrorCount = Validation error count
provisionerGroupsProvisionableTableHeaderGroup = Groups
provisionerAssignmentsTableHeaderType = Type
provisionerAssignmentsTableHeaderName = Name
provisionerLogsTableHeaderSyncStartTimestamp = Sync start timestamp
provisionerLogsTableHeaderSyncTimestamp = Sync timestamp
provisionerLogsTableHeaderLogType = Log type
provisionerLogsTableHeaderOwner = Owner
provisionerLogsTableHeaderStatus = Status
provisionerLogsTableHeaderRecordsProcessed = Records processed
provisionerLogsTableHeaderRecordsChanged = Records changed
provisionerLogsTableHeaderJobTookMillis = Millis job took
provisionerLogsTableHeaderServer = Server
provisionerLogsTableHeaderDescription = Description
provisionerActivityTableHeaderType = Type
provisionerActivityTableHeaderAction = Action
provisionerActivityTableHeaderName = Name
provisionerActivityTableHeaderLastObjectSyncStart = Last object sync start time
provisionerActivityTableHeaderLastObjectSync = Last object sync time
provisionerActivityTableHeaderLastObjectMetadataSyncStart = Last object metadata sync start time
provisionerActivityTableHeaderLastObjectMetadataSync = Last object metadata sync time
provisionerActivityTableHeaderObjectAttributeValueCache0 = Object cache 0
provisionerActivityTableHeaderObjectAttributeValueCache1 = Object cache 1
provisionerActivityTableHeaderObjectAttributeValueCache2 = Object cache 2
provisionerActivityTableHeaderObjectAttributeValueCache3 = Object cache 3
provisionerActivityTableHeaderGroupId = Group id
provisionerActivityTableHeaderGroupName = Group name
provisionerActivityTableHeaderGroupIdIndex = Group id index
provisionerActivityTableHeaderProvisionable = Provisionable
provisionerActivityTableHeaderInTarget = In target
provisionerActivityTableHeaderInTargetInsertOrExists = Grouper inserted
provisionerActivityTableHeaderInTargetStart = In target start
provisionerActivityTableHeaderInTargetEnd = In target end
provisionerActivityTableHeaderProvisionableStart = Provisionable start time
provisionerActivityTableHeaderProvisionableEnd = Provisionable end time
provisionerActivityTableHeaderLastUpdated = Last udpated
provisionerActivityTableHeaderLastGroupSyncStart = Last group sync start time
provisionerActivityTableHeaderLastGroupSync = Last group sync time
provisionerActivityTableHeaderLastGroupMetadataSyncStart = Last group metadata sync start time
provisionerActivityTableHeaderLastGroupMetadataSync = Last group metadata sync time
provisionerActivityTableHeaderGroupAttributeValueCache0 = Group cache 0
provisionerActivityTableHeaderGroupAttributeValueCache1 = Group cache 1
provisionerActivityTableHeaderGroupAttributeValueCache2 = Group cache 2
provisionerActivityTableHeaderGroupAttributeValueCache3 = Group cache 3
provisionerActivityTableHeaderMetadataUpdated = Metdata updated time
provisionerActivityTableHeaderErrorMessage = Error message
provisionerActivityTableHeaderErrorTimestamp = Error time
provisionerActivityTableHeaderErrorCode = Error type
provisionerActivityTableHeaderLastTimeWorkWasDone = Last time work was done
provisionerActivityActionInsert = Insert
provisionerActivityActionDelete = Delete
provisionerActivityActionExists = Exists
provisionerActivityTableHeaderMemberId = Member id
provisionerActivityTableHeaderSourceId = Source id
provisionerActivityTableHeaderSubjectId = Subject id
provisionerActivityTableHeaderSubjectIdentifier = Subject identifier
provisionerActivityTableHeaderLastUserSyncStart = Last user sync start time
provisionerActivityTableHeaderLastUserSync = Last user sync time
provisionerActivityTableHeaderLastUserMetadataSyncStart = Last metadata sync start time
provisionerActivityTableHeaderLastUserMetadataSync = Last metadata sync time
provisionerActivityTableHeaderEntityAttributeValueCache0 = Entity cache 0
provisionerActivityTableHeaderEntityAttributeValueCache1 = Entity cache 1
provisionerActivityTableHeaderEntityAttributeValueCache2 = Entity cache 2
provisionerActivityTableHeaderEntityAttributeValueCache3 = Entity cache 3
provisionerActivityTableHeaderMembershipId = Membership id
provisionerActivityTableHeaderMembershipId2 = Membership id2
provisionerJobsTableHeaderSyncType = Sync type
provisionerJobsTableHeaderJobState = Job state
provisionerJobsTableHeaderPercentComplete = Percent complete
provisionerJobsTableHeaderActions = Actions
provisionerJobDetailsLastSyncIndex = Last sync index
provisionerJobDetailsLastSyncStartTime = Last sync start time
provisionerJobDetailsLastSyncTime = Last sync time
provisionerJobDetailsLastTimeWorkWasDone = Last time work was done
provisionerJobDetailsLastUpdated = Last updated
provisionerJobDetailsErrorMessage = Error message
provisionerJobDetailsErrorTime = Error time
provisionerJobsTableViewJobDetailsActionOption = View details
provisionerLogsTypeOfLogJob = Job
provisionerLogsTypeOfLogGroup = Group
provisionerLogsTypeOfLogMember = Member
# provisioner configs details no data available
provisionerConfigsDetailsNoDetailsAvailable = No details available
# provisioner config details sync job error message
provisionerConfigsDetailsSyncJobErrorMessage = Error message
# provisioner config details sync job error timestamp
provisionerConfigsDetailsSyncJobErrorTimestamp = Error time
# provisioner config details sync job hearbeat timestamp
provisionerConfigsDetailsSyncJobHeartbeat = Heartbeat time
# provisioner config details sync job last sync timestamp
provisionerConfigsDetailsSyncJobLastSyncTimestamp = Last sync run time
# provisioner config details sync job last time work was done timestamp
provisionerConfigsDetailsSyncJobLastTimeWorkWasDoneTimestamp = Last time work was done
# provisioner config details sync job last updated timestamp
provisionerConfigsDetailsSyncJobLastUpdatedTimestamp = Last updated time
# provisioner config details sync job percent complete
provisionerConfigsDetailsSyncJobPercentComplete = Percent complete
# provisioner config details sync type
provisionerConfigsDetailsSyncJobSyncType = Sync type
# provisioner config details sync log description
provisionerConfigsDetailsSyncLogDescription = Sync log description
# provisioner config details sync log owner id
provisionerConfigsDetailsSyncLogOwnerId = Grouper sync uuid
# provisioner config details sync log job took millis
provisionerConfigsDetailsSyncLogJobTookMillis = Job took millis
# provisioner config details sync log last updated
provisionerConfigsDetailsSyncLogLastUpdated = Last updated
# provisioner config details sync log records changed
provisionerConfigsDetailsSyncLogRecordsChanged = Records changed
# provisioner config details sync log records processed
provisionerConfigsDetailsSyncLogRecordsProcessed = Records processed
# provisioner config details sync log server
provisionerConfigsDetailsSyncLogRecordsServer = Server
# provisioner config details sync log status
provisionerConfigsDetailsSyncLogStatus = Status
# provisioner config details sync log sync timestamp
provisionerConfigsDetailsSyncLogSyncTimestamp = Sync timestamp
# provisioner configs table header provisioner configuration is enabled or not
provisionerConfigsTableHeaderEnabled = Enabled
# provisioner configs table header actions
provisionerConfigsTableHeaderActions = Actions
# provisioner configs enabled column value when config is enabled
provisionerConfigsTableEnabledTrueValue = Enabled
# provisioner configs enabled column value when config is disabled
provisionerConfigsTableEnabledFalseValue = Disabled
# Actions button on each row of the provisioner configs table
provisionerConfigRowActionsButton = Actions
# view provisioner config details option in dropdown in table
provisionerConfigsTableViewDetailsActionOption = View details
provisionerConfigsTableViewFullSyncDaemonLogsActionOption = Daemon - full
provisionerConfigsTableViewIncrementalSyncDaemonLogsActionOption = Daemon - incremental
# view provisioner config logs option in dropdown in table
provisionerConfigsTableViewLogsActionOption = View logs
# view provisioner config activity option in dropdown in table
provisionerConfigsTableViewActivityActionOption = View activity
# view provisioner config jobs option in dropdown in table
provisionerConfigsTableViewJobsActionOption = View jobs
# edit provisioner config details option in dropdown in table
provisionerConfigsTableEditDetailsActionOption = Edit provisioner
provisionerConfigsTableGroupsProvisionableActionOption = Provisionable groups
provisionerConfigsTableAssignmentsActionOption = Provisionable assignments
provisionerConfigsTableDiagnosticsActionOption = Diagnostics
# run full sync option in dropdown in table
provisionerConfigsTableRunFullSyncActionOption = Run full sync
# delete provisioner config option in dropdown in table
provisionerConfigsTableDeleteDetailsActionOption = Delete provisioner
provisionerConfigsTableDeleteGroupMemberCacheValuesDetailsActionOption = Clear cache buckets
provisionerConfigsTableRemoveAllCachedValuesDetailsActionOption = Clear all provisioning cache and state
provisionerConfigsTableViewErrorsOption = View errors
# provisioner config run full sync success message
provisionerConfigRunFullSyncSuccess = Full sync was initiated successfully
# provisioner config run full sync error message
provisionerConfigRunFullSyncError = There was an error initiating full sync
# provisioner config run full sync synchronous label
provisionerConfigSynchronous = Synchronous
# provisioner config run full sync synchronous mode option
provisionerConfigSynchronousYesOption = Yes, run in synchronous mode
# provisioner config run full sync asynchronous mode option
provisionerConfigSynchronousNoOption = No, run in asynchronous mode
# provisioner config run full sync hint
provisionerConfigSynchronousHint = Synchronous is blocking and asynchronous is non-blocking.
# provisioner config run full sync read only label
provisionerConfigReadOnly = Read-only
# provisioner config run full sync read only mode option
provisionerConfigReadOnlyYesOption = Yes, run in read-only mode and do NOT make changes in target
# provisioner config run full sync read only mode option
provisionerConfigReadOnlyNoOption = No, run in read/write mode and make changes in target
# provisioner config run full sync read only hint
provisionerConfigReadOnlyHint = Read-only will not make any changes to the target and a report will be in the provisioning logs to see what will be changed if running in read/write mode.
provisionerConfigObjectType = Object type
provisionerConfigErrorDuration = Recent errors
provisionerConfigObjectTypeGroup = Group
provisionerConfigObjectTypeEntity = Entity
provisionerConfigObjectTypeMembership = Membership
provisionerConfigObjectTypeMship = Mship
provisionerConfigObjectTypeHint = Filter by object type or leave blank to see all.
provisionerConfigErrorType = Error type
provisionerConfigErrorGroup = Group
provisionerConfigErrorGroupHint = Filter by group or leave blank for all. Specify the full or partial group name or a value that is cached by the provisioner's four group cache buckets.
provisionerConfigErrorEntity = Entity
provisionerConfigErrorEntityHint = Filter by entity or leave blank for all. Specify the full or partial subject id or identifier or a value that is cached by the provisioner's four member cache buckets.
provisionerErrorSummaryLabel = Errors summary
provisionerErrorSummaryTotalErrors = Total count of errors
provisionerErrorSummaryGroupErrors = Group errors
provisionerErrorSummaryEntityErrors = Entity errors
provisionerErrorSummaryMembershipErrors = Membership errors
provisionerErrorsTableErrorTimestamp = Error timestamp
provisionerErrorsTableObjectType = Object type
provisionerErrorsTableGroupName = Group name
provisionerErrorsTableSubjectId = Subject ID
provisionerErrorsTableSubjectIdentifier = Subject identifier
provisionerErrorsTableSubjectFatal = Fatal
provisionerErrorsTableErrorCode = Error code
provisionerErrorsTableErrorDescription = Error description
provisionerConfigErrorDurationLast15Minutes = Last 15 minutes
provisionerConfigErrorDurationLastHour = Last hour
provisionerConfigErrorDurationLastDay = Last day
provisionerConfigErrorDurationHint = View recent errors or leave blank to see all.
provisionerConfigErrorSubtitle = View provisioning errors. Only the most recent 1000 will display.
provisionerConfigErrorCodeHint = Filter by error code or leave blank for all.
# provisioner config run full sync form cancel link
provisionerConfigRunFullSyncFormCancelButton = Cancel
# provisioner config view activity form cancel link
provisionerConfigViewActivityFormCancelButton = Cancel
# provisioner config run full sync form submit button
provisionerConfigRunFullSyncFormSubmitButton = Submit
# disable provisioner config
provisionerConfigsTableDisableActionOption = Disable
# enable provisioner config
provisionerConfigsTableEnableActionOption = Enable
# confirm the user to delete provisioner config
provisionerConfigConfirmDeleteConfig = Are you sure you want to delete this provisioner configuration?
provisionerConfigConfirmGroupMemberCacheDelete = Are you sure you want to clear group and member object/attribute cache for this provisioner (caches 0-4)? You should run a full sync after doing this.
provisionerConfigConfirmAllCacheDelete = Are you sure you want to clear all stored state for this provisioner? If you are relying on Grouper knowing that it created objects in the target (for delete strategy), this information will be lost. Proceed with caution. You should run a full sync after doing this.
# error that provisioner config id is required
provisionerConfigCreateErrorConfigIdRequired = Error: Configuration id is required
provisionerConfigStartWithIdRequired = Error: Start with is required
# Add provisioner config breadcrumb on misc. page
miscellaneousProvisionerConfigAddBreadcrumb = Add provisioner configuration
miscellaneousProvisionerConfigEditBreadcrumb = Edit provisioner configuration
# provisioner config add form submit button label
provisionerConfigAddFormSubmitButton = Submit
provisionerConfigAddFormContinueButton = Continue
# provisioner config edit form submit button label
provisionerConfigEditFormSubmitButton = Submit
# provisioner config add form cancel button label
provisionerConfigAddFormCancelButton = Cancel
# provisioner config edit form cancel button label
provisionerConfigEditFormCancelButton = Cancel
# provisioner config id label
provisionerConfigIdLabel = Configuration id
# provisioner config id hint
provisionerConfigIdHint = The Config id is an alphanumeric key for the provisioner config. It is also used in the configuration keys. Example: myLdapProvisioner
# provisioner type label
provisionerTypeLabel = Provisioner type
# provisioner type hint
provisionerTypeHint = Type of provisioner that will be connected to, for example LDAP or Duo
provisionerStartWithLabel = Start with
provisionerStartWithHint = The scaffold or 'start with' is a way to pre-fill the provisioning configuration with pattern for common use cases
provisionerStartWithOption_edu.internet2.middleware.grouper.app.sqlProvisioning.SqlProvisioningStartWith = SQL 'start with'
provisionerStartWithOption_edu.internet2.middleware.grouper.app.azure.AzureProvisioningStartWith = Azure 'start with'
provisionerStartWithOption_edu.internet2.middleware.grouper.app.duo.DuoProvisioningStartWith = Duo 'start with'
provisionerStartWithOption_edu.internet2.middleware.grouper.app.google.GoogleProvisioningStartWith = Google 'start with'
provisionerStartWithOption_edu.internet2.middleware.grouper.app.remedyV2.RemedyProvisioningStartWith = Remedy 'start with'
provisionerStartWithOption_edu.internet2.middleware.grouper.app.duo.role.DuoRoleProvisioningStartWith = Duo role 'start with'
provisionerStartWithOption_edu.internet2.middleware.grouper.app.boxProvisioner.BoxProvisioningStartWith = Box 'start with'
provisionerStartWithOption_edu.internet2.middleware.grouper.app.messagingProvisioning.MessagingProvisioningStartWith = Messaging 'start with'
provisionerStartWithOption_edu.internet2.middleware.grouper.app.ldapProvisioning.LdapProvisioningMembershipStartWith = LDAP 'start with'
provisionerStartWithOption_edu.internet2.middleware.grouper.app.provisioningExamples.exampleWsReplaceProvisioner.ExampleWsProvisioningStartWith = Example WS provisioning 'start with'
provisionerStartWithOption_edu.internet2.middleware.grouper.app.scim2Provisioning.ScimProvisioningStartWith = Scim provisioning 'start with'
provisionerStartWithOption_edu.internet2.middleware.grouper.app.teamDynamix.TeamDynamixProvisioningStartWith = TeamDynamix provisioning 'start with'
# provisioner config was saved successfully
provisionerConfigAddEditSuccess = Provisioner configuration was saved successfully.
# provisioner config was deleted successfully
provisionerConfigDeleteSuccess = Provisioner configuration was deleted successfully.
provisionerGroupMemberCacheDeleteSuccess = Provisioner group and member cache was cleared successfully. We recommend running full sync now.
miscellaneousProvisionerConfigurationsDiagnosticsMainDescription = Provisioning diagnostics for '${grouperRequestContainer.grouperProvisioningDiagnosticsContainer.grouperProvisioner.configId}'
miscellaneousProvisionerConfigurationsDiagnosticsMainDescriptionParagraph = These diagnostics will run in the UI, so only run small diagnostics jobs. Provision a handful of groups, and run diagnostics. If you need to run a large scale diagnostics, run that from GSH on a container with a lot of memory. This will not run while other jobs are running, so make sure no large full or increments jobs are running when you run this.
grouperProvisioningDiagnosticsSubheadingComplete = Diagnostics complete
grouperProvisioningDiagnosticsSubheadingInProgress = Diagnostics in progress (${grouperRequestContainer.grouperProvisioningDiagnosticsContainer.progressBean.percentComplete}% done), please wait
grouperProvisioningDiagnosticsSubheading = ${textContainer.text[grouperRequestContainer.grouperProvisioningDiagnosticsContainer.progressBean.complete ? 'grouperProvisioningDiagnosticsSubheadingComplete' : 'grouperProvisioningDiagnosticsSubheadingInProgress']}
# exception in provisioner diagnostics
grouperProvisioningDiagnosticsException = Error: the diagnostics could not be completed
grouperProvisioningDiagnosticsBack = Back to provisioner list
grouperProvisioningDiagnosticsLargeOperationsLabel = Large operations
grouperProvisioningDiagnosticsSelectAllGroupsLabel = Select all groups
grouperProvisioningDiagnosticsSelectAllGroupsDescription = For large provisioners this will make the diagnostics take longer and you might not want to run this in UI
grouperProvisioningDiagnosticsSelectAllEntitiesLabel = Select all entities
grouperProvisioningDiagnosticsSelectAllEntitiesDescription = For large provisioners this will make the diagnostics take longer and you might not want to run this in UI
grouperProvisioningDiagnosticsSelectAllMembershipsLabel = Select all memberships
grouperProvisioningDiagnosticsSelectAllMembershipsDescription = For large provisioners this will make the diagnostics take longer and you might not want to run this in UI
grouperProvisioningDiagnosticsGroupNameLabel = Test group name
grouperProvisioningDiagnosticsGroupNameDescription = Group name of a group which can be selected, inserted, updated, deleted in target. This group should be provisionable to the target
grouperProvisioningDiagnosticsSubjectIdOrIdentifierLabel = Test subject id or identifier
grouperProvisioningDiagnosticsSubjectIdOrIdentifierDescription = Subject id or identifier of an entity which can be selected, inserted, updated, deleted in target.
grouperProvisioningDiagnosticsGroupInsertLabel = Insert group in target
grouperProvisioningDiagnosticsGroupInsertDescription = If the test group is not in the target or it can be deleted, then create the group in the target.
grouperProvisioningDiagnosticsGroupInsertLabelTrue = True
grouperProvisioningDiagnosticsGroupDeleteLabel = Delete group in target
grouperProvisioningDiagnosticsGroupDeleteDescription = If the test group is in the target or will be inserted, then delete the group in the target.
grouperProvisioningDiagnosticsGroupDeleteLabelTrue = True
grouperProvisioningDiagnosticsEntityInsertLabel = Insert entity in target
grouperProvisioningDiagnosticsEntityInsertDescription = If the test entity is not in the target, then create the entity in the target.
grouperProvisioningDiagnosticsEntityInsertLabelTrue = True
grouperProvisioningDiagnosticsEntityDeleteLabel = Delete entity in target
grouperProvisioningDiagnosticsEntityDeleteDescription = If the test entity is in the target or will be inserted, then delete the entity in the target.
grouperProvisioningDiagnosticsEntityDeleteLabelTrue = True
grouperProvisioningDiagnosticsGroupAttributesMembershipInsertLabel = Add entity to group
grouperProvisioningDiagnosticsGroupAttributesMembershipInsertDescription = If the test entity should be added to the group as a group attribute (i.e. membership) in the target.
grouperProvisioningDiagnosticsGroupAttributesMembershipInsertLabelTrue = True
grouperProvisioningDiagnosticsGroupAttributesMembershipDeleteLabel = Remove entity from group
grouperProvisioningDiagnosticsGroupAttributesMembershipDeleteDescription = If the test entity should be removed from the group as a group attribute (i.e. membership) in the target.
grouperProvisioningDiagnosticsGroupAttributesMembershipDeleteLabelTrue = True
grouperProvisioningDiagnosticsEntityAttributesMembershipInsertLabel = Add group to entity
grouperProvisioningDiagnosticsEntityAttributesMembershipInsertDescription = If the test group should be added to the entity as an entity attribute (i.e. membership) in the target.
grouperProvisioningDiagnosticsEntityAttributesMembershipInsertLabelTrue = True
grouperProvisioningDiagnosticsEntityAttributesMembershipDeleteLabel = Remove group from entity
grouperProvisioningDiagnosticsEntityAttributesMembershipDeleteDescription = If the test group should be removed from the entity as an entity attribute (i.e. membership) in the target.
grouperProvisioningDiagnosticsEntityAttributesMembershipDeleteLabelTrue = True
grouperProvisioningDiagnosticsMembershipInsertLabel = Add membership
grouperProvisioningDiagnosticsMembershipInsertDescription = If the membership should be added in the target.
grouperProvisioningDiagnosticsMembershipInsertLabelTrue = True
grouperProvisioningDiagnosticsMembershipDeleteLabel = Remove membership
grouperProvisioningDiagnosticsMembershipDeleteDescription = If the membership should be removed from the target.
grouperProvisioningDiagnosticsMembershipDeleteLabelTrue = True
#########################################
## Subject sources
#########################################
miscellaneousSubjectSourceConfigAddBreadcrumb = Add subject source
miscellaneousSubjectSourceConfigEditBreadcrumb = Edit subject source
subjectSourcesNoSubjectSourcesFound = There are no subject soruces found.
ariaLabelGuiMoreGrouperSubjectSourcesActions = Show subject sources actions
subjectSourcesMoreActionsButton = Actions
subjectSourcesMoreActionsAddButton = Add subject source
subjectSourcesMoreActionsViewButton = View subject sources
subjectSourcesTableHeaderSourceId = Subject source id
subjectSourcesTableHeaderSourceName = Name
subjectSourcesTableHeaderType = Type
subjectSourcesTableTypeEditableTrueValue = Editable
subjectSourcesTableTypeEditableFalseValue = Not editable
subjectSourcesTableHeaderEnabled = Enabled
subjectSourcesTableTypeEnabledTrueValue = Enabled
subjectSourcesTableTypeEnabledFalseValue = Not enabled
subjectSourcesTableHeaderActions = Actions
subjectSourcesDiagnosticsActionOption = Diagnostics
subjectSourcesEditActionOption = Edit
subjectSourcesDeleteActionOption = Delete
subjectSourcesEnableActionOption = Enable
subjectSourcesDisableActionOption = Disable
subjectSourcesConfirmDeleteSource = Are you sure you want to delete this subject source?
subjectSourcesAddFormSubmitButton = Submit
subjectSourcesAddFormCancelButton = Cancel
subjectSourceConfigIdLabel = Config id
subjectSourceConfigIdHint = The configuration ID is the alphanumeric key in the config file that identifies this subject source. This is not necessarily the same as the source ID which is what you use in code or in API's to refer to this subject source.
subjectSourceTypeLabel = Subject source type
subjectSourceTypeHint = Currently Grouper supports these source types. If there is not a source type that you need you need to ETL the data into a database, or build a subject source, or contact the Grouper dev team.
subjectSourceConfigCreateErrorConfigIdRequired = Error: Configuration id is required
subjectSourceConfigAddEditSuccess = Subject source was saved successfully.
subjectSourceConfigDeleteSuccess = Subject source was deleted successfully.
########################################
## Custom UI
########################################
customUiMiscLink = Custom UI
miscellaneousCustomUiOverallBreadcrumb = Custom UI
miscellaneousCustomUiMainDescription = Custom UI
customUiMoreActionsButton = Actions
customUiConfigIdLabel = Config id
customUiMoreActionsAddButton = Add Custom UI
customUiMoreActionsViewButton = View Custom UI configs
ariaLabelGuiMoreCustomUiActions = Show Custom UI actions
customUiNoConfiguredCustomUis = There are no custom UIs configured.
miscellaneousCustomUiAddBreadcrumb = Add custom UI
miscellaneousCustomUiEditBreadcrumb = Edit custom UI
customUiConfigAddFormSubmitButton = Submit
customUiConfigAddFormCancelButton = Cancel
customUiConfigIdHint = The Config id is an alphanumeric key for the custom UI that will be referred to from places that use the custom UI. It is also used in the configuration keys.
customUiTypeLabel = Custom UI configuration
customUiTypeHint = Custom UI configuration
customUiCreateErrorConfigIdRequired = Error: Config id is required
customUiConfigAddEditSuccess = Custom UI config was saved successfully.
customUiConfigDeleteSuccess = Custom UI config was deleted successfully.
customUiConfigChangeStatusSuccess = Custom UI config's status was changed successfully.
customUiConfigsTableHeaderConfigId = Config id
customUiConfigsTableHeaderEnabled = Enabled
customUiConfigsTableHeaderActions = Actions
customUiConfigsTableEnabledTrueValue = Enabled
customUiConfigsTableEnabledFalseValue = Disabled
customUiConfigsRowActionsButton = Actions
customUiConfigsTableViewDetailsActionOption = View details
customUiConfigsTableEditDetailsActionOption = Edit details
customUiConfigsTableRunActionOption = Run
customUiConfigsTableDeleteDetailsActionOption = Delete custom UI config
customUiConfigsTableDisableActionOption = Disable
customUiConfigsTableEnableActionOption = Enable
customUiConfigsConfirmDeleteConfig = Are you sure you want to delete this custom UI config?
customUiConfigSaveErrorDuplicateIndex = Two text configs that have the same text type cannot have the same index.
customUiConfigSaveErrorGroupNotFound = Group could not be found for uuid/name '$$groupUUIDOrName$$'.
customUiConfigSaveErrorGroupAlreadyHasCustomUi = Group '$$groupUUIDOrName$$' already has custom UI configured.
customUiConfigSaveErrorVariableToAssignNotValid = Variable to assign must start with 'cu_' or be 'default'.
customUiConfigSaveErrorVariableToAssignOnErrorNotValid = Variable to assign on error must start with 'cu_'.
customUiConfigSaveErrorAttributeDefNotFound = Attribute def could not be found for id '$$attributeDefId$$'.
config.CustomUiConfiguration.attribute.enabled.label = Enabled?
config.CustomUiConfiguration.attribute.enabled.description = Enabled?
config.CustomUiConfiguration.attribute.groupUUIDOrName.label = Group UUID or name
config.CustomUiConfiguration.attribute.groupUUIDOrName.description = Group UUID or name of the group with the custom UI
config.CustomUiConfiguration.attribute.externalizedText.label = Externalized text?
config.CustomUiConfiguration.attribute.externalizedText.description = Select 'True' if you would like to use externalized text for labels & descriptions.
config.CustomUiConfiguration.attribute.groupCanSeeUserEnvironment.label = Group can see user environment
config.CustomUiConfiguration.attribute.groupCanSeeUserEnvironment.description = If in this group (name or uuid) then can see user environment. This is for people who support the application. Results are cached for two minutes.
config.CustomUiConfiguration.attribute.groupCanSeeScreenState.label = Group can see screen state
config.CustomUiConfiguration.attribute.groupCanSeeScreenState.description = If in this group (name or uuid) then can see screen state. This is for developers of the custom ui. Results are cached for two minutes.
config.CustomUiConfiguration.attribute.groupCanAssignVariables.label = Group can assign URL variables
config.CustomUiConfiguration.attribute.groupCanAssignVariables.description = If in this group then can assign variables in the URL. This is for people verifying that the custom UI is working correctly. Results are cached for two minutes.
config.CustomUiConfiguration.attribute.groupOfManagers.label = Group of managers
config.CustomUiConfiguration.attribute.groupOfManagers.description = If in this group then can pull other users up to check their UI or add or remove them. You should use this group instead of relying on having READ/UPDATE on the group itself. This is for people supporting the app that the custom UI is for. Results are cached for two minutes.
config.CustomUiConfiguration.attribute.numberOfQueries.label = Number of queries
config.CustomUiConfiguration.attribute.numberOfQueries.description = Number of queries
config.CustomUiConfiguration.attribute.cuQuery.i.userQueryType.label = __i+1__ - User query type
config.CustomUiConfiguration.attribute.cuQuery.i.userQueryType.description = User query type
config.CustomUiConfiguration.attribute.cuQuery.i.attributeDefId.label = __i+1__ - Attribute def id
config.CustomUiConfiguration.attribute.cuQuery.i.attributeDefId.description = Attribute def id
config.CustomUiConfiguration.attribute.cuQuery.i.azureGroupId.label = __i+1__ - Azure group id
config.CustomUiConfiguration.attribute.cuQuery.i.azureGroupId.description = Azure group id
config.CustomUiConfiguration.attribute.cuQuery.i.bindVar0.label = __i+1__ - Bind variable 0
config.CustomUiConfiguration.attribute.cuQuery.i.bindVar0.description = Bind variable 0
config.CustomUiConfiguration.attribute.cuQuery.i.bindVar0Type.label = __i+1__ - Bind variable 0 type
config.CustomUiConfiguration.attribute.cuQuery.i.bindVar0Type.description = Bind variable 0 type
config.CustomUiConfiguration.attribute.cuQuery.i.bindVar1.label = __i+1__ - Bind variable 1
config.CustomUiConfiguration.attribute.cuQuery.i.bindVar1.description = Bind variable 1
config.CustomUiConfiguration.attribute.cuQuery.i.bindVar1Type.label = __i+1__ - Bind variable 1 type
config.CustomUiConfiguration.attribute.cuQuery.i.bindVar1Type.description = Bind variable 1 type
config.CustomUiConfiguration.attribute.cuQuery.i.bindVar2.label = __i+1__ - Bind variable 2
config.CustomUiConfiguration.attribute.cuQuery.i.bindVar2.description = Bind variable 2
config.CustomUiConfiguration.attribute.cuQuery.i.bindVar2Type.label = __i+1__ - Bind variable 2 type
config.CustomUiConfiguration.attribute.cuQuery.i.bindVar2Type.description = Bind variable 2 type
config.CustomUiConfiguration.attribute.cuQuery.i.configId.label = __i+1__ - Config id
config.CustomUiConfiguration.attribute.cuQuery.i.configId.description = Config id
config.CustomUiConfiguration.attribute.cuQuery.i.enabled.label = __i+1__ - Enabled?
config.CustomUiConfiguration.attribute.cuQuery.i.enabled.description = Enabled?
config.CustomUiConfiguration.attribute.cuQuery.i.errorLabel.label = __i+1__ - Error label
config.CustomUiConfiguration.attribute.cuQuery.i.errorLabel.description = Error label
config.CustomUiConfiguration.attribute.cuQuery.i.fieldNames.label = __i+1__ - Field names
config.CustomUiConfiguration.attribute.cuQuery.i.fieldNames.description = Field names
config.CustomUiConfiguration.attribute.cuQuery.i.forLoggedInUser.label = __i+1__ - For logged in user
config.CustomUiConfiguration.attribute.cuQuery.i.forLoggedInUser.description = For logged in user
config.CustomUiConfiguration.attribute.cuQuery.i.groupId.label = __i+1__ - Group id
config.CustomUiConfiguration.attribute.cuQuery.i.groupId.description = Group id
config.CustomUiConfiguration.attribute.cuQuery.i.groupName.label = __i+1__ - Group name
config.CustomUiConfiguration.attribute.cuQuery.i.groupName.description = Group name
config.CustomUiConfiguration.attribute.cuQuery.i.label.label = __i+1__ - Label
config.CustomUiConfiguration.attribute.cuQuery.i.label.description = Label
config.CustomUiConfiguration.attribute.cuQuery.i.labelExternalizedTextKey.label = __i+1__ - Label externalized text key
config.CustomUiConfiguration.attribute.cuQuery.i.labelExternalizedTextKey.description = Label externalized text key
config.CustomUiConfiguration.attribute.cuQuery.i.ldapAttributeToRetrieve.label = __i+1__ - Ldap attribute to retrieve
config.CustomUiConfiguration.attribute.cuQuery.i.ldapAttributeToRetrieve.description = Ldap attribute to retrieve
config.CustomUiConfiguration.attribute.cuQuery.i.ldapFilter.label = __i+1__ - Ldap filter
config.CustomUiConfiguration.attribute.cuQuery.i.ldapFilter.description = Ldap filter
config.CustomUiConfiguration.attribute.cuQuery.i.ldapSearchDn.label = __i+1__ - Ldap search dn
config.CustomUiConfiguration.attribute.cuQuery.i.ldapSearchDn.description = Ldap search dn
config.CustomUiConfiguration.attribute.cuQuery.i.nameOfAttributeDef.label = __i+1__ - Name of attribute def
config.CustomUiConfiguration.attribute.cuQuery.i.nameOfAttributeDef.description = Name of attribute def
config.CustomUiConfiguration.attribute.cuQuery.i.order.label = __i+1__ - Order
config.CustomUiConfiguration.attribute.cuQuery.i.order.description = Order
config.CustomUiConfiguration.attribute.cuQuery.i.query.label = __i+1__ - Query
config.CustomUiConfiguration.attribute.cuQuery.i.query.description = Query
config.CustomUiConfiguration.attribute.cuQuery.i.script.label = __i+1__ - Script
config.CustomUiConfiguration.attribute.cuQuery.i.script.description = Script
config.CustomUiConfiguration.attribute.cuQuery.i.stemId.label = __i+1__ - Stem id
config.CustomUiConfiguration.attribute.cuQuery.i.stemId.description = Stem id
config.CustomUiConfiguration.attribute.cuQuery.i.stemName.label = __i+1__ - Stem name
config.CustomUiConfiguration.attribute.cuQuery.i.stemName.description = Stem name
config.CustomUiConfiguration.attribute.cuQuery.i.variableToAssign.label = __i+1__ - Variable to assign
config.CustomUiConfiguration.attribute.cuQuery.i.variableToAssign.description = Variable to assign
config.CustomUiConfiguration.attribute.cuQuery.i.variableToAssignOnError.label = __i+1__ - Variable to assign on error
config.CustomUiConfiguration.attribute.cuQuery.i.variableToAssignOnError.description = Variable to assign on error
config.CustomUiConfiguration.attribute.cuQuery.i.variableType.label = __i+1__ - Variable type
config.CustomUiConfiguration.attribute.cuQuery.i.variableType.description = Variable type
config.CustomUiConfiguration.attribute.cuQuery.i.allowAssignFromUrl.label = __i+1__ - Is allow assign from URL?
config.CustomUiConfiguration.attribute.cuQuery.i.allowAssignFromUrl.description = If true, then allow any user to assign this from the URL (e.g. when the custom UI is called externally and needs inputs)
config.CustomUiConfiguration.attribute.numberOfTextConfigs.label = Number of text configs
config.CustomUiConfiguration.attribute.numberOfTextConfigs.description = Number of text configs
config.CustomUiConfiguration.attribute.cuTextConfig.i.textType.label = __i+1__ - Text type
config.CustomUiConfiguration.attribute.cuTextConfig.i.textType.description = Text type
config.CustomUiConfiguration.attribute.cuTextConfig.i.enabled.label = __i+1__ - Enabled?
config.CustomUiConfiguration.attribute.cuTextConfig.i.enabled.description = Enabled
config.CustomUiConfiguration.attribute.cuTextConfig.i.textBoolean.label = __i+1__ - Text boolean
config.CustomUiConfiguration.attribute.cuTextConfig.i.textBoolean.description = Text boolean
config.CustomUiConfiguration.attribute.cuTextConfig.i.textIsScript.label = __i+1__ - Is text script?
config.CustomUiConfiguration.attribute.cuTextConfig.i.textIsScript.description = Is text script
config.CustomUiConfiguration.attribute.cuTextConfig.i.textBooleanScript.label = __i+1__ - Text boolean script
config.CustomUiConfiguration.attribute.cuTextConfig.i.textBooleanScript.description = Text boolean script
config.CustomUiConfiguration.attribute.cuTextConfig.i.endIfMatches.label = __i+1__ - End if matches
config.CustomUiConfiguration.attribute.cuTextConfig.i.endIfMatches.description = End if matches
config.CustomUiConfiguration.attribute.cuTextConfig.i.index.label = __i+1__ - Index
config.CustomUiConfiguration.attribute.cuTextConfig.i.index.description = Index
config.CustomUiConfiguration.attribute.cuTextConfig.i.defaultText.label = __i+1__ - Default text
config.CustomUiConfiguration.attribute.cuTextConfig.i.defaultText.description = Default text
config.CustomUiConfiguration.attribute.cuTextConfig.i.text.label = __i+1__ - Text
config.CustomUiConfiguration.attribute.cuTextConfig.i.text.description = Text
config.CustomUiConfiguration.attribute.cuTextConfig.i.script.label = __i+1__ - Script
config.CustomUiConfiguration.attribute.cuTextConfig.i.script.description = Script
config.CustomUiConfiguration.subSection.cuQuery.title = Custom UI query
config.CustomUiConfiguration.subSection.cuQuery.description = Custom UI query
config.CustomUiConfiguration.subSection.cuTextConfigs.title = Custom UI text configs
config.CustomUiConfiguration.subSection.cuTextConfigs.description = Custom UI text configs
config.CustomUiConfiguration.subSection.cuQuery.i.title = Custom UI query __i+1__
config.CustomUiConfiguration.subSection.cuQuery.i.description = Custom UI query
config.CustomUiConfiguration.subSection.cuTextConfig.i.title = Custom UI text config __i+1__
config.CustomUiConfiguration.subSection.cuTextConfig.i.description = Custom UI text config
########################################
## Misc. Global Attribute Resolver Config
########################################
adminGlobalAttributeResolverConfigLink = Entity attribute resolvers (global)
globalAttributeResolverConfigNotAllowedToView = Error: not allowed to view global entity attribute resolver configuration
globalAttributeResolverErrorConfigIdRequired = Error: Config id is required
miscellaneousGlobalAttributeResolverConfigsOverallBreadcrumb = Entity attribute resolvers (global)
miscellaneousGlobalAttributeResolverConfigsMainDescription = Entity attribute resolvers (global)
miscellaneousGlobalAttributeResolverConfigAddBreadcrumb = Add entity attribute resolver (global)
miscellaneousGlobalAttributeResolverConfigEditBreadcrumb = Edit entity attribute resolver (global)
globalAttributeResolverConfigAddEditSuccess = Global entity attribute resolver config was saved successfully.
globalAttributeResolverConfigDeleteSuccess = Global entity attribute resolver config was deleted successfully.
globalAttributeResolverConfigChangeStatusSuccess = Global entity attribute resolver config's status was changed successfully.
globalAttributeResolverConfigsTableHeaderConfigId = Config id
globalAttributeResolverConfigsTableHeaderEnabled = Enabled
globalAttributeResolverConfigsTableHeaderActions = Actions
globalAttributeResolverConfigsTableEnabledTrueValue = Enabled
globalAttributeResolverConfigsTableEnabledFalseValue = Disabled
globalAttributeResolverConfigsRowActionsButton = Actions
globalAttributeResolverConfigsTableDeleteDetailsActionOption = Delete global entity attribute resolver config
globalAttributeResolverConfigsTableDisableActionOption = Disable
globalAttributeResolverConfigsTableEnableActionOption = Enable
globalAttributeResolverConfigsConfirmDeleteConfig = Are you sure you want to delete this entity global attribute resolver config?
ariaLabelGuiMoreGlobalAttributeResolverConfigActions = Show global entity attribute resolver actions
globalAttributeResolverConfigsMoreActionsAddButton = Add global entity attribute resolver
globalAttributeResolverConfigsMoreActionsViewButton = View global entity attribute resolver
globalAttributeResolverConfigAddFormSubmitButton = Submit
globalAttributeResolverConfigAddFormCancelButton = Cancel
globalAttributeResolverConfigIdLabel = Config id
globalAttributeResolverConfigIdHint = The Config id is an alphanumeric key for the global entity attribute resolver config. It is also used in the configuration keys.
globalAttributeResolverConfigTypeLabel = Config type
globalAttributeResolverConfigTypeHint = Config type
globalAttributeResolverConfigsNoConfiguredResolvers = There are no global entity attribute resolver configs.
config.GlobalAttributeResolverConfiguration.attribute.resolverType.label = Resolver type
config.GlobalAttributeResolverConfiguration.attribute.grouperAttributeThatMatchesRow.label = Grouper attribute that matches the row
config.GlobalAttributeResolverConfiguration.attribute.baseDn.label = Base DN
config.GlobalAttributeResolverConfiguration.attribute.ldapAttributes.label = LDAP attributes
config.GlobalAttributeResolverConfiguration.attribute.multiValuedLdapAttributes.label = Multivalued LDAP attributes
config.GlobalAttributeResolverConfiguration.attribute.subjectSearchMatchingAttribute.label = Subject search matching attribute
config.GlobalAttributeResolverConfiguration.attribute.grouperAttributeThatMatchesRecord.label = Global attribute that matches record
config.GlobalAttributeResolverConfiguration.attribute.ldapLastUpdatedFormat.label = Last updated format
########################################
## Misc. Authentication
########################################
adminAuthenticationLink = Authentication
authenticationNotAllowedToView = Error: not allowed to view authentication
authenticationIndexBreadcrumb = Authentication
authenticationIndexTitle = Authentication
authenticationIndexSubtitle = Wizards to setup authentication. Grouper version: ${edu.internet2.middleware.grouper.misc.GrouperVersion.grouperContainerVersionOrMavenVersion()}
authenticationIndexWsAuth = Web Service authentication using trusted JWT's
authenticationIndexOidcAuth = Web Service authentication using OIDC
miscellaneousWsTrustedJwtsOverallBreadcrumb = Web service trusted JWTs
miscellaneousOidcConfigOverallBreadcrumb = Web service oidc config
miscellaneousWsTrustedJwtsMainDescription = Web service trusted JWTs
miscellaneousOidcConfigMainDescription = Web service oidc config
wsTrustedJwtsMoreActionsButton = Actions
wsTrustedJwtsMoreActionsAddButton = Add Ws trusted jwt
wsTrustedOidcMoreActionsAddButton = Add Ws trusted oidc
wsTrustedJwtsMoreActionsViewButton = View Ws trusted jwt configs
wsTrustedOidcMoreActionsViewButton = View Ws trusted oidc configs
ariaLabelGuiMoreWsTrustedJwtsActions = Show Ws trusted jwt actions
wsTrustedJwtsNoConfiguredJwts = There are no web service trusted jwt configs
oidcConfigNoConfiguredOidc = There are no oidc configs
wsTrustedJwtsTableHeaderConfigId = Config id
wsTrustedJwtsTableHeaderEnabled = Enabled
wsTrustedJwtsTableHeaderActions = Actions
wsTrustedJwtsTableEnabledTrueValue = Enabled
wsTrustedJwtsTableEnabledFalseValue = Disabled
wsTrustedJwtsRowActionsButton = Actions
wsTrustedJwtErrorConfigIdRequired = Error: Config id is required
miscellaneousWsTrustedJwtAddBreadcrumb = Add ws trusted jwt config
miscellaneousWsTrustedOidcAddBreadcrumb = Add ws trusted oidc config
miscellaneousWsTrustedJwtEditBreadcrumb = Edit ws trusted jwt config
miscellaneousWsTrustedOidcEditBreadcrumb = Edit ws trusted oidc config
wsTrustedJwtConfigAddFormSubmitButton = Submit
wsTrustedJwtConfigAddFormCancelButton = Cancel
wsTrustedJwtConfigIdLabel = Config id
wsTrustedJwtConfigIdHint = The Config id is an alphanumeric key for the ws trusted jwt config
wsTrustedJwtConfigTypeLabel = Config type
wsTrustedJwtConfigTypeHint = Config type
wsTrustedJwtConfigAddEditSuccess = Ws trusted jwt config was saved successfully.
wsTrustedJwtConfigDeleteSuccess = Ws trusted jwt config was deleted successfully.
wsTrustedJwtConfigChangeStatusSuccess = Ws trusted jwt config's status was changed successfully.
wsTrustedJwtTableDeleteDetailsActionOption = Delete ws trusted jwt config
wsTrustedOidcTableDeleteDetailsActionOption = Delete ws oidc config
wsTrustedJwtTableDisableActionOption = Disable
wsTrustedJwtTableEnableActionOption = Enable
wsTrustedJwtConfirmDeleteConfig = Are you sure you want to delete this ws trusted jwt config?
oidcConfigConfirmDeleteConfig = Are you sure you want to delete this ws oidc config?
config.WsTrustedJwtConfiguration.attribute.subjectSourceIds.label = Subject sources
config.WsTrustedJwtConfiguration.attribute.subjectSourceIds.description = Subject sources
config.WsTrustedJwtConfiguration.attribute.subjectIdType.label = Subject id type
config.WsTrustedJwtConfiguration.attribute.subjectIdType.description = Subject id type
config.WsTrustedJwtConfiguration.attribute.subjectIdClaimName.label = Subject id claim name
config.WsTrustedJwtConfiguration.attribute.subjectIdClaimName.description = Subject id claim name
config.WsTrustedJwtConfiguration.attribute.expirationSeconds.label = Expiration seconds
config.WsTrustedJwtConfiguration.attribute.expirationSeconds.description = Expiration seconds
config.WsTrustedJwtConfiguration.attribute.numberOfKeys.label = Number of public keys
config.WsTrustedJwtConfiguration.attribute.numberOfKeys.description = Number of public keys
config.WsTrustedJwtConfiguration.attribute.key.i.publicKey.label = __i+1__ - public key
config.WsTrustedJwtConfiguration.attribute.key.i.publicKey.description = Public key
config.WsTrustedJwtConfiguration.attribute.key.i.encryptionType.label = __i+1__ - encryption type
config.WsTrustedJwtConfiguration.attribute.key.i.encryptionType.description = Encryption type
config.WsTrustedJwtConfiguration.attribute.key.i.expiresOn.label = __i+1__ - key expiration timestamp
config.WsTrustedJwtConfiguration.attribute.key.i.expiresOn.description = optional: yyyy-mm-dd hh:mm:ss.SSS
config.WsTrustedJwtConfiguration.subSection.key.i.title = Key item __i+1__
config.WsTrustedJwtConfiguration.subSection.key.i.description = Configure public key
config.OidcConfiguration.attribute.oidcExternalSystemConfigId.label = OIDC external system
config.OidcConfiguration.attribute.oidcExternalSystemConfigId.description = OIDC external system
config.OidcConfiguration.attribute.subjectSourceIds.label = Subject sources
config.OidcConfiguration.attribute.subjectSourceIds.description = Subject sources
config.OidcConfiguration.attribute.redirectUri.label = Redirect URI
config.OidcConfiguration.attribute.redirectUri.description = needed for retrieving an access token, e.g. https://my.app/someUrlBackFromIdp
config.OidcConfiguration.attribute.subjectIdType.label = Subject id type
config.OidcConfiguration.attribute.subjectIdType.description = Subject id type
config.OidcConfiguration.attribute.subjectIdClaimName.label = Subject id claim name
config.OidcConfiguration.attribute.subjectIdClaimName.description = some claim name that has the subjectId / subjectIdentifier / subjectIdOrIdentifier in it. e.g. employeeId (required)
config.OidcConfiguration.attribute.scope.label = Scope
config.OidcConfiguration.attribute.scope.description = scope to retrieve from oidc, e.g. openid email profile
########################################
## External systems
########################################
# link to external systems page
adminExternalSystemsLink = External systems (e.g. LDAP, database, etc)
# grouper external systems table header config id column
grouperExternalSystemTableHeaderConfigId = Config id
# grouper external systems table header external system column
grouperExternalSystemTableHeaderType = External system type
# grouper external systems table header external system is enabled or not
grouperExternalSystemTableHeaderEnabled = Enabled
# grouper external systems table header external system actions
grouperExternalSystemTableHeaderActions = Actions
# aria label grouper external system actions dropdown button text
ariaLabelGuiMoreGrouperExternalSystemActions = Show gropuer external system actions
# grouper external systems enabled column value when config is enabled
grouperExternalSystemTableEnabledTrueValue = Enabled
# grouper external systems cannot enable/disable this external system
grouperExternalSystemCannotEnableDisable = Cannot enable/disable this external system
# grouper external systems enabled column value when config is disabled
grouperExternalSystemTableEnabledFalseValue = Disabled
# message when no external systems are configured
grouperExternalSystemNoConfiguredExternalSystemsFound = There are no external systems configured.
# message when external system does not support testing
grouperExternalSystemConnectionNotSupported = Info: this external system does not support testing
# message when external system test throws exception
grouperExternalSystemConnectionTestException = Error: the following exception occurred while testing
# Actions button on the main screen of the grouper external system
grouperExternalSystemMoreActionsButton = Actions
# Actions button on each row of the grouper external system table
grouperExternalSystemRowActionsButton = Actions
# view external system details option in dropdown in table
grouperExternalSystemTableViewDetailsActionOption = View details
# edit external system details option in dropdown in table
grouperExternalSystemTableEditDetailsActionOption = Edit details
# delete external system details option in dropdown in table
grouperExternalSystemTableDeleteDetailsActionOption = Delete config
# test external system
grouperExternalSystemTableTestDetailsActionOption = Test
# disable external system
grouperExternalSystemTableDisableActionOption = Disable
# enable external system
grouperExternalSystemTableEnableActionOption = Enable
# for each of the attributes, el label
grouperConfigIsElLabel = EL?
# for each of the attributes, el label
grouperConfigIsElTooltip = Eval a script value in config engine. Generally do not select this
# ldap external system title
config.LdapGrouperExternalSystem.title = Ldap
# external system titles
config.AzureGrouperExternalSystem.title = Azure
config.BoxGrouperExternalSystem.title = Box
config.GoogleGrouperExternalSystem.title = Google
config.Office365GrouperExternalSystem.title = Office 365
config.config.title = Box
config.DuoGrouperExternalSystem.title = Duo
config.ActiveMqGrouperExternalSystem.title = ActiveMq
config.RabbitMqGrouperExternalSystem.title = RabbitMq
config.SqsGrouperExternalSystem.title = SQS
config.SftpGrouperExternalSystem.title = SFTP
config.SmtpGrouperExternalSystem.title = SMTP
config.DatabaseGrouperExternalSystem.title = Database
config.RemedyGrouperExternalSystem.title = Remedy
config.RemedyDigitalMarketplaceGrouperExternalSystem.title = Remedy digital marketplace
config.TeamDynamixExternalSystem.title = TeamDynamix
# grouper external system config was saved successfully
grouperExternalSystemConfigAddEditSuccess = Grouper external system config was saved successfully.
# grouper external system config was deleted successfully
grouperExternalSystemConfigDeleteSuccess = Grouper external system config was deleted successfully.
# grouper external system config status change success
grouperExternalSystemConfigChangeStatusSuccess = Grouper external system status was changed successfully. This status is not fully used in grouper yet.
# grouper external system config edit form submit button label
grouperExternalSystemConfigEditFormSubmitButton = Submit
# grouper external system config add form submit button label
grouperExternalSystemConfigAddFormSubmitButton = Submit
# grouper external system config edit form cancel button label
grouperExternalSystemConfigEditFormCancelButton = Cancel
# grouper external system config add form cancel button label
grouperExternalSystemConfigAddFormCancelButton = Cancel
# more action add form option
grouperExternalSystemMoreActionsAddButton = Add external system
# more action view external systems option
grouperExternalSystemMoreActionsViewButton = View external systems
# grouper external system type label
grouperExternalSystemTypeLabel = External system type
# grouper external system type hint
grouperExternalSystemTypeHint = Type of external system that will be connected to, for example database or LDAP.
# grouper external system config id label
grouperExternalSystemConfigIdLabel = Config id
# grouper external system config id hint
grouperExternalSystemConfigIdHint = The Config id is an alphanumeric key for the external system that will be referred to from places that use the external system. It is also used in the configuration keys. Example: myWhateverServer
# error that external system config id is required
grouperExternalSystemCreateErrorConfigIdRequired = Error: Config id is required
# error that external system config id grouper cannot be used for database type
grouperExternalSystemCreateErrorConfigIdGrouperCanNotBeUsed = Error: Config id grouper cannot be used for database type
config.defaultTrueLabel = True
config.defaultFalseLabel = False
config.defaultValueLabel = Default value
# labels for attributes
config.LdapGrouperExternalSystem.attribute.url.label = URL (single node*)
config.LdapGrouperExternalSystem.attribute.url.description = Specify the ldap connection url. Note the URL should start with ldap: or ldaps: if it is SSL. It should contain the server and port (optional if 389/636). e.g. ldaps://ldapserver.school.edu:636 You should not want specify the base dn here. If you do then all ldap filters will use this base dn. If you still want to specify the base dn, here is an example: ldaps://ldapserver.school.edu:636/dc=school,dc=edu *If you have a round robin LDAP URL, then errors will occur as replication does not happen fast enough. You should have a VIP that have fail over load balancing so that updates occur to a single node and if that node is down will point to another single node. Or point to one hard-coded node and update that if the node is down.
config.LdapGrouperExternalSystem.attribute.configFileFromClasspath.label = Config file from classpath
config.LdapGrouperExternalSystem.attribute.configFileFromClasspath.description = Load this ldaptive config file before the configs here. load from classpath. eg: ldap.personLdap.properties this is in the container in /opt/grouper/grouperWebapp/WEB-INF/classes/
config.LdapGrouperExternalSystem.attribute.user.label = User name
config.LdapGrouperExternalSystem.attribute.pass.label = Password
config.LdapGrouperExternalSystem.attribute.tls.label = TLS
config.LdapGrouperExternalSystem.attribute.isActiveDirectory.label = Is Active Directory?
config.LdapGrouperExternalSystem.attribute.saslAuthorizationId.label = SASL authorization id
config.LdapGrouperExternalSystem.attribute.uiTestSearchDn.label = UI test search dn
config.LdapGrouperExternalSystem.attribute.uiTestSearchScope.label = UI test search scope
config.LdapGrouperExternalSystem.attribute.uiTestAttributeName.label = UI test attribute name
config.LdapGrouperExternalSystem.attribute.uiTestFilter.label = UI test filter
config.LdapGrouperExternalSystem.attribute.uiTestExpectedValue.label = UI test expected value
config.LdapGrouperExternalSystem.attribute.saslRealm.label = SASL Realm
config.LdapGrouperExternalSystem.attribute.batchSize.label = Batch size
config.LdapGrouperExternalSystem.attribute.countLimit.label = Count limit
config.LdapGrouperExternalSystem.attribute.timeLimit.label = Time limit
config.LdapGrouperExternalSystem.attribute.timeout.label = Timeout
config.LdapGrouperExternalSystem.attribute.pagedResultsSize.label = Paged results size
config.LdapGrouperExternalSystem.attribute.referral.label = Referral
config.LdapGrouperExternalSystem.attribute.searchResultHandlers.label = Search results handle
config.LdapGrouperExternalSystem.attribute.searchIgnoreResultCodes.label = Search ignore result codes
config.LdapGrouperExternalSystem.attribute.enabled.label = Enabled
config.LdapGrouperExternalSystem.attribute.customizePooling.label = Customize pooling
config.LdapGrouperExternalSystem.attribute.minPoolSize.label = Minimum pool size
config.LdapGrouperExternalSystem.attribute.maxPoolSize.label = Maximum pool size
config.LdapGrouperExternalSystem.attribute.validateOnCheckIn.label = Validate on check in
config.LdapGrouperExternalSystem.attribute.validateOnCheckOut.label = Validate on check out
config.LdapGrouperExternalSystem.attribute.validatePeriodically.label = Validate periodically
config.LdapGrouperExternalSystem.attribute.expirationTime.label = Max idle time
config.LdapGrouperExternalSystem.attribute.validateTimerPeriod.label = Validate time period
config.LdapGrouperExternalSystem.attribute.pruneTimerPeriod.label = Prune time period
config.LdapGrouperExternalSystem.attribute.validator.label = Validator
config.LdapGrouperExternalSystem.attribute.validatorCompareDn.label = Validator compare DN
config.LdapGrouperExternalSystem.attribute.validatorCompareAttribute.label = Validator compare attribute
config.LdapGrouperExternalSystem.attribute.validatorCompareValue.label = Validator compare value
config.AzureGrouperExternalSystem.attribute.loginEndpoint.label = Login endpoint
config.AzureGrouperExternalSystem.attribute.tenantId.label = Tenant id
config.AzureGrouperExternalSystem.attribute.DirectoryID.label = Directory id
config.AzureGrouperExternalSystem.attribute.clientId.label = Client id
config.AzureGrouperExternalSystem.attribute.clientSecret.label = Client secret
config.AzureGrouperExternalSystem.attribute.resource.label = Resource
config.AzureGrouperExternalSystem.attribute.resourceEndpoint.label = Resource endpoint
config.AzureGrouperExternalSystem.attribute.graphEndpoint.label = Graph endpoint
config.AzureGrouperExternalSystem.attribute.graphVersion.label = Graph version
config.AzureGrouperExternalSystem.attribute.groupLookupAttribute.label = Group lookup attribute
config.AzureGrouperExternalSystem.attribute.groupLookupValueFormat.label = Group lookup value format
config.AzureGrouperExternalSystem.attribute.requireSubjectAttribute.label = Require subject attribute
config.AzureGrouperExternalSystem.attribute.subjectIdValueFormat.label = Subject id value format
config.AzureGrouperExternalSystem.attribute.enabled.label = Enabled
config.SqsGrouperExternalSystem.attribute.defaultSystemName.label = Default system name
config.SqsGrouperExternalSystem.attribute.secretKey.label = Secret key
config.SqsGrouperExternalSystem.attribute.accessKey.label = Access key
config.SqsGrouperExternalSystem.attribute.awsRegion.label = AWS region
config.SqsGrouperExternalSystem.attribute.awsRegion.description = Enter a valid AWS region e.g. us-east-1
config.SqsGrouperExternalSystem.attribute.defaultPageSize.label = Default page size
config.SqsGrouperExternalSystem.attribute.maxPageSize.label = Max page size
config.TeamDynamixExternalSystem.description = Connection to TeamDynamix
config.TeamDynamixExternalSystem.documentation = Configure connection to TeamDynamix
config.TeamDynamixExternalSystem.attribute.enabled.label = Enabled
config.TeamDynamixExternalSystem.attribute.enabled.description = TeamDynamix login base uri to get a token. Should end in a slash. e.g. https://yourTeamDynamixDomain/
config.TeamDynamixExternalSystem.attribute.url.label = URL
config.TeamDynamixExternalSystem.attribute.url.description = TeamDynamix login base uri to get a token. Should end in a slash. e.g. https://some.url.edu/SBTDWebApi/
config.TeamDynamixExternalSystem.attribute.beid.label = Beid
config.TeamDynamixExternalSystem.attribute.beid.description = TeamDynamix beid (tenant id)
config.TeamDynamixExternalSystem.attribute.webServicesKey.label = Web services key
config.TeamDynamixExternalSystem.attribute.webServicesKey.description = Web services key
config.TeamDynamixExternalSystem.attribute.expiresInSeconds.label = Token expires in seconds
config.TeamDynamixExternalSystem.attribute.expiresInSeconds.description = How long the bearer token lasts in seconds. -1 for do not re-use.
config.TeamDynamixProvisionerConfiguration.attribute.teamDynamixExternalSystemConfigId.label = External system config id
grouperTeamDynamixProvisionerConfiugrationEntitySearchAttribute = Entity search attributes can only be "id" or "ExternalId"
config.BoxGrouperExternalSystem.description = This is a connection to the box to be used for provisioning or other purposes.
https://spaces.at.internet2.edu/display/Grouper/Grouper+Box+External+SystemVideo - coming soon
config.BoxGrouperExternalSystem.documentation = Configure Box- Sign up with Box: https://account.box.com/signup/personal?tc=annual
- Enable 2-step verification
- Go to the dev console: https://app.box.com/developers/console
- Click on Create New App and select Custom App
- Select Server Authentication (With JWT) for the authentication method and enter an App Name
- Click the Create button, which will redirect you to the Configuration screen of the new app
- From this screen, copy the Client Id, Client Secret, and Enterprise Id
- On the same screen, change the App access level to App + Enterprise Access
- Under Add and Manage Public Keys, click on Generate a Public/Private keypair. After 2 step verification, it will prompt you to download a json file. Save it on your computer. It has all the necessary information to connect with Box.
- Click on the Save Changes button in the top right corner
- Go to the Authorization tab for this app and click on the Review and Submit button
- You will receive an email to approve this app. Go to your inbox and approve the app
- Now, you're all set to set up an external system and provisioner within Grouper
config.BoxGrouperExternalSystem.attribute.privateKeyContents_0.label = Private key contents
config.BoxGrouperExternalSystem.attribute.authenticationType.label = Authentication type
config.BoxGrouperExternalSystem.attribute.baseUrl.label = Box base URL
config.BoxGrouperExternalSystem.attribute.authenticationUrl.label = Box authentication URL
config.BoxGrouperExternalSystem.attribute.privateKeyFileName.label = Private key file name
config.BoxGrouperExternalSystem.attribute.privateKeyPass.label = Private key pass
config.BoxGrouperExternalSystem.attribute.publicKeyId.label = Public key id
config.BoxGrouperExternalSystem.attribute.enterpriseId.label = Enterprise id
config.BoxGrouperExternalSystem.attribute.clientId.label = Client id
config.BoxGrouperExternalSystem.attribute.clientSecret.label = Client secret
config.BoxGrouperExternalSystem.attribute.proxyHost.label = Proxy host
config.BoxGrouperExternalSystem.attribute.proxyPort.label = Proxy port
grouperBoxProvisionerConfiugrationGroupIdRequired = id is a required group attribute
grouperBoxProvisionerConfiugrationGroupNameRequired = name is a required group attribute
grouperBoxProvisionerConfiugrationEntityIdRequired = id is a required entity attribute
grouperBoxProvisionerConfiugrationEntityNameRequired = name is a required entity attribute
grouperBoxProvisionerConfiugrationEntityLoginRequired = login is a required entity attribute
config.DuoGrouperExternalSystem.description = This is a connection to the duo to be used for provisioning or other purposes.
https://spaces.at.internet2.edu/display/Grouper/Grouper+Duo+External+SystemVideo
config.DuoGrouperExternalSystem.documentation = Configure Duo - Signup for Duo Premier
- On the left, click on Applications \u2192 Protect an application
- Select Admin API (If you don't see Admin API as an option, your account might not have privileges to do that, upgrade your account.)
- Grant permissions
- For Duo groups and memberships
- Grant read resource
- Grant write resource
- For Duo role provisioner
- Grant administrators
config.DuoGrouperExternalSystem.attribute.adminDomainName.label = Domain name
config.DuoGrouperExternalSystem.attribute.adminDomainName.description = Domain name for duo. You can get it from Duo applications details page. If the endpoint has a port or path add that too (this is generally only for testing), e.g. localhost:8400/grouper/mockServices/duo
config.DuoGrouperExternalSystem.attribute.adminIntegrationKey.label = Integration key
config.DuoGrouperExternalSystem.attribute.adminIntegrationKey.description = Integration key. You can get it from Duo applications details page.
config.DuoGrouperExternalSystem.attribute.adminSecretKey.label = Secret key
config.DuoGrouperExternalSystem.attribute.adminSecretKey.description = Secret key. You can get it from Duo applications details page.
config.DuoGrouperExternalSystem.attribute.useSsl.label = Use ssl
config.GenericConfiguration.attribute.proxyUrl.label = Proxy URL
config.GenericConfiguration.attribute.proxyUrl.description = Proxy requests here, e.g. https://server:1234
config.GenericConfiguration.attribute.proxyType.label = Proxy type
config.GenericConfiguration.attribute.proxyType.description = Socks or HTTP
config.GoogleGrouperExternalSystem.description = This is a connection to the google cloud provider to be used for provisioning or other purposes.
https://spaces.at.internet2.edu/display/Grouper/Grouper+Google+external+systemVideo
config.GoogleGrouperExternalSystem.documentation = Configure GCP for development purposes - Sign up for GCP
- Go to IAM & Admin \u2192 Groups
- It will say "This feature requires an organization" and at the bottom of the screen, click the button "GO TO THE CHECKLIST"
- Follow the instructions to set up cloud identity, verify your domain.
- In the project, allow admin SDK by selecting the project from the drop down. Click on APIs and Services. Click on Enable APIs and Services. Search for and select Admin SDK API. Click Enable.
- Go back to https://console.cloud.google.com/ IAM & Admin.
- Under IAM \u2192 Permissions, add a new Principal with role Owner.
- On the left, click on Service Accounts. Create a new service account with role owner. Under the newly created service account, create a new key.
- Domain-wide Delegation.
- Go to: http://admin.google.com/.
- Security \u2192 Access and Data Control \u2192 API controls.
- Click: Manage Domain Wide Delegation
- Add new
- Use the client ID from the Service Account Detail "Unique ID"
- Use these scopes
https://www.googleapis.com/auth/admin.directory.user, https://www.googleapis.com/auth/admin.directory.group, https://www.googleapis.com/auth/admin.directory.group.member, https://www.googleapis.com/auth/apps.groups.settings
- The user "impersonated as" (main admin user) needs to be an admin
- Enable the group settings API for your project:
- https://console.cloud.google.com/
- APIs and Services \u2192 Enabled APIs and Services
- Click: Enable APIs and Services
- Search for Group Settings API, click on it
- Click: Enable
config.GoogleGrouperExternalSystem.attribute.domain.label = Domain name
config.GoogleGrouperExternalSystem.attribute.groupDomain.label = Group domain name
config.GoogleGrouperExternalSystem.attribute.serviceAccountEmail.label = Service account email
config.GoogleGrouperExternalSystem.attribute.serviceAccountPKCS12FilePath.label = Service account PKCS12 file path
config.GoogleGrouperExternalSystem.attribute.serviceAccountPrivateKeyPEM.label = Service account private key
config.GoogleGrouperExternalSystem.attribute.serviceAccountPrivateKeyPEM.description = If not reading from a file, this is the private key. You can get this one of two ways: - Open the JSON file and take the private key and replace the \n with actual newlines
- -or- You can get it by running "openssl pkcs12 -info -in pathToYourP12File -nodes"
config.GoogleGrouperExternalSystem.attribute.serviceImpersonationUser.label = Service impersonation user
config.GoogleGrouperExternalSystem.attribute.serviceImpersonationUser.description = This is the account that all actions will be made by. It needs to exist and will be the creator and modifier account associated with the Google auditing logs.
config.GoogleGrouperExternalSystem.attribute.tokenUrl.label = Token api url
config.GoogleGrouperExternalSystem.attribute.directoryApiBaseUrl.label = Directory api base url
config.GoogleGrouperExternalSystem.attribute.groupSettingsApiBaseUrl.label = Group settings api base url
config.GoogleGrouperExternalSystem.attribute.pageSizeGroup.label = Page size for groups
config.GoogleGrouperExternalSystem.attribute.pageSizeUser.label = Page size for users
config.GoogleGrouperExternalSystem.attribute.pageSizeMembership.label = Page size for memberships
config.SftpGrouperExternalSystem.attribute.host.label = Host
config.SftpGrouperExternalSystem.attribute.user.label = Username
config.SftpGrouperExternalSystem.attribute.secret.privateKey_0.label = Private key
config.SftpGrouperExternalSystem.attribute.secret.privateKeyPassphrase.label = Private key passphrase
config.SftpGrouperExternalSystem.attribute.password.label = Password
config.SftpGrouperExternalSystem.attribute.knownHostsEntry.label = Known hosts entry
config.SftpGrouperExternalSystem.attribute.deleteTempFilesAfterSession.label = Delete temp files after session
config.SftpGrouperExternalSystem.attribute.timeoutMillis.label = Timeout in millis
config.SftpGrouperExternalSystem.attribute.enabled.label = Enabled
config.SftpGrouperExternalSystem.attribute.proxyHost.label = Proxy host
config.SftpGrouperExternalSystem.attribute.proxyHost.description = Host for this sftp external system, or default to the global default: grouper.properties: grouperSftp.proxyHost
config.SftpGrouperExternalSystem.attribute.proxyPort.label = Proxy port
config.SftpGrouperExternalSystem.attribute.proxyPort.description = Proxy port for this sftp external system, or default to the global default: grouper.properties: grouperSftp.proxyPort
config.SftpGrouperExternalSystem.attribute.proxyType.label = Proxy type
config.SftpGrouperExternalSystem.attribute.proxyType.description = Proxy type for this sftp external system: PROXY_HTTP, PROXY_SOCKS5, PROXY_STREAM, or default to the global default: grouper.properties: grouperSftp.proxyType
config.SmtpGrouperExternalSystem.attribute.server.label = Server
config.SmtpGrouperExternalSystem.attribute.user.label = Username
config.SmtpGrouperExternalSystem.attribute.pass.label = Password
config.SmtpGrouperExternalSystem.attribute.ssl.label = SSL
config.SmtpGrouperExternalSystem.attribute.groupUuidAndNameEmailDereferenceAllow = Groups allowed to email to
config.SmtpGrouperExternalSystem.attribute.starttls.enable.label = Enable TLS
config.SmtpGrouperExternalSystem.attribute.ssl.trust.label = SSL trust
config.SmtpGrouperExternalSystem.attribute.port.label = Port
config.SmtpGrouperExternalSystem.attribute.ssl.protocols.label = SSL protocols
config.SmtpGrouperExternalSystem.attribute.socketFactory.class.label = Socket factory class
config.SmtpGrouperExternalSystem.attribute.socketFactory.fallback.label = Socket factory fallback
config.SmtpGrouperExternalSystem.attribute.transport.protocol.label = Transport protocol
config.SmtpGrouperExternalSystem.attribute.use.protocol.in.property.names.label = Protocol in property names
config.SmtpGrouperExternalSystem.attribute.from.address.label = From address
config.SmtpGrouperExternalSystem.attribute.subject.prefix.label = Subject prefix
config.SmtpGrouperExternalSystem.attribute.sendAllMessagesHere.label = Send all messages here
config.SmtpGrouperExternalSystem.attribute.debug.label = Debug
config.SmtpGrouperExternalSystem.attribute.grouperEmailContentType.label = Content type
config.SmtpGrouperExternalSystem.attribute.externalSystemTestToType.label = External system test "to" type
config.SmtpGrouperExternalSystem.attribute.externalSystemTestToAddress.label = External system test "to" email address
config.SmtpGrouperExternalSystem.attribute.externalSystemTestToSubjectSourceId.label = External system test "to" subject source id
config.SmtpGrouperExternalSystem.attribute.externalSystemTestToSubjectIdType.label = External system test "to" subject type
config.SmtpGrouperExternalSystem.attribute.externalSystemTestToSubjectId.label = External system test "to" subject id
config.SmtpGrouperExternalSystem.attribute.externalSystemTestToSubjectIdentifier.label = External system test "to" subject identifier
config.SmtpGrouperExternalSystem.attribute.externalSystemTestToGroupIdType.label = External system test "to" group type
config.SmtpGrouperExternalSystem.attribute.externalSystemTestToGroupId.label = External system test "to" group uuid
config.SmtpGrouperExternalSystem.attribute.externalSystemTestToGroupName.label = External system test "to" group name
config.SmtpGrouperExternalSystem.attribute.externalSystemTestSubject.label = External system test subject of email
config.SmtpGrouperExternalSystem.attribute.externalSystemTestBody.label = External system test email body
config.SmtpGrouperExternalSystem.attribute.externalSystemTestCcAddress.label = External system test cc address
config.SmtpGrouperExternalSystem.attribute.externalSystemTestBccAddress.label = External system test bcc address
config.SmtpGrouperExternalSystem.attribute.externalSystemTestFromAddress.label = External system test from address
config.SmtpGrouperExternalSystem.attribute.externalSystemTestReplyAddresses.label = External system test reply addresses
config.DatabaseGrouperExternalSystem.attribute.user.label = Username
config.DatabaseGrouperExternalSystem.attribute.pass.label = Password
config.DatabaseGrouperExternalSystem.attribute.url.label = URL
config.DatabaseGrouperExternalSystem.attribute.driver.label = Driver
config.DatabaseGrouperExternalSystem.attribute.c3p0.max_size.label = Connection pool maximum size
config.DatabaseGrouperExternalSystem.attribute.c3p0.min_size.label = Connection pool minimum size
config.DatabaseGrouperExternalSystem.attribute.c3p0.timeout.label = Connection pool timeout in seconds
config.DatabaseGrouperExternalSystem.attribute.c3p0.max_statements.label = Connection pool maximum statements
config.DatabaseGrouperExternalSystem.attribute.c3p0.idle_test_period.label = Connection pool idle test period
config.DatabaseGrouperExternalSystem.attribute.c3p0.acquire_increment.label = Connection pool acquire increment
config.DatabaseGrouperExternalSystem.attribute.c3p0.validate.label = Connection pool validate
config.DatabaseGrouperExternalSystem.attribute.c3p0.debugUnreturnedConnectionStackTraces.label = Connection pool debug stack traces
config.DatabaseGrouperExternalSystem.attribute.c3p0.unreturnedConnectionTimeout.label = Connection pool unreturned connection timeout
config.DatabaseGrouperExternalSystem.attribute.enabled.label = Enabled
config.DatabaseGrouperExternalSystem.attribute.useQuotedColumnsInSql.label = Use quoted columns in SQL
config.DatabaseGrouperExternalSystem.attribute.useQuotedColumnsInSql.description = Quote to use for columns in SQL. This defaults to backtic if mysql, and otherwise will be doublequote.
config.DatabaseGrouperExternalSystem.attribute.quoteForColumnsInSql.label = Quote for columns in SQL
config.DatabaseGrouperExternalSystem.attribute.quoteForColumnsInSql.description = This defaults to true. Turn this off if the database does not support or need or has a problem with quoted identifiers
config.DatabaseGrouperExternalSystem.attribute.testQuery.label = Test sql query
config.DatabaseGrouperExternalSystem.attribute.testExpectedValue.label = Test expected value
config.RemedyGrouperExternalSystem.attribute.url.label = URL
config.RemedyGrouperExternalSystem.attribute.tokenUrl.label = Token URL
config.RemedyGrouperExternalSystem.attribute.username.label = Username
config.RemedyGrouperExternalSystem.attribute.password.label = password
config.RemedyGrouperExternalSystem.attribute.enabled.label = Enabled
config.RemedyDigitalMarketplaceGrouperExternalSystem.attribute.url.label = URL
config.RemedyDigitalMarketplaceGrouperExternalSystem.attribute.tokenUrl.label = Token URL
config.RemedyDigitalMarketplaceGrouperExternalSystem.attribute.xRequestedByHeader.label = X-Requested-By header value
config.RemedyDigitalMarketplaceGrouperExternalSystem.attribute.username.label = Username
config.RemedyDigitalMarketplaceGrouperExternalSystem.attribute.password.label = Password
config.RemedyDigitalMarketplaceGrouperExternalSystem.attribute.enabled.label = Enabled
config.LdapGrouperExternalSystem.attribute.option.validator.CompareLdapValidator.label = CompareLdapValidator: use an LDAP compare operation to validate the connection
config.LdapGrouperExternalSystem.attribute.option.validator.SearchValidator.label = SearchValidator: use an LDAP search operation to validate the connection
config.WsBearerTokenExternalSystem.title = WS (bearer token or basic authn)
config.WsBearerTokenExternalSystem.attribute.endpoint.label = Endpoint base URL
config.WsBearerTokenExternalSystem.attribute.httpAuthnType.label = Authentication type
config.WsBearerTokenExternalSystem.attribute.accessTokenPassword.label = Secret
config.WsBearerTokenExternalSystem.attribute.basicAuthUser.label = User
config.WsBearerTokenExternalSystem.attribute.basicAuthPassword.label = Password
config.WsBearerTokenExternalSystem.attribute.prependBearerTokenPrefix.label = Prepend 'Bearer:' label to secret
config.WsBearerTokenExternalSystem.attribute.httpHeader.label = HTTP header
config.WsBearerTokenExternalSystem.attribute.enabled.label = Enabled
config.WsBearerTokenExternalSystem.attribute.pageSize.label = Page size
config.WsBearerTokenExternalSystem.attribute.userPageSize.label = User page size
config.WsBearerTokenExternalSystem.attribute.groupPageSize.label = Group page size
config.WsBearerTokenExternalSystem.attribute.testUrlSuffix.label = Test URL suffix
config.WsBearerTokenExternalSystem.attribute.testHttpMethod.label = Test HTTP method
config.WsBearerTokenExternalSystem.attribute.testHttpResponseCode.label = Test HTTP response code
config.WsBearerTokenExternalSystem.attribute.testUrlResponseBodyRegex.label = Test response body regex
config.OidcGrouperExternalSystem.title = Oidc external system
config.OidcGrouperExternalSystem.attribute.tokenEndpointUri.label = Token endpoint URI
config.OidcGrouperExternalSystem.attribute.userInfoUri.label = User info URI
config.OidcGrouperExternalSystem.attribute.clientId.label = Client id
config.OidcGrouperExternalSystem.attribute.clientSecret.label = Client secret
config.OidcGrouperExternalSystem.attribute.claimSource.label = Claim source
config.OidcGrouperExternalSystem.attribute.issuer.label = OIDC issuer
config.OidcGrouperExternalSystem.attribute.maxClockSkew.label = Maximum clock skew
config.OidcGrouperExternalSystem.attribute.proxyUrl.label = Proxy URL
config.OidcGrouperExternalSystem.attribute.proxyType.label = Proxy type
config.OidcGrouperExternalSystem.attribute.authorizeUri.label = Authorize URI
config.OidcGrouperExternalSystem.attribute.useConfigurationMetadata.label = Use configuration metadata?
config.OidcGrouperExternalSystem.attribute.useConfigurationMetadata.description = Do you want to specify URLs or want to use the well known URL?
config.OidcGrouperExternalSystem.attribute.configurationMetadataUri.label = Configuration metadata url
config.OidcGrouperExternalSystem.attribute.configurationMetadataUri.description = Configuration metadata url
config.OidcGrouperExternalSystem.attribute.redirectUri.label = Redirect url
config.OidcGrouperExternalSystem.attribute.redirectUri.description = Redirect url OIDC is going to redirect to after successful authentication
config.OidcGrouperExternalSystem.attribute.scope.label = Scope
config.OidcGrouperExternalSystem.attribute.scope.description = Scope to retrieve from oidc, e.g. openid email profile (required)
config.OidcGrouperExternalSystem.attribute.subjectSourceIds.label = Subject sources
config.OidcGrouperExternalSystem.attribute.subjectSourceIds.description = Subject sources
config.OidcGrouperExternalSystem.attribute.subjectIdType.label = Subject id type
config.OidcGrouperExternalSystem.attribute.subjectIdType.description = Subject id type
config.OidcGrouperExternalSystem.attribute.subjectIdClaimName.label = Subject id claim name
config.OidcGrouperExternalSystem.attribute.subjectIdClaimName.description = Subject id claim name
config.OidcGrouperExternalSystem.attribute.oidcResponseType.label = OIDC response type
config.OidcGrouperExternalSystem.attribute.oidcResponseType.description = OIDC response type. e.g code
config.OidcGrouperExternalSystem.attribute.useForUi.label = Use for UI?
config.OidcGrouperExternalSystem.attribute.useForUi.description = Do you want to use this external system for UI authentication? If yes, you can have only one OIDC external system enabled for UI authentication.
config.OidcGrouperExternalSystem.attribute.useForWs.label = Use for WS?
config.OidcGrouperExternalSystem.attribute.useForWs.description = Do you want to use this external system for WS authentication?
#config.LdapGrouperExternalSystem.attribute.option.customizePooling.trueLabel = true
#config.LdapGrouperExternalSystem.attribute.option.customizePooling.falseLabel = false
# success message when grouper and external system connection is tested
grouperExternalSystemConnectionTestSuccess = Success: grouper was able to connect to the external system
# confirm the user to delete an external system config
grouperExternalSystemConfirmDeleteConfig = Are you sure you want to delete this external system config?
configIdLabel = Config id
# validation configId is already used
grouperConfigurationValidationNotMultiple = Error: this configuration is not allowed to be added.
grouperConfigurationValidationLdapUiTestConfigMissing = Error: if you provide any ui test parameters, you must provide all five.
grouperConfigurationValidationElRequired = Error: '${configFieldLabel}' is selected for 'EL' (Expression Language) with a blank script. The EL script is required.
grouperConfigurationValidationRequired = Error: '${configFieldLabel}' is required
grouperConfigurationValidationConfigIdUsed = Error: the '$$configIdLabel$$' is already in use, please select another or edit that config
grouperConfigurationValidationConfigIdDoesntExist = Error: the '$$configIdLabel$$' does not exist
grouperConfigurationValidationConfigIdInvalid = Error: the '$$configIdLabel$$' must only contain alphanumeric characters, underscore, or dash
grouperConfigurationValidationTestSqlQueryRequired = Error: '${configFieldLabel}' is required when test expected value is provided
grouperConfigurationTestExpectedNotMatchingResult = Error: expected '$$expectedValue$$' but received '$$receivedValue$$'
grouperStartWithGroupTableConfigurationValidationGroupTableNotFound = Error: '$$tableName$$' not found
grouperStartWithEntityTableConfigurationValidationUserTableNotFound = Error: '$$userTableName$$' not found
grouperStartWithGroupTableConfigurationValidationGroupIdColumnNotFound = Error: '$$column$$' not found
grouperStartWithEntityTableConfigurationValidationUserIdColumnNotFound = Error: '$$userTableIdColumn$$' not found
grouperStartWithGroupTableConfigurationValidationGroupColumnsNotFound = Error: '$$groupTableColumns$$' columns not found
grouperStartWithEntityTableConfigurationValidationEntityColumnsNotFound = Error: '$$userTableColumns$$' columns not found
grouperStartWithInvalidMembershipStructureHasMembershipTable = If membership structure is not notApplicable then has membership table must be true
groupMembershipAttributeValueCannotBeEntityPrimaryKey = If has entity table is false, you cannot pick entityPrimaryKey as group membership attribute value
subjectSourceEntityResolverAttributesTooManyAttributes = There cannot be more than two attributes
scim2AWSEntityFamilyNameIsRequired = Entity last name is required for SCIM type AWS and Github.
scim2AWSEntityGivenNameIsRequired = Entity first name is required for SCIM type AWS and Github.
scim2AWSEntityUserNameIsRequired = Entity user name is required for SCIM type AWS.
scim2AWSEntityDisplayNameIsRequired = Entity display name is required for SCIM type AWS.
scim2githubCannotSelectAllGroupsAtOnce = Cannot select all groups at once for SCIM Github, need to select groups individually
scim2githubMustSelectOnly = Cannot insert, update, or delete groups for SCIM GitHub. You can only (and must) select groups.
scim2InvalidAttributeName = For a json pointer attribute, you cannot pick predefined attribute name. Check the EL checkbox for the attribute name and enter an alphanumeric string in quote e.g. ${"my_attribute"}
scim2githubOnlyGroupAttributeIsOrgInUrl = The only group attribute allowed is 'orgInUrl', assign this with EL as: ${'orgInUrl'}
scim2githubMustHaveGroupAttributeOrgInUrl = You must have group attribute 'orgInUrl', assign this with EL as: ${'orgInUrl'}
grouperStartWithLdapConfigurationValidationExternalSystemNotActiveDirectory = Error: External system with id '$$externalSystemId$$' is not of type active directory.
grouperStartWithLdapConfigurationValidationSubjectAttributesNotValid = Error: '$$subjectAttributes$$' not valid
grouperStartWithAzureConfigurationValidationEntityFieldNotSelected = Error: Select at least one of user principal name, on prem immutable id, mail nickname
grouperStartWithAzureConfigurationValidationEntitySearchMatchingAttributeNotValid = Error: Select entity search/matching attribute that is already configured above
grouperConfigurationValidationGoogleFilePathOrPrivateKeyRequired = Error: Supply PKCS12 file path or private key
grouperConfigurationValidationInvalidBoolean = Error: '${configFieldLabel}' is not a valid boolean. Should be 'true' or 'false'
grouperConfigurationValidationInvalidClass = Error: '${configFieldLabel}' is not a valid Java class. Should be a fully qualified class name which is on the classpath (jar in /opt/grouper/grouperWebapp/WEB-INF/lib or class file in /opt/grouper/grouperWebapp/WEB-INF/classes)
grouperConfigurationValidationInvalidCron = Error: '${configFieldLabel}' is not a valid Cron expression
grouperConfigurationValidationInvalidFloating = Error: '${configFieldLabel}' is not a valid floating point number
grouperConfigurationValidationInvalidInteger = Error: '${configFieldLabel}' is not a valid integer
grouperConfigurationValidationInvalidSubject = Error: '${configFieldLabel}' cannot find subject/entity
grouperConfigurationValidationInvalidAttributeDefName = Error: '${configFieldLabel}' is not a valid attribute definition name
grouperConfigurationValidationInvalidAttributeDef = Error: '${configFieldLabel}' is not a valid attribute definition
grouperConfigurationValidationInvalidStem = Error: '${configFieldLabel}' is not a valid folder/stem
grouperConfigurationValidationInvalidGroup = Error: '${configFieldLabel}' is not a valid group
grouperConfigurationValidationDoesNotExtendClass = Error: '${configFieldLabel}' does not extend $$mustExtendClass$$
grouperConfigurationValidationDoesNotImplementInterface = Error: '${configFieldLabel}' does not implement $$mustImplementInterface$$
grouperDaemonProvisioningConfigurationNoDuplicateDaemonsAllowed = Error: For a provisioner config, only one full and one incremental daemon is allowed.
miscellaneousGrouperExternalSystemsAddBreadcrumb = Add external system config
miscellaneousGrouperExternalSystemsEditBreadcrumb = Edit external system config
miscellaneousGrouperExternalSystemsViewDetailsBreadcrumb = View details
grouperConfigDefaultValueHintPrefix = Default value is
config.GrouperDaemonReportConfiguration.attribute.quartz.cron.label = Quartz cron
config.GrouperDaemonReportConfiguration.attribute.emailTo.label = Email to
config.GrouperDaemonReportConfiguration.attribute.saveInDirectory.label = File system directory to save in
config.GrouperDaemonBuiltInMessagingConfiguration.attribute.quartz.cron.label = Quartz cron
config.GrouperDaemonBuiltInMessagingConfiguration.attribute.grouper.builtin.messaging.deleteAllMessagesMoreThanHoursOld.label = Delete all messages older than (in hours)
config.GrouperDaemonBuiltInMessagingConfiguration.attribute.grouper.builtin.messaging.deleteProcessedMessagesMoreThanMinutesOld.label = Delete processed messages older than (in minutes)
config.GrouperDaemonChangeLogConsumerConfiguration.attribute.syncAttributeName.label = Sync attribute name
config.GrouperDaemonChangeLogConsumerConfiguration.attribute.retryOnError.label = Retry on error
config.GrouperDaemonChangeLogScriptConfiguration.description = Implement a GSH change log consumer
This will be prepended to the script.
import edu.internet2.middleware.grouper.changeLog.*;$newline$import edu.internet2.middleware.grouper.esb.listener.*;$newline$import edu.internet2.middleware.grouper.changeLog.esb.consumer.*;$newline$import edu.internet2.middleware.grouper.app.loader.*;$newline$import edu.internet2.middleware.grouper.app.loader.db.*;$newline$EsbPublisherChangeLogScript esbPublisherChangeLogScript = EsbPublisherChangeLogScript.retrieveFromThreadLocal();$newline$HashMap gsh_builtin_debugMap = esbPublisherChangeLogScript.getDebugMap();$newline$ChangeLogProcessorMetadata gsh_builtin_changeLogProcessorMetadata = esbPublisherChangeLogScript.getChangeLogProcessorMetadata();$newline$ProvisioningSyncConsumerResult gsh_builtin_provisioningSyncConsumerResult = esbPublisherChangeLogScript.getProvisioningSyncConsumerResult();$newline$List gsh_builtin_esbEventContainers = esbPublisherChangeLogScript.getEsbEventContainers();$newline$GrouperSession gsh_builtin_grouperSession = GrouperSession.staticGrouperSession();$newline$Hib3GrouperLoaderLog gsh_builtin_hib3GrouperLoaderLog = gsh_builtin_changeLogProcessorMetadata.getHib3GrouperLoaderLog();
Return the last sequence processed. Here is an example:long lastSequenceProcessed = -1;$newline$for (EsbEventContainer esbEventContainer : gsh_builtin_esbEventContainers) { $newline$ EsbEvent esbEvent = esbEventContainer.getEsbEvent(); $newline$ gsh_builtin_debugMap.put(esbEventContainer.getSequenceNumber(), "type=${esbEvent.getEventType()}; group=${esbEvent.getGroupName()}; sourceId=${esbEvent.getSourceId()}; subjectId=${esbEvent.getSubjectId()}");$newline$ gsh_builtin_hib3GrouperLoaderLog.addInsertCount(1); $newline$ lastSequenceProcessed = esbEventContainer.getSequenceNumber(); $newline$} $newline$return lastSequenceProcessed;
config.GrouperDaemonChangeLogScriptConfiguration.attribute.elfilter.label = JEXL filter
config.GrouperDaemonChangeLogScriptConfiguration.attribute.elfilter.description = JEXL filter, e.g. event.eventType eq 'GROUP_DELETE' || event.eventType eq 'GROUP_ADD' || event.eventType eq 'MEMBERSHIP_DELETE' || event.eventType eq 'MEMBERSHIP_ADD'
e.g. (event.eventType eq 'MEMBERSHIP_DELETE' || event.eventType eq 'MEMBERSHIP_ADD') && (event.groupName =~ '^test\:.*$')
config.GrouperDaemonChangeLogScriptConfiguration.attribute.publisher.class.label = Publisher class
config.GrouperDaemonChangeLogScriptConfiguration.attribute.publisher.class.description = Publisher class
config.GrouperDaemonChangeLogScriptConfiguration.attribute.changeLogFileType.label = File type
config.GrouperDaemonChangeLogScriptConfiguration.attribute.changeLogFileType.description = Paste in a script or link to a file name in container
config.GrouperDaemonChangeLogScriptConfiguration.attribute.changeLogScriptSource.label = Script source
config.GrouperDaemonChangeLogScriptConfiguration.attribute.changeLogScriptSource.description = Enter the script source
config.GrouperDaemonChangeLogScriptConfiguration.attribute.changeLogFileName.label = File name
config.GrouperDaemonChangeLogScriptConfiguration.attribute.changeLogFileName.description = File name in container of the GSH script
config.GrouperDaemonChangeLogEsbConfiguration.attribute.maxUntilFullSync.label = Maximum changes before full sync kicks in
config.GrouperDaemonChangeLogEsbConfiguration.attribute.publisher.class.label = Publisher class
config.GrouperDaemonChangeLogEsbConfiguration.attribute.changeLogConsumerBatchSize.class.label = Change log consumer batch size
config.GrouperDaemonChangeLogEsbToMessagingConfiguration.attribute.elfilter.label = Expression language filter (jexl format)
config.GrouperDaemonChangeLogEsbToMessagingConfiguration.attribute.publisher.class.label = Publisher class (fully qualified java class)
config.GrouperDaemonChangeLogEsbToMessagingConfiguration.attribute.publisher.messagingSystemName.label = Messaging system name
config.GrouperDaemonChangeLogEsbToMessagingConfiguration.attribute.publisher.routingKey.label = Routing key
config.GrouperDaemonChangeLogEsbToMessagingConfiguration.attribute.regexRoutingKeyReplacementDefinition.label = Regex based routing key replacement
config.GrouperDaemonChangeLogEsbToMessagingConfiguration.attribute.replaceRoutingKeyColonsWithPeriods.label = Replace routing key colons with periods
config.GrouperDaemonChangeLogEsbToMessagingConfiguration.attribute.publisher.messageQueueType.label = Messaging type (queue or topic)
config.GrouperDaemonChangeLogEsbToMessagingConfiguration.attribute.publisher.queueOrTopicName.label = Queue or topic name
config.GrouperDaemonChangeLogEsbToMessagingConfiguration.attribute.publisher.exchangeType.label = Exchange type (valid only for rabbitmq)
config.GrouperDaemonChangeLogRecentMembershipsConfiguration.attribute.maxUntilFullSync.label = Maximum changes before full sync kicks in
config.GrouperDaemonChangeLogRecentMembershipsConfiguration.attribute.publisher.class.label = Publisher class (fully qualified java class)
config.GrouperDaemonOtherJobConfiguration.attribute.priority.label = Priority
config.GrouperDaemonChangeLogTempToChangeLogConfiguration.attribute.quartz.cron.label = Quartz cron
config.GrouperDaemonChangeLogTempToChangeLogConfiguration.attribute.enable.label = Enable
config.GrouperDaemonChangeLogTempToChangeLogConfiguration.attribute.changeLog.includeFlattenedMemberships.label = Include flattened memberships
config.GrouperDaemonChangeLogTempToChangeLogConfiguration.attribute.changeLog.includeFlattenedPrivileges.label = Include flattened privileges
config.GrouperDaemonChangeLogTempToChangeLogConfiguration.attribute.changeLog.includeRolesWithPermissionChanges.label = Include roles with permission changes
config.GrouperDaemonChangeLogTempToChangeLogConfiguration.attribute.changeLog.includeSubjectsWithPermissionChanges.label = Include subjects with permission changes
config.GrouperDaemonChangeLogTempToChangeLogConfiguration.attribute.changeLog.includeNonFlattenedMemberships.label = Include non flattened memberships
config.GrouperDaemonChangeLogTempToChangeLogConfiguration.attribute.changeLog.includeNonFlattenedPrivileges.label = Include non flattened privileges
config.GrouperDaemonChangeLogTempToChangeLogConfiguration.attribute.changeLog.tooManyChangeLogUpdatesSize.label = Number of changes after which to commit
config.GrouperDaemonChangeLogToMessagingConfiguration.attribute.messagingSystemName.label = Messaging system name
config.GrouperDaemonChangeLogToMessagingConfiguration.attribute.routingKey.label = Routing key
config.GrouperDaemonChangeLogToMessagingConfiguration.attribute.messageQueueType.label = Messaging type (queue or topic)
config.GrouperDaemonChangeLogToMessagingConfiguration.attribute.exchangeType.label = Exchange type (valid only for rabbitmq)
config.GrouperDaemonChangeLogToMessagingConfiguration.attribute.queueOrTopicName.label = Queue or topic name
config.GrouperDaemonCleanLogsConfiguration.attribute.quartz.cron.label = Quartz cron
config.GrouperDaemonEnabledDisabledConfiguration.attribute.quartz.cron.label = Quartz cron
config.GrouperDaemonMessagingListenerConfiguration.attribute.messagingSystemName.label = Messaging system name
config.GrouperDaemonMessagingListenerConfiguration.attribute.routingKey.label = Routing key
config.GrouperDaemonMessagingListenerConfiguration.attribute.messageQueueType.label = Messaging type (queue or topic)
config.GrouperDaemonMessagingListenerConfiguration.attribute.exchangeType.label = Exchange type (valid only for rabbitmq)
config.GrouperDaemonMessagingListenerConfiguration.attribute.numberOfTriesPerIteration.label = Number of tries per iteration
config.GrouperDaemonMessagingListenerConfiguration.attribute.pollingTimeoutSeconds.label = Polling timeout seconds
config.GrouperDaemonMessagingListenerConfiguration.attribute.sleepSecondsInBetweenIterations.label = Sleep seconds in between iterations
config.GrouperDaemonMessagingListenerConfiguration.attribute.maxMessagesToReceiveAtOnce.label = Maximum messages to receive at once
config.GrouperDaemonMessagingListenerConfiguration.attribute.maxOuterLoops.label = Maximum outer loops
config.GrouperDaemonMessagingListenerConfiguration.attribute.queueName.label = Queue or topic name
config.GrouperDaemonMessagingListenerToChangeLogConfiguration.attribute.changeLogConsumerClass.label = Change log consumer class
config.GrouperDaemonMessagingListenerToChangeLogConfiguration.attribute.messagingSystemName.label = Messaging system name
config.GrouperDaemonMessagingListenerToChangeLogConfiguration.attribute.queueName.label = Queue or topic name
config.GrouperDaemonMessagingListenerToChangeLogConfiguration.attribute.numberOfTriesPerIteration.label = Number of tries per iteration
config.GrouperDaemonMessagingListenerToChangeLogConfiguration.attribute.pollingTimeoutSeconds.label = Polling timeout in seconds
config.GrouperDaemonMessagingListenerToChangeLogConfiguration.attribute.sleepSecondsInBetweenIterations.label = Sleep seconds in between iterations
config.GrouperDaemonMessagingListenerToChangeLogConfiguration.attribute.maxMessagesToReceiveAtOnce.label = Maximum messages to receive at once
config.GrouperDaemonMessagingListenerToChangeLogConfiguration.attribute.maxOuterLoops.label = Maximum outer loops
config.GrouperDaemonOtherJobCsvReportConfiguration.attribute.csvReport.query.label = Sql query to run
config.GrouperDaemonOtherJobCsvReportConfiguration.attribute.csvReport.database.label = Database name
config.GrouperDaemonOtherJobCsvReportConfiguration.attribute.csvReport.removeUnderscoresAndCapitalizeHeaders.label = Remove underscores and capitalize headers
config.GrouperDaemonOtherJobCsvReportConfiguration.attribute.csvReport.fileName.label = File name
config.GrouperDaemonOtherJobCsvReportConfiguration.attribute.csvReport.sftp.configId.label = Sftp config id
config.GrouperDaemonOtherJobCsvReportConfiguration.attribute.csvReport.sftp.fileNameRemote.label = Remote file name
config.GrouperDaemonOtherJobCsvReportConfiguration.attribute.csvReport.deleteFile.label = Delete file after sending
config.GrouperDaemonOtherJobSftpToSqlConfiguration.attribute.sftpToSql.sftp.configId.label = SFTP config id
config.GrouperDaemonOtherJobSftpToSqlConfiguration.attribute.sftpToSql.sftp.fileNameRemote.label = File name remote
config.GrouperDaemonOtherJobSftpToSqlConfiguration.attribute.sftpToSql.errorIfRemoteFileDoesNotExist.label = Error if not exist
config.GrouperDaemonOtherJobSftpToSqlConfiguration.attribute.sftpToSql.deleteFile.label = Delete remote file
config.GrouperDaemonOtherJobSftpToSqlConfiguration.attribute.sftpToSql.database.label = Database config id
config.GrouperDaemonOtherJobSftpToSqlConfiguration.attribute.sftpToSql.table.label = Table name
config.GrouperDaemonOtherJobSftpToSqlConfiguration.attribute.sftpToSql.columns.label = Columns
config.GrouperDaemonOtherJobSftpToSqlConfiguration.attribute.sftpToSql.columnsPrimaryKey.label = Primary key columns
config.GrouperDaemonOtherJobSftpToSqlConfiguration.attribute.sftpToSql.hasHeaderRow.label = Has header row
config.GrouperDaemonOtherJobSftpToSqlConfiguration.attribute.sftpToSql.separator.label = Separator
config.GrouperDaemonOtherJobSftpToSqlConfiguration.attribute.sftpToSql.escapedSeparator.label = Escaped separator
config.GrouperDaemonOtherJobSubjectChangeConfiguration.attribute.subjectChangeDaemon.subjectSourceId.label = Subject source id
config.GrouperDaemonOtherJobSubjectChangeConfiguration.attribute.subjectChangeDaemon.database.label = Database config id
config.GrouperDaemonOtherJobSubjectChangeConfiguration.attribute.subjectChangeDaemon.table.label = Table name
config.GrouperDaemonOtherJobSubjectChangeConfiguration.attribute.subjectChangeDaemon.useSubjectIdOrIdentifier.label = Look up subjects by id or identifier
config.GrouperDaemonOtherJobSubjectChangeConfiguration.attribute.subjectChangeDaemon.columnSubjectId.label = Subject id column
config.GrouperDaemonOtherJobSubjectChangeConfiguration.attribute.subjectChangeDaemon.columnSubjectIdentifier.label = Subject identifier column
config.GrouperDaemonOtherJobSubjectChangeConfiguration.attribute.subjectChangeDaemon.columnPrimaryKey.label = Primary key column
config.GrouperDaemonOtherJobSubjectChangeConfiguration.attribute.subjectChangeDaemon.deleteProcessedRows.label = If processed rows should be deleted
config.GrouperDaemonOtherJobSubjectChangeConfiguration.attribute.subjectChangeDaemon.columnCreateTimestamp.label = Column that contains the timestamp of when a row is inserted
config.GrouperDaemonOtherJobSubjectChangeConfiguration.attribute.subjectChangeDaemon.columnProcessedTimestamp.label = Column that contains the timestamp of when a row has been processed
config.GrouperDaemonOtherJobScriptConfiguration.title = Script daemon
config.GrouperDaemonOtherJobScriptConfiguration.attribute.scriptType.label = Script type
config.GrouperDaemonOtherJobScriptConfiguration.attribute.scriptType.description = Note: in SQL you should commit after DML commands.
config.GrouperDaemonOtherJobScriptConfiguration.attribute.fileType.label = File type
config.GrouperDaemonOtherJobScriptConfiguration.attribute.fileType.description = Enter a script into the configuration or specify a file name in the container
config.GrouperDaemonOtherJobScriptConfiguration.attribute.scriptSource.label = Script source
config.GrouperDaemonOtherJobScriptConfiguration.attribute.scriptSource.description = Enter a script into the textarea
config.GrouperDaemonOtherJobScriptConfiguration.attribute.fileName.label = File name
config.GrouperDaemonOtherJobScriptConfiguration.attribute.fileName.description = File name in the container
config.GrouperDaemonOtherJobScriptConfiguration.attribute.connectionName.label = Database connection
config.GrouperDaemonOtherJobScriptConfiguration.attribute.connectionName.description = Select the database connection to run SQL commands against
config.GrouperDaemonOtherJobScriptConfiguration.attribute.lightWeight.label = Lightweight GSH
config.GrouperDaemonOtherJobScriptConfiguration.attribute.lightWeight.description = If you are managing your own imports and don't want built-ins select true. This reduces the GSH execution time by a few seconds.
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.title = Sync to Grouper from SQL
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.description = This is similar to the loader though is intended to sync more types of objects for example to sync up part of another environment or a different version of Grouper/
config.GenericConfiguration.subSection.sqlSyncToGrouper.title = General settings
config.GenericConfiguration.subSection.sqlSyncToGrouper.description = Configure the high level settings for this job
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperReadonly.label = Readonly
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperReadonly.description = If true, then generate a report of the differences and what will change. If false, then make the changes in Grouper.
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperLogOutput.label = Log output
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperLogOutput.description = If full log should be logged to container (assumes the default log4j configuration that has DEBUG for this logger)
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperDatabaseConfigId.label = Database external system
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperDatabaseConfigId.description = Select a database to pull Grouper data from. Note: the data could come from a different schema on a database or across and dblink. Add an external system database if you need a new connection.
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperFromAnotherGrouper.label = Sync from another Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperFromAnotherGrouper.description = If you are pulling from a database which has Grouper tables (or tables exactly like Grouper tables), then the SQL queries can be auto configured.
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperDatabaseSyncFromAnotherGrouperSchema.label = Schema (if different)
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperDatabaseSyncFromAnotherGrouperSchema.description = If the Grouper tables are in a different schema than the connecting schema (and do not have synonyms) then list that here to the tables can have the right prefix
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperAutoconfigureColumns.label = Autoconfigure columns
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperAutoconfigureColumns.description = The SQL statements will see if columns are there if so will sync them. If you are syncing from another Grouper this is recommended.
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperTopLevelStems.label = Top level folder names
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperTopLevelStems.description = List the top level folder names comma separated to sync
config.GenericConfiguration.subSection.sqlSyncToGrouperStemSync.title = Folder settings
config.GenericConfiguration.subSection.sqlSyncToGrouperStemSync.description = Configure how folders are pulled into Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperStemSync.label = Sync folders
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperStemSync.description = If you want to sync folders to Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperStemSql.label = Folder SQL
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperStemSql.description = List the folder SQL query. Must have a name column. Optionally can have these columns: id, description, display_name, alternate_name, id_index
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperStemInsert.label = Insert folders
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperStemInsert.description = If folders in the SQL which are not in Grouper should be created in Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperStemUpdate.label = Update folders
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperStemUpdate.description = If folders in SQL with the same name as Grouper but different column data should update the folders in Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperStemDeleteExtra.label = Delete folders
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperStemDeleteExtra.description = If folders should be deleted if they exist in Grouper in the syncable folders but do not exist in the SQL being synced
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperStemSyncFieldAlternateName.label = Sync alternate name column
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperStemSyncFieldAlternateName.description = If the folder alternate_name column should be synced to Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperStemSyncFieldDescription.label = Sync description column
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperStemSyncFieldDescription.description = If the folder description column should be synced to Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperStemSyncFieldDisplayName.label = Sync display name column
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperStemSyncFieldDisplayName.description = If the folder display_name column should be synced to Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperStemSyncFieldIdIndexOnInsert.label = Sync ID index column
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperStemSyncFieldIdIndexOnInsert.description = If the folder id_index column should be synced to Grouper on inserts
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperStemSyncFieldIdOnInsert.label = Sync ID column
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperStemSyncFieldIdOnInsert.description = If the folder id column should be synced to Grouper on inserts
config.GenericConfiguration.subSection.sqlSyncToGrouperGroupSync.title = Group settings
config.GenericConfiguration.subSection.sqlSyncToGrouperGroupSync.description = Configure how groups are pulled into Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperGroupSync.label = Sync groups
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperGroupSync.description = If you want to sync groups to Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperGroupSql.label = Group SQL
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperGroupSql.description = List the group SQL query. Must have a name column. Optionally can have these columns: id, description, display_name, alternate_name, id_index, type_of_group, disabled_timestamp (bigint millis), enabled_timestamp (bigint millis)
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperGroupInsert.label = Insert groups
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperGroupInsert.description = If groups in the SQL which are not in Grouper should be created in Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperGroupUpdate.label = Update groups
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperGroupUpdate.description = If groups in SQL with the same name as Grouper but different column data should update the groups in Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperGroupDeleteExtra.label = Delete groups
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperGroupDeleteExtra.description = If groups should be deleted if they exist in Grouper in the syncable folders but do not exist in the SQL being synced
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperGroupSyncFieldAlternateName.label = Sync alternate name column
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperGroupSyncFieldAlternateName.description = If the group alternate_name column should be synced to Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperGroupSyncFieldDescription.label = Sync description column
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperGroupSyncFieldDescription.description = If the group description column should be synced to Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperGroupSyncFieldDisplayName.label = Sync display name column
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperGroupSyncFieldDisplayName.description = If the group display_name column should be synced to Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperGroupSyncFieldEnabledDisabled.label = Sync enabled and disabled times
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperGroupSyncFieldEnabledDisabled.description = If the group disabled_timestamp (bigint), enabled_timestamp (bigint) should be synced. Millis since 1970.
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperGroupSyncFieldIdIndexOnInsert.label = Sync ID index column
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperGroupSyncFieldIdIndexOnInsert.description = If the group id column should be synced to Grouper on inserts
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperGroupSyncFieldIdOnInsert.label = Sync ID column
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperGroupSyncFieldIdOnInsert.description = If the group id column should be synced to Grouper on inserts (UUIDs)
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperGroupSyncFieldTypeOfGroup.label = Sync group type column
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperGroupSyncFieldTypeOfGroup.description = If the group type_of_group column should be synced to Grouper
config.GenericConfiguration.subSection.sqlSyncToGrouperCompositeSync.title = Composite settings
config.GenericConfiguration.subSection.sqlSyncToGrouperCompositeSync.description = Configure how composites are pulled into Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperCompositeSync.label = Sync composites
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperCompositeSync.description = If you want to sync composites to Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperCompositeSql.label = Composite SQL
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperCompositeSql.description = List the composite SQL query. Must have an owner_name, left_factor_name, right_factor_name, and type column. Optionally can have an id column
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperCompositeInsert.label = Insert composites
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperCompositeInsert.description = If composites in the SQL which are not in Grouper should be created in Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperCompositeUpdate.label = Update composites
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperCompositeUpdate.description = If composites in SQL with the same name as Grouper but different column data should update the composites in Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperCompositeDeleteExtra.label = Delete composites
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperCompositeDeleteExtra.description = If composites should be deleted if they exist in Grouper in the syncable folders but do not exist in the SQL being synced
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperCompositeSyncFieldIdOnInsert.label = Sync ID column
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperCompositeSyncFieldIdOnInsert.description = If the composite id column should be synced to Grouper on inserts
config.GenericConfiguration.subSection.sqlSyncToGrouperMembershipSync.title = Membership settings
config.GenericConfiguration.subSection.sqlSyncToGrouperMembershipSync.description = Configure how memberships are pulled into Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperMembershipSync.label = Sync memberships
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperMembershipSync.description = If you want to sync memberships to Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperMembershipSql.label = Membership SQL
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperMembershipSql.description = List the membership SQL query. Must have columns: group_name, subject_source_id, subject_id (nongroups), subject_identifier (group name of groups). Optionally can have these columns: immediate_membership_id (uuid), immediate_mship_disabled_time (bigint millis), immediate_mship_enabled_time (bigint millis)
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperMembershipInsert.label = Insert memberships
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperMembershipInsert.description = If memberships in the SQL which are not in Grouper should be created in Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperMembershipUpdate.label = Update memberships
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperMembershipUpdate.description = If memberships in SQL with the same name as Grouper but different column data should update the memberships in Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperMembershipDeleteExtra.label = Delete memberships
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperMembershipDeleteExtra.description = If memberships should be deleted if they exist in Grouper in the syncable memberships but do not exist in the SQL being synced
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperMembershipSyncFieldsEnabledDisabled.label = Sync enabled / disabled cols
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperMembershipSyncFieldsEnabledDisabled.description = If the enabled and disabled dates should be synced to Grouper (immediate_mship_disabled_time, immediate_mship_enabled_time), bigint, millis since 1970
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperMembershipSyncFieldIdOnInsert.label = Sync ID column
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperMembershipSyncFieldIdOnInsert.description = If the membership id column should be synced to Grouper on inserts (immediate_membership_id column)
config.GenericConfiguration.subSection.sqlSyncToGrouperPrivilegeGroupSync.title = Group privilege settings
config.GenericConfiguration.subSection.sqlSyncToGrouperPrivilegeGroupSync.description = Configure how group privileges are pulled into Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperPrivilegeGroupSync.label = Sync group privileges
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperPrivilegeGroupSync.description = If you want to sync group privileges to Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperPrivilegeGroupSql.label = Group privilege SQL
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperPrivilegeGroupSql.description = List the group privilege SQL query. Must have columns: group_name, subject_source_id, subject_id (nongroups), subject_identifier (group name of groups), field_name (admins, viewers, updaters, readers, optins, optouts, groupAttrRead, groupAttrUpdate). Optionally can have this column: immediate_membership_id (uuid)
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperPrivilegeGroupInsert.label = Insert group privileges
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperPrivilegeGroupInsert.description = If group privileges in the SQL which are not in Grouper should be created in Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperPrivilegeGroupDeleteExtra.label = Delete group privileges
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperPrivilegeGroupDeleteExtra.description = If group privileges should be deleted if they exist in Grouper in the syncable group privileges but do not exist in the SQL being synced
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperPrivilegeGroupSyncFieldIdOnInsert.label = Sync ID column
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperPrivilegeGroupSyncFieldIdOnInsert.description = If the group privilege id column should be synced to Grouper on inserts (immediate_membership_id column)
config.GenericConfiguration.subSection.sqlSyncToGrouperPrivilegeStemSync.title = Folder privilege settings
config.GenericConfiguration.subSection.sqlSyncToGrouperPrivilegeStemSync.description = Configure how folder privileges are pulled into Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperPrivilegeStemSync.label = Sync folder privileges
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperPrivilegeStemSync.description = If you want to sync folder privileges to Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperPrivilegeStemSql.label = Folder privilege SQL
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperPrivilegeStemSql.description = List the folder privilege SQL query. Must have columns: stem_name, subject_source_id, subject_id (nongroups), subject_identifier (group name of groups), field_name (stemAdmins, creators, stemAttrRead, stemAttrUpdate). Optionally can have this column: immediate_membership_id (uuid)
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperPrivilegeStemInsert.label = Insert folder privileges
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperPrivilegeStemInsert.description = If folder privileges in the SQL which are not in Grouper should be created in Grouper
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperPrivilegeStemDeleteExtra.label = Delete folder privileges
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperPrivilegeStemDeleteExtra.description = If folder privileges should be deleted if they exist in Grouper in the syncable folder privileges but do not exist in the SQL being synced
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperPrivilegeStemSyncFieldIdOnInsert.label = Sync ID column
config.GrouperDaemonOtherJobSyncToGrouperFromSqlConfiguration.attribute.sqlSyncToGrouperPrivilegeStemSyncFieldIdOnInsert.description = If the folder privilege id column should be synced to Grouper on inserts (immediate_membership_id column)
config.GrouperDaemonOtherJobLdapToSqlConfiguration.title = LDAP to SQL sync
config.GrouperDaemonOtherJobLdapToSqlConfiguration.description = Sync an LDAP filter into a SQL table
config.GenericConfiguration.subSection.ldapToSqlLdap.title = LDAP settings
config.GenericConfiguration.subSection.ldapToSqlLdap.description = Configuration dealing with LDAP to pull from
config.GenericConfiguration.subSection.ldapToSqlDatabase.title = Database settings
config.GenericConfiguration.subSection.ldapToSqlDatabase.description = Configuration dealing with database to sync to
config.GenericConfiguration.subSection.ldapToSqlAttribute.i.title = Column __i+1__
config.GenericConfiguration.subSection.ldapToSqlAttribute.i.description = Configuration for the database column
grouperDaemonOtherJobLdapToSqlConfigurationNoUniques = You need to designate the unique key for the database row (e.g. a row or a composite key of multiple rows) by marking database column(s) as unique
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlDbConnection.label = DB external system
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlTableName.label = DB table name
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlTableName.description = Table name where ldap data should sync to, note you need to prefix the schema if not in the connecting schema
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlLdapConnection.label = LDAP external system
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlLdapConnection.description = LDAP external system configured in the external systems screen
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlBaseDn.label = LDAP base DN
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlBaseDn.description = Base DN, e.g. ou=Groups,dc=example,dc=edu
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlFilter.label = LDAP filter
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlFilter.description = LDAP filter, e.g. (&(objectClass=groupOfNames)(cn=course_*))
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlSearchScope.label = LDAP search scope
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlHasMultiValuedTable.label = Has multi-valued attribute table
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlHasMultiValuedTable.description = If there is another table to hold multi-valued attribute values
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlMultiValuedTableName.label = Multi-valued attribute table name
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlMultiValuedTableName.description = Table name of table to hold multi-valued attribute values. The table must have three columns: ldap_id, attribute_name, attribute_value
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlIdColumn.label = Main table ID column (for multi-valued table)
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlIdColumn.description = Which column in the main table uniquely identifies each result from the LDAP filter. You could use DN or another unique identifier. This will be stored in the ldap_id of the multi-valued attribute table
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlMultiValuedAttributes.label = Multi-valued attribute names
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlMultiValuedAttributes.description = Which LDAP attributes should be stored in the multi-valued attribute table
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlExtraAttributes.label = Extra LDAP attributes
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlExtraAttributes.description = Comma-separated extra attributes if one column has multiple attributes concatenated used in translations. Do not include any multi-valued attributes to be mapped to the secondary attribute value table (if applicable).
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlNumberOfAttributes.label = Number of DB columns
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlAttribute.i.sqlColumn.label = Column name ${grouperRequestContainer.adminContainer.guiGrouperDaemonConfiguration.index+1}
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlAttribute.i.ldapTranslationType.label = LDAP translation type ${grouperRequestContainer.adminContainer.guiGrouperDaemonConfiguration.index+1}
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlAttribute.i.ldapTranslationType.description = If this SQL value direct from LDAP or is it translated
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlAttribute.i.ldapName.label = LDAP attribute name ${grouperRequestContainer.adminContainer.guiGrouperDaemonConfiguration.index+1}
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlAttribute.i.ldapName.description = Name of LDAP attribute or use dn for the distinguishedName. If the attribute is multi-valued, then there should only be two columns, a single-valued attribute and a multi-valued attribute. Mutually exclusive with 'Translation'.
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlAttribute.i.translation.label = Translation ${grouperRequestContainer.adminContainer.guiGrouperDaemonConfiguration.index+1}
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlAttribute.i.translation.description = Enter a translation if there is no ldap attribute or if it needs to be adjusted. ldapAttribute__<attributename> (attribute name is lower case). All attributes and extraAttributes can be used. loaderLdapElUtils can be used, and ldapLookup. e.g. ${ldapAttribute__lastname + ', ' + ldapAttribute__firstname}. Mutually exclusive with 'LDAP attribute name'.
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlAttribute.i.uniqueKey.label = Unique key ${grouperRequestContainer.adminContainer.guiGrouperDaemonConfiguration.index+1}
config.GrouperDaemonOtherJobLdapToSqlConfiguration.attribute.ldapSqlAttribute.i.uniqueKey.description = If this is the unique column in row or one column in the composite unique key for the row
config.GrouperDaemonOtherJobNotificationConfiguration.attribute.emailType.label = Email type
config.GrouperDaemonOtherJobNotificationConfiguration.attribute.populationType.label = Population type
config.GrouperDaemonOtherJobNotificationConfiguration.attribute.emailListGroupName.label = Name of group
config.GrouperDaemonOtherJobNotificationConfiguration.attribute.emailListDbConnection.label = DB connection ID
config.GrouperDaemonOtherJobNotificationConfiguration.attribute.emailListQuery.label = SQL query for notification
config.GrouperDaemonOtherJobNotificationConfiguration.attribute.emailSummaryToGroupName.label = Name of group to email summary
config.GrouperDaemonOtherJobNotificationConfiguration.attribute.emailSummaryOnlyIfRecordsExist.label = Email summary only if records/members exist
config.GrouperDaemonOtherJobNotificationConfiguration.attribute.subjectSourceId.label = Subject source ID
config.GrouperDaemonOtherJobNotificationConfiguration.attribute.emailSubjectTemplate.label = Template of email subject
config.GrouperDaemonOtherJobNotificationConfiguration.attribute.emailBodyTemplate.label = Template of email body
config.GrouperDaemonOtherJobNotificationConfiguration.attribute.lastSentGroupName.label = Group name that holds members who received emails
config.GrouperDaemonOtherJobNotificationConfiguration.attribute.lastSentAttributeDefName.label = Name of attribute def name of last received date
config.GrouperDaemonOtherJobNotificationConfiguration.attribute.eligibilityGroupName.label = Group name of eligible members
config.GrouperDaemonOtherJobNotificationConfiguration.attribute.bccsCommaSeparated.label = BCC to this comma separated list
config.GrouperDaemonOtherJobNotificationConfiguration.attribute.sendToBccOnly.label = Testing mode, only send to BCC
config.GrouperDaemonOtherJobLoaderIncrementalConfiguration.attribute.databaseName.label = Database name
config.GrouperDaemonOtherJobLoaderIncrementalConfiguration.attribute.tableName.label = Table name
config.GrouperDaemonOtherJobLoaderIncrementalConfiguration.attribute.fullSyncThreshold.label = Full sync threshold
config.GrouperDaemonOtherJobLoaderIncrementalConfiguration.attribute.caseInsensitiveSubjectLookupsInDataSource.label = Case insensitive subject lookups
config.GrouperDaemonOtherJobTableSyncConfiguration.attribute.grouperClientTableSyncConfigKey.label = Sync config key
config.GrouperDaemonOtherJobTableSyncConfiguration.attribute.syncType.label = Sync type
config.GrouperDaemonOtherJobInstrumentationConfiguration.attribute.collectorUrl.label = Collector url
config.GrouperDaemonOtherJobSchedulerCheckConfiguration.attribute.maxMinutesSinceSuccess.label = Maximum minutes since success
config.GrouperDaemonOtherJobSchedulerCheckConfiguration.attribute.minMinutesSinceStarted.label = Minimum minutes since started
config.GrouperDaemonRulesConfiguration.attribute.quartz.cron.label = Quartz cron
config.GrouperDaemonBuiltInMessagingConfiguration.title = Built in messaging
config.GrouperDaemonChangeLogConsumerConfiguration.title = Change log consumer
config.GrouperDaemonChangeLogEsbConfiguration.title = Change log esb
config.GrouperDaemonChangeLogEsbToMessagingConfiguration.title = Change log esb to messaging
config.GrouperDaemonChangeLogScriptConfiguration.title = Change log GSH script
config.GrouperDaemonChangeLogRecentMembershipsConfiguration.title = Change log recent membership
config.GrouperDaemonChangeLogRulesConfiguration.title = Change log rules
config.GrouperDaemonChangeLogSyncGroupsConfiguration.title = Change log sync groups
config.GrouperDaemonChangeLogTempToChangeLogConfiguration.title = Change log temp to change log
config.GrouperDaemonChangeLogToMessagingConfiguration.title = Change log to messaging
config.GrouperDaemonCleanLogsConfiguration.title = Clean logs
config.GrouperDaemonEnabledDisabledConfiguration.title = Enabled disabled
config.GrouperDaemonMessagingListenerConfiguration.title = Messaging listener
config.GrouperDaemonMessagingListenerToChangeLogConfiguration.title = Messaging listener to change log
config.GrouperDaemonOtherJobNotificationConfiguration.title = Notification job
config.GrouperDaemonOtherJobAttestationConfiguration.title = Attestation job
config.GrouperDaemonOtherJobConfiguration.title = Generic other daemon
config.GrouperDaemonOtherJobCsvReportConfiguration.title = Csv report
config.GrouperDaemonOtherJobSftpToSqlConfiguration.title = SFTP delimited file to SQL
config.GrouperDaemonOtherJobSubjectChangeConfiguration.title = Subject change daemon
config.GrouperDaemonOtherJobDeprovisioningConfiguration.title = Deprovisioning
config.GrouperDaemonOtherJobFindBadMembershipsConfiguration.title = Find bad memberships
config.GrouperDaemonOtherJobInstrumentationConfiguration.title = Tier instrumentation
config.GrouperDaemonOtherJobLoaderIncrementalConfiguration.title = Incremental loader
config.GrouperDaemonOtherJobObjectTypeConfiguration.title = Object types
config.GrouperDaemonOtherJobProvisioningConfiguration.title = Provisioning
config.GrouperDaemonOtherJobReportClearConfiguration.title = Report clear
config.GrouperDaemonOtherJobSchedulerCheckConfiguration.title = Schedular check
config.GrouperDaemonOtherJobTableSyncConfiguration.title = Sql sync
config.GrouperDaemonOtherJobUpgradeTasksConfiguration.title = Upgrade tasks
config.GrouperDaemonOtherJobUsduConfiguration.title = Unresolvable subjects deletion
config.GrouperDaemonOtherJobWorkflowConfiguration.title = Workflow
config.GrouperDaemonOtherJobWorkflowReminderConfiguration.title = Workflow reminder
config.GrouperDaemonOtherJobWsMessagingBridgeConfiguration.title = Ws messaging bridge
config.GrouperDaemonRulesConfiguration = Rules daemon
config.GrouperDaemonOtherJobProvisioningFullSyncConfiguration.title = Provisioning full sync
config.GrouperDaemonProvisioningIncrementalSyncConfiguration.title = Provisioning incremental sync
config.GrouperDaemonProvisioningIncrementalSyncConfiguration.attribute.publisher.class.label = Publisher class
config.GrouperDaemonProvisioningIncrementalSyncConfiguration.attribute.publisher.debug.label = Changelog debug
config.BoxProvisionerConfiguration.title = Box provisioner
config.BoxProvisionerConfiguration.attribute.boxExternalSystemConfigId.label = External system config id
config.BoxProvisionerConfiguration.attribute.invitabilityLevel.label = Invitability level
config.BoxProvisionerConfiguration.attribute.memberViewabilityLevel.label = Member viewability level
config.BoxProvisionerConfiguration.description = Wiki documentationGroup fields and attributes are below.
Advice
- Provisioning type is membershipObjects
- Use group and entity link (since there are uuids in the target for groups and entities that need to be looked up)
config.BoxProvisionerConfiguration.documentation = Group attributes. API. Grouper name Type Required? Box API Description id String required id This is the id read from Box. Select only. This should not be translated from Grouper, and the target attribute should be cached. name String required name This is the name of the group on the Box side. description String optional description This is the description in Box canInviteAsCollaborator Boolean optional permissions.can_invite_as_collaborator Select only externalSyncIdentifier String optional external_sync_identifier An arbitrary identifier that can be used by external group sync tools to link this Box Group to an external group. Example values of this field could be an Active Directory Object ID or a Google Group ID. We recommend you use of this field in order to avoid issues when group names are updated in either Box or external systems. groupType String optional group_type The type of the group invitabilityLevel String optional invitability_level Specifies who can invite the group to collaborate on folders. memberViewabilityLevel String optional member_viewability_level Specifies who can see the members of the group. provenance String optional provenance Keeps track of which external source this group is coming, for example Active Directory, or Okta. type String optional type value is always "group"
Entity attributes. API. Grouper name Type Required? Box API Description id String required id This is the id read from Box. Select only. This should not be translated from Grouper, and the target attribute should be cached. name String required name This is the name in Box login String mostly login The email address the user uses to log in. Required, unless is_platform_access_only is set to true. email String optional email Email address for user canSeeManagedUsers Boolean optional can_see_managed_users Whether the user can see other enterprise users in their contact list isExemptFromDeviceLimits Boolean optional is_exempt_from_device_limits Whether to exempt the user from enterprise device limits isExemptFromLoginVerification Boolean optional is_exempt_from_login_verification Whether the user must use two-factor authentication isExternalCollabRestricted Boolean optional is_external_collab_restricited Whether the user is allowed to collaborate with users outside their enterprise isPlatformAccessOnly Boolean optional is_platform_access_only Specifies that the user is an app user isSyncEnabled Boolean optional is_sync_enabled Whether the user can use Box Sync maxUploadSize Integer optional max_upload_size The maximum individual file size in bytes the user can have role String optional role The user\u2019s enterprise role. Value is one of coadmin, user spaceAmount Integer optional space_amount The user\u2019s total available space in bytes. Set this to -1 to indicate unlimited storage. spaceUsed Integer optional space_used The amount of space in use by the user. status String optional status The user's account status. Value is one of active,inactive,cannot_delete_edit,cannot_delete_edit_upload type String optional type value is always "user"
config.RemedyProvisionerConfiguration.title = Remedy provisioner
config.RemedyProvisionerConfiguration.attribute.remedyExternalSystemConfigId.label = External system config id
config.DigitalMarketplaceProvisionerConfiguration.attribute.digitalMarketplaceExternalSystemConfigId.label = External system config id
grouperConfigurationValidationBoxFilePathOrPrivateKeyRequired = Error: Supply private key or private file
grouperConfigurationValidationGithubEndpointMustContainOrganization = Error: Github url has to include the organization. e.g. https://api.github.com/scim/v2/organizations/ORG
config.DuoProvisionerConfiguration.title = Duo users
config.DuoProvisionerConfiguration.description = Wiki documentationGroup fields and attributes are below.
Advice
- Provisioning type is membershipObjects
- Use group and entity link (since there are uuids in the target for groups and entities that need to be looked up)
config.DuoProvisionerConfiguration.documentation = Group attributes. API. Grouper name Type Required? Duo API Duo UI Description id String required group_id (in URL) This is the UUID read from Duo. Select only. name String required name Group name This is the name of the group on the Duo side. description String optional desc Description This is the description in Duo
Entity attributes. API. Grouper name Type Required? Duo API Duo UI Description id String required user_id (in URL) This is the UUID read from Duo. Select only. loginid String required username Username This is the username in Duo name String optional realname Full name First and last name email String optional email Email Email address for user firstname String optional firstname NA First name of user lastname String optional lastname NA Last name of user
config.DuoProvisionerConfiguration.attribute.duoExternalSystemConfigId.label = Duo external system
config.DuoProvisionerConfiguration.attribute.duoExternalSystemConfigId.description = Duo external system
config.DuoProvisionerConfiguration.attribute.targetEntityAttribute.i.name.label = __i+1__ - name
config.DuoProvisionerConfiguration.attribute.targetEntityAttribute.i.name.description = $$config.GenericConfiguration.attribute.targetEntityAttribute.i.name.description$$
id maps to the duo user_id
name maps to the duo realname
loginId maps to the duo username
config.DuoRoleProvisionerConfiguration.title = Duo administrators
startWithBlankConfiguration = Blank configuration
config.SqlProvisioningGroupTableStartWith.startWithDescription = This is the description for group table start with
config.SqlProvisioningGroupTableStartWith.startWithDocumentation = This is the documentation for group table start with
config.SqlProvisionerConfiguration.description = The Grouper SQL provisioner will provision group / entity / membership information to a SQL database.
config.SqlProvisionerConfiguration.documentation = The database can be of any type and must be defined as an external system. The table structure can consist of: a group table, a group attribute table, an entity table, and entity attribute table, and a membership table.
config.LdapGrouperExternalSystem.description = The Grouper LDAP provisioner will provision group / entity / membership information to an LDAP or AD.
config.LdapGrouperExternalSystem.documentation = The LDAP or AD must be defined as an external system. The memberships can be represented as attribute values of a group (groupAttributes), or attribute values of an LDAP user (entityAttributes).
config.LdapProvisionerConfiguration.description = The Grouper LDAP provisioner will provision group / entity / membership information to an LDAP or AD.
config.LdapProvisionerConfiguration.documentation = The LDAP or AD must be defined as an external system. The memberships can be represented as attribute values of a group (groupAttributes), or attribute values of an LDAP user (entityAttributes).
config.AzureProvisionerConfiguration.title = Azure
config.AzureProvisionerConfiguration.description = This is the description for Azure provisioner
config.AzureProvisionerConfiguration.documentation = This is the documentation for Azure provisioner
config.AzureProvisionerConfiguration.attribute.azureExternalSystemConfigId.label = External system config id
config.AzureProvisionerConfiguration.attribute.allowOnlyMembersToPost.label = Show metadata for 'allow only members to post'
config.AzureProvisionerConfiguration.attribute.allowOnlyMembersToPost.description = When marking a group as provisionable, allow users to choose if only members can post
grouperProvisioningMetadataAllowOnlyMembersToPostLabel = Allow only members to post
grouperProvisioningMetadataAllowOnlyMembersToPostDescription = Change the default settings on a group that allows only members to post
config.AzureProvisionerConfiguration.attribute.assignableToRole.label = Show metadata for 'Assignable to role'
config.AzureProvisionerConfiguration.attribute.assignableToRole.description = When marking a group as provisionable, allow users to choose if the group is assignable to role
grouperProvisioningMetadataAssignableToRoleLabel = Assignable to role
grouperProvisioningMetadataAssignableToRoleDescription = Change the default settings on a group that allows assigning the group to a role
config.AzureProvisionerConfiguration.attribute.azureGroupType.label = Show metadata for 'azure group type'
config.AzureProvisionerConfiguration.attribute.azureGroupType.description = When marking a group as provisionable, allow users to choose azure group type
grouperProvisioningMetadataAzureGroupTypeDescription = Azure group type
grouperProvisioningMetadataAzureGroupTypeLabel = Azure group type
config.AzureProvisionerConfiguration.attribute.groupOwners.label = Show metadata for 'azure group owners'
config.AzureProvisionerConfiguration.attribute.groupOwners.description = When marking a group as provisionable, allow users to choose azure group owners
grouperProvisioningMetadataAzureCreateOwnersDescription = Azure group owners
grouperProvisioningMetadataAzureCreateOwnersLabel = Azure group owners
grouperProvisioningMetadataAssignableByRoleDescription = Assignable by role
grouperProvisioningMetadataAssignableByRoleLabel = Assignable by role
config.azureDistributionGroup = Distribution group (mail enabled)
config.azureSecurity = Security group
config.azureSecurityMailEnabled = Security distribution group (mail enabled)
config.azureUnified = Unified group (365, mail enabled)
config.azureUnifiedSecurityEnabled = Unified security group (365, mail enabled)
config.AzureProvisionerConfiguration.attribute.hideGroupInOutlook.label = Show metadata for 'hide group in outlook'
config.AzureProvisionerConfiguration.attribute.hideGroupInOutlook.description = When marking a group as provisionable, allow users to choose if group can be hidden in outlook
grouperProvisioningMetadataHideGroupInOutlookLabel = Hide group in outlook
grouperProvisioningMetadataHideGroupInOutlookDescription = Change the default settings on a group that allows to hide group in outlook
groupProvisioningErrorEvaluatingExpression = Error evaluating expression!
config.AzureProvisionerConfiguration.attribute.subscribeNewGroupMembers.label = Show metadata for 'subscribe new group members'
config.AzureProvisionerConfiguration.attribute.subscribeNewGroupMembers.description = When marking a group as provisionable, allow users to choose if new group members can subscribe
grouperProvisioningMetadataSubscribeNewGroupMembersLabel = Subscribe new group members
grouperProvisioningMetadataSubscribeNewGroupMembersDescription = Change the default settings on a group that allows new group members to subscribe
config.AzureProvisionerConfiguration.attribute.welcomeEmailDisabled.label = Show metadata for 'welcome email disabled'
config.AzureProvisionerConfiguration.attribute.welcomeEmailDisabled.description = When marking a group as provisionable, allow users to choose if welcome email can be disabled
grouperProvisioningMetadataWelcomeEmailDisabledLabel = Welcome email disabled
grouperProvisioningMetadataWelcomeEmailDisabledDescription = Change the default settings on a group that disables welcome email
config.AzureProvisionerConfiguration.attribute.resourceProvisioningOptionsTeam.label = Show metadata for 'team'
config.AzureProvisionerConfiguration.attribute.resourceProvisioningOptionsTeam.description = When marking a group as provisionable, allow users to choose if resource provisioning options can be set as Team
grouperProvisioningMetadataResourceProvisioningOptionsTeamLabel = Team
grouperProvisioningMetadataResourceProvisioningOptionsTeamDescription = Change the default settings on a group that sets resource provisioning options to Team
config.MidPointProvisionerConfiguration.title = Midpoint
config.SqlProvisionerConfiguration.attribute.sqlRemoveDeletedDataAfterHours.label = Remove deleted data after X hours
config.SqlProvisionerConfiguration.attribute.sqlRemoveDeletedDataAfterHours.description = If you are marking data as deleted, with a last update timestamp, then data will be removed in full sync if it is older than this many hours. -1 means do not delete
config.MidPointProvisionerConfiguration.attribute.sqlRemoveDeletedDataAfterHours.label = $$config.SqlProvisionerConfiguration.attribute.sqlRemoveDeletedDataAfterHours.label$$
config.MidPointProvisionerConfiguration.attribute.sqlRemoveDeletedDataAfterHours.description = $$config.SqlProvisionerConfiguration.attribute.sqlRemoveDeletedDataAfterHours.description$$
config.MidPointProvisionerConfiguration.attribute.dbExternalSystemConfigId.label = Db external system config id
config.MidPointProvisionerConfiguration.attribute.dbExternalSystemConfigId.description = Sql database external system config id. If you do not see your database configuration add it in Miscellaneous -> External systems.
config.MidPointProvisionerConfiguration.attribute.midPointTablesPrefix.label = Midpoint tables prefix
config.MidPointProvisionerConfiguration.attribute.midPointTablesPrefix.description = All midPoint tables will start with this prefix. If you leave this blank, the default is "gr" which means the groups table name will be gr_mp_groups. If you set to "ab", the groups table will be "ab_mp_groups"
config.MidPointProvisionerConfiguration.attribute.midPointHasTargetAttribute.label = Has target name attribute?
config.MidPointProvisionerConfiguration.attribute.midPointHasTargetAttribute.description = Do you want target attribute to be stored in the group attributes table?
config.MidPointProvisionerConfiguration.attribute.midPointListOfTargets.label = List of targets
config.MidPointProvisionerConfiguration.attribute.midPointListOfTargets.description = Comma separated list of targets for provisioning metadata when you mark a group provisionable
grouperProvisioningMetadataMidpointTargetLabel = Select targets
grouperProvisioningMetadataMidpointTargetDescription = Select targets
googleConfigurationMustHaveEmailAsCache = If you are provisioning managers or owners for groups, you must cache the entity email attribute.
googleConfigurationMustHaveIdAsCache = If you are provisioning managers or owners for groups, you must cache the entity id attribute.
config.GoogleProvisionerConfiguration.title = Google
config.GoogleProvisionerConfiguration.description = Wiki documentationGrouper uses directory APIs to manage groups. Group fields and attributes are below. Google documentation. API.
Advice
- Provisioning type is membershipObjects
- Use group and entity link (since there are uuids in the target for groups and entities that need to be looked up)
config.GoogleProvisionerConfiguration.documentation = Group attributes. Documentation. API. Grouper name Type Required? Description id String required UUID read from GCP. Select only. name String required for create Name of the group in GCP. Note: required for group create. If not creating groups you need name or email. email String required for create Unique email address of the group. Note: required for group create. If not creating groups you need name or email. description String optional Description of the group whoCanAdd String optional Valid values are listed at https://developers.google.com/admin-sdk/groups-settings/v1/reference/groups#resource whoCanJoin String optional Valid values are listed at https://developers.google.com/admin-sdk/groups-settings/v1/reference/groups#resource whoCanViewMembership String optional Valid values are listed at https://developers.google.com/admin-sdk/groups-settings/v1/reference/groups#resource whoCanViewGroup String optional Valid values are listed at https://developers.google.com/admin-sdk/groups-settings/v1/reference/groups#resource whoCanInvite String optional Valid values are listed at https://developers.google.com/admin-sdk/groups-settings/v1/reference/groups#resource allowExternalMembers Boolean optional Valid values are listed at https://developers.google.com/admin-sdk/groups-settings/v1/reference/groups#resource whoCanPostMessage String optional Valid values are listed at https://developers.google.com/admin-sdk/groups-settings/v1/reference/groups#resource allowWebPosting Boolean optional Valid values are listed at https://developers.google.com/admin-sdk/groups-settings/v1/reference/groups#resource
Entity attributes. Documentation. API. Grouper name Type Required? Description id String required UUID read from GCP. Select only. email String required email address of the user. In GCP, it's called primaryEmail. familyName String required for create Family name (Last name). Note: required for entity create. If not creating entities you need the email and id. givenName String required for create Given name (First name). Note: required for entity create. If not creating entities you need the email and id.
config.TeamDynamixProvisionerConfiguration.title = TeamDynamix provisioner
config.TeamDynamixProvisionerConfiguration.description = Wiki documentationGroup fields and attributes are below. API.
Advice
- Provisioning type is membershipObjects
- Use group and entity link (since there are uuids in the target for groups and entities that need to be looked up)
config.TeamDynamixProvisionerConfiguration.documentation = Group attributes. API. Grouper name Type Required? Description id String required This is the id read from TeamDynamix. Select only. This should not be translated from Grouper, and the target attribute should be cached. name String required This is the name of the group on the TeamDynamix side. description String optional This is the description in TeamDynamix.
Entity attributes. API. Grouper name Type Required? Description id String required This is the id read from TeamDynamix. Select only. This should not be translated from Grouper, and the target attribute should be cached. firstName String required This is the first name of the user in TeamDynamix. lastName String required This is the last name of the user in TeamDynamix. externalId String required External id of the user primaryEmail String required The primary email of the user in TeamDynamix company String required The company of the user securityRoleId String required The UID of the global security role associated with the user. userName String required The username of the user, for use when using TeamDynamix authentication
config.GoogleProvisionerConfiguration.attribute.googleExternalSystemConfigId.label = External system config id
config.GoogleProvisionerConfiguration.attribute.whoCanAdd.label = Show metadata for 'who can add'
config.GoogleProvisionerConfiguration.attribute.whoCanAdd.description = When marking a group as provisionable, allow users to choose who can add
config.GoogleProvisionerConfiguration.attribute.whoCanJoin.label = Show metadata for 'who can join'
config.GoogleProvisionerConfiguration.attribute.whoCanJoin.description = When marking a group as provisionable, allow users to choose who can join
config.GoogleProvisionerConfiguration.attribute.whoCanViewMembership.label = Show metadata for 'who can view membership'
config.GoogleProvisionerConfiguration.attribute.whoCanViewMembership.description = When marking a group as provisionable, allow users to choose who can view membership
config.GoogleProvisionerConfiguration.attribute.whoCanViewGroup.label = Show metadata for 'who can view group'
config.GoogleProvisionerConfiguration.attribute.whoCanViewGroup.description = When marking a group as provisionable, allow users to choose who can view group
config.GoogleProvisionerConfiguration.attribute.whoCanInvite.label = Show metadata for 'who can invite'
config.GoogleProvisionerConfiguration.attribute.whoCanInvite.description = When marking a group as provisionable, allow users to choose who can invite
config.GoogleProvisionerConfiguration.attribute.allowExternalMembers.label = Show metadata for 'allow external members'
config.GoogleProvisionerConfiguration.attribute.allowExternalMembers.description = When marking a group as provisionable, allow users to choose if external members are allowed
config.GoogleProvisionerConfiguration.attribute.whoCanPostMessage.label = Show metadata for 'who can post message'
config.GoogleProvisionerConfiguration.attribute.whoCanPostMessage.description = When marking a group as provisionable, allow users to choose who can post message
config.GoogleProvisionerConfiguration.attribute.allowWebPosting.label = Show metadata for 'allow web posting'
config.GoogleProvisionerConfiguration.attribute.allowWebPosting.description = When marking a group as provisionable, allow users to choose if web posting is allowed
config.GoogleProvisionerConfiguration.attribute.defaultMessageDenyNotificationText.label = Default message deny notification text
config.GoogleProvisionerConfiguration.attribute.defaultMessageDenyNotificationText.description = When a message is rejected, this is text for the rejection notification sent to the message's author. By default, this property is empty and has no value in the API's response body. The maximum notification text size is 10,000 characters.
config.GoogleProvisionerConfiguration.attribute.handleDeletedGroup.label = Handle deleted group
config.GoogleProvisionerConfiguration.attribute.handleDeletedGroup.description = archive = do not delete from google. delete = delete it from google.
config.GoogleProvisionerConfiguration.attribute.messageModerationLevel.label = Message moderation level
config.GoogleProvisionerConfiguration.attribute.messageModerationLevel.description = https://developers.google.com/admin-sdk/groups-settings/v1/reference/groups#messageModerationLevel
config.GoogleProvisionerConfiguration.attribute.replyTo.label = Reply to
config.GoogleProvisionerConfiguration.attribute.replyTo.description = https://developers.google.com/admin-sdk/groups-settings/v1/reference/groups#replyTo
config.GoogleProvisionerConfiguration.attribute.sendMessageDenyNotification.label = Send message deny notfication
config.GoogleProvisionerConfiguration.attribute.sendMessageDenyNotification.description = https://developers.google.com/admin-sdk/groups-settings/v1/reference/groups#sendMessageDenyNotification
config.GoogleProvisionerConfiguration.attribute.spamModerationLevel.label = Spam moderation level
config.GoogleProvisionerConfiguration.attribute.spamModerationLevel.description = https://developers.google.com/admin-sdk/groups-settings/v1/reference/groups#spamModerationLevel
grouperProvisioningMetadataWhoCanAddLabel = Who can add
grouperProvisioningMetadataWhoCanAddDescription = Change the default settings on a group to modify who can add
grouperProvisioningMetadataWhoCanJoinLabel = Who can join
grouperProvisioningMetadataWhoCanJoinDescription = Change the default settings on a group to modify who can join
grouperProvisioningMetadataWhoCanViewMembershipLabel = Who can view membership
grouperProvisioningMetadataWhoCanViewMembershipDescription = Change the default settings on a group to modify who can view membership
grouperProvisioningMetadataWhoCanInviteLabel = Who can invite
grouperProvisioningMetadataWhoCanInviteDescription = Change the default settings on a group to modify who can invite
grouperProvisioningMetadataWhoCanViewGroupLabel = Who can view
grouperProvisioningMetadataWhoCanViewGroupDescription = Change the default settings on a group to modify who can view group
grouperProvisioningMetadataWhoCanPostMessageLabel = Who can post
grouperProvisioningMetadataWhoCanPostMessageDescription = Change the default settings on a group to modify who can post
grouperProvisioningMetadataAllowExternalMembersLabel = Allow external members
grouperProvisioningMetadataAllowExternalMembersDescription = Change the default settings on a group that allows external members
grouperProvisioningMetadataAllowWebPostingLabel = Allow web posting
grouperProvisioningMetadataAllowWebPostingDescription = Change the default settings on a group that allows web posting
grouperProvisioningMetadataDuoRolesLabel = Duo role
grouperProvisioningMetadataDuoRolesDescription = Pick a role
config.duoRoleOwner = Owner
config.duoRoleAdministrator = Administrator
config.duoRoleApplicationManager = Application manager
config.duoRoleUserManager = User manager
config.duoRoleHelpDesk = Help desk
config.duoRoleBilling = Billing
config.duoPhishingManager = Phishing Manager
config.duoRoleReadOnly = Read only
grouperProvisioningMetadataDuoEmailLabel = Email address
grouperProvisioningMetadataDuoEmailDescription = Add an email address
config.GenericConfiguration.subSection.errorHandling.title = Error handling
config.GenericConfiguration.subSection.errorHandling.description = Configure error handling in provisioning
config.GenericConfiguration.subSection.errorHandling.documentation = When objects have errors (e.g. validation) configure how it should be handled
config.GenericConfiguration.attribute.errorHandlingShow.label = Show error handling settings
config.GenericConfiguration.attribute.errorHandlingShow.description = Show error handling settings, otherwise use the defaults
config.GenericConfiguration.attribute.errorHandlingProvisionerDaemonShouldFailOnObjectError.label = Daemon fail on object error
config.GenericConfiguration.attribute.errorHandlingProvisionerDaemonShouldFailOnObjectError.description = If the daemon should fail when there is an object error (definition of object error is configured below)
config.GenericConfiguration.attribute.errorHandlingLogErrors.label = Log object errors
config.GenericConfiguration.attribute.errorHandlingLogErrors.description = If object errors should be logged in log file
config.GenericConfiguration.attribute.errorHandlingLogCountPerType.label = Log count per type
config.GenericConfiguration.attribute.errorHandlingLogCountPerType.description = This many logs will be written per type. A type is the tuple of object type and error type. e.g. 5 logs for groups with REQ validation issues
config.GenericConfiguration.attribute.errorHandlingInvalidDataIsAnError.label = Invalid data is an error
config.GenericConfiguration.attribute.errorHandlingInvalidDataIsAnError.description = If invalid attribute data is an error
config.GenericConfiguration.attribute.errorHandlingLengthValidationIsAnError.label = Invalid length data is an error
config.GenericConfiguration.attribute.errorHandlingLengthValidationIsAnError.description = If an attribute value is too long, if that is an error
config.GenericConfiguration.attribute.errorHandlingRequiredValidationIsAnError.label = Required problems are errors
config.GenericConfiguration.attribute.errorHandlingRequiredValidationIsAnError.description = If an attribute is required and does not have data, if that is an error
config.GenericConfiguration.attribute.errorHandlingTargetObjectDoesNotExistIsAnError.label = Object not exist is error
config.GenericConfiguration.attribute.errorHandlingTargetObjectDoesNotExistIsAnError.description = If the data cannot be found in the target (and not configured to create), if that is an error (e.g. user missing)
config.GenericConfiguration.attribute.errorHandlingMatchingValidationIsAnError.label = Matching validation is error
config.GenericConfiguration.attribute.errorHandlingMatchingValidationIsAnError.description = If the grouper translated objects match to multiple target objects on the same attribute, then this problem happens
config.GenericConfiguration.subSection.entityAttributes.title = External entity attributes configuration
config.GenericConfiguration.subSection.entityAttributes.description = If you are provisioning data items about users which need to be retrieved from a SQL or LDAP call. Attributes will be in entity with name: entityAttributeResolverSql__<attributeNameOrColumnNameLowerCase>. So if the column is USER_ORG, then the entity attribute will be: entityAttributeResolverSql__user_org. Refer to this in the translation as ${grouperProvisioningEntity.retrieveAttributeValueString('entityAttributeResolverSql__user_org')}
config.GenericConfiguration.subSection.entityAttributes.documentation = When provisioning user (entity) data, the data might be built-in to Grouper (e.g. subject id, name, description, subject identifier), or need a subject link (retrieve arbitrary subject API attributes), or use this, make a SQL or LDAP call to get attributes about a user.
config.GenericConfiguration.subSection.groupAttributes.title = External group attributes configuration
config.GenericConfiguration.subSection.groupAttributes.description = If you are provisioning data items about groups which need to be retrieved from a SQL call. Attributes will be in group with name: groupAttributeResolverSql__<attributeNameLowerCase>. So if the column is POSIX_ID, then the group attribute will be: groupAttributeResolverSql__posixid. Refer to this in the translation as ${grouperProvisioningGroup.retrieveAttributeValueString('groupAttributeResolverSql__posixid')}
config.GenericConfiguration.subSection.groupAttributes.documentation = When provisioning group data, the data might be built-in to Grouper (e.g. name, description) or use this, make a SQL call to get attributes about a group. Generally this is 'false'.
config.GenericConfiguration.subSection.group.title = Group configuration
config.GenericConfiguration.subSection.group.description = Configuration dealing with groups in the target
config.GenericConfiguration.subSection.group.documentation = A group consists of attributes and a collection of entities. Grouper provisions groups in the format that the target uses to represent them.
config.GenericConfiguration.subSection.entity.title = Entity configuration
config.GenericConfiguration.subSection.entity.description = Configuration dealing with entities in the target
config.GenericConfiguration.subSection.entity.documentation = An entity is a subject or a user. Entities can be in groups as memberships. Grouper provisions entities in the format that the target uses to represent them. By default Grouper assumes another provisioning system is provisioning entities and uses them readonly, but Grouper can insert/update/delete entities if needed.
config.GenericConfiguration.subSection.membership.title = Membership configuration
config.GenericConfiguration.subSection.membership.description = Configuration dealing with memberships in the target
config.GenericConfiguration.subSection.membership.documentation = Group provisions the effective relationship of an entity in a group in the form of memberships. Grouper will provision memberships is the format that the target uses to represent memberships.
config.GenericConfiguration.subSection.assigningProvisioning.title = Assigning provisioning
config.GenericConfiguration.subSection.assigningProvisioning.description = Settings regarding how objects are marked provisionable
config.GenericConfiguration.subSection.assigningProvisioning.documentation = You can configure how users assign objects to be provisionable in grouper, who can assign, view, etc.
config.GenericConfiguration.subSection.provisioningDiagnostics.title = Provisioning diagnostics
config.GenericConfiguration.subSection.provisioningDiagnostics.description = Check to see if your provisioner is configured correctly
config.GenericConfiguration.subSection.provisioningDiagnostics.documentation = Run the diagnostics for insights into how the translations and target operations are functioning to make sure the provisioner is working how you want it to work.
config.GenericConfiguration.subSection.advanced.title = Advanced
config.GenericConfiguration.subSection.advanced.description = Less common settings
config.GenericConfiguration.subSection.advanced.documentation = Configure logging and other settings
config.GenericConfiguration.subSection.general2.title = General configuration section 2
config.GenericConfiguration.subSection.general2.description = Provisioning configuration after attributes configured for memberships / groups / entities
config.GenericConfiguration.subSection.general2.documentation = Some settings rely on configurations in the memberships / groups / entities sections so this second second section is below those
config.GenericConfiguration.subSection.group2.title = Group configuration section 2
config.GenericConfiguration.subSection.group2.description = Group configuration after attributes configured for memberships / groups / entities
config.GenericConfiguration.subSection.group2.documentation = Some settings rely on configurations in the memberships / groups / entities sections so this second second section is below those
config.GenericConfiguration.attribute.groupMatchingAttributeSameAsSearchAttribute.label = Matching attribute(s) same as search attribute(s)
config.GenericConfiguration.attribute.groupMatchingAttributeSameAsSearchAttribute.description = Generally the attribute(s) used to match target groups with grouper groups are the same as search attribute(s). If you want to match on different attribute(s) than being searched for then set to false.
config.GenericConfiguration.attribute.groupMatchingAttributeCount.label = Matching attribute count
config.GenericConfiguration.attribute.groupMatchingAttributeCount.description = Generally you will have one matching attribute though if you wanted a fallback if the primary attribute does not match you can configure multiple attributes.
config.GenericConfiguration.attribute.groupMatchingAttribute0name.label = Matching attribute 1
config.GenericConfiguration.attribute.groupMatchingAttribute0name.description = The first matching attribute used to match target groups with Grouper groups
config.GenericConfiguration.attribute.groupMatchingAttribute1name.label = Matching attribute 2
config.GenericConfiguration.attribute.groupMatchingAttribute1name.description = The second matching attribute used to match target groups with Grouper groups
config.GenericConfiguration.attribute.groupMatchingAttribute2name.label = Matching attribute 3
config.GenericConfiguration.attribute.groupMatchingAttribute2name.description = The third matching attribute used to match target groups with Grouper groups
config.GenericConfiguration.attribute.groupSearchAttributeCount.label = Search attribute count
config.GenericConfiguration.attribute.groupSearchAttributeCount.description = Generally you will have one search attribute though if you wanted a fallback if the primary attribute does not find the group in the target you can configure multiple attributes.
config.GenericConfiguration.attribute.groupSearchAttribute0name.label = Search attribute 1
config.GenericConfiguration.attribute.groupSearchAttribute0name.description = The first search attribute used to find target groups based on data in Grouper.
config.GenericConfiguration.attribute.groupSearchAttribute1name.label = Search attribute 2
config.GenericConfiguration.attribute.groupSearchAttribute1name.description = The second search attribute used to find target groups based on data in Grouper. If the group is not found with the first attribute, this one will be used
config.GenericConfiguration.attribute.groupSearchAttribute2name.label = Search attribute 3
config.GenericConfiguration.attribute.groupSearchAttribute2name.description = The third search attribute used to find target groups based on data in Grouper. If the group is not found with the first or second attribute, this one will be used
config.GenericConfiguration.attribute.group2advanced.label = Advanced options
config.GenericConfiguration.attribute.group2advanced.description = Advanced options for group section 2
config.GenericConfiguration.attribute.entity2advanced.label = Advanced options
config.GenericConfiguration.attribute.entity2advanced.description = Advanced options for entity section 2
config.GenericConfiguration.subSection.membership2.title = Membership configuration section 2
config.GenericConfiguration.subSection.membership2.description = Membership configuration after attributes configured for memberships / groups / entities
config.GenericConfiguration.subSection.membership2.documentation = Some settings rely on configurations in the memberships / groups / entities sections so this second second section is below those
config.GenericConfiguration.subSection.entity2.title = Entity configuration section 2
config.GenericConfiguration.subSection.entity2.description = Entity configuration after attributes configured for memberships / groups / entities
config.GenericConfiguration.subSection.entity2.documentation = Some settings rely on configurations in the memberships / groups / entities sections so this second second section is below those
config.GenericConfiguration.attribute.entityMatchingAttributeSameAsSearchAttribute.label = Matching attribute(s) same as search attribute(s)
config.GenericConfiguration.attribute.entityMatchingAttributeSameAsSearchAttribute.description = Generally the attribute(s) used to match target entities with grouper entities are the same as search attribute(s). If you want to match on different attribute(s) than being searched for then set to false.
config.GenericConfiguration.attribute.entityMatchingAttributeCount.label = Matching attribute count
config.GenericConfiguration.attribute.entityMatchingAttributeCount.description = Generally you will have one matching attribute though if you wanted a fallback if the primary attribute does not match you can configure multiple attributes.
config.GenericConfiguration.attribute.entityMatchingAttribute0name.label = Matching attribute 1
config.GenericConfiguration.attribute.entityMatchingAttribute0name.description = The first matching attribute used to match target entities with Grouper entities
config.GenericConfiguration.attribute.entityMatchingAttribute1name.label = Matching attribute 2
config.GenericConfiguration.attribute.entityMatchingAttribute1name.description = The second matching attribute used to match target entities with Grouper entities
config.GenericConfiguration.attribute.entityMatchingAttribute2name.label = Matching attribute 3
config.GenericConfiguration.attribute.entityMatchingAttribute2name.description = The third matching attribute used to match target entities with Grouper entities
config.GenericConfiguration.attribute.entitySearchAttributeCount.label = Search attribute count
config.GenericConfiguration.attribute.entitySearchAttributeCount.description = Generally you will have one search attribute though if you wanted a fallback if the primary attribute does not find the entity in the target you can configure multiple attributes.
config.GenericConfiguration.attribute.entitySearchAttribute0name.label = Search attribute 1
config.GenericConfiguration.attribute.entitySearchAttribute0name.description = The first search attribute used to find target entities based on data in Grouper.
config.GenericConfiguration.attribute.entitySearchAttribute1name.label = Search attribute 2
config.GenericConfiguration.attribute.entitySearchAttribute1name.description = The second search attribute used to find target entities based on data in Grouper. If the entity is not found with the first attribute, this one will be used
config.GenericConfiguration.attribute.entitySearchAttribute2name.label = Search attribute 3
config.GenericConfiguration.attribute.entitySearchAttribute2name.description = The third search attribute used to find target entities based on data in Grouper. If the entity is not found with the first or second attribute, this one will be used
config.GenericConfiguration.subSection.targetGroupAttribute.i.title = Target __i+1__
config.GenericConfiguration.subSection.targetGroupAttribute.i.description = Configuration for the group attribute
config.LdapProvisionerConfiguration.subSection.targetGroupAttribute.i.description = Configuration for the group LDAP attribute. The attribute named ldap_dn represents the DN of the group. Generally you should not need to have a translation for ldap_dn, you should only need to translate the RDN attribute and Grouper will automatically construct the DN.
config.GenericConfiguration.subSection.targetEntityAttribute.i.title = Target __i+1__
config.GenericConfiguration.subSection.targetEntityAttribute.i.description = Configuration for the entity attribute
config.LdapProvisionerConfiguration.subSection.targetEntityAttribute.i.description = Configuration for the entity LDAP attribute. The attribute named ldap_dn represents the DN of the entity (LDAP user). Generally you should not need to have a translation for ldap_dn, you should only need to translate the RDN attribute and Grouper will automatically construct the DN.
config.GenericConfiguration.subSection.targetMembershipAttribute.i.title = Target __i+1__
config.GenericConfiguration.subSection.targetMembershipAttribute.i.description = Configuration for the membership attribute
config.GenericConfiguration.attribute.class.label = Class
config.GenericConfiguration.attribute.quartzCron.label = Quartz cron
config.GenericConfiguration.attribute.changeLogConsumerBatchSize.label = Change log consumer batch size
config.GenericConfiguration.attribute.quartzCron.description = Job quartz cron (not exact cron syntax) e.g. 38 17 4 * * ? means daily at 4:17:38am
config.GenericConfiguration.attribute.provisionerConfigId.label = Provisioner config id
config.GenericConfiguration.attribute.operateOnGrouperMemberships.label = Operate on memberships
config.GenericConfiguration.attribute.operateOnGrouperMemberships.description = If you are provisioning memberships. Generally this will be "true".
config.GenericConfiguration.attribute.membershipFields.label = Membership fields
config.GenericConfiguration.attribute.membershipFields.description = If provisioning normal memberships or privileges. Generally just leave this at the default (members which means memberships) unless you want the target to have information about who is allowed to perform certain operations in Grouper (e.g. READ memberships of a group)
config.GenericConfiguration.attribute.insertMemberships.label = Insert memberships
config.GenericConfiguration.attribute.insertMemberships.description = If memberships should be added to the target. Generally this will be 'true'.
config.GenericConfiguration.attribute.replaceMemberships.label = Replace memberships
config.GenericConfiguration.attribute.replaceMemberships.description = If memberships should be replaced in the target. Generally this will be 'false'. This is only applicable if your provisioner can replace memberships.
config.GenericConfiguration.attribute.customizeMembershipCrud.label = Customize membership CRUD
config.GenericConfiguration.attribute.customizeMembershipCrud.description = Customize Create/Read/Update/Delete characteristics of memberships. By default memberships will SELECT / INSERT / DELETE_IF_GROUPER_CREATED_THEN_DELETED
config.GenericConfiguration.attribute.selectMemberships.label = Select memberships
config.GenericConfiguration.attribute.selectMemberships.description = If memberships should be read from the target. Generally this will be 'true' except in cases where messages are sent to the target without knowing the state of the target.
config.GenericConfiguration.attribute.deleteMemberships.label = Delete memberships
config.GenericConfiguration.attribute.deleteMemberships.description = If you want to delete memberships in the target (default yes delete if Grouper created and then deleted the membership). Note, there are a few types of "deletes" you can choose from if you select "true". Generally you will want to select "true". Note: if you select "true" you must pick which delete option below.
config.GenericConfiguration.attribute.deleteMembershipsIfGrouperDeleted.label = Delete memberships if deleted by Grouper
config.GenericConfiguration.attribute.deleteMembershipsIfGrouperDeleted.description = This is the "medium" setting. Only delete memberships from provisionable groups in the target if the membership was just deleted in Grouper. This means that memberships that existed before the provisioner existed, or memberships that were added only in the target (not in Grouper), will not be removed.
config.GenericConfiguration.attribute.deleteMembershipsIfGrouperCreated.label = Delete memberships if created by Grouper
config.GenericConfiguration.attribute.deleteMembershipsIfGrouperCreated.description = Delete memberships if Grouper provisioned the membership at some point in the past and the membership was removed in Grouper. This is the default behavior.
config.GenericConfiguration.attribute.operateOnGrouperGroups.label = Operate on groups
config.GenericConfiguration.attribute.operateOnGrouperGroups.description = If the provisioner involves group objects. This might not be true if you are provisioning memberships or entityAttributes without a target group link.
config.GenericConfiguration.attribute.membershipAdvancedOptions.label = Advanced options
config.GenericConfiguration.attribute.membershipAdvancedOptions.description = Advanced membership options, note, there might not be any
config.GenericConfiguration.attribute.membership2AdvancedOptions.label = Advanced options
config.GenericConfiguration.attribute.membership2AdvancedOptions.description = Advanced membership2 options, note, there might not be any
config.GenericConfiguration.attribute.membershipMatchingIdExpression.label = Membership matching ID expression
config.GenericConfiguration.attribute.membershipMatchingIdExpression.description = This is an advanced option for edge cases. Put in a JEXL expression that will create a matching ID for memberships (e.g. SQL, though SQL should be able to do this automatically). e.g.
${new('edu.internet2.middleware.grouperClient.collections.MultiKey', targetMembership.retrieveAttributeValueString('group_col'), targetMembership.retrieveAttributeValueString('entity_col'))}
config.GenericConfiguration.attribute.customizeGroupCrud.label = Customize group CRUD
config.GenericConfiguration.attribute.customizeGroupCrud.description = Customize Create/Read/Update/Delete characteristics of groups. By default groups will SELECT / INSERT / UPDATE / DELETE_IF_GROUPER_CREATED_THEN_DELETED
config.GenericConfiguration.attribute.makeChangesToEntities.label = Make changes to entities
config.GenericConfiguration.attribute.makeChangesToEntities.description = If entities should be inserted, updated, or deleted from target. By default only select entities from the target.
config.GenericConfiguration.attribute.customizeEntityCrud.label = Customize entity CRUD
config.GenericConfiguration.attribute.customizeEntityCrud.description = Customize Create/Read/Update/Delete characteristics of entities. By default entities will SELECT (if not making changes), or SELECT / INSERT / UPDATE / DELETE_IF_GROUPER_CREATED_THEN_DELETED if making changes
config.GenericConfiguration.attribute.selectGroups.label = Select groups
config.GenericConfiguration.attribute.selectGroups.description = If groups should be read from the target. Generally this will be 'true' except:- Messages are sent to the target without knowing the state of the target
- Provisioning userAttributes with no group link
- Provisioning membership objects with no group link
config.GenericConfiguration.attribute.insertGroups.label = Insert groups
config.GenericConfiguration.attribute.insertGroups.description = If provisionable groups in Grouper which do not exist in the target should be created in the target. Generally this will be 'true'.
config.GenericConfiguration.attribute.deleteGroups.label = Delete groups
config.GenericConfiguration.attribute.deleteGroups.description = If you want to delete groups in the target (default yes delete if Grouper created and then deleted the membership). Note, there are a few types of "deletes" you can choose from if you select "true", you must pick which delete option below.
config.GenericConfiguration.attribute.deleteMembershipsIfNotExistInGrouper.label = Delete memberships if not exist in Grouper
config.GenericConfiguration.attribute.deleteMembershipsIfNotExistInGrouper.description = Generally this is the option you want. Delete all memberships from provisionable groups in the target that are not in Grouper. This means Grouper is authoritative over memberships.
config.GenericConfiguration.attribute.deleteValueIfManagedByGrouper.label = Delete value only if managed by Grouper
config.GenericConfiguration.attribute.deleteValueIfManagedByGrouper.description = During a full sync, Grouper will keep track of all membership values for all provisionable users/groups. If this is true, then during a full sync, if selecting all users in entity attributes or all groups in group attributes then remove Grouper managed membership values from all users/groups which are supposed to be removed (this includes users/groups which are not provisionable). i.e. if that value is in another membership then it is allowed. If not, then do not delete it.
config.GenericConfiguration.attribute.deleteMembershipsForUnprovisionableUsers.label = Delete memberships for unprovisionable users
config.GenericConfiguration.attribute.deleteMembershipsForUnprovisionableUsers.description = If you are deleting entity attribute memberships that do not exist in Grouper, and if you are selecting all entities at once during a full sync then this will remove values of the membership attribute from users who are not provisionable.
config.GenericConfiguration.attribute.deleteMembershipsOnlyInTrackedGroups.label = Delete memberships only in tracked groups
config.GenericConfiguration.attribute.deleteMembershipsOnlyInTrackedGroups.description = Generally this is the option you want. Delete all memberships from provisionable groups in the target that are being tracked in Grouper.
config.GenericConfiguration.attribute.deleteGroupsIfNotExistInGrouper.label = Delete groups if not exist in Grouper
config.GenericConfiguration.attribute.deleteGroupsIfNotExistInGrouper.description = Delete all groups in the target that are selected from the "select all groups" operation that are not in Grouper. This means Grouper is authoritative over groups.
config.GenericConfiguration.attribute.deleteGroupsIfGrouperDeleted.label = Delete groups if deleted in Grouper
config.GenericConfiguration.attribute.deleteGroupsIfGrouperDeleted.description = This is the "medium" knob. Only delete a group if the group was provisionable and was just deleted in Grouper. This means that groups that existed before the provisioner existed, or groups that were added only in the target (not in Grouper), will not be removed.
config.GenericConfiguration.attribute.deleteGroupsIfGrouperCreated.label = Delete groups if created by Grouper
config.GenericConfiguration.attribute.deleteGroupsIfGrouperCreated.description = Delete groups if Grouper provisioned the group at some point in the past and the group was removed in Grouper. This is the default behavior.
config.GenericConfiguration.attribute.deleteGroupsIfUnmarkedProvisionable.label = Delete group if unmarked provisionable
config.GenericConfiguration.attribute.deleteGroupsIfUnmarkedProvisionable.description = If you remove provisionable from a group, should the group be deleted from the target? The default is true. If the provisionable group is deleted from Grouper it will be deleted from the target.
config.GenericConfiguration.attribute.deleteMembershipsIfGroupUnmarkedProvisionable.label = Delete memberships if group unmarked provisionable
config.GenericConfiguration.attribute.deleteMembershipsIfGroupUnmarkedProvisionable.description = If you remove provisionable from a group, should the memberships of the group be deleted from the target? The default is true. If the provisionable group is deleted from Grouper the memberships will be deleted from the target.
config.GenericConfiguration.attribute.updateGroups.label = Update groups
config.GenericConfiguration.attribute.updateGroups.description = If group attributes which differ from the target should cause the target data to be updated. This does not include the membership attribute if the membership provisioning type is groupAttributes.
config.GenericConfiguration.attribute.groupRequireMembers.label = Require members
config.GenericConfiguration.attribute.groupRequireMembers.description = If the group has no members, then consider it not provisionable (e.g. it is eligible to be removed from target)
grouper.provisioning.attribute = Attribute
config.GenericConfiguration.attribute.showProvisioningDiagnostics.label = Show provisioning diagnostics
config.GenericConfiguration.attribute.showAdvanced.label = Show advanced
config.GenericConfiguration.attribute.threadPoolSize.label = Thread pool size
config.GenericConfiguration.attribute.threadPoolSize.description = Thread pool size, will use threads for as much work as possible. Set to 1 to not use threads.
config.GenericConfiguration.attribute.canFullSync.label = Can full sync
config.GenericConfiguration.attribute.selectAllGroupsDuringDiagnostics.label = Select all groups during diagnostics
config.GenericConfiguration.attribute.selectAllGroupsDuringDiagnostics.description = For large provisioners this could take some time. Will select all groups and show some info on them
config.GenericConfiguration.attribute.selectAllEntitiesDuringDiagnostics.label = Select all entities during diagnostics
config.GenericConfiguration.attribute.selectAllEntitiesDuringDiagnostics.description = For large provisioners this could take some time. Will select all entities and show some info on them
config.GenericConfiguration.attribute.selectAllMembershipsDuringDiagnostics.label = Select all memberships during diagnostics
config.GenericConfiguration.attribute.selectAllMembershipsDuringDiagnostics.description = For large provisioners this could take some time. Will select all memberships and show some info on them
config.GenericConfiguration.attribute.createGroupDuringDiagnostics.label = Create group during diagnostics
config.GenericConfiguration.attribute.createEntityDuringDiagnostics.label = Create entity during diagnostics
config.GenericConfiguration.attribute.deleteGroupDuringDiagnostics.label = Delete group during diagnostics
config.GenericConfiguration.attribute.deleteEntityDuringDiagnostics.label = Delete entity during diagnostics
config.GenericConfiguration.attribute.createMembershipDuringDiagnostics.label = Create membership during diagnostics
config.GenericConfiguration.attribute.deleteMembershipDuringDiagnostics.label = Delete membership during diagnostics
config.GenericConfiguration.attribute.testGroupName.label = Test group name
config.GenericConfiguration.attribute.testGroupName.description = Put a group full name here that is marked as provisionable, e.g. test:testGroup
config.GenericConfiguration.attribute.testSubjectIdOrIdentifier.label = Test subject id or identifier
config.GenericConfiguration.attribute.debugLog.label = Debug log
config.GenericConfiguration.attribute.logAllObjectsVerbose.label = Log all objects verbose
config.GenericConfiguration.attribute.logAllObjectsVerbose.description = Log each step in provisinion workflow (to debug issues)
config.GenericConfiguration.attribute.logAllObjectsVerboseToLogFile.label = Log all objects verbose to log file
config.GenericConfiguration.attribute.logAllObjectsVerboseToLogFile.description = If this log should be logged to log file
config.GenericConfiguration.attribute.logAllObjectsVerboseToDaemonDbLog.label = Log all objects verbose to daemon DB log
config.GenericConfiguration.attribute.logAllObjectsVerboseToDaemonDbLog.description = If this log should be logged to DB log (accessible from UI)
config.GenericConfiguration.attribute.logAllObjectsVerboseForTheseSubjectIds.label = Log all objects for these subject IDs
config.GenericConfiguration.attribute.logAllObjectsVerboseForTheseSubjectIds.description = Log information about these subject IDs (comma separated less than 10). Blank for random ten. Note, it will still log other objects up to ten, but will include these.
config.GenericConfiguration.attribute.logAllObjectsVerboseForTheseGroupNames.label = Log all objects for these group names
config.GenericConfiguration.attribute.logAllObjectsVerboseForTheseGroupNames.description = Log information about these group names (comma separated less than 10). Note this is the UI ID path. e.g. a:b:c Blank for random ten. Note, it will still log other objects up to ten, but will include these.
config.GenericConfiguration.attribute.logCommandsAlways.label = Log target commands always
config.GenericConfiguration.attribute.logCommandsAlways.description = Log the low level commands to the target for all commands (successes and failures). This should only be enabled while troubleshooting.
config.GenericConfiguration.attribute.logCommandsOnError.label = Log target commands on error
config.GenericConfiguration.attribute.logCommandsOnError.description = Log the low level commands to the target for errors. This should only be enabled while troubleshooting. This has performance implications even for non error transactions.
config.GenericConfiguration.attribute.logMaxErrorsPerType.label = Log max errors per type
config.GenericConfiguration.attribute.logMaxErrorsPerType.description = Each DAO operation has an error type, e.g. "entityUpdate". If there is an error only log it if this many errors of that type has not already been logged. Turn off this logging by setting to 0.
config.GenericConfiguration.attribute.groupAllowedToAssign.label = Group allowed to assign
config.GenericConfiguration.attribute.groupAllowedToView.label = Group allowed to view
config.GenericConfiguration.attribute.allowAssignmentsOnlyOnOneStem.label = Allow assignments only on one stem
config.GenericConfiguration.attribute.readOnly.label = Read only
config.GenericConfiguration.attribute.readOnly.description = Run this provisioner in read only mode meaning no changes will be made to the target. The "log all objects verbose" will show what the provisioner would have done.
config.GenericConfiguration.attribute.numberOfGroupAttributes.label = Number of group attributes
config.GenericConfiguration.attribute.numberOfMembershipAttributes.label = Number of membership attributes
config.GenericConfiguration.attribute.numberOfGroupAttributes.description = In the object that represents a target group, this is the number of attributes
config.GenericConfiguration.attribute.numberOfMembershipAttributes.description = In the object that represents a target membership, this is the number of attributes
config.GenericConfiguration.attribute.recalculateAllOperations.label = Recalculate all real time events
config.GenericConfiguration.attribute.onlyAddMembershipsIfUserExistsInTarget.label = Only add existing users
config.GenericConfiguration.attribute.provisioningType.label = Provisioning type
config.GenericConfiguration.attribute.groupIdOfUsersToProvision.label = Group id of entities to provision
config.GenericConfiguration.attribute.groupIdOfUsersToProvision.Description = Provide a group name of users to provision to the target. If a user is not in the group then they are not provisionable anymore.
config.GenericConfiguration.attribute.groupIdOfUsersNotToProvision.label = Group id of entities to exclude
config.GenericConfiguration.attribute.groupIdOfUsersNotToProvision.Description = Provide a group name of users to exclude from provisioning from the target. If a user is in the group then they are not provisionable anymore. The includes (above) happen first (if applicable), then the excludes are removed.
config.GenericConfiguration.attribute.subjectIdentifierForMemberSyncTable.label = Member sync subject identifier
config.GenericConfiguration.attribute.subjectIdentifierForMemberSyncTable.description = Members can have up to 3 subject identifiers configured in Grouper. Select the one to store in the member sync table for provisioning. This will override the default behavior which determines the identifier based on how the provisioner is configured.
config.GenericConfiguration.attribute.searchAttributeNameToRetrieveEntities.label = Search attribute name to retrieve entities
config.GenericConfiguration.attribute.searchAttributeNameToRetrieveEntities.description = If searching for entities by search attribute (e.g. looking up owners) this is the name of the search attribute to use for the value
config.GenericConfiguration.attribute.membershipsConvertToGroupSyncThreshold.label = Memberships convert to group sync threshold
config.GenericConfiguration.attribute.scoreConvertToFullSyncThreshold.label = Score convert to full sync threshold
config.GenericConfiguration.attribute.hasTargetGroupLink.label = Has target group link
config.GenericConfiguration.attribute.hasTargetGroupLink.description = "Group link" is when memberships refer to some data that does not exist in Grouper and needs to be retrieved from the target Group object. This data is cached in the "group sync" database table. Here are some examples:- Provisioning membership objects where the group reference is a target DN or UUID.
- Provisioning entityAttributes where the group value is a target DN or UUID
config.LdapProvisionerConfiguration.attribute.hasTargetGroupLink.description = $$config.GenericConfiguration.attribute.hasTargetGroupLink.description$$ Generally for LDAP this will be true.
config.GenericConfiguration.subSection.failsafe.title = Failsafe
config.GenericConfiguration.subSection.failsafe.description = $$grouperLoaderFailsafeDescription$$
config.GenericConfiguration.attribute.showFailsafe.label = Show failsafe options
config.GenericConfiguration.attribute.showFailsafe.description = If you want to customize the global failsafe options for this provisioner. If too many users were removed, error out and and wait for a data fix or manual approval.
config.GenericConfiguration.attribute.failsafeUse.label = $$grouperLoaderFailsafeUseLabel$$
config.GenericConfiguration.attribute.failsafeUse.description = $$grouperLoaderFailsafeUseDescription$$ $$grouperLoaderDefaultUseFailsafeLabel$$
config.GenericConfiguration.attribute.failsafeSendEmail.label = $$grouperLoaderFailsafeSendEmailLabel$$
config.GenericConfiguration.attribute.failsafeSendEmail.description = $$grouperLoaderFailsafeSendEmailDescription$$ $$grouperLoaderDefaultSendEmailLabel$$
config.GenericConfiguration.attribute.failsafeMinGroupSize.label = $$grouperLoaderMinGroupSizeLabel$$
config.GenericConfiguration.attribute.failsafeMinGroupSize.description = $$grouperLoaderMinGroupSizeDescription$$
config.GenericConfiguration.attribute.failsafeMaxPercentRemove.label = $$grouperLoaderMaxGroupPercentRemoveLabel$$
config.GenericConfiguration.attribute.failsafeMaxPercentRemove.description = $$grouperLoaderMaxGroupPercentRemoveDescription$$
config.GenericConfiguration.attribute.failsafeMinManagedGroups.label = $$grouperLoaderMinManagedGroupsLabel$$
config.GenericConfiguration.attribute.failsafeMinManagedGroups.description = $$grouperLoaderMinManagedGroupsDescription$$
config.GenericConfiguration.attribute.failsafeMaxOverallPercentGroupsRemove.label = $$grouperLoaderMaxOverallPercentGroupsRemoveLabel$$
config.GenericConfiguration.attribute.failsafeMaxOverallPercentGroupsRemove.description = $$grouperLoaderMaxOverallPercentGroupsRemoveDescription$$
config.GenericConfiguration.attribute.failsafeMaxOverallPercentMembershipsRemove.label = $$grouperLoaderMaxOverallPercentMembershipsRemoveLabel$$
config.GenericConfiguration.attribute.failsafeMaxOverallPercentMembershipsRemove.description = $$grouperLoaderMaxOverallPercentMembershipsRemoveDescription$$
config.GenericConfiguration.attribute.failsafeMinOverallNumberOfMembers.label = $$grouperLoaderMinOverallNumberOfMembersLabel$$
config.GenericConfiguration.attribute.failsafeMinOverallNumberOfMembers.description = $$grouperLoaderMinOverallNumberOfMembersDescription$$
config.GenericConfiguration.attribute.groupResolver.groupResolverAttributes.label = Has external group attributes
config.GenericConfiguration.attribute.groupResolver.groupResolverAttributes.description = Has group attributes that are not in group, need to be resolved with SQL
config.GenericConfiguration.attribute.groupResolver.resolveAttributesWithSQL.label = Resolve attributes with SQL
config.GenericConfiguration.attribute.groupResolver.resolveAttributesWithSQL.description = Use a SQL query to retrieve attributes about a group
config.GenericConfiguration.attribute.groupResolver.sqlConfigId.label = SQL external system
config.GenericConfiguration.attribute.groupResolver.sqlConfigId.description = SQL external system
config.GenericConfiguration.attribute.groupResolver.tableOrViewName.label = Table or view name
config.GenericConfiguration.attribute.groupResolver.tableOrViewName.description = Table or view name
config.GenericConfiguration.attribute.groupResolver.tableStructure.label = Table structure
config.GenericConfiguration.attribute.groupResolver.tableStructure.description = Table structure
config.GenericConfiguration.attribute.groupResolver.columnNames.label = Column names to fetch
config.GenericConfiguration.attribute.groupResolver.columnNames.description = Comma separated column names to fetch from group attributes table
config.GenericConfiguration.attribute.groupResolver.attributeNameColumnName.label = Attribute name column name
config.GenericConfiguration.attribute.groupResolver.attributeNameColumnName.description = Attribute name column name
config.GenericConfiguration.attribute.groupResolver.attributeValueColumnName.label = Attribute value column name
config.GenericConfiguration.attribute.groupResolver.attributeValueColumnName.description = Attribute value column name
config.GenericConfiguration.attribute.groupResolver.groupMatchingColumn.label = Group matching column
config.GenericConfiguration.attribute.groupResolver.groupMatchingColumn.description = Group search/matching column, the value matches the group name
config.GenericConfiguration.attribute.groupResolver.lastUpdatedColumn.label = Last updated column
config.GenericConfiguration.attribute.groupResolver.lastUpdatedColumn.description = Last updated column
config.GenericConfiguration.attribute.groupResolver.lastUpdatedType.label = Last updated type
config.GenericConfiguration.attribute.groupResolver.lastUpdatedType.description = Last updated type
config.GenericConfiguration.attribute.groupResolver.selectAllSQLOnFull.label = Select all SQL on full
config.GenericConfiguration.attribute.groupResolver.selectAllSQLOnFull.description = Select all SQL on full
config.GenericConfiguration.attribute.groupResolver.recalcMembershipsOnIncremental.label = Recalc memberships on incremental
config.GenericConfiguration.attribute.groupResolver.recalcMembershipsOnIncremental.description = Recalc memberships on incremental
config.GenericConfiguration.attribute.entityResolver.entityAttributesNotInSubjectSource.label = Has external entity attributes
config.GenericConfiguration.attribute.entityResolver.entityAttributesNotInSubjectSource.description = Has entity attributes that are not in the subject source, need to be resolved with SQL or LDAP
config.GenericConfiguration.attribute.entityResolver.resolveAttributesWithSQL.label = Resolve attributes with SQL
config.GenericConfiguration.attribute.entityResolver.resolveAttributesWithSQL.description = Use a SQL query to retrieve attributes about an entity (user)
config.GenericConfiguration.attribute.entityResolver.useGlobalSQLResolver.label = Use global SQL resolver
config.GenericConfiguration.attribute.entityResolver.useGlobalSQLResolver.description = Grouper has global SQL resolvers that can be configured centrally and referenced here.
config.GenericConfiguration.attribute.entityResolver.globalSQLResolver.label = Global SQL resolver
config.GenericConfiguration.attribute.entityResolver.globalSQLResolver.description = Global SQL resolver
config.GenericConfiguration.attribute.entityResolver.sqlConfigId.label = SQL external system
config.GenericConfiguration.attribute.entityResolver.sqlConfigId.description = SQL external system
config.GenericConfiguration.attribute.entityResolver.tableOrViewName.label = Table or view name
config.GenericConfiguration.attribute.entityResolver.tableOrViewName.description = Table or view name
config.GenericConfiguration.attribute.entityResolver.columnNames.label = Column names to fetch
config.GenericConfiguration.attribute.entityResolver.columnNames.description = Comma separated column names to fetch from entity attributes table
config.GenericConfiguration.attribute.entityResolver.subjectSourceIdColumn.label = Subject source
config.GenericConfiguration.attribute.entityResolver.subjectSourceIdColumn.description = Subject source
config.GenericConfiguration.attribute.entityResolver.subjectSearchMatchingColumn.label = Subject search matching column
config.GenericConfiguration.attribute.entityResolver.subjectSearchMatchingColumn.description = Subject search matching column
config.GenericConfiguration.attribute.entityResolver.sqlMappingType.label = SQL mapping type
config.GenericConfiguration.attribute.entityResolver.sqlMappingType.description = SQL mapping type to map the row back to the entity
config.GenericConfiguration.attribute.entityResolver.sqlMappingEntityAttribute.label = SQL mapping entity attribute
config.GenericConfiguration.attribute.entityResolver.sqlMappingEntityAttribute.description = SQL mapping entity attribute to map the row back to an entity
config.GenericConfiguration.attribute.entityResolver.sqlMappingExpression.label = SQL mapping expression
config.GenericConfiguration.attribute.entityResolver.sqlMappingExpression.description = If this is a translation write the expression to map back to an entity. e.g. ${grouperProvisioningEntity.retrieveAttributeValueString('uid')}
config.GenericConfiguration.attribute.entityResolver.lastUpdatedColumn.label = Last updated column
config.GenericConfiguration.attribute.entityResolver.lastUpdatedColumn.description = Last updated column
config.GenericConfiguration.attribute.entityResolver.lastUpdatedType.label = Last updated type
config.GenericConfiguration.attribute.entityResolver.lastUpdatedType.description = Last updated type
config.GenericConfiguration.attribute.entityResolver.subjectSourceId.label = Subject source
config.GenericConfiguration.attribute.entityResolver.subjectSourceId.description = Subject source
config.GenericConfiguration.attribute.entityResolver.selectAllSQLOnFull.label = Select all SQL on full
config.GenericConfiguration.attribute.entityResolver.selectAllSQLOnFull.description = Select all SQL on full.
config.GenericConfiguration.attribute.entityResolver.resolveAttributesWithLDAP.label = Resolve attributes with Ldap
config.GenericConfiguration.attribute.entityResolver.resolveAttributesWithLDAP.description = Resolve attributes with Ldap.
config.GenericConfiguration.attribute.entityResolver.useGlobalLDAPResolver.label = Use global LDAP resolver
config.GenericConfiguration.attribute.entityResolver.useGlobalLDAPResolver.description = Use global LDAP resolver.
config.GenericConfiguration.attribute.entityResolver.globalLDAPResolver.label = Global LDAP resolver
config.GenericConfiguration.attribute.entityResolver.globalLDAPResolver.description = Global LDAP resolver
config.GenericConfiguration.attribute.ldapConfigId.label = External LDAP system
config.GenericConfiguration.attribute.ldapConfigId.description = External LDAP system
config.GenericConfiguration.attribute.entityResolver.ldapConfigId.label = External LDAP system
config.GenericConfiguration.attribute.entityResolver.ldapConfigId.description = External LDAP system
config.GenericConfiguration.attribute.entityResolver.baseDN.label = Base DN
config.GenericConfiguration.attribute.entityResolver.baseDN.description = Base DN
config.GenericConfiguration.attribute.entityResolver.searchScope.label = Search scope
config.GenericConfiguration.attribute.entityResolver.searchScope.description = Search scope
config.GenericConfiguration.attribute.entityResolver.filterPart.label = Filter part
config.GenericConfiguration.attribute.entityResolver.filterPart.description = Filter part
config.GenericConfiguration.attribute.entityResolver.attributes.label = Attributes
config.GenericConfiguration.attribute.entityResolver.attributes.description = Attributes
config.GenericConfiguration.attribute.entityResolver.multiValuedLdapAttributes.label = Multivalued ldap attributes
config.GenericConfiguration.attribute.entityResolver.multiValuedLdapAttributes.description = Multivalued ldap attributes
config.GenericConfiguration.attribute.entityResolver.ldapMatchingSearchAttribute.label = LDAP matching search attribute
config.GenericConfiguration.attribute.entityResolver.ldapMatchingSearchAttribute.description = LDAP matching search attribute
config.GenericConfiguration.attribute.entityResolver.ldapMappingEntityAttribute.label = LDAP mapping entity attribute
config.GenericConfiguration.attribute.entityResolver.ldapMappingEntityAttribute.description = LDAP mapping entity attribute
config.GenericConfiguration.attribute.entityResolver.ldapMatchingExpression.label = LDAP matching expression
config.GenericConfiguration.attribute.entityResolver.ldapMatchingExpression.description = LDAP matching expression
config.GenericConfiguration.attribute.entityResolver.filterAllLDAPOnFull.label = Filter all LDAP on full
config.GenericConfiguration.attribute.entityResolver.filterAllLDAPOnFull.description = Filter all LDAP on full
config.GenericConfiguration.attribute.entityResolver.lastUpdatedAttribute.label = Last updated attribute
config.GenericConfiguration.attribute.entityResolver.lastUpdatedAttribute.description = Last updated attribute
config.GenericConfiguration.attribute.entityResolver.lastUpdatedFormat.label = Last updated format
config.GenericConfiguration.attribute.entityResolver.lastUpdatedFormat.description = Last updated format
config.GenericConfiguration.attribute.entityResolver.ldapMappingType.label = LDAP mapping type
config.GenericConfiguration.attribute.entityResolver.ldapMappingType.description = LDAP mapping type
config.GenericConfiguration.attribute.groupTableIdColumn.label = Group table ID column
config.GenericConfiguration.attribute.groupTableIdColumn.description = Group table ID column
config.GenericConfiguration.attribute.groupTableName.label = Group table name
config.GenericConfiguration.attribute.groupTableName.description = Group table name
config.GenericConfiguration.attribute.columnNames.label = Column names
config.GenericConfiguration.attribute.columnNames.description = Comma separated list of column names
config.GenericConfiguration.attribute.userTableName.label = User table name
config.GenericConfiguration.attribute.userTableName.description = User table name
config.GenericConfiguration.attribute.userPrimaryKey.label = User primary key
config.GenericConfiguration.attribute.userPrimaryKey.description = User primary key
config.GenericConfiguration.attribute.groupEmailTranslationScript.label = Group email translation
config.GenericConfiguration.attribute.groupEmailTranslationScript.description = Enter a script for group email, e.g. ${grouperProvisioningGroup.getName() + '@domain.com'}
config.GenericConfiguration.attribute.entityEmailTranslationScript.label = Entity email translation
config.GenericConfiguration.attribute.entityEmailTranslationScript.description = Enter a script for entity email, e.g. ${grouperProvisioningEntity.getId() + '@domain.com'}
config.LdapProvisioningMembershipStartWith.attribute.ldapExternalSystemConfigId.label = External system config id
config.LdapProvisioningMembershipStartWith.attribute.ldapExternalSystemConfigId.description = Pick the LDAP to connect to for this provisioner. If the LDAP is not in the list, first go and configure that in the Grouper external system UI screen.
config.TeamDynamixProvisioningStartWith.attribute.teamDynamixExternalSystemConfigId.label = External system config id
config.TeamDynamixProvisioningStartWith.attribute.teamDynamixExternalSystemConfigId.description = Pick the TeamDynamix target to connect to for this provisioner. If the target is not in the list, first go and configure that in the Grouper external system UI screen.
config.TeamDynamixProvisioningStartWith.attribute.teamDynamixPattern.label = TeamDynamix pattern
config.TeamDynamixProvisioningStartWith.attribute.teamDynamixPattern.description = These patterns will pre-populate the "start with" screen based on common use cases.
config.TeamDynamixProvisioningStartWith.attribute.entityUserFirstName.label = Entity first name
config.TeamDynamixProvisioningStartWith.attribute.entityUserFirstName.description = Entity first name
config.TeamDynamixProvisioningStartWith.attribute.subjectUserFirstNameAttribute.label = Entity first name subject attribute
config.TeamDynamixProvisioningStartWith.attribute.subjectUserFirstNameAttribute.description = Enter a subject attribute name that will be used as the first name in the entity target representation
config.TeamDynamixProvisioningStartWith.attribute.entityUserFirstNameTranslationScript.label = Entity first name translation script
config.TeamDynamixProvisioningStartWith.attribute.entityUserFirstNameTranslationScript.description = Type in JEXL script to translate entity first name
config.TeamDynamixProvisioningStartWith.attribute.entityUserLastName.label = Entity last name
config.TeamDynamixProvisioningStartWith.attribute.entityUserLastName.description = Entity last name
config.TeamDynamixProvisioningStartWith.attribute.entityUserLastNameTranslationScript.label = Entity last name translation script
config.TeamDynamixProvisioningStartWith.attribute.entityUserLastNameTranslationScript.description = Type in JEXL script to translate entity last name
config.TeamDynamixProvisioningStartWith.attribute.subjectUserLastNameAttribute.label = Entity last name subject attribute
config.TeamDynamixProvisioningStartWith.attribute.subjectUserLastNameAttribute.description = Enter a subject attribute name that will be used as the last name in the entity target representation
config.TeamDynamixProvisioningStartWith.attribute.entityPrimaryEmail.label = Entity primary email
config.TeamDynamixProvisioningStartWith.attribute.entityPrimaryEmail.description = Entity primary email
config.TeamDynamixProvisioningStartWith.attribute.entityPrimaryEmailTranslationScript.label = Entity primary email translation script
config.TeamDynamixProvisioningStartWith.attribute.entityPrimaryEmailTranslationScript.description = Type in JEXL script to translate entity primary email
config.TeamDynamixProvisioningStartWith.attribute.entityUsername.label = Entity username
config.TeamDynamixProvisioningStartWith.attribute.entityUsername.description = Entity username
config.TeamDynamixProvisioningStartWith.attribute.entityUsernameTranslationScript.label = Entity username translation script
config.TeamDynamixProvisioningStartWith.attribute.entityUsernameTranslationScript.description = Type in JEXL script to translate entity username
config.TeamDynamixProvisioningStartWith.attribute.entityExternalId.label = Entity external id
config.TeamDynamixProvisioningStartWith.attribute.entityExternalId.description = Entity external id
config.TeamDynamixProvisioningStartWith.attribute.entityExternalIdTranslationScript.label = Entity external id translation script
config.TeamDynamixProvisioningStartWith.attribute.entityExternalIdTranslationScript.description = Type in JEXL script to translate entity external id
config.TeamDynamixProvisioningStartWith.attribute.entitySecurityRoleId.label = Entity security role id
config.TeamDynamixProvisioningStartWith.attribute.entitySecurityRoleId.description = Entity security role id
config.TeamDynamixProvisioningStartWith.attribute.entitySecurityRoleIdTranslationScript.label = Entity security role id translation script
config.TeamDynamixProvisioningStartWith.attribute.entitySecurityRoleIdTranslationScript.description = Type in JEXL script to translate entity security role id
config.TeamDynamixProvisioningStartWith.attribute.entityCompany.label = Entity company
config.TeamDynamixProvisioningStartWith.attribute.entityCompany.description = Entity company
config.TeamDynamixProvisioningStartWith.attribute.entityCompanyTranslationScript.label = Entity company translation script
config.TeamDynamixProvisioningStartWith.attribute.entityCompanyTranslationScript.description = Type in JEXL script to translate entity company
config.TeamDynamixProvisioningStartWith.attribute.entitySearchMatchingAttribute.label = Entity search/matching attribute
config.TeamDynamixProvisioningStartWith.attribute.entitySearchMatchingAttribute.description = Entity search/matching attribute
config.ScimProvisioningStartWith.attribute.bearerTokenExternalSystemConfigId.label = External system config id
config.ScimProvisioningStartWith.attribute.bearerTokenExternalSystemConfigId.description = Pick the SCIM/bearer token external system.
config.ScimProvisioningStartWith.attribute.scimPattern.label = Scim pattern
config.ScimProvisioningStartWith.attribute.scimPattern.description = These patterns will pre-populate the "start with" screen based on common use cases.
- awsGroupsEntitiesMemberships: will create/delete groups and entities and memberships for AWS
- githubEntities: will create/delete users in Github
- Other: will let you configure the "start with" screen as you like
config.ScimProvisioningStartWith.attribute.scimType.label = Scim type
config.ScimProvisioningStartWith.attribute.scimType.description = Pick scim type- Github: if pointing to Github
- AWS: if pointing to AWS
- generic: if pointing to another scim2 server
config.ScimProvisioningStartWith.attribute.groupDisplayNameAttributeValue.label = Group display name attribute value
config.ScimProvisioningStartWith.attribute.groupDisplayNameAttributeValue.description = How to map to the group display name
config.ScimProvisioningStartWith.attribute.entityUsername.label = Entity username attribute value
config.ScimProvisioningStartWith.attribute.entityUsername.description = How to map to the entity username
config.ScimProvisioningStartWith.attribute.entityDisplayName.label = Entity display name attribute value
config.ScimProvisioningStartWith.attribute.entityDisplayName.description = How to map to the entity display name
config.ScimProvisioningStartWith.attribute.entityUsernameTranslationScript.label = Entity username translation script
config.ScimProvisioningStartWith.attribute.entityUsernameTranslationScript.description = Type in JEXL script to translate entity username
config.GenericConfiguration.attribute.startWith.label = Start with id
config.GenericConfiguration.attribute.startWith.description = Ignore this. The 'start with' selection ID is reflected here. To change this, start over with your configuration
config.GoogleProvisioningStartWith.attribute.googleExternalSystemConfigId.label = Google external system config id
config.GoogleProvisioningStartWith.attribute.googleExternalSystemConfigId.description = Google external system config id. If you do not see your google configuration add it in Miscellaneous -> External systems. Wiki documentation
config.GoogleProvisioningStartWith.attribute.googlePattern.label = Google pattern
config.GoogleProvisioningStartWith.attribute.googlePattern.description = These patterns will pre-populate the "start with" screen based on common use cases.
- manageGroupManageEntities: will create/delete groups and entities and memberships
- manageGroupsReadonlyEntities: will create/delete groups, use existing google users provisioned from another system, and manage memberships (most common)
- manageEntities: will create/delete entities and not manage groups or memberships
- Other: will let you configure the "start with" screen as you like
config.GoogleProvisioningStartWith.attribute.hasMetadataForWhoCanAdd.label = Has metadata for who can add
config.GoogleProvisioningStartWith.attribute.hasMetadataForWhoCanAdd.description = Has metadata for who can add
config.GoogleProvisioningStartWith.attribute.hasMetadataForWhoCanJoin.label = Has metadata for who can join
config.GoogleProvisioningStartWith.attribute.hasMetadataForWhoCanJoin.description = Has metadata for who can join
config.GoogleProvisioningStartWith.attribute.hasMetadataForWhoCanViewMembership.label = Has metadata for who can view membership
config.GoogleProvisioningStartWith.attribute.hasMetadataForWhoCanViewMembership.description = Has metadata for who can view membership
config.GoogleProvisioningStartWith.attribute.hasMetadataForWhoCanViewGroup.label = Has metadata for who can view group
config.GoogleProvisioningStartWith.attribute.hasMetadataForWhoCanViewGroup.description = Has metadata for who can view group
config.GoogleProvisioningStartWith.attribute.hasMetadataForWhoCanInvite.label = Has metadata for who can invite
config.GoogleProvisioningStartWith.attribute.hasMetadataForWhoCanInvite.description = Has metadata for who can invite
config.GoogleProvisioningStartWith.attribute.hasMetadataForAllowExternalMembers.label = Has metadata for allow external members
config.GoogleProvisioningStartWith.attribute.hasMetadataForAllowExternalMembers.description = Has metadata for allow external members
config.GoogleProvisioningStartWith.attribute.hasMetadataForWhoCanPostMessage.label = Has metadata for who can post message
config.GoogleProvisioningStartWith.attribute.hasMetadataForWhoCanPostMessage.description = Has metadata for who can post message
config.GoogleProvisioningStartWith.attribute.hasMetadataForAllowWebHosting.label = Has metadata for allow web hosting
config.GoogleProvisioningStartWith.attribute.hasMetadataForAllowWebHosting.description = Has metadata for allow web hosting
config.SqlProvisioningStartWith.attribute.dbExternalSystemConfigId.label = Db external system config id
config.SqlProvisioningStartWith.attribute.dbExternalSystemConfigId.description = Sql database external system config id. If you do not see your database configuration add it in Miscellaneous -> External systems. You can also provision across database link.
config.SqlProvisioningStartWith.attribute.sqlPattern.label = Sql pattern
config.SqlProvisioningStartWith.attribute.sqlPattern.description = entityTable - provision a table of entities
entityTableWithAttributeTable - provision entities into a table but allow some attributes to be columns of the entity table and some attributes to be in a separate table for entity attributes
entityTableWithAttributeTableAndMemberships - provision entities into a table but allow some attributes to be columns of the entity table and some attributes to be in a separate table for entity attributes. Memberships will be provisioned like LDAP where they are a multi-valued attribute of the entity, in the entity attributes table
entityTableMembershipTable - provision a table of entities and a table for memberships. One column of the membership table is a foreign key to the entity table, and the other column is something related to the group (e.g. groupName)
groupTable - provision a table of groups
groupTableWithAttributeTable - provision groups into a table but allow some attributes to be columns of the group table and some attributes to be in a separate table for group attributes
groupTableWithAttributeTableAndMemberships - provision groups into a table but allow some attributes to be columns of the group table and some attributes to be in a separate table for group attributes. Memberships will be provisioned like LDAP where they are a multi-valued attribute of the group, in the group attributes table
groupTableMembershipTable - provision a table of groups and a table for memberships. One column of the membership table is a foreign key to the group table, and the other column is something related to the entity (e.g. subjectId)
groupTableEntityTableMembershipTable - provision a table for groups, a table for entities, and a table for memberships. The memberships table has two columns, one for the foreign key to groups, and one for the foreign key to memberships
membershipTable - provision a table with memberships with two columns, something related to the group (e.g. groupName), and something related to the entity (e.g. subjectId)
other - no pattern, just fill out this form
config.SqlProvisioningStartWith.attribute.membershipStructure.label = Membership structure
config.SqlProvisioningStartWith.attribute.membershipStructure.description = Membership structure
config.SqlProvisioningStartWith.attribute.subjectSourceEntityResolverAttributes.label = Subject source entity resolver attributes
config.SqlProvisioningStartWith.attribute.subjectSourceEntityResolverAttributes.description = Subject source entity resolver attributes
config.SqlProvisioningStartWith.attribute.hasGroupTable.label = Has group table
config.SqlProvisioningStartWith.attribute.hasGroupTable.description = Has group table
config.SqlProvisioningStartWith.attribute.groupTableName.label = Group table name
config.SqlProvisioningStartWith.attribute.groupTableName.description = Group table name, e.g. from_grouper_group
config.SqlProvisioningStartWith.attribute.groupTableIdColumn.label = Group table primary key
config.SqlProvisioningStartWith.attribute.groupTableIdColumn.description = Group table primary key column, e.g. group_id_index
config.SqlProvisioningStartWith.attribute.groupTablePrimaryKeyValue.label = Group table primary key value
config.SqlProvisioningStartWith.attribute.groupTablePrimaryKeyValue.description = Group table primary key value, e.g. groupIdIndex
config.SqlProvisioningStartWith.attribute.groupTableColumnNames.label = Group table column names
config.SqlProvisioningStartWith.attribute.groupTableColumnNames.description = Group table column names
config.SqlProvisioningStartWith.attribute.hasTargetGroupLink.label = Need group link?
config.SqlProvisioningStartWith.attribute.hasTargetGroupLink.description = Need group link?
config.SqlProvisioningStartWith.attribute.hasGroupAttributeTable.label = Has group attribute table?
config.SqlProvisioningStartWith.attribute.hasGroupAttributeTable.description = Has group attribute table?
config.SqlProvisioningStartWith.attribute.groupAttributesTableName.label = Group attribute table name
config.SqlProvisioningStartWith.attribute.groupAttributesTableName.description = Group attribute table name
config.SqlProvisioningStartWith.attribute.groupAttributesGroupForeignKeyColumn.label = Column foreign key to group
config.SqlProvisioningStartWith.attribute.groupAttributesGroupForeignKeyColumn.description = Column name which is foreign key to group table, e.g. group_uuid
config.SqlProvisioningStartWith.attribute.groupAttributesAttributeNameColumn.label = Attribute name column
config.SqlProvisioningStartWith.attribute.groupAttributesAttributeNameColumn.description = Column name which is the attribute name, e.g. attribute_name
config.SqlProvisioningStartWith.attribute.groupAttributesAttributeValueColumn.label = Attribute value column
config.SqlProvisioningStartWith.attribute.groupAttributesAttributeValueColumn.description = Column name which is the attribute value, e.g. attribute_value
config.SqlProvisioningStartWith.attribute.groupMembershipAttributeName.label = Group membership attribute name
config.SqlProvisioningStartWith.attribute.groupMembershipAttributeName.description = Group membership attribute name
config.SqlProvisioningStartWith.attribute.groupMembershipAttributeValue.label = Group membership attribute value
config.SqlProvisioningStartWith.attribute.groupMembershipAttributeValue.description = Group membership attribute value
config.SqlProvisioningStartWith.attribute.groupOtherAttributeNames.label = Group other attribute names
config.SqlProvisioningStartWith.attribute.groupOtherAttributeNames.description = Group other attribute names
config.SqlProvisioningStartWith.attribute.hasEntityTable.label = Has entity table
config.SqlProvisioningStartWith.attribute.hasEntityTable.description = Has entity table
config.SqlProvisioningStartWith.attribute.entityTableName.label = Entity table name
config.SqlProvisioningStartWith.attribute.entityTableName.description = Entity table name
config.SqlProvisioningStartWith.attribute.entityTableIdColumn.label = Entity table primary key
config.SqlProvisioningStartWith.attribute.entityTableIdColumn.description = Entity table primary key column, e.g. entity_uuid
config.SqlProvisioningStartWith.attribute.entityTablePrimaryKeyValue.label = Entity table primary key value
config.SqlProvisioningStartWith.attribute.entityTablePrimaryKeyValue.description = Entity table primary key value, e.g. entity_uuid
config.SqlProvisioningStartWith.attribute.entityTableColumnNames.label = Entity table column names
config.SqlProvisioningStartWith.attribute.entityTableColumnNames.description = Entity table column names
config.SqlProvisioningStartWith.attribute.hasTargetEntityLink.label = Need entity link?
config.SqlProvisioningStartWith.attribute.hasTargetEntityLink.description = Need entity link?
config.SqlProvisioningStartWith.attribute.hasEntityAttributeTable.label = Has entity attribute table?
config.SqlProvisioningStartWith.attribute.hasEntityAttributeTable.description = Has entity attribute table?
config.SqlProvisioningStartWith.attribute.entityAttributeTableName.label = Entity attribute table name
config.SqlProvisioningStartWith.attribute.entityAttributeTableName.description = Entity attribute table name
config.SqlProvisioningStartWith.attribute.entityAttributesEntityForeignKeyColumn.label = Column foreign key to entity
config.SqlProvisioningStartWith.attribute.entityAttributesEntityForeignKeyColumn.description = Column name which is foreign key to entity table, e.g. entity_uuid
config.SqlProvisioningStartWith.attribute.entityAttributesAttributeNameColumn.label = Attribute name column
config.SqlProvisioningStartWith.attribute.entityAttributesAttributeNameColumn.description = Column name which is the attribute name, e.g. attribute_name
config.SqlProvisioningStartWith.attribute.entityAttributesAttributeValueColumn.label = Attribute value column
config.SqlProvisioningStartWith.attribute.entityAttributesAttributeValueColumn.description = Column name which is the attribute value, e.g. attribute_value
config.SqlProvisioningStartWith.attribute.entityMembershipAttributeName.label = Entity membership attribute name
config.SqlProvisioningStartWith.attribute.entityMembershipAttributeName.description = Entity membership attribute name
config.SqlProvisioningStartWith.attribute.entityMembershipAttributeValue.label = Entity membership attribute value
config.SqlProvisioningStartWith.attribute.entityMembershipAttributeValue.description = Entity membership attribute value
config.SqlProvisioningStartWith.attribute.entityOtherAttributeNames.label = Entity other attribute names
config.SqlProvisioningStartWith.attribute.entityOtherAttributeNames.description = Entity other attribute names
config.SqlProvisioningStartWith.attribute.hasMembershipTable.label = Has membership table?
config.SqlProvisioningStartWith.attribute.hasMembershipTable.description = Has membership table?
config.SqlProvisioningStartWith.attribute.membershipTableName.label = Membership table name
config.SqlProvisioningStartWith.attribute.membershipTableName.description = Membership table name
config.SqlProvisioningStartWith.attribute.membershipTableGroupColumn.label = Membership table group column
config.SqlProvisioningStartWith.attribute.membershipTableGroupColumn.description = Membership table group column
config.SqlProvisioningStartWith.attribute.membershipTableGroupValue.label = Membership table group value
config.SqlProvisioningStartWith.attribute.membershipTableGroupValue.description = Membership table group value
config.SqlProvisioningStartWith.attribute.membershipTableEntityColumn.label = Membership table entity column
config.SqlProvisioningStartWith.attribute.membershipTableEntityColumn.description = Membership table entity column
config.SqlProvisioningStartWith.attribute.membershipTableEntityValue.label = Membership table entity value
config.SqlProvisioningStartWith.attribute.membershipTableEntityValue.description = Membership table entity value
config.LdapProvisioningMembershipStartWith.attribute.ldapPattern.label = Ldap pattern
config.LdapProvisioningMembershipStartWith.attribute.ldapPattern.description = activeDirectoryGroups - For an active directory external system, bushy LDAP groups with memberships in group attributes provisioning the user DNs as the value of the 'member' attribute
bushyGroupsWithMembershipDNs - bushy LDAP groups with memberships in group attributes provisioning the user DNs as the value of the membership attribute
bushyGroupsWithMembershipSubjectIds - bushy LDAP groups with memberships in group attributes provisioning the subject IDs as the value of the membership attribute
flatGroupsWithMembershipDNs - flat LDAP groups with memberships in group attributes provisioning the user DNs as the value of the membership attribute
flatGroupsWithMembershipSubjectIds - flat LDAP groups with memberships in group attributes provisioning subject IDs as the value of the membership attribute
groupOfNames - LDAP groups with memberships in group attributes provisioning the user DNs as the value of the membership attribute. Includes the groupOfNames object class
other - manually configure the 'start with' settings
posixGroups - LDAP groups with memberships in group attributes provisioning the user DNs as the value of the membership attribute. Includes the posixGroup object class, and group idIndex in the gidNumber
usersWithEduPersonAffiliations - LDAP users with memberships provisioning the group extension (last part of system name or ID path) in the eduPersonAffiliation attribute
usersWithEduPersonEntitlements - LDAP users with memberships provisioning the group name (full system name or ID path) in the eduPersonEntitlement attribute
usersWithMembershipGroupExtensions - LDAP users with memberships provisioning the group extension (last part of system name or ID path) in the membership attribute
usersWithMembershipGroupNames - LDAP users with memberships provisioning the group name (full system name or ID path) in the membership attribute
config.LdapProvisioningMembershipStartWith.attribute.membershipStructure.label = Membership structure
config.LdapProvisioningMembershipStartWith.attribute.membershipStructure.description = Group attributes - LDAP groups have a multi-valued membership attribute that holds user DNs or identifiers
Entity attributes - LDAP users have a multi-valued membership attribute that holds group DNs or names or extensions
config.LdapProvisioningMembershipStartWith.attribute.membershipValueDn.label = Membership value DN
config.LdapProvisioningMembershipStartWith.attribute.membershipValueDn.description = Is the value of the membership attribute a DN? i.e. for group attributes, is the membership value a user DN (false for subject ID or identifier)? i.e. for user attributes, is the membership value a group DN (false for group name or extension)?
config.LdapProvisioningMembershipStartWith.attribute.groupDnType.label = Group DN type
config.LdapProvisioningMembershipStartWith.attribute.groupDnType.description = bushy - The group name is split by Grouper folder in LDAP OU's. e.g. cn=math101,ou=math,ou=courses,ou=groups,dc=school,dc=edu
flat - The group name is the LDAP RDN. All groups are generally in one LDAP OU. e.g. cn=courses:math:math101,ou=groups,dc=school,dc=edu
Note: if you are using DN overrides (below), can you map Grouper groups to arbitrary LDAP groups. Or you can specify to only use LDAP DNs and then it is not flat or bushy.
config.GenericConfiguration.attribute.userAttributesType.label = User attributes type
config.GenericConfiguration.attribute.userAttributesType.description = core - The only data needed for users in provisioning is built in to Grouper. e.g. subject ID, subjectIdentitier0-2
entityResolver - It is necessary to make an LDAP or SQL call to get user attributes
subjectSource - The subject needs to be resolved to get subject attributes (e.g. firstName)
subjectSourceAndEntityResolver - Not recommended... the subject needs to be resolved and an LDAP or SQL call needs to resolve attributes
config.LdapProvisioningMembershipStartWith.attribute.subjectSourceEntityResolverAttributes.label = Subject source attributes
config.LdapProvisioningMembershipStartWith.attribute.subjectSourceEntityResolverAttributes.description = Comma separated list of subject attributes from the subject source. Each attribute will be an attribute in the provisioning entity (user) representation from target or translated from Grouper.
config.LdapProvisioningMembershipStartWith.attribute.groupLinkForAnotherReason.label = Group link for another reason
config.LdapProvisioningMembershipStartWith.attribute.groupLinkForAnotherReason.description = The "group link" concept means the LDAP group needs to be looked up by searching by group name, or idIndex, and the LDAP group DN is used to manage the group, or the LDAP group DN is used as a value in the user membership attribute.
config.LdapProvisioningMembershipStartWith.attribute.groupSearchBaseDn.label = Group search base DN
config.LdapProvisioningMembershipStartWith.attribute.groupSearchBaseDn.description = The LDAP DN where groups are located. Either the flat group structure has groups in this OU, or the bushy structure starts from this OU. If LDAP groups are created in LDAP, then they will created here. Or LDAP filters to search for groups will only search in this OU.
config.LdapProvisioningMembershipStartWith.attribute.groupRdnAttribute.label = RDN groups attribute
config.LdapProvisioningMembershipStartWith.attribute.groupRdnAttribute.description = The RDN (relative distinguished name), is the first part of the DN. e.g. if the DN is cn=courses:math:math101,ou=groups,dc=school,dc=edu, then the RDN is: cn=courses:math:math101 and the RDN attribute name is: cn
config.LdapProvisioningMembershipStartWith.attribute.rdnValueForGroups.label = RDN value for groups
config.LdapProvisioningMembershipStartWith.attribute.rdnValueForGroups.description = The RDN (relative distinguished name), is the first part of the DN. e.g. if the DN is cn=courses:math:math101,ou=groups,dc=school,dc=edu, then the RDN is: cn=courses:math:math101 and the RDN attribute value is: name
The options are from the Grouper API. Generally you will pick 'name' (UI ID path), or 'extension' (last part of 'name', UI ID)
config.LdapProvisioningMembershipStartWith.attribute.rdnValueForGroupsTranslationScript.label = RDN value for groups script
config.LdapProvisioningMembershipStartWith.attribute.rdnValueForGroupsTranslationScript.description = $$config.GenericConfiguration.attribute.targetGroupAttribute.i.translateExpression.description$$
config.LdapProvisioningMembershipStartWith.attribute.matchingSearchAttributeValueForGroupsTranslationScript.label = Matching search attribute value script
config.LdapProvisioningMembershipStartWith.attribute.matchingSearchAttributeValueForGroupsTranslationScript.description = $$config.GenericConfiguration.attribute.targetGroupAttribute.i.translateExpression.description$$
config.LdapProvisioningMembershipStartWith.attribute.rdnValueForEntitiesTranslationScript.label = RDN value for entities script
config.LdapProvisioningMembershipStartWith.attribute.rdnValueForEntitiesTranslationScript.description = $$config.GenericConfiguration.attribute.targetEntityAttribute.i.translateExpression.description$$
config.LdapProvisioningMembershipStartWith.attribute.membershipValueForEntitiesTranslationScript.label = Membership value for entities script
config.LdapProvisioningMembershipStartWith.attribute.membershipValueForEntitiesTranslationScript.description = $$config.GenericConfiguration.attribute.targetGroupAttribute.i.translateExpression.description$$
config.LdapProvisioningMembershipStartWith.attribute.membershipValueForGroupsTranslationScript.label = Membership value for groups script
config.LdapProvisioningMembershipStartWith.attribute.membershipValueForGroupsTranslationScript.description = $$config.GenericConfiguration.attribute.targetEntityAttribute.i.translateExpression.description$$
config.LdapProvisioningMembershipStartWith.attribute.matchingSearchAttributeValueForEntitiesTranslationScript.label = Matching search attribute value for entities script
config.LdapProvisioningMembershipStartWith.attribute.matchingSearchAttributeValueForEntitiesTranslationScript.description = $$config.GenericConfiguration.attribute.targetEntityAttribute.i.translateExpression.description$$
config.LdapProvisioningMembershipStartWith.attribute.membershipAttributeNameForGroups.label = Membership attribute name for groups
config.LdapProvisioningMembershipStartWith.attribute.membershipAttributeNameForGroups.description = The name of the multi-valued LDAP group attribute that holds memberships (user DNs or subject IDs or identifiers)
config.LdapProvisioningMembershipStartWith.attribute.membershipAttributeDefaultValue.label = Membership attribute default value
config.LdapProvisioningMembershipStartWith.attribute.membershipAttributeDefaultValue.description = If there should always be a value in the target, then list the value here to assign to the membership attribute in LDAP if the group has no members. Use <emptyString> if the default value should be an empty string.
config.LdapProvisioningMembershipStartWith.attribute.groupMembershipAttributeValue.label = $$config.GenericConfiguration.attribute.groupMembershipAttributeValue.label$$
config.LdapProvisioningMembershipStartWith.attribute.groupMembershipAttributeValue.description = $$config.GenericConfiguration.attribute.groupMembershipAttributeValue.description$$
config.LdapProvisioningMembershipStartWith.attribute.entityMembershipAttributeValue.label = $$config.GenericConfiguration.attribute.entityMembershipAttributeValue.label$$
config.LdapProvisioningMembershipStartWith.attribute.entityMembershipAttributeValue.description = $$config.GenericConfiguration.attribute.entityMembershipAttributeValue.description$$
config.LdapProvisioningMembershipStartWith.attribute.idIndexAttribute.label = Id index attribute
config.LdapProvisioningMembershipStartWith.attribute.idIndexAttribute.description = The name of the LDAP group attribute that holds the group ID index. It is good to have this to help with group renames since this integer will stay the same.
config.LdapProvisioningMembershipStartWith.attribute.matchingSearchAttributeDifferentThanRdnorIdIndex.label = Matching attribute different than RDN or ID index
config.LdapProvisioningMembershipStartWith.attribute.matchingSearchAttributeDifferentThanRdnorIdIndex.description = When searching for groups in LDAP, generally it will use the LDAP RDN or DN or attribute which holds the group ID index. If not, set this to false and enter the matching / search attribute
config.LdapProvisioningMembershipStartWith.attribute.matchingSearchAttributeNameForGroups.label = Matching search attribute name
config.LdapProvisioningMembershipStartWith.attribute.matchingSearchAttributeNameForGroups.description = When searching for groups in LDAP, generally it will use the LDAP RDN or DN or attribute which holds the group ID index. If not, set this to the attribute name that should be used.
config.LdapProvisioningMembershipStartWith.attribute.matchingSearchAttributeValueForGroups.label = Matching search attribute value
config.LdapProvisioningMembershipStartWith.attribute.matchingSearchAttributeValueForGroups.description = The value of the search or matching attribute. The search for objects in LDAP, something in Grouper needs to be used.
config.LdapProvisioningMembershipStartWith.attribute.objectClassesForGroups.label = Object classes for groups
config.LdapProvisioningMembershipStartWith.attribute.objectClassesForGroups.description = Comma separated object classes for groups used when groups are created or searched for.
config.LdapProvisioningMembershipStartWith.attribute.otherGroupLdapAttributes.label = Other group ldap attributes
config.LdapProvisioningMembershipStartWith.attribute.otherGroupLdapAttributes.description = Comma separated LDAP group attributes that Grouper needs to be aware of and used in LDAP group creation or updates. Any other attributes configured in this 'start with' do not need to be added here and will be configured automatically.
config.LdapProvisioningMembershipStartWith.attribute.allowLdapGroupDnOverride.label = Allow group DN override
config.LdapProvisioningMembershipStartWith.attribute.allowLdapGroupDnOverride.description = If some or all groups can exist in LDAP but be not directly translated. i.e. point a Grouper group to an arbitrary location in LDAP (does not need to be in the LDAP group base DN). When marking a group as provisionable, the DN to override needs to be entered.
config.LdapProvisioningMembershipStartWith.attribute.onlyLdapGroupDnOverride.label = Only group dn override
config.LdapProvisioningMembershipStartWith.attribute.onlyLdapGroupDnOverride.description = If all groups must have a DN override to specify where in LDAP the group is located. In this case the LDAP group search base DN will not be entered, and the LDAP group DN type will not be entered (bushy or flat does not apply). Also the override DN will be required when marking a group as provisionable.
config.LdapProvisioningMembershipStartWith.attribute.entityLinkForAnotherReason.label = Entity link for another reason
config.LdapProvisioningMembershipStartWith.attribute.entityLinkForAnotherReason.description = The "entity link" concept means the LDAP user needs to be looked up by searching by subject ID or identifier, and the LDAP user DN is used to manage the user, or the LDAP user DN is used as a value in the user membership attribute.
config.LdapProvisioningMembershipStartWith.attribute.userSearchBaseDn.label = Entity search base DN
config.LdapProvisioningMembershipStartWith.attribute.userSearchBaseDn.description = The LDAP DN where users are located. If the users are being created in LDAP, this is the OU where they will be created. Or LDAP filters to search for users will only search in this OU.
config.LdapProvisioningMembershipStartWith.attribute.changeEntitiesInLdap.label = Change entities in ldap
config.LdapProvisioningMembershipStartWith.attribute.changeEntitiesInLdap.description = If this is false, then users will only be selected in LDAP. If users should be inserted / updated / deleted, then set this to true. Note that if only changing memberships in users (entity attributes e.g. for entitlements), then this can still be false.
config.LdapProvisioningMembershipStartWith.attribute.userRdnAttribute.label = RDN entities attribute
config.LdapProvisioningMembershipStartWith.attribute.userRdnAttribute.description = The RDN (relative distinguished name), is the first part of the DN. e.g. if the DN is uid=jsmith,ou=users,dc=school,dc=edu, then the RDN is: uid=jsmith and the RDN attribute name is: uid
config.LdapProvisioningMembershipStartWith.attribute.rdnValueForEntities.label = RDN value for entities
config.LdapProvisioningMembershipStartWith.attribute.rdnValueForEntities.description = The RDN (relative distinguished name), is the first part of the DN. e.g. if the DN is uid=jsmith,ou=users,dc=school,dc=edu, then the RDN is: uid=jsmith and the RDN attribute value is some subject attribute or subject ID or subject identifier
config.LdapProvisioningMembershipStartWith.attribute.membershipAttributeNameForEntities.label = Membership attribute name for entities
config.LdapProvisioningMembershipStartWith.attribute.membershipAttributeNameForEntities.description = If provisioning 'entity attributes' then this is the LDAP user attribute which holds memberships. e.g. memberOf
config.LdapProvisioningMembershipStartWith.attribute.membershipValueForEntities.label = Membership value for entities
config.LdapProvisioningMembershipStartWith.attribute.membershipValueForEntities.description = If provisioning 'entity attributes' then this is the value of the LDAP user membership attribute. This is usually 'name' which is the Grouper group system name (UI ID path), or the extension which is the last part of the Grouper group system name (UI ID)
config.LdapProvisioningMembershipStartWith.attribute.membershipValueForGroups.label = Membership value for groups
config.LdapProvisioningMembershipStartWith.attribute.membershipValueForGroups.description = If provisioning 'group attributes' then this is the value of the LDAP group membership attribute. This could be the subjectId, subjectIdentifier, etc of the entity.
config.LdapProvisioningMembershipStartWith.attribute.matchingSearchAttributeDifferentThanRDN.label = Matching search attribute name different than RDN
config.LdapProvisioningMembershipStartWith.attribute.matchingSearchAttributeDifferentThanRDN.description = If the attribute which is used for searching or matching is not the RDN attribute then list that attribute here. e.g. gidNumber
config.LdapProvisioningMembershipStartWith.attribute.matchingSearchAttributeNameForEntities.label = Matching search attribute name for entities
config.LdapProvisioningMembershipStartWith.attribute.matchingSearchAttributeNameForEntities.description = Attribute name in the LDAP user object which is used to search for users or match LDAP users with Grouper entities
config.LdapProvisioningMembershipStartWith.attribute.matchingSearchAttributeValueForEntities.label = Matching search attribute value for entities
config.LdapProvisioningMembershipStartWith.attribute.matchingSearchAttributeValueForEntities.description = Attribute value in the LDAP user object which is used to search for users or match LDAP users with Grouper entities. This is generally the subject ID or identifier.
config.LdapProvisioningMembershipStartWith.attribute.objectClassesForEntities.label = Object classes for entities
config.LdapProvisioningMembershipStartWith.attribute.objectClassesForEntities.description = Comma separated object classes for users used when users are created or searched for.
config.LdapProvisioningMembershipStartWith.attribute.otherEntityLdapAttributes.label = Other entity ldap attributes
config.LdapProvisioningMembershipStartWith.attribute.otherEntityLdapAttributes.description = Comma separated LDAP user attributes that Grouper needs to be aware of and used in LDAP user creation or updates. Any other attributes configured in this 'start with' do not need to be added here and will be configured automatically.
config.LdapProvisioningMembershipStartWith.attribute.allowMembershipValueOverride.label = Allow membership value override
config.LdapProvisioningMembershipStartWith.attribute.allowMembershipValueOverride.description = If the group name or extension is not used in the LDAP user attribute value and a custom label needs to be used to represent being in a group. e.g. if the entitlement value is configured in the application a certain way already. This is set in the provisioning metadata when the Grouper group is marked as provisionable.
config.MidpointProvisioningStartWith.attribute.dbExternalSystemConfigId.label = Db external system config id
config.MidpointProvisioningStartWith.attribute.dbExternalSystemConfigId.description = Sql database external system config id. If you do not see your database configuration add it in Miscellaneous -> External systems.
config.MidpointProvisioningStartWith.attribute.subjectSourceEntityResolverAttributes.label = Subject source entity resolver attributes
config.MidpointProvisioningStartWith.attribute.subjectSourceEntityResolverAttributes.description = Subject source entity resolver attributes
config.MidpointProvisioningStartWith.attribute.midPointTablesPrefix.label = $$config.MidPointProvisionerConfiguration.attribute.midPointTablesPrefix.label$$
config.MidpointProvisioningStartWith.attribute.midPointTablesPrefix.description = $$config.MidPointProvisionerConfiguration.attribute.midPointTablesPrefix.description$$
config.MidpointProvisioningStartWith.attribute.midPointHasTargetAttribute.label = $$config.MidPointProvisionerConfiguration.attribute.midPointHasTargetAttribute.label$$
config.MidpointProvisioningStartWith.attribute.midPointHasTargetAttribute.description = $$config.MidPointProvisionerConfiguration.attribute.midPointHasTargetAttribute.description$$
config.MidpointProvisioningStartWith.attribute.midPointListOfTargets.label = $$config.MidPointProvisionerConfiguration.attribute.midPointListOfTargets.label$$
config.MidpointProvisioningStartWith.attribute.midPointListOfTargets.description = $$config.MidPointProvisionerConfiguration.attribute.midPointListOfTargets.description$$
config.GenericProvisionerConfiguration.title = Generic provisioner
config.GenericProvisionerConfiguration.attribute.genericProvisionerDaoClassName.label = DAO class name
config.GenericProvisionerConfiguration.attribute.genericProvisionerDaoClassName.description = If all you need is a DAO class, implement that and put the fully qualified class name here. e.g. a.b.c.MyDao
config.GenericConfiguration.attribute.addDisabledFullSyncDaemon.label = Add disabled full sync daemon
config.GenericConfiguration.attribute.addDisabledFullSyncDaemon.description = If a full sync daemon should be configured for this provisioner. It will be disabled and can be enabled in the Grouper daemon console.
config.GenericConfiguration.attribute.addDisabledIncrementalSyncDaemon.label = Add disabled incremental sync daemon
config.GenericConfiguration.attribute.addDisabledIncrementalSyncDaemon.description = If an incremental daemon should be configured for this provisioner. It will be disabled and can be enabled in the Grouper daemon console.
config.GenericConfiguration.attribute.unresolvableSubjectsInsert.label = Unresolvable subjects insert
config.GenericConfiguration.attribute.unresolvableSubjectsInsert.description = If an unresolvable subject (that has not yet been marked deleted in Grouper) should be inserted in the target. Memberships will still be removed in the target if they are removed in Grouper. But they will not be inserted in the target if they are added in Grouper for unresolvable subjects.
config.GenericConfiguration.attribute.sleepBeforeSelectAfterInsertMillis.label = Sleep millis after insert
config.GenericConfiguration.attribute.sleepBeforeSelectAfterInsertMillis.description = Millis to sleep before trying to retrieve values after inserting them in the target. It will sleep once per run after doing all the inserts to groups and once for inserts for entities.
config.GenericConfiguration.attribute.removeAccentedChars.label = Remove accented characters
config.GenericConfiguration.attribute.removeAccentedChars.description = Remove accented characters from attribute values before sending them to the target
config.GenericConfiguration.attribute.unresolvableSubjectsRemove.label = Unresolvable subjects remove
config.GenericConfiguration.attribute.unresolvableSubjectsRemove.description = If an unresolvable subject (that has not yet been marked deleted in Grouper) should be removed from the target. This includes entity objects and memberships associated with unresolvable subjects.
config.AzureProvisioningStartWith.attribute.azureExternalSystemConfigId.label = External system config id
config.AzureProvisioningStartWith.attribute.azureExternalSystemConfigId.description = Pick the Azure extenal system to connect to for this provisioner. If the azure external system is not in the list, first go and configure that in the Grouper external system UI screen.
config.AzureProvisioningStartWith.attribute.azurePattern.label = Azure pattern
config.AzureProvisioningStartWith.attribute.azurePattern.description = Azure pattern
config.AzureProvisioningStartWith.attribute.subjectSourceEntityResolverAttributes.label = Subject source entity resolver attributes
config.AzureProvisioningStartWith.attribute.subjectSourceEntityResolverAttributes.description = Subject source entity resolver attributes
config.AzureProvisioningStartWith.attribute.groupDisplayNameAttributeValue.label = Group display name attribute value
config.AzureProvisioningStartWith.attribute.groupDisplayNameAttributeValue.description = Group display name attribute value
config.AzureProvisioningStartWith.attribute.useGroupDescription.label = Use group description
config.AzureProvisioningStartWith.attribute.useGroupDescription.description = Use group description
config.AzureProvisioningStartWith.attribute.mailNicknameAttributeValue.label = Mail nickname attribute value
config.AzureProvisioningStartWith.attribute.mailNicknameAttributeValue.description = Mail nickname attribute value
config.AzureProvisioningStartWith.attribute.groupSearchMatchingAttribute.label = Group search/matching attribute
config.AzureProvisioningStartWith.attribute.groupSearchMatchingAttribute.description = Group search/matching attribute
config.AzureProvisioningStartWith.attribute.entitySearchMatchingAttribute.label = Entity search/matching attribute
config.AzureProvisioningStartWith.attribute.entitySearchMatchingAttribute.description = Entity search/matching attribute
config.AzureProvisioningStartWith.attribute.hasMetadataForGroupType.label = Has metadata for group type
config.AzureProvisioningStartWith.attribute.hasMetadataForGroupType.description = Has metadata for group type
config.AzureProvisioningStartWith.attribute.hasMetadataForGroupOwners.label = Has metadata for group owners
config.AzureProvisioningStartWith.attribute.hasMetadataForGroupOwners.description = Has metadata for group owners
config.AzureProvisioningStartWith.attribute.hasMetadataForAllowOnlyMembersToPost.label = Has metadata for allow only members to post
config.AzureProvisioningStartWith.attribute.hasMetadataForAllowOnlyMembersToPost.description = Has metadata for allow only members to post
config.AzureProvisioningStartWith.attribute.hasMetadataForHideGroupInOutlook.label = Has metadata for hide group in outlook
config.AzureProvisioningStartWith.attribute.hasMetadataForHideGroupInOutlook.description = Has metadata for hide group in outlook
config.AzureProvisioningStartWith.attribute.hasMetadataForSubscribeNewGroupMembers.label = Has metadata for subscribe new group members
config.AzureProvisioningStartWith.attribute.hasMetadataForSubscribeNewGroupMembers.description = Has metadata for subscribe new group members
config.AzureProvisioningStartWith.attribute.hasMetadataForWelcomeEmailDisabled.label = Has metadata for welcome email disabled
config.AzureProvisioningStartWith.attribute.hasMetadataForWelcomeEmailDisabled.description = Has metadata for welcome email disabled
config.AzureProvisioningStartWith.attribute.hasMetadataForResourceProvisioningOptionsTeam.label = Has metadata for resource provisioning options team
config.AzureProvisioningStartWith.attribute.hasMetadataForResourceProvisioningOptionsTeam.description = Has metadata for resource provisioning options team
config.AzureProvisioningStartWith.attribute.entityUserPrincipalName.label = Entity user principal name
config.AzureProvisioningStartWith.attribute.entityUserPrincipalName.description = Entity user principal name
config.AzureProvisioningStartWith.attribute.entityMailNickname.label = Entity mail nickname
config.AzureProvisioningStartWith.attribute.entityMailNickname.description = Entity mail nickname
config.AzureProvisioningStartWith.attribute.entityOnPremisesImmutableId.label = Entity on premises immutable id
config.AzureProvisioningStartWith.attribute.entityOnPremisesImmutableId.description = Entity on premises immutable id
config.AzureProvisioningStartWith.attribute.manageEntitiesInAzure.label = Manage entities in azure
config.AzureProvisioningStartWith.attribute.manageEntitiesInAzure.description = Manage entities in azure
config.AzureProvisioningStartWith.attribute.entityDisplayName.label = Entity display name
config.AzureProvisioningStartWith.attribute.entityDisplayName.description = Entity display name
config.DuoProvisioningStartWith.attribute.duoExternalSystemConfigId.label = Duo external system
config.DuoProvisioningStartWith.attribute.duoExternalSystemConfigId.description = Duo external system
config.BoxProvisioningStartWith.attribute.boxExternalSystemConfigId.label = Box external system
config.BoxProvisioningStartWith.attribute.boxExternalSystemConfigId.description = Box external system
config.DuoProvisioningStartWith.attribute.duoPattern.label = Duo pattern
config.DuoProvisioningStartWith.attribute.duoPattern.description = Duo pattern
config.DuoProvisioningStartWith.attribute.subjectSourceEntityResolverAttributes.label = Subject source entity resolver attributes
config.DuoProvisioningStartWith.attribute.subjectSourceEntityResolverAttributes.description = Subject source entity resolver attributes
config.GenericConfiguration.attribute.manageGroups.label = Manage groups
config.GenericConfiguration.attribute.manageGroups.description = If this is true, then make changes to groups in the target. If this is false, then we are only dealing with entities and not groups and memberships.
config.GenericConfiguration.attribute.groupNameAttributeValue.label = Group name attribute value
config.GenericConfiguration.attribute.groupNameAttributeValue.description = How are attributes from a group translated to the group attribute in the target. Generally this will be "name" for the fully qualified ID path (e.g. a:b:c) or "extension" if all provisionable groups are in the same folder (or there are no conflicts), then the last part of the ID path will be used (e.g. someGroup)
config.GenericConfiguration.attribute.groupEmailAttributeValue.label = Group email attribute value
config.GenericConfiguration.attribute.groupEmailAttributeValue.description = How are attributes from a group translated to the email attribute of the group in the target. Frequently this will be a script translation e.g. ${grouperProvisioningGroup.getId() + '@domain.com'}
config.GenericConfiguration.attribute.useGroupDescription.label = Use group description
config.GenericConfiguration.attribute.useGroupDescription.description = Map the Grouper group description to the gruop description in the target
config.GenericConfiguration.attribute.manageEntities.label = Manage entities
config.GenericConfiguration.attribute.manageEntities.description = If this is true, then make changes to entities in the target. if this is false, then entities are read-only.
config.DuoProvisioningStartWith.attribute.entityUserName.label = User name
config.DuoProvisioningStartWith.attribute.entityUserName.description = Entity user name
config.DuoProvisioningStartWith.attribute.entityNameSubjectAttribute.label = Name subject attribute or entity resolver name
config.DuoProvisioningStartWith.attribute.entityNameSubjectAttribute.description = Name subject attribute or entity resolver name
config.DuoProvisioningStartWith.attribute.entityLastName.label = Entity last name
config.DuoProvisioningStartWith.attribute.entityLastName.description = Select an entity mapping for the last name
config.DuoProvisioningStartWith.attribute.subjectLastNameAttribute.label = Entity last name subject attribute
config.DuoProvisioningStartWith.attribute.subjectLastNameAttribute.description = Enter a subject attribute name that will be used as the last name in the entity target representation
config.DuoProvisioningStartWith.attribute.entityLastNameTranslationScript.label = Entity last name translation
config.DuoProvisioningStartWith.attribute.entityLastNameTranslationScript.description = Enter a script for last name
config.DuoProvisioningStartWith.attribute.entityFirstName.label = Entity first name
config.DuoProvisioningStartWith.attribute.entityFirstName.description = Select an entity mapping for the first name
config.DuoProvisioningStartWith.attribute.subjectFirstNameAttribute.label = Entity first name subject attribute
config.DuoProvisioningStartWith.attribute.subjectFirstNameAttribute.description = Enter a subject attribute name that will be used as the first name in the entity target representation
config.DuoProvisioningStartWith.attribute.entityFirstNameTranslationScript.label = Entity first name translation
config.DuoProvisioningStartWith.attribute.entityFirstNameTranslationScript.description = Enter a script for first name
config.GenericConfiguration.attribute.entityEmailSubjectAttribute.label = Email subject attribute or entity resolver name
config.GenericConfiguration.attribute.entityEmailSubjectAttribute.description = Map an entity attribute to the target email. This is either the subject source email attribute, a subject identifier, or a translation e.g. ${grouperProvisioningEntity.getId() + '@domain.com'}
config.GenericConfiguration.attribute.entityFamilyName.label = Entity family name
config.GenericConfiguration.attribute.entityFamilyName.description = Select an entity mapping for the last name. Generally this will be a subjectAttribute.
config.GenericConfiguration.attribute.subjectLastNameAttribute.label = Entity family name subject attribute
config.GenericConfiguration.attribute.subjectLastNameAttribute.description = Enter a subject attribute name that will be used as the last name in the entity target representation
config.GenericConfiguration.attribute.entityGivenName.label = Entity given name
config.GenericConfiguration.attribute.entityGivenName.description = Select an entity mapping for the first name. Generally this will be a subjectAttribute.
config.GenericConfiguration.attribute.subjectFirstNameAttribute.label = Entity given name subject attribute
config.GenericConfiguration.attribute.subjectFirstNameAttribute.description = Enter a subject attribute name that will be used as the first name in the entity target representation
config.GenericConfiguration.attribute.groupsRequireMembers.label = Groups require members
config.GenericConfiguration.attribute.groupsRequireMembers.description = If this is set to true, then a group without members will be considered not provisionable and eligible for deletion (depending on delete configuration)
config.GenericConfiguration.attribute.refreshSubjectLinkIfLessThanAmount.label = Refresh subject link
config.GenericConfiguration.attribute.refreshEntityLinkIfLessThanAmount.label = Refresh target entity link
config.GenericConfiguration.attribute.refreshGroupLinkIfLessThanAmount.label = Refresh target group link
config.GenericConfiguration.attribute.refreshGroupLinkIfLessThanAmount.description = Target group links will be refreshed when they can be (full sync retrieve all groups), or when they must be (group link data is not cached in Grouper). Otherwise if there are groups to operate on, if there are only a few (less than this amount), then refresh the group link, otherwise for expediency just use the cached data. Generally you do not need to edit this value. This is an integer.
config.GenericConfiguration.attribute.groupAttributeValueCacheHas.label = Use group attribute value cache
config.GenericConfiguration.attribute.groupAttributeValueCacheHas.description = If you need to cache something in the database from the target or from grouper. There are four buckets to store data in
config.GenericConfiguration.attribute.groupAttributeValueCache0has.label = Use group attribute value cache 0
config.GenericConfiguration.attribute.groupAttributeValueCache0has.description = If you need to cache something in the database (grouper_sync_group.group_from_id2 column) from the target or from grouper.
config.GenericConfiguration.attribute.groupAttributeValueCache1has.label = Use group attribute value cache 1
config.GenericConfiguration.attribute.groupAttributeValueCache1has.description = If you need to cache something in the database (grouper_sync_group.group_from_id3 column) from the target or from grouper.
config.GenericConfiguration.attribute.groupAttributeValueCache2has.label = Use group attribute value cache 2
config.GenericConfiguration.attribute.groupAttributeValueCache2has.description = If you need to cache something in the database (grouper_sync_group.group_to_id2 column) from the target or from grouper.
config.GenericConfiguration.attribute.groupAttributeValueCache3has.label = Use group attribute value cache 3
config.GenericConfiguration.attribute.groupAttributeValueCache3has.description = If you need to cache something in the database (grouper_sync_group.group_to_id3 column) from the target or from grouper.
config.GenericConfiguration.attribute.groupAttributeValueCache0source.label = Group attribute value cache 0 source
config.GenericConfiguration.attribute.groupAttributeValueCache0source.description = Cache the data from Grouper or from target. You would pick Grouper if there is something in Grouper that might be needed during a delete that might not be available when the data is not in Grouper anymore (e.g. the search attribute). You would pick target when there is something in the target that is needed and maybe to help with performance (e.g. the UUID or DN).
config.GenericConfiguration.attribute.groupAttributeValueCache1source.label = Group attribute value cache 1 source
config.GenericConfiguration.attribute.groupAttributeValueCache1source.description = $$config.GenericConfiguration.attribute.groupAttributeValueCache0source.description$$
config.GenericConfiguration.attribute.groupAttributeValueCache2source.label = Group attribute value cache 2 source
config.GenericConfiguration.attribute.groupAttributeValueCache2source.description = $$config.GenericConfiguration.attribute.groupAttributeValueCache0source.description$$
config.GenericConfiguration.attribute.groupAttributeValueCache3source.label = Group attribute value cache 3 source
config.GenericConfiguration.attribute.groupAttributeValueCache3source.description = $$config.GenericConfiguration.attribute.groupAttributeValueCache0source.description$$
config.GenericConfiguration.attribute.groupAttributeValueCache0type.label = Group attribute value cache 0 type
config.GenericConfiguration.attribute.groupAttributeValueCache0type.description = groupAttribute: Pick an attribute from the object model to cache
groupObject: Store the entire representation of the group (target format). Skip the membership attribute if applicable, and truncate large attributes (if space not available).
translationScript: Translate data from the Grouper side to store in the database cache
config.GenericConfiguration.attribute.groupAttributeValueCache1type.label = Group attribute value cache 1 type
config.GenericConfiguration.attribute.groupAttributeValueCache1type.description = $$config.GenericConfiguration.attribute.groupAttributeValueCache0type.description$$
config.GenericConfiguration.attribute.groupAttributeValueCache2type.label = Group attribute value cache 2 type
config.GenericConfiguration.attribute.groupAttributeValueCache2type.description = $$config.GenericConfiguration.attribute.groupAttributeValueCache0type.description$$
config.GenericConfiguration.attribute.groupAttributeValueCache3type.label = Group attribute value cache 3 type
config.GenericConfiguration.attribute.groupAttributeValueCache3type.description = $$config.GenericConfiguration.attribute.groupAttributeValueCache0type.description$$
config.GenericConfiguration.attribute.groupAttributeValueCache0groupAttribute.label = Group attribute value cache 0 group attribute
config.GenericConfiguration.attribute.groupAttributeValueCache0groupAttribute.description = Pick an attribute from the provisioningGroup object (Grouper or target depending on the source) to store in the database cache
config.GenericConfiguration.attribute.groupAttributeValueCache1groupAttribute.label = Group attribute value cache 1 attribute
config.GenericConfiguration.attribute.groupAttributeValueCache1groupAttribute.description = $$config.GenericConfiguration.attribute.groupAttributeValueCache0groupAttribute.description$$
config.GenericConfiguration.attribute.groupAttributeValueCache2groupAttribute.label = Group attribute value cache 2 attribute
config.GenericConfiguration.attribute.groupAttributeValueCache2groupAttribute.description = $$config.GenericConfiguration.attribute.groupAttributeValueCache0groupAttribute.description$$
config.GenericConfiguration.attribute.groupAttributeValueCache3groupAttribute.label = Group attribute value cache 3 attribute
config.GenericConfiguration.attribute.groupAttributeValueCache3groupAttribute.description = $$config.GenericConfiguration.attribute.groupAttributeValueCache0groupAttribute.description$$
config.GenericConfiguration.attribute.groupAttributeValueCache0translationScript.label = Group attribute value cache 0 script
config.GenericConfiguration.attribute.groupAttributeValueCache0translationScript.description = If your source is 'Grouper' you can refer to grouper fields ${grouperProvisioningGroup.name} or attributes ${grouperProvisioningGroup.retrieveAttributeValue('someAttrName')}
If your source is 'target', you can refer to target fields ${targetGroup.name} or attributes ${targetGroup.retrieveAttributeValue('someAttrName')}
config.GenericConfiguration.attribute.groupAttributeValueCache1translationScript.label = Group attribute value cache 1 script
config.GenericConfiguration.attribute.groupAttributeValueCache1translationScript.description = $$config.GenericConfiguration.attribute.groupAttributeValueCache0translationScript.description$$
config.GenericConfiguration.attribute.groupAttributeValueCache2translationScript.label = Group attribute value cache 2 script
config.GenericConfiguration.attribute.groupAttributeValueCache2translationScript.description = $$config.GenericConfiguration.attribute.groupAttributeValueCache0translationScript.description$$
config.GenericConfiguration.attribute.groupAttributeValueCache3translationScript.label = Group attribute value cache 3 script
config.GenericConfiguration.attribute.groupAttributeValueCache3translationScript.description = $$config.GenericConfiguration.attribute.groupAttributeValueCache0translationScript.description$$
config.GenericConfiguration.attribute.entityAttributeValueCacheHas.label = Use entity attribute value cache
config.GenericConfiguration.attribute.entityAttributeValueCacheHas.description = If you need to cache something in the database from the target or from grouper. There are four buckets to store data in
config.GenericConfiguration.attribute.entityAttributeValueCache0auto.label = Entity attribute value cache 0 auto-USDU
config.GenericConfiguration.attribute.entityAttributeValueCache0auto.description = This should generally be left as the default (true), USDU should update the value of this cache item from the subject source.
config.GenericConfiguration.attribute.entityAttributeValueCache1auto.label = Entity attribute value cache 1 auto-USDU
config.GenericConfiguration.attribute.entityAttributeValueCache1auto.description = This should generally be left as the default (true), USDU should update the value of this cache item from the subject source.
config.GenericConfiguration.attribute.entityAttributeValueCache2auto.label = Entity attribute value cache 2 auto-USDU
config.GenericConfiguration.attribute.entityAttributeValueCache2auto.description = This should generally be left as the default (true), USDU should update the value of this cache item from the subject source.
config.GenericConfiguration.attribute.entityAttributeValueCache3auto.label = Entity attribute value cache 3 auto-USDU
config.GenericConfiguration.attribute.entityAttributeValueCache3auto.description = This should generally be left as the default (true), USDU should update the value of this cache item from the subject source.
config.GenericConfiguration.attribute.entityAttributeValueCache0nullChecksInScript.label = Entity attribute value cache 0 check for nulls in script
config.GenericConfiguration.attribute.entityAttributeValueCache0nullChecksInScript.description = Any null variables throw an exception in the JEXL translation, so this is a place you can check for null variables and just have it return null if so. Default value is 'false'.
config.GenericConfiguration.attribute.entityAttributeValueCache1nullChecksInScript.label = Entity attribute value cache 1 check for nulls in script
config.GenericConfiguration.attribute.entityAttributeValueCache1nullChecksInScript.description = Any null variables throw an exception in the JEXL translation, so this is a place you can check for null variables and just have it return null if so. Default value is 'false'.
config.GenericConfiguration.attribute.entityAttributeValueCache2nullChecksInScript.label = Entity attribute value cache 2 check for nulls in script
config.GenericConfiguration.attribute.entityAttributeValueCache2nullChecksInScript.description = Any null variables throw an exception in the JEXL translation, so this is a place you can check for null variables and just have it return null if so. Default value is 'false'.
config.GenericConfiguration.attribute.entityAttributeValueCache3nullChecksInScript.label = Entity attribute value cache 3 check for nulls in script
config.GenericConfiguration.attribute.entityAttributeValueCache3nullChecksInScript.description = Any null variables throw an exception in the JEXL translation, so this is a place you can check for null variables and just have it return null if so. Default value is 'false'.
config.GenericConfiguration.attribute.entityAttributeValueCache0translationContinueCondition.label = Entity attribute value cache 0 translation continue condition
config.GenericConfiguration.attribute.entityAttributeValueCache0translationContinueCondition.description = Condition that must be true in order to continue translation
config.GenericConfiguration.attribute.entityAttributeValueCache1translationContinueCondition.label = Entity attribute value cache 1 translation continue condition
config.GenericConfiguration.attribute.entityAttributeValueCache1translationContinueCondition.description = Condition that must be true in order to continue translation
config.GenericConfiguration.attribute.entityAttributeValueCache2translationContinueCondition.label = Entity attribute value cache 2 translation continue condition
config.GenericConfiguration.attribute.entityAttributeValueCache2translationContinueCondition.description = Condition that must be true in order to continue translation
config.GenericConfiguration.attribute.entityAttributeValueCache3translationContinueCondition.label = Entity attribute value cache 3 translation continue condition
config.GenericConfiguration.attribute.entityAttributeValueCache3translationContinueCondition.description = Condition that must be true in order to continue translation
config.GenericConfiguration.attribute.entityAttributeValueCache0has.label = Use entity attribute value cache 0
config.GenericConfiguration.attribute.entityAttributeValueCache0has.description = If you need to cache something in the database (grouper_sync_member.member_from_id2 column) from the target or from grouper.
config.GenericConfiguration.attribute.entityAttributeValueCache1has.label = Use entity attribute value cache 1
config.GenericConfiguration.attribute.entityAttributeValueCache1has.description = If you need to cache something in the database (grouper_sync_member.member_from_id3 column) from the target or from grouper.
config.GenericConfiguration.attribute.entityAttributeValueCache2has.label = Use entity attribute value cache 2
config.GenericConfiguration.attribute.entityAttributeValueCache2has.description = If you need to cache something in the database (grouper_sync_member.member_to_id2 column) from the target or from grouper.
config.GenericConfiguration.attribute.entityAttributeValueCache3has.label = Use entity attribute value cache 3
config.GenericConfiguration.attribute.entityAttributeValueCache3has.description = If you need to cache something in the database (grouper_sync_member.member_to_id3 column) from the target or from grouper.
config.GenericConfiguration.attribute.entityAttributeValueCache0source.label = Entity attribute value cache 0 source
config.GenericConfiguration.attribute.entityAttributeValueCache0source.description = Cache the data from Grouper or from target. You would pick Grouper if there is something in Grouper that might be needed during a delete that might not be available when the data is not in Grouper anymore (e.g. the search attribute). You would pick target when there is something in the target that is needed and maybe to help with performance (e.g. the UUID or DN).
config.GenericConfiguration.attribute.entityAttributeValueCache1source.label = Entity attribute value cache 1 source
config.GenericConfiguration.attribute.entityAttributeValueCache1source.description = $$config.GenericConfiguration.attribute.entityAttributeValueCache0source.description$$
config.GenericConfiguration.attribute.entityAttributeValueCache2source.label = Entity attribute value cache 2 source
config.GenericConfiguration.attribute.entityAttributeValueCache2source.description = $$config.GenericConfiguration.attribute.entityAttributeValueCache0source.description$$
config.GenericConfiguration.attribute.entityAttributeValueCache3source.label = Entity attribute value cache 3 source
config.GenericConfiguration.attribute.entityAttributeValueCache3source.description = $$config.GenericConfiguration.attribute.entityAttributeValueCache0source.description$$
config.GenericConfiguration.attribute.entityAttributeValueCache0type.label = Entity attribute value cache 0 type
config.GenericConfiguration.attribute.entityAttributeValueCache0type.description = entityAttribute: Pick an attribute from the object model to cache
entityObject: Store the entire representation of the entity (target format). Skip the membership attribute if applicable, and truncate large attributes (if space not available).
subjectTranslationScript: Translate data from the Subject API for the entity being provisioned. e.g. ${subject.getAttributeValue('email')} Note, if you are using 'built-in' fields you don't need this... e.g. email, subjectId, subjectIdentifier0, subjectIdentifier1, subjectIdentifier2, you can just translate from a grouper entity attribute
translationScript: Translate data from the Grouper side to store in the database cache
config.GenericConfiguration.attribute.entityAttributeValueCache1type.label = Entity attribute value cache 1 type
config.GenericConfiguration.attribute.entityAttributeValueCache1type.description = $$config.GenericConfiguration.attribute.entityAttributeValueCache0type.description$$
config.GenericConfiguration.attribute.entityAttributeValueCache2type.label = Entity attribute value cache 2 type
config.GenericConfiguration.attribute.entityAttributeValueCache2type.description = $$config.GenericConfiguration.attribute.entityAttributeValueCache0type.description$$
config.GenericConfiguration.attribute.entityAttributeValueCache3type.label = Entity attribute value cache 3 type
config.GenericConfiguration.attribute.entityAttributeValueCache3type.description = $$config.GenericConfiguration.attribute.entityAttributeValueCache0type.description$$
config.GenericConfiguration.attribute.entityAttributeValueCache0entityAttribute.label = Entity attribute value cache 0 entity attribute
config.GenericConfiguration.attribute.entityAttributeValueCache0entityAttribute.description = Pick an attribute from the provisioningEntity object (Grouper or target depending on the source) to store in the database cache
config.GenericConfiguration.attribute.entityAttributeValueCache1entityAttribute.label = Entity attribute value cache 1 attribute
config.GenericConfiguration.attribute.entityAttributeValueCache1entityAttribute.description = $$config.GenericConfiguration.attribute.entityAttributeValueCache0entityAttribute.description$$
config.GenericConfiguration.attribute.entityAttributeValueCache2entityAttribute.label = Entity attribute value cache 2 attribute
config.GenericConfiguration.attribute.entityAttributeValueCache2entityAttribute.description = $$config.GenericConfiguration.attribute.entityAttributeValueCache0entityAttribute.description$$
config.GenericConfiguration.attribute.entityAttributeValueCache3entityAttribute.label = Entity attribute value cache 3 attribute
config.GenericConfiguration.attribute.entityAttributeValueCache3entityAttribute.description = $$config.GenericConfiguration.attribute.entityAttributeValueCache0entityAttribute.description$$
config.GenericConfiguration.attribute.entityAttributeValueCache0translationScript.label = Entity attribute value cache 0 script
config.GenericConfiguration.attribute.entityAttributeValueCache0translationScript.description = If your source is 'Grouper' and type is 'translationScript' you can refer to grouper fields ${grouperProvisioningEntity.name} or attributes ${grouperProvisioningEntity.retrieveAttributeValue('someAttrName')}
If your source is 'Grouper' and the type is 'subjectTranslationScript', you can use fields or attributes from the Subject API subject, e.g. ${subject.name} or ${subject.getAttributeValue('email')}
If your source is 'target', you can refer to target fields ${targetEntity.name} or attributes ${targetEntity.retrieveAttributeValue('someAttrName')}
config.GenericConfiguration.attribute.entityAttributeValueCache1translationScript.label = Entity attribute value cache 1 script
config.GenericConfiguration.attribute.entityAttributeValueCache1translationScript.description = $$config.GenericConfiguration.attribute.entityAttributeValueCache0translationScript.description$$
config.GenericConfiguration.attribute.entityAttributeValueCache2translationScript.label = Entity attribute value cache 2 script
config.GenericConfiguration.attribute.entityAttributeValueCache2translationScript.description = $$config.GenericConfiguration.attribute.entityAttributeValueCache0translationScript.description$$
config.GenericConfiguration.attribute.entityAttributeValueCache3translationScript.label = Entity attribute value cache 3 script
config.GenericConfiguration.attribute.entityAttributeValueCache3translationScript.description = $$config.GenericConfiguration.attribute.entityAttributeValueCache0translationScript.description$$
config.GenericConfiguration.attribute.targetGroupAttribute.i.name.label = __i+1__ - name
config.GenericConfiguration.attribute.targetGroupAttribute.i.name.description = Attribute name is the key in the key/value pairs for this group
config.LdapProvisionerConfiguration.attribute.targetGroupAttribute.i.name.description = LDAP group attribute name. The attribute named ldap_dn is the group DN.
config.SqlProvisionerConfiguration.attribute.targetGroupAttribute.i.name.description = Column name for this column, or attribute name if the attribute is in a separate attributes table
config.GenericConfiguration.attribute.option.targetGroupAttribute.i.groupAttributePrefix = Group
config.GenericConfiguration.attribute.option.targetMembershipAttribute.i.membershipAttributePrefix = Membership
config.GenericConfiguration.attribute.option.targetEntityAttribute.i.entityAttributePrefix = Entity
config.GenericConfiguration.attribute.option.targetGroupAttribute.i.attributePrefix = attr
config.AzureProvisionerConfiguration.attribute.targetGroupAttribute.i.name.description = Attribute name is the key in the key/value pairs for this group. Generally you will have metadata for group type so you should not have attributes for: groupTypeMailEnabled, groupTypeMailEnabledSecurity, groupTypeSecurity, groupTypeUnified, isAssignableToRole.
config.GenericConfiguration.attribute.targetMembershipAttribute.i.name.label = __i+1__ - name
config.GenericConfiguration.attribute.targetMembershipAttribute.i.name.description = Attribute name is the key in the key/value pairs for this group
config.GenericConfiguration.attribute.targetMembershipAttribute.i.showAdvancedAttribute.label = __i+1__ - advanced options
config.GenericConfiguration.attribute.targetMembershipAttribute.i.showAdvancedAttribute.description = Show less common options like value type, CRUD control, validation, etc
config.GenericConfiguration.attribute.targetGroupAttribute.i.showAdvancedAttribute.label = __i+1__ - advanced options
config.GenericConfiguration.attribute.targetGroupAttribute.i.showAdvancedAttribute.description = Show less common options like value type, CRUD control, validation, etc
config.GenericConfiguration.attribute.targetEntityAttribute.i.showAdvancedAttribute.label = __i+1__ - advanced options
config.GenericConfiguration.attribute.targetEntityAttribute.i.showAdvancedAttribute.description = Show less common options like value type, CRUD control, validation, etc
config.GenericConfiguration.attribute.targetMembershipAttribute.i.showAttributeCrud.label = __i+1__ - customize CRUD
config.GenericConfiguration.attribute.targetMembershipAttribute.i.showAttributeCrud.description = By default this attribute will follow the same Create/Read/Update/Delete settings as the enclosing object. If the provisioner cannot perform the configured action it will not (e.g. a UUID for a web service which is readonly). Customize the configuration here.
config.GenericConfiguration.attribute.targetGroupAttribute.i.showAttributeCrud.label = __i+1__ - customize CRUD
config.GenericConfiguration.attribute.targetGroupAttribute.i.showAttributeCrud.description = By default this attribute will follow the same Create/Read/Update/Delete settings as the enclosing object. If the provisioner cannot perform the configured action it will not (e.g. a UUID for a web service which is readonly). Customize the configuration here. Note if this is the membership attribute for provisioning type 'groupAttributes' then the membership CRUD will be used instead of this attribute CRUD.
config.GenericConfiguration.attribute.targetEntityAttribute.i.showAttributeCrud.label = __i+1__ - customize CRUD
config.GenericConfiguration.attribute.targetEntityAttribute.i.showAttributeCrud.description = By default this attribute will follow the same Create/Read/Update/Delete settings as the enclosing object. If the provisioner cannot perform the configured action it will not (e.g. a UUID for a web service which is readonly). Customize the configuration here. Note if this is the membership attribute for provisioning type 'entityAttributes' then the membership CRUD will be used instead of this attribute CRUD.
config.GenericConfiguration.attribute.targetMembershipAttribute.i.showAttributeValueSettings.label = __i+1__ - show value settings
config.GenericConfiguration.attribute.targetMembershipAttribute.i.showAttributeValueSettings.description = Show less common options like value type, default value, etc
config.GenericConfiguration.attribute.targetGroupAttribute.i.showAttributeValueSettings.label = __i+1__ - show value settings
config.GenericConfiguration.attribute.targetGroupAttribute.i.showAttributeValueSettings.description = Show less common options like value type, default value, multi-valued, etc
config.GenericConfiguration.attribute.targetEntityAttribute.i.showAttributeValueSettings.label = __i+1__ - show value settings
config.GenericConfiguration.attribute.targetEntityAttribute.i.showAttributeValueSettings.description = Show less common options like value type, default value, multi-valued, etc
config.GenericConfiguration.attribute.targetMembershipAttribute.i.showAttributeValidation.label = __i+1__ - show validation settings
config.GenericConfiguration.attribute.targetMembershipAttribute.i.showAttributeValidation.description = If there is validation on this attribute (which is not built in), then customize there
config.GenericConfiguration.attribute.targetGroupAttribute.i.showAttributeValidation.label = __i+1__ - show validation settings
config.GenericConfiguration.attribute.targetGroupAttribute.i.showAttributeValidation.description = If there is validation on this attribute (which is not built in), then customize there
config.GenericConfiguration.attribute.targetEntityAttribute.i.showAttributeValidation.label = __i+1__ - show validation settings
config.GenericConfiguration.attribute.targetEntityAttribute.i.showAttributeValidation.description = If there is validation on this attribute (which is not built in), then customize there
config.GenericConfiguration.attribute.targetMembershipAttribute.i.valueType.label = __i+1__ - value type
config.GenericConfiguration.attribute.targetMembershipAttribute.i.valueType.description = Generally this is going to be a string (text). int means 4 byte signed integer (-2 billion to 2 billion). long is for large integers
config.GenericConfiguration.attribute.targetMembershipAttribute.i.select.label = __i+1__ - select
config.GenericConfiguration.attribute.targetMembershipAttribute.i.select.description = Should this attribute be read from the target? If it is only used for inserting then it is not necessary. Otherwise generally you would select the attribute.
config.GenericConfiguration.attribute.targetMembershipAttribute.i.insert.label = __i+1__ - insert
config.GenericConfiguration.attribute.targetMembershipAttribute.i.insert.description = Should this attribute be set when creating objects in the target? Note: if the provisioner knows that the attribute is readonly it will not try to insert it. e.g. for a UUID of a web service.
config.GenericConfiguration.attribute.targetMembershipAttribute.i.update.label = __i+1__ - update
config.GenericConfiguration.attribute.targetMembershipAttribute.i.update.description = Should this attribute be changed when the group is updated.
config.GenericConfiguration.attribute.targetMembershipAttribute.i.ignoreIfMatchesValue.label = __i+1__ - ignore if matches value
config.GenericConfiguration.attribute.targetMembershipAttribute.i.ignoreIfMatchesValue.description = If the group field or attribute value matches any of these values then ignore it (do not delete or update). Comma separated values, escaped comma is U+002C
config.GenericConfiguration.attribute.targetMembershipAttribute.i.multiValued.label = __i+1__ - multi-valued attribute
config.GenericConfiguration.attribute.targetMembershipAttribute.i.multiValued.description = If this attribute is multi-valued in the target. Generally attributes are single-valued. The membership attribute must be multi-valued if provisioning groupAttributes.
config.GenericConfiguration.attribute.targetMembershipAttribute.i.translateExpressionCreateOnly.label = __i+1__ - translation expression insert only
config.GenericConfiguration.attribute.targetMembershipAttribute.i.translateExpressionCreateOnly.description = If you have a different translation from Grouper to Target for updates as opposed to inserts, put the insert translation here. Available variables:- $$provisioning.helper.variable.grouperProvisioningGroup$$
- $$provisioning.helper.variable.gcGrouperSyncGroup$$
- $$provisioning.helper.variable.provisioningGroupWrapper$$
- $$provisioning.helper.variable.grouperTargetGroup$$
- $$provisioning.helper.variable.grouperProvisioningEntity$$
- $$provisioning.helper.variable.gcGrouperSyncMember$$
- $$provisioning.helper.variable.provisioningEntityWrapper
- provisioning.helper.variable.grouperTargetEntity$$
config.GenericConfiguration.attribute.targetMembershipAttribute.i.translateExpressionTypeCreateOnly.label = __i+1__ - translation type insert only
config.GenericConfiguration.attribute.targetMembershipAttribute.i.translateExpressionTypeCreateOnly.description = If this is a simple (insert only) translation straight from field, then select GrouperProvisioningGroupField since you do not have to worry about a script typo and the performance is better. Or if the attribute should have static values, then select staticValues. Otherwise configure a translation script.
config.GenericConfiguration.attribute.targetMembershipAttribute.i.translateFromGrouperProvisioningGroupFieldCreateOnly.label = __i+1__ - translate from grouperProvisioningGroup field insert only
config.GenericConfiguration.attribute.targetMembershipAttribute.i.translateFromGrouperProvisioningGroupFieldCreateOnly.description = Select the field (for insert only) from grouperProvisioningGroup to copy data from. id: is the UUID of the group, idIndex: numeric indentifier, displayExtension: last part of the name e.g. for display in the UI, displayName: full path of of the display name e.g. for display in the UI, extension: last part of the system name, name: full path of the system name, description: group description
config.GenericConfiguration.attribute.targetMembershipAttribute.i.translateFromStaticValuesCreateOnly.label = __i+1__ - translate from static values insert only
config.GenericConfiguration.attribute.targetMembershipAttribute.i.translateFromStaticValuesCreateOnly.description = Specify static value (for insert only). Value should be comma-separated if this is a multi-valued attribute.
config.GenericConfiguration.attribute.targetMembershipAttribute.i.translateExpressionType.label = __i+1__ - translation type
config.GenericConfiguration.attribute.targetMembershipAttribute.i.translateExpressionType.description = If this is a simple translation straight from field, then select GrouperProvisioningGroupField since you do not have to worry about a script typo and the performance is better. Or if the attribute should have static values, then select staticValues. Otherwise configure a translation script.
config.GenericConfiguration.attribute.targetMembershipAttribute.i.translateFromGrouperProvisioningGroupField.label = __i+1__ - translate from grouperProvisioningGroup field
config.GenericConfiguration.attribute.targetMembershipAttribute.i.translateFromGrouperProvisioningGroupField.description = Select the field from grouperProvisioningGroup to copy data from. id: is the UUID of the group, idIndex: numeric indentifier, displayExtension: last part of the name e.g. for display in the UI, displayName: full path of of the display name e.g. for display in the UI, extension: last part of the system name, name: full path of the system name, description: group description
config.GenericConfiguration.attribute.targetMembershipAttribute.i.translateFromGrouperTargetGroupField.label = __i+1__ - translate from grouperTargetGroup field
config.GenericConfiguration.attribute.targetMembershipAttribute.i.translateFromGrouperTargetGroupField.description = Select the field from grouperTargetGroup to copy data from
config.GenericConfiguration.attribute.targetMembershipAttribute.i.translateFromGrouperTargetEntityField.label = __i+1__ - translate from grouperTargetEntity field
config.GenericConfiguration.attribute.targetMembershipAttribute.i.translateFromGrouperTargetEntityField.description = Select the field from grouperTargetEntity to copy data from
config.GenericConfiguration.attribute.targetMembershipAttribute.i.translateFromStaticValues.label = __i+1__ - translate from static values
config.GenericConfiguration.attribute.targetMembershipAttribute.i.translateFromStaticValues.description = Specify static value. Value should be comma-separated if this is a multi-valued attribute.
config.GenericConfiguration.attribute.targetMembershipAttribute.i.translateExpression.label = __i+1__ - translation expression
config.GenericConfiguration.attribute.targetMembershipAttribute.i.translateExpression.description = This is the translation for this attribute from Grouper to Target format during Group updates and inserts (if not overridden by "insert only" translation). Available variables:- $$provisioning.helper.variable.grouperProvisioningGroup$$
- $$provisioning.helper.variable.gcGrouperSyncGroup$$
- $$provisioning.helper.variable.provisioningGroupWrapper$$
- $$provisioning.helper.variable.grouperTargetGroup$$
- $$provisioning.helper.variable.grouperProvisioningEntity$$
- $$provisioning.helper.variable.gcGrouperSyncMember$$
- $$provisioning.helper.variable.provisioningEntityWrapper$$
- $$provisioning.helper.variable.grouperTargetEntity$$
config.GenericConfiguration.attribute.targetMembershipAttribute.i.nullChecksInScript.label = __i+1__ - check for nulls in script
config.GenericConfiguration.attribute.targetMembershipAttribute.i.nullChecksInScript.description = Any null variables throw an exception in the JEXL translation, so this is a place you can check for null variables and just have it return null if so.
config.GenericConfiguration.attribute.targetMembershipAttribute.i.translationContinueCondition.label = __i+1__ - translation continue condition
config.GenericConfiguration.attribute.targetMembershipAttribute.i.defaultValue.label = __i+1__ - default value
config.GenericConfiguration.attribute.targetMembershipAttribute.i.defaultValue.description = If there should always be a value in the target, then list the value here to assign to the field/attribute if it is blank. Use <emptyString> if the default value should be an empty string.
config.GenericConfiguration.attribute.targetMembershipAttribute.i.required.label = __i+1__ - required
config.GenericConfiguration.attribute.targetMembershipAttribute.i.required.description = If this field is required, then the Group is invalid and will not be provisioned if the value is missing
config.GenericConfiguration.attribute.targetMembershipAttribute.i.maxlength.label = __i+1__ - max length
config.GenericConfiguration.attribute.targetMembershipAttribute.i.maxlength.description = If there is a maximum length requirement for this field in the target, assign the integer of maximum number of characters. If this field value size is greater than the max length, then the Group is invalid and will not be provisioned
config.GenericConfiguration.attribute.targetMembershipAttribute.i.validExpression.label = __i+1__ - validation expression
config.GenericConfiguration.attribute.targetMembershipAttribute.i.validExpression.description = If there is a complex validation by JEXL script enter that here. The available variables are "value" (each individual value), and "valueMultiple" (the set of multiple values if this attribute supports multiple values. Return true for valid or false for invalid. Example to see if numeric value is positive: ${value>0}
config.GenericConfiguration.attribute.targetMembershipAttribute.i.translateFromGrouperProvisioningEntityField.label = __i+1__ - translate from grouperProvisioningEntity field
config.GenericConfiguration.attribute.targetMembershipAttribute.i.translateFromGrouperProvisioningEntityField.description = Select the field from grouperProvisioningEntity to copy data from. id: is the UUID of the entity, email: email address of the user, loginid: netId to log in to systems, name: first and last name, subjectId: should be an opaque unchanging identifier, subjectSourceId: sourceId of the user, description: description that is configured in the subject source, subjectIdentifier0: the first identifier of the subject (might be a netId)
provisioning.helper.variable.grouperProvisioningGroup = grouperProvisioningGroup (ProvisioningGroup.java): this is the Grouper representation of the group. Fields include: id, idIndex, name, displayName. Attributes include: description. Here is an example of a regex replace all non alphanumeric ids:
${grouperProvisioningGroup.name.replaceAll('[^a-zA-Z0-9]', '_')}
Retrieve attributes:
${grouperProvisioningGroup.retrieveAttributeValueString('someAttr')}
Retrieve metadata:
${grouperProvisioningGroup.retrieveAttributeValueString('md_grouper_allowOnlyMembersToPost')}
provisioning.helper.variable.gcGrouperSyncGroup = gcGrouperSyncGroup (GcGrouperSyncGroup.java): this is the "sync" group object. Fields include: extension, groupAttributeValueCache0, groupAttributeValueCache1, groupAttributeValueCache2, groupAttributeValueCache3, id, idIndex, idIndexString, name
provisioning.helper.variable.provisioningGroupWrapper = provisioningGroupWrapper (ProvisioningGroupWrapper.java): holds references to all group data. Fields include: create, delete, recalc, gcGrouperSyncGroup, grouperProvisioningGroup, grouperTargetGroup, targetProvisioningGroup, targetNativeGroup
provisioning.helper.variable.grouperTargetGroup = grouperTargetGroup (ProvisioningGroup.java): generally this is not needed since it is being built by the translation process. Attributes depend on the provisioner.
${grouperTargetGroup.retrieveAttributeValueString('someAttr')
provisioning.helper.variable.grouperProvisioningEntity = grouperProvisioningEntity (ProvisioningEntity.java): this is the Grouper representation of the entity. Fields include: email (needs configuration), id, loginId (needs configuration), name, subjectId. Attributes include: subjectSourceId, description, subjectIdentifier0. Retrieve attributes:
${grouperProvisioningEntity.retrieveAttributeValueString('someAttr')}
Retrieve metadata:
${grouperProvisioningEntity.retrieveAttributeValueString('md_grouper_allowOnlyMembersToPost')}
provisioning.helper.variable.gcGrouperSyncMember = gcGrouperSyncMember (GcGrouperSyncMember.java): this is the "sync" entity object. Fields include: entityAttributeValueCache0, entityAttributeValueCache1, entityAttributeValueCache2, entityAttributeValueCache3
provisioning.helper.variable.provisioningEntityWrapper = provisioningEntityWrapper (ProvisioningGroupWrapper.java): holds references to all entity data. Fields include: create, delete, recalc, gcGrouperSyncMember, grouperProvisioningEntity, grouperTargetEntity, targetProvisioningEntity, targetNativeEntity
provisioning.helper.variable.grouperTargetEntity = grouperTargetEntity (ProvisioningEntity.java): generally this is not needed since it is being built by the translation process. Attributes depend on the provisioner. ${grouperTargetEntity.retrieveAttributeValueString('someAttr')
config.GenericConfiguration.attribute.targetGroupAttribute.i.valueType.label = __i+1__ - value type
config.GenericConfiguration.attribute.targetGroupAttribute.i.valueType.description = Generally this is going to be a string (text). int means 4 byte signed integer (-2 billion to 2 billion). long is for large integers
config.GenericConfiguration.attribute.targetGroupAttribute.i.select.label = __i+1__ - select
config.GenericConfiguration.attribute.targetGroupAttribute.i.select.description = Should this attribute be read from the target? If it is only used for inserting then it is not necessary. Otherwise generally you would select the attribute. This defaults to if the group object is selected. Note, if this is the memberships attribute in the provisioning type 'groupAttributes' then the CRUD controls on memberships will take effect instead of this attribute's CRUD.
config.GenericConfiguration.attribute.targetGroupAttribute.i.insert.label = __i+1__ - insert
config.GenericConfiguration.attribute.targetGroupAttribute.i.insert.description = Should this attribute be set when creating objects in the target? Note: if the provisioner knows that the attribute is readonly it will not try to insert it. e.g. for a UUID of a web service. This defaults to if the group object is selected. Note, if this is the memberships attribute in the provisioning type 'groupAttributes' then the CRUD controls on memberships will take effect instead of this attribute's CRUD.
config.GenericConfiguration.attribute.targetGroupAttribute.i.update.label = __i+1__ - update
config.GenericConfiguration.attribute.targetGroupAttribute.i.update.description = Should this attribute be changed when the group is updated. This defaults to if the group object is selected. Note, if this is the memberships attribute in the provisioning type 'groupAttributes' then the CRUD controls on memberships will take effect instead of this attribute's CRUD.
config.GenericConfiguration.attribute.targetGroupAttribute.i.ignoreIfMatchesValue.label = __i+1__ - ignore if matches value
config.GenericConfiguration.attribute.targetGroupAttribute.i.ignoreIfMatchesValue.description = If the group field or attribute value matches any of these values then ignore it (do not delete or update). Comma separated values, escaped comma is U+002C
config.GenericConfiguration.attribute.targetGroupAttribute.i.multiValued.label = __i+1__ - multi-valued attribute
config.GenericConfiguration.attribute.targetGroupAttribute.i.multiValued.description = If this attribute is multi-valued in the target. Generally attributes are single-valued. The membership attribute must be multi-valued if provisioning groupAttributes.
config.GenericConfiguration.attribute.targetGroupAttribute.i.translateExpressionCreateOnly.label = __i+1__ - translation expression insert only
config.GenericConfiguration.attribute.targetGroupAttribute.i.translateExpressionCreateOnly.description = If you have a different translation from Grouper to Target for updates as opposed to inserts, put the insert translation here. Available variables:- $$provisioning.helper.variable.grouperProvisioningGroup$$
- $$provisioning.helper.variable.gcGrouperSyncGroup$$
- $$provisioning.helper.variable.provisioningGroupWrapper$$
- $$provisioning.helper.variable.grouperTargetGroup$$
config.GenericConfiguration.attribute.targetGroupAttribute.i.translateExpressionTypeCreateOnly.label = __i+1__ - translation type insert only
config.GenericConfiguration.attribute.targetGroupAttribute.i.translateExpressionTypeCreateOnly.description = If this is a simple (insert only) translation straight from field, then select GrouperProvisioningGroupField since you do not have to worry about a script typo and the performance is better. Or if the attribute should have static values, then select staticValues. Otherwise configure a translation script.
config.LdapProvisionerConfiguration.attribute.targetGroupAttribute.i.translateExpressionTypeCreateOnly.description = $$config.GenericConfiguration.attribute.targetGroupAttribute.i.translateExpressionTypeCreateOnly.description$$ $$provisioningLdapTranslationAdvice$$
config.GenericConfiguration.attribute.targetGroupAttribute.i.translateFromGrouperProvisioningGroupFieldCreateOnly.label = __i+1__ - translate from grouperProvisioningGroup field insert only
config.GenericConfiguration.attribute.targetGroupAttribute.i.translateFromGrouperProvisioningGroupFieldCreateOnly.description = Select the field (for insert only) from grouperProvisioningGroup to copy data from. id: is the UUID of the group, idIndex: numeric indentifier, displayExtension: last part of the name e.g. for display in the UI, displayName: full path of of the display name e.g. for display in the UI, extension: last part of the system name, name: full path of the system name, description: group description
config.GenericConfiguration.attribute.targetGroupAttribute.i.translateFromStaticValuesCreateOnly.label = __i+1__ - translate from static values insert only
config.GenericConfiguration.attribute.targetGroupAttribute.i.translateFromStaticValuesCreateOnly.description = Specify static value (for insert only). Value should be comma-separated if this is a multi-valued attribute.
config.GenericConfiguration.attribute.targetGroupAttribute.i.translateExpressionType.label = __i+1__ - translation type
config.GenericConfiguration.attribute.targetGroupAttribute.i.translateExpressionType.description = If this is a simple translation straight from field, then select GrouperProvisioningGroupField since you do not have to worry about a script typo and the performance is better. Or if the attribute should have static values, then select staticValues. Otherwise configure a translation script.
provisioningLdapTranslationAdvice = You should not need a translation for DN, just translate the RDN and Grouper will figure out the DN. You should not need a translation for the membership attribute.
config.LdapProvisionerConfiguration.attribute.targetGroupAttribute.i.translateExpressionType.description = $$config.GenericConfiguration.attribute.targetGroupAttribute.i.translateExpressionType.description$$ $$provisioningLdapTranslationAdvice$$
config.GenericConfiguration.attribute.targetGroupAttribute.i.translateFromGrouperProvisioningGroupField.label = __i+1__ - translate from grouperProvisioningGroup field
config.GenericConfiguration.attribute.targetGroupAttribute.i.translateFromGrouperProvisioningGroupField.description = Select the field from grouperProvisioningGroup to copy data from. id: is the UUID of the group, idIndex: numeric indentifier, displayExtension: last part of the name e.g. for display in the UI, displayName: full path of of the display name e.g. for display in the UI, extension: last part of the system name, name: full path of the system name, description: group description
config.GenericConfiguration.attribute.targetGroupAttribute.i.translateFromStaticValues.label = __i+1__ - translate from static values
config.GenericConfiguration.attribute.targetGroupAttribute.i.translateFromStaticValues.description = Specify static value. Value should be comma-separated if this is a multi-valued attribute.
config.GenericConfiguration.attribute.targetGroupAttribute.i.translateExpression.label = __i+1__ - translation expression
config.GenericConfiguration.attribute.targetGroupAttribute.i.translateExpression.description = This is the translation for this attribute from Grouper to Target format during Group updates and inserts (if not overridden by "insert only" translation). Available variables:- $$provisioning.helper.variable.grouperProvisioningGroup$$
- $$provisioning.helper.variable.gcGrouperSyncGroup$$
- $$provisioning.helper.variable.provisioningGroupWrapper$$
- $$provisioning.helper.variable.grouperTargetGroup$$
config.GenericConfiguration.attribute.targetGroupAttribute.i.nullChecksInScript.label = __i+1__ - check for nulls in script
config.GenericConfiguration.attribute.targetGroupAttribute.i.nullChecksInScript.description = Any null variables throw an exception in the JEXL translation, so this is a place you can check for null variables and just have it return null if so.
config.GenericConfiguration.attribute.targetGroupAttribute.i.unprovisionableIfNull.label = __i+1__ - do not provision if null
config.GenericConfiguration.attribute.targetGroupAttribute.i.unprovisionableIfNull.description = Do not provision the group and corresponding memberships if this attribute value is null. This is not a validation error, it will just silently not provision. e.g. could be used for the gidnumber.
config.GenericConfiguration.attribute.targetGroupAttribute.i.translationContinueCondition.label = __i+1__ - translation continue condition
config.GenericConfiguration.attribute.targetGroupAttribute.i.defaultValue.label = __i+1__ - default value
config.GenericConfiguration.attribute.targetGroupAttribute.i.defaultValue.description = If there should always be a value in the target, then list the value here to assign to the field/attribute if it is blank. Use <emptyString> if the default value should be an empty string.
config.GenericConfiguration.attribute.targetGroupAttribute.i.required.label = __i+1__ - required
config.GenericConfiguration.attribute.targetGroupAttribute.i.required.description = If this field is required, then the Group is invalid and will not be provisioned if the value is missing
config.GenericConfiguration.attribute.targetGroupAttribute.i.maxlength.label = __i+1__ - max length
config.GenericConfiguration.attribute.targetGroupAttribute.i.maxlength.description = If there is a maximum length requirement for this field in the target, assign the integer of maximum number of characters. If this field value size is greater than the max length, then the Group is invalid and will not be provisioned
config.GenericConfiguration.attribute.targetGroupAttribute.i.validExpression.label = __i+1__ - validation expression
config.GenericConfiguration.attribute.targetGroupAttribute.i.validExpression.description = If there is a complex validation by JEXL script enter that here. The available variables are "value" (each individual value), and "valueMultiple" (the set of multiple values if this attribute supports multiple values. Return true for valid or false for invalid. Example to see if numeric value is positive: ${value>0}
config.GenericConfiguration.attribute.targetGroupAttribute.i.storageType.label = __i+1__ - Storage type
config.GenericConfiguration.attribute.targetGroupAttribute.i.storageType.description = Storage type
config.GenericConfiguration.attribute.targetEntityAttribute.i.storageType.label = __i+1__ - Storage type
config.GenericConfiguration.attribute.targetEntityAttribute.i.storageType.description = Storage type
config.SqlProvisionerConfiguration.attribute.option.targetGroupAttribute.i.attributePrefix = col / attr
config.SqlProvisionerConfiguration.attribute.option.targetEntityAttribute.i.attributePrefix = col / attr
config.GenericConfiguration.attribute.operateOnGrouperEntities.label = Operate on entities
config.GenericConfiguration.attribute.operateOnGrouperEntities.description = If the provisioner involves entity objects. This might not be true if you are provisioning memberships or groupAttributes without a target entity link.
config.GenericConfiguration.attribute.selectAllEntities.label = Select all entities at once during full sync
config.GenericConfiguration.attribute.selectAllEntities.description = If you have a large user base in the target and are only provisioning a small percentage, set this to false. Otherwise performance is better if you select true. If you are running diagnostics you might want to adjust your queries/filters to restrict the data, or not select all entities in diagnostics.
config.GenericConfiguration.attribute.selectAllGroups.label = Select all groups at once during full sync
config.GenericConfiguration.attribute.selectAllGroups.description = If you have a large group base in the target and are only provisioning a small percentage, set this to false. Otherwise performance is better if you select true. If you are running diagnostics you might want to adjust your queries/filters to restrict the data, or not select all groups in diagnostics.
config.GenericConfiguration.attribute.loadEntitiesToGrouperTable.label = Load entities into grouper table
config.GenericConfiguration.attribute.loadEntitiesToGrouperTable.description = Load entities into grouper table for reporting and diagnostics.
config.GenericConfiguration.attribute.groupMembershipAttributeName.label = Group attribute name for memberships
config.GenericConfiguration.attribute.groupMembershipAttributeName.description = The group attribute that stores values that represent memberships for the group
config.GenericConfiguration.attribute.groupMembershipAttributeValue.label = Entity cache location for memberships
config.GenericConfiguration.attribute.groupMembershipAttributeValue.description = The entity attribute that has values that represent memberships for the group, will be stored in a cache bucket which will be used to populate the group attribute name for memberships
config.GenericConfiguration.attribute.entityMembershipAttributeName.label = Entity attribute name for memberships
config.GenericConfiguration.attribute.entityMembershipAttributeName.description = The entity attribute that stores values that represent memberships for the entity
config.GenericConfiguration.attribute.entityMembershipAttributeValue.label = Group cache location for memberships
config.GenericConfiguration.attribute.entityMembershipAttributeValue.description = The group attribute that has values that represent memberships for the entity, will be stored in a cache bucket which will be used to populate the entity attribute name for memberships
config.GenericConfiguration.attribute.selectEntities.label = Select entities
config.GenericConfiguration.attribute.selectEntities.description = If entities should be read from the target. Generally this will be 'true' except:- Messages are sent to the target without knowing the state of the target
- Provisioning groupAttributes with no entity link
- Provisioning membership objects with no entity link
config.GenericConfiguration.attribute.insertEntities.label = Insert entities
config.GenericConfiguration.attribute.insertEntities.description = If provisionable entities in Grouper which do not exist in the target should be created in the target. This will not be true if all the needed entities exist in the target or if the target manages entities it another process.
config.GenericConfiguration.attribute.updateEntities.label = Update entities
config.GenericConfiguration.attribute.updateEntities.description = If entity attributes which differ from the target should cause the target data to be updated. This does not include the membership attribute if the membership provisioning type is entityAttributes.
config.GenericConfiguration.attribute.deleteEntities.label = Delete entities
config.GenericConfiguration.attribute.deleteEntities.description = If you want to delete entities in the target (default yes delete if Grouper created and then deleted the entity). Note, there are a few types of "deletes" you can choose from if you select "true", you must pick which delete option below.
config.GenericConfiguration.attribute.deleteEntitiesIfNotExistInGrouper.label = Delete entities if not exist in Grouper
config.GenericConfiguration.attribute.deleteEntitiesIfNotExistInGrouper.description = Delete all entities in the target that are selected from the "select all entities" operation that are not in Grouper provisioned to the target. This means Grouper is authoritative over entities.
config.GenericConfiguration.attribute.deleteEntitiesIfGrouperDeleted.label = Delete entities if deleted in Grouper
config.GenericConfiguration.attribute.deleteEntitiesIfGrouperDeleted.description = This is the "medium" knob. Only delete an entity if the entity was provisionable now is not. This means that entities that existed before the provisioner existed, or entities that were added only in the target (not in Grouper), will not be removed.
config.GenericConfiguration.attribute.deleteEntitiesIfGrouperCreated.label = Delete entities if created by Grouper
config.GenericConfiguration.attribute.deleteEntitiesIfGrouperCreated.description = Delete entities if Grouper provisioned the entity at some point in the past and the entity was removed as provisionable in Grouper. This is the default behavior.
config.GenericConfiguration.attribute.subjectSourcesToProvision.label = Subject sources to provision
config.GenericConfiguration.attribute.subjectSourcesToProvision.description = Generally you will only select your "people" source(s). If a subject is not in any of the selected sources, they are not considered provisionable.
grouperProvisioningSubjectSourcesToProvisionRequiresEntitiesInvalid = Error with '$$config.GenericConfiguration.attribute.subjectSourcesToProvision.label$$', if you configure sources then you need to '$$config.GenericConfiguration.attribute.operateOnGrouperEntities.label$$' or '$$config.GenericConfiguration.attribute.operateOnGrouperMemberships.label$$'
config.GenericConfiguration.attribute.hasTargetEntityLink.label = Has target entity link
config.GenericConfiguration.attribute.hasTargetEntityLink.description = "Entity link" is when memberships refer to some data that does not exist in Grouper or the Subject API and needs to be retrieved from the target Entity object. This data is cached in the "member sync" database table. Here are some examples:- Provisioning membership objects where the entity reference is a target DN or UUID.
- Provisioning groupAttributes where the entity value is a target DN or UUID
config.LdapProvisionerConfiguration.attribute.hasTargetEntityLink.description = $$config.GenericConfiguration.attribute.hasTargetEntityLink.description$$ Generally for LDAP this will be true.
config.GenericConfiguration.attribute.numberOfEntityAttributes.label = Number of entity attributes
config.GenericConfiguration.attribute.numberOfEntityAttributes.description = In the object that represents a target entity, this is the number of attributes
config.GenericConfiguration.attribute.targetEntityAttribute.i.name.label = __i+1__ - name
config.GenericConfiguration.attribute.targetEntityAttribute.i.name.description = Attribute name is the key in the key/value pairs for this entity
config.LdapProvisionerConfiguration.attribute.targetEntityAttribute.i.name.description = LDAP entity (user) attribute name. The attribute named ldap_dn is the user DN.
config.SqlProvisionerConfiguration.attribute.targetEntityAttribute.i.name.description = Column name for this column, or attribute name if the attribute is in a separate attributes table
config.GenericConfiguration.attribute.option.targetEntityAttribute.i.attributePrefix = attr
config.GenericConfiguration.attribute.targetEntityAttribute.i.valueType.label = __i+1__ - value type
config.GenericConfiguration.attribute.targetEntityAttribute.i.valueType.description = Generally this is going to be a string (text). int means 4 byte signed integer (-2 billion to 2 billion). long is for large integers
config.GenericConfiguration.attribute.targetEntityAttribute.i.select.label = __i+1__ - select
config.GenericConfiguration.attribute.targetEntityAttribute.i.select.description = Should this attribute be read from the target? If it is only used for inserting then it is not necessary. Otherwise generally you would select the attribute. This defaults to if the entity object is selected. Note, if this is the memberships attribute in the provisioning type 'entityAttributes' then the CRUD controls on memberships will take effect instead of this attribute's CRUD.
config.GenericConfiguration.attribute.targetEntityAttribute.i.insert.label = __i+1__ - insert
config.GenericConfiguration.attribute.targetEntityAttribute.i.insert.description = Should this attribute be set when creating objects in the target? Note: if the provisioner knows that the attribute is readonly it will not try to insert it. e.g. for a UUID of a web service. This defaults to if the entity object is inserted. Note, if this is the memberships attribute in the provisioning type 'entityAttributes' then the CRUD controls on memberships will take effect instead of this attribute's CRUD.
config.GenericConfiguration.attribute.targetEntityAttribute.i.update.label = __i+1__ - update
config.GenericConfiguration.attribute.targetEntityAttribute.i.update.description = Should this attribute be changed when the group is updated. This defaults to if the entity object is updated. Note, if this is the memberships attribute in the provisioning type 'entityAttributes' then the CRUD controls on memberships will take effect instead of this attribute's CRUD.
config.GenericConfiguration.attribute.targetEntityAttribute.i.ignoreIfMatchesValue.label = __i+1__ - ignore if matches value
config.GenericConfiguration.attribute.targetEntityAttribute.i.caseSensitiveCompare.label = __i+1__ - case sensitive compare
config.GenericConfiguration.attribute.targetEntityAttribute.i.caseSensitiveCompare.description = When searching and matching if case should be considered when comparing grouper and target values
config.GenericConfiguration.attribute.targetGroupAttribute.i.caseSensitiveCompare.label = __i+1__ - case sensitive compare
config.GenericConfiguration.attribute.targetGroupAttribute.i.caseSensitiveCompare.description = When searching and matching if case should be considered when comparing grouper and target values
config.GenericConfiguration.attribute.targetEntityAttribute.i.ignoreIfMatchesValue.description = If the entity field or attribute value matches any of these values then ignore it (do not delete or update). Comma separated values, escaped comma is U+002C
config.GenericConfiguration.attribute.targetEntityAttribute.i.multiValued.label = __i+1__ - multi-valued attribute
config.GenericConfiguration.attribute.targetEntityAttribute.i.multiValued.description = If this attribute is multi-valued in the target. Generally attributes are single-valued. The membership attribute must be multi-valued if provisioning entityAttributes.
config.GenericConfiguration.attribute.targetEntityAttribute.i.translateExpressionCreateOnly.label = __i+1__ - translation expression during inserts
config.GenericConfiguration.attribute.targetEntityAttribute.i.translateExpressionCreateOnly.description = If you have a different translation from Grouper to Target for updates as opposed to inserts, put the insert translation here. Available variables:- $$provisioning.helper.variable.grouperProvisioningEntity$$
- $$provisioning.helper.variable.gcGrouperSyncMember$$
- $$provisioning.helper.variable.provisioningEntityWrapper$$
- $$provisioning.helper.variable.grouperTargetEntity$$
If you have a subject link and are translating from a subject attribute, configure the entity cache for that subject and translate this attribute by entity field and pick the cache bucket (e.g. entityAttributeValueCache0)
config.GenericConfiguration.attribute.targetEntityAttribute.i.translateExpression.label = __i+1__ - translation expression
config.GenericConfiguration.attribute.targetEntityAttribute.i.translateExpression.description = This is the translation for this attribute from Grouper to Target format during Entity updates and inserts (if not overridden by "insert only" translation). Available variables:- $$provisioning.helper.variable.grouperProvisioningEntity$$
- $$provisioning.helper.variable.gcGrouperSyncMember$$
- $$provisioning.helper.variable.provisioningEntityWrapper$$
- $$provisioning.helper.variable.grouperTargetEntity$$
If you have a subject link and are translating from a subject attribute, configure the entity cache for that subject and translate this attribute by entity field and pick the cache bucket (e.g. entityAttributeValueCache0)
config.GenericConfiguration.attribute.targetEntityAttribute.i.nullChecksInScript.label = __i+1__ - check for nulls in script
config.GenericConfiguration.attribute.targetEntityAttribute.i.nullChecksInScript.description = Any null variables throw an exception in the JEXL translation, so this is a place you can check for null variables and just have it return null if so.
config.GenericConfiguration.attribute.targetEntityAttribute.i.unprovisionableIfNull.label = __i+1__ - do not provision if null
config.GenericConfiguration.attribute.targetEntityAttribute.i.unprovisionableIfNull.description = Do not provision the entity and corresponding memberships if this attribute value is null. This is not a validation error, it will just silently not provision. e.g. if the target requires the netId and it's ok if it doesn't exist.
config.GenericConfiguration.attribute.targetEntityAttribute.i.translationContinueCondition.label = __i+1__ - translation continue condition
config.GenericConfiguration.attribute.targetEntityAttribute.i.translateExpressionTypeCreateOnly.label = __i+1__ - translation type insert only
config.GenericConfiguration.attribute.targetEntityAttribute.i.translateExpressionTypeCreateOnly.description = If this is a simple translation straight from field, then select GrouperProvisioningEntityField since you do not have to worry about a script typo and the performance is better. Or if the attribute should have static values, then select staticValues. Otherwise configure a translation script.
config.LdapProvisionerConfiguration.attribute.targetEntityAttribute.i.translateExpressionTypeCreateOnly.description = $$config.GenericConfiguration.attribute.targetEntityAttribute.i.translateExpressionTypeCreateOnly.description$$ $$provisioningLdapTranslationAdvice$$
config.GenericConfiguration.attribute.targetEntityAttribute.i.translateFromGrouperProvisioningEntityFieldCreateOnly.label = __i+1__ - translate from grouperProvisioningEntity field insert only
config.GenericConfiguration.attribute.targetEntityAttribute.i.translateFromGrouperProvisioningEntityFieldCreateOnly.description = Select the field from grouperProvisioningEntity to copy data from. id: is the UUID of the entity, email: email address of the user, loginid: netId to log in to systems, name: first and last name, subjectId: should be an opaque unchanging identifier, subjectSourceId: sourceId of the user, description: description that is configured in the subject source, subjectIdentifier0: the first identifier of the subject (might be a netId)
config.GenericConfiguration.attribute.targetEntityAttribute.i.translateFromStaticValuesCreateOnly.label = __i+1__ - translate from static values insert only
config.GenericConfiguration.attribute.targetEntityAttribute.i.translateFromStaticValuesCreateOnly.description = Specify static value (for insert only). Value should be comma-separated if this is a multi-valued attribute.
config.GenericConfiguration.attribute.targetEntityAttribute.i.translateExpressionType.label = __i+1__ - translation type
config.GenericConfiguration.attribute.targetEntityAttribute.i.translateExpressionType.description = If this is a simple translation straight from field, then select GrouperProvisioningEntityField since you do not have to worry about a script typo and the performance is better. Or if the attribute should have static values, then select staticValues. Otherwise configure a translation script.
config.LdapProvisionerConfiguration.attribute.targetEntityAttribute.i.translateExpressionType.description = $$config.GenericConfiguration.attribute.targetEntityAttribute.i.translateExpressionType.description$$ $$provisioningLdapTranslationAdvice$$
config.GenericConfiguration.attribute.targetEntityAttribute.i.translateFromGrouperProvisioningEntityField.label = __i+1__ - translate from grouperProvisioningEntity field
config.GenericConfiguration.attribute.targetEntityAttribute.i.translateFromGrouperProvisioningEntityField.description = Select the field from grouperProvisioningEntity to copy data from. id: is the UUID of the entity, email: email address of the user, loginid: netId to log in to systems, name: first and last name, subjectId: should be an opaque unchanging identifier, subjectSourceId: sourceId of the user, description: description that is configured in the subject source, subjectIdentifier0: the first identifier of the subject (might be a netId)
config.GenericConfiguration.attribute.targetEntityAttribute.i.translateFromStaticValues.label = __i+1__ - translate from static values
config.GenericConfiguration.attribute.targetEntityAttribute.i.translateFromStaticValues.description = Specify static value. Value should be comma-separated if this is a multi-valued attribute.
config.GenericConfiguration.attribute.targetEntityAttribute.i.defaultValue.label = __i+1__ - default value
config.GenericConfiguration.attribute.targetEntityAttribute.i.defaultValue.description = If there should always be a value in the target, then list the value here to assign to the field/attribute if it is blank. Use <emptyString> if the default value should be an empty string.
config.GenericConfiguration.attribute.targetEntityAttribute.i.required.label = __i+1__ - required
config.GenericConfiguration.attribute.targetEntityAttribute.i.required.description = If this field is required, then the Entity is invalid and will not be provisioned if the value is missing
config.GenericConfiguration.attribute.targetEntityAttribute.i.maxlength.label = __i+1__ - max length
config.GenericConfiguration.attribute.targetEntityAttribute.i.maxlength.description = If there is a maximum length requirement for this field in the target, assign the integer of maximum number of characters. If this field value size is greater than the max length, then the Entity is invalid and will not be provisioned
config.GenericConfiguration.attribute.targetEntityAttribute.i.validExpression.label = __i+1__ - validation expression
config.GenericConfiguration.attribute.targetEntityAttribute.i.validExpression.description = If there is a complex validation by JEXL script enter that here. The available variables are "value" (each individual value), and "valueMultiple" (the set of multiple values if this attribute supports multiple values. Return true for valid or false for invalid. Example to see if numeric value is positive: ${value>0}
config.GenericConfiguration.subSection.metadata.title = Metadata
config.GenericConfiguration.subSection.metadata.description = Metadata is extra information attached to folders, groups, entities, or memberships used in provisioning configuration
config.GenericConfiguration.attribute.configureMetadata.label = Configure metadata
config.GenericConfiguration.attribute.configureMetadata.description = If you want to show the metadata configuration to make changes
config.GenericConfiguration.attribute.numberOfMetadata.label = Number of metadata
config.GenericConfiguration.attribute.numberOfMetadata.description = The number of metadata that you want to configure
config.GenericConfiguration.subSection.metadata.i.title = Metadata item __i+1__
config.GenericConfiguration.subSection.metadata.i.description = Configure the metadata attribute
config.GenericConfiguration.attribute.metadata.i.name.label = Metadata __i+1__: name
config.GenericConfiguration.attribute.metadata.i.name.description = name of metadata item. This will be the name in the json attribute and can be assigned to a group, entity, or membership attribute. This must be unique across metadata for this provisioner. Must start with md_
The label on the screen will be the externalized text key md_metadataName_provisionerConfigId_label
The description on the screen will be the externalized text key md_metadataName_provisionerConfigId_description
config.GenericConfiguration.attribute.metadata.i.showForFolder.label = Metadata __i+1__: show for folder
config.GenericConfiguration.attribute.metadata.i.showForFolder.description = If this metadata item should show when marking a folder as provisionable
config.GenericConfiguration.attribute.metadata.i.showForGroup.label = Metadata __i+1__: show for group
config.GenericConfiguration.attribute.metadata.i.showForGroup.description = If this metadata item should show when marking a group as provisionable
config.GenericConfiguration.attribute.metadata.i.showForMember.label = Metadata __i+1__: show for entity
config.GenericConfiguration.attribute.metadata.i.showForMember.description = If this metadata item should show when marking a member (entity) as provisionable
config.GenericConfiguration.attribute.metadata.i.showForMembership.label = Metadata __i+1__: show for membership
config.GenericConfiguration.attribute.metadata.i.showForMembership.description = If this metadata item should show when marking a membership as provisionable
config.GenericConfiguration.attribute.metadata.i.canChange.label = Metadata __i+1__: can change
config.GenericConfiguration.attribute.metadata.i.canChange.description = If this metadata item can be affected once it's in target
config.GenericConfiguration.attribute.metadata.i.canUpdate.label = Metadata __i+1__: can update
config.GenericConfiguration.attribute.metadata.i.canUpdate.description = If this metadata item can be updated
config.GenericConfiguration.attribute.metadata.i.valueType.label = Metadata __i+1__: value type
config.GenericConfiguration.attribute.metadata.i.valueType.description = Value type from the web form and attribute value
config.GenericConfiguration.attribute.metadata.i.defaultValue.label = Metadata __i+1__: default value
config.GenericConfiguration.attribute.metadata.i.defaultValue.description = Default value of the metadata if the user does not enter anything
config.GenericConfiguration.attribute.metadata.i.formElementType.label = Metadata __i+1__: form element
config.GenericConfiguration.attribute.metadata.i.formElementType.description = Form element type for value on UI
config.GenericConfiguration.attribute.metadata.i.dropdownValues.label = Metadata __i+1__: drop down values
config.GenericConfiguration.attribute.metadata.i.dropdownValues.description = Comma-separated drop down values, escape commas in values with the hex code ,
config.GenericConfiguration.attribute.metadata.i.required.label = Metadata __i+1__: required
config.GenericConfiguration.attribute.metadata.i.required.description = If this item is required. Note: it cannot be required and also have a default value
config.GenericConfiguration.attribute.metadata.i.groupIdThatCanView.label = Metadata __i+1__: group ID for view
config.GenericConfiguration.attribute.metadata.i.groupIdThatCanView.description = Group ID that can view this metadata (e.g. abc123def456)
config.GenericConfiguration.attribute.metadata.i.groupIdThatCanUpdate.label = Metadata __i+1__: group ID for update
config.GenericConfiguration.attribute.metadata.i.groupIdThatCanUpdate.description = Group ID that can view/edit this metadata (e.g. abc123def456)
config.GenericConfiguration.attribute.showAssigningProvisioning.label = Show provisionable settings
config.GenericConfiguration.attribute.showAssigningProvisioning.description = Show settings regarding how objects are marked provisionable
config.GenericConfiguration.attribute.onlyProvisionPolicyGroups.label = Provision policy groups only
config.GenericConfiguration.attribute.onlyProvisionPolicyGroups.description = If you mark a folder as provisionable, and you only want policy groups to be provisioned inside, set this to 'true'
config.GenericConfiguration.attribute.allowPolicyGroupOverride.label = Allow policy group override
config.GenericConfiguration.attribute.allowPolicyGroupOverride.description = If you want a metadata item on folders for specifying if provision only policy groups
config.GenericConfiguration.attribute.provisionableRegex.label = Provisionable regex
config.GenericConfiguration.attribute.provisionableRegex.description = If you want to filter for groups in a provisionable folder by a regex on its name, specify here. If the regex matches then the group in the folder is provisionable. If using 'not matches' then it will filter groups. e.g.
folderExtension matches ^.*_someExtension$
folderName not matches ^.*_someExtension$
groupExtension matches ^.*_someExtension$
groupName not matches ^.*_someExtension$
config.GenericConfiguration.attribute.allowProvisionableRegexOverride.label = Allow provisionable regex override
config.GenericConfiguration.attribute.allowProvisionableRegexOverride.description = If you want a metadata item on folders for specifying regex of names of objects to provision
grouperProvisioningObjectMetadataProvisionOnlyPolicyGroupsLabel = Provision policy groups only
grouperProvisioningObjectMetadataProvisionOnlyPolicyGroupsDescription = If this folder is provisionable, and you only want policy groups to be provisioned inside, set this to 'true' (default: ${grouperRequestContainer.provisioningContainer.currentGuiGrouperProvisioningAttributeValue.grouperProvisioner.retrieveGrouperProvisioningConfiguration().isOnlyProvisionPolicyGroups()})
grouperProvisioningMetadataLdapGroupDnOverrideLabel = Group DN override
grouperProvisioningMetadataLdapGroupDnOverrideDescription = If this group should point to an LDAP group which is not in the normal location, enter the DN where this group should sync to
grouperProvisioningObjectMetadataProvisionableRegexLabel = Provisionable regex
grouperProvisioningObjectMetadataProvisionableRegexDescription = If you want to filter for groups in this provisionable folder by a regex on its name, specify here.
Default value: '${grouperRequestContainer.provisioningContainer.currentGuiGrouperProvisioningAttributeValue.grouperProvisioner.retrieveGrouperProvisioningConfiguration().getProvisionableRegex()}'.
If the regex matches then the group is provisionable. If using 'not matches' then it will filter groups. e.g.
folderExtension matches ^.*_someExtension$
folderName not matches ^.*_someExtension$
groupExtension matches ^.*_someExtension$
groupName not matches ^.*_someExtension$
grouperProvisioningObjectMetadataProvisionableRegexError = Error: must be a valid regex and be in the form: folderExtension matches ^.*_someExtension$ folderName not matches ^.*_someExtension groupExtension matches ^.*_someExtension$ groupName not matches ^.*_someExtension$
config.LdapProvisionerConfiguration.title = Ldap
config.LdapProvisionerConfiguration.attribute.ldapExternalSystemConfigId.label = External system config id
config.LdapProvisionerConfiguration.attribute.ldapExternalSystemConfigId.description = Pick the LDAP to connect to for this provisioner. If the LDAP is not in the list, first go and configure that in the Grouper external system UI screen.
config.LdapProvisionerConfiguration.attribute.provisioningType.label = Ldap provisioning type
config.LdapProvisionerConfiguration.attribute.provisioningType.description = groupAttributes: group ldap object has attribute to hold memberships
entityAttributes: user ldap object has attribute to hold memberships
Usually when provisioning to LDAP, the membership type is groupAttributes.
config.LdapProvisionerConfiguration.attribute.userSearchBaseDn.label = Entity search base DN
config.LdapProvisionerConfiguration.attribute.userSearchAllFilter.label = Entity search all filter
config.LdapProvisionerConfiguration.attribute.userSearchAllFilter.description = Find all entities filter. If you leave this blank it will default to searching for containing the search attribute and if there is an objectclass attribute then those will be included in the filter too. e.g. (&(employeeId=*)(objectClass=eduPerson)(objectClass=top))
config.LdapProvisionerConfiguration.attribute.groupSearchBaseDn.label = Group search base DN
config.LdapProvisionerConfiguration.attribute.groupSearchFilter.label = Group search filter
config.LdapProvisionerConfiguration.attribute.groupSearchFilter.description = Find a single group. You can use the variable 'targetGroup'. e.g. (&(gidNumber=${targetGroup.retrieveAttributeValue('gidNumber')})(objectClass=groupOfNames)) Note, if the search filter is simply the search attribute, then you can leave this blank. TODO add info about escaping
config.LdapProvisionerConfiguration.attribute.groupSearchAllFilter.label = Group search all filter
config.LdapProvisionerConfiguration.attribute.groupSearchAllFilter.description = Find all groups filter. If you leave this blank it will default to searching for containing the search attribute and if there is an objectclass attribute then those will be included in the filter too. e.g. (&(gidNumber=*)(objectClass=posixGroup)(objectClass=top))
config.LdapProvisionerConfiguration.attribute.allowLdapGroupDnOverride.label = Allow DN override
config.LdapProvisionerConfiguration.attribute.allowLdapGroupDnOverride.description = When marking a group as provisionable, allow the DN to be set to a different value than the default (to point a Grouper group to an arbitrary LDAP group as a one-off)
config.LdapProvisionerConfiguration.attribute.onlyLdapGroupDnOverride.label = Only group dn override
config.LdapProvisionerConfiguration.attribute.onlyLdapGroupDnOverride.description = If this provisioner is only doing DN overrides (e.g. no base DN will be used for searching)
config.LdapProvisionerConfiguration.attribute.groupDnType.label = Group DN type
config.LdapProvisionerConfiguration.attribute.groupRdnAttribute.label = RDN attribute for groups
config.LdapProvisionerConfiguration.attribute.groupRdnAttribute.description = The RDN attribute for group objects in LDAP. This dropdown is populated from group attributes. Fill them out and then select the RDN. click here to refresh
config.LdapProvisionerConfiguration.attribute.userRdnAttribute.label = RDN attribute for entities
config.LdapProvisionerConfiguration.attribute.userRdnAttribute.description = The RDN attribute for user objects in LDAP. This dropdown is populated from entity attributes. Fill them out and then select the RDN. click here to refresh
config.LdapProvisionerConfiguration.attribute.folderRdnAttribute.label = RDN attribute for folders
config.LdapProvisionerConfiguration.attribute.folderRdnAttribute.description = The RDN attribute for folder objects in LDAP. e.g. If the RDN attribute for folders is "ou" and the RDN attribute for groups is "cn", then the DN for the Grouper group app:foo:service:policy:foo_user would be cn=foo_user,ou=policy,ou=service,ou=foo,ou=app,<group base DN>.
config.LdapProvisionerConfiguration.attribute.folderObjectClasses.label = Object classes for folders
config.LdapProvisionerConfiguration.attribute.folderObjectClasses.description = The objectClass values (comma-separated) to add to folder objects in LDAP.
config.SqlProvisionerConfiguration.title = Sql
config.SqlProvisionerConfiguration.attribute.provisioningType.label = Sql provisioning type
config.SqlProvisionerConfiguration.attribute.dbExternalSystemConfigId.label = Db external system config id
config.SqlProvisionerConfiguration.attribute.dbExternalSystemConfigId.description = Sql database external system config id. If you do not see your database configuration add it in Miscellaneous -> External systems. You can also provision across database link.
config.SqlProvisionerConfiguration.attribute.provisioningType.description = membershipObjects: memberships table holds memberships (most common)
groupAttributes: group attribute table to hold memberships (similar to LDAP)
entityAttributes: entity attribute table to hold memberships (similar to LDAP)
config.SqlProvisionerConfiguration.attribute.membershipTableName.label = Membership table name
config.SqlProvisionerConfiguration.attribute.membershipSearchQuery.label = Membership search query
config.SqlProvisionerConfiguration.attribute.userTableName.label = Entity table name
config.SqlProvisionerConfiguration.attribute.userPrimaryKey.label = Entity primary key
config.SqlProvisionerConfiguration.attribute.userSearchQuery.label = Entity search query
config.SqlProvisionerConfiguration.attribute.insertEntities.label = Insert entities
config.SqlProvisionerConfiguration.attribute.sqlLastModifiedColumnType.label = Last modified column type
config.SqlProvisionerConfiguration.attribute.sqlLastModifiedColumnType.description = Last modified column type. This is the database column type. The attribute in the representation is long always. This must exist for all tables being provisioned.
config.SqlProvisionerConfiguration.attribute.sqlLastModifiedColumnName.label = Last modified column name
config.SqlProvisionerConfiguration.attribute.sqlLastModifiedColumnName.description = Last modified column name e.g. last_modified. In the database, this is either a timestamp or millis since 1970. It's always increasing. This must exist for all tables being provisioned.
config.SqlProvisionerConfiguration.attribute.sqlDeletedColumnName.label = Deleted column name
config.SqlProvisionerConfiguration.attribute.sqlDeletedColumnName.description = Deleted column name. If it's there, it must be of type that can store 'T' or 'F'. This must exist for all tables being provisioned. This column must be required and never null.
config.SqlProvisionerConfiguration.attribute.numberOfGroupAttributes.label = Number of group columns or attributes
config.SqlProvisionerConfiguration.attribute.numberOfGroupAttributes.description = In the object that represents a target group, this is the number of columns in the group table (and if you have a group attributes table then also the attributes in that table).
config.SqlProvisionerConfiguration.attribute.numberOfMembershipAttributes.label = Number of membership columns
config.SqlProvisionerConfiguration.attribute.numberOfMembershipAttributes.description = In the object that represents a target membership, this is the number of attributes
config.SqlProvisionerConfiguration.attribute.numberOfEntityAttributes.label = Number of entity columns or attributes
config.SqlProvisionerConfiguration.attribute.numberOfEntityAttributes.description = In the object that represents a target entity, this is the number of columns in the entity table (and if you have an entity attributes table then also the attributes in that table).
config.SqlProvisionerConfiguration.attribute.membershipGroupForeignKeyColumn.label = Membership group foreign key
config.SqlProvisionerConfiguration.attribute.membershipGroupForeignKeyColumn.description = Column from membership table which is the foreign key to the group table
config.SqlProvisionerConfiguration.attribute.membershipEntityForeignKeyColumn.label = Membership entity foreign key
config.SqlProvisionerConfiguration.attribute.membershipEntityForeignKeyColumn.description = Column from membership table which is the foreign key to the entity table
config.SqlProvisionerConfiguration.attribute.groupTableName.label = Group table name
config.SqlProvisionerConfiguration.attribute.groupTableName.description = Table name of the group table, could have a schema qualifier
config.SqlProvisionerConfiguration.attribute.groupSearchQuery.label = Group search query
config.SqlProvisionerConfiguration.attribute.groupSearchQuery.description = Group search query, generally Grouper will generate this automatically
config.SqlProvisionerConfiguration.attribute.groupTableIdColumn.label = Group table ID column
config.SqlProvisionerConfiguration.attribute.groupTableIdColumn.description = Primary key column of the group table
config.SqlProvisionerConfiguration.attribute.useSeparateTableForGroupAttributes.label = Separate table for group attributes
config.SqlProvisionerConfiguration.attribute.groupAttributesTableName.label = Group attributes table name
config.SqlProvisionerConfiguration.attribute.groupAttributesTableName.description = Table to store group attributes with a column which is a foreign key to the group table, and an attribute name column, and an attribute value column
config.SqlProvisionerConfiguration.attribute.groupAttributesGroupForeignKeyColumn.label = Group attributes group foreign key column
config.SqlProvisionerConfiguration.attribute.groupAttributesGroupForeignKeyColumn.description = Column name in the group attribute table which is a foreign key to the group table
config.SqlProvisionerConfiguration.attribute.groupAttributesAttributeNameColumn.label = Group attributes attribute name column
config.SqlProvisionerConfiguration.attribute.groupAttributesAttributeNameColumn.description = Column name in the group attribute table which is the name of the attribute
config.SqlProvisionerConfiguration.attribute.groupAttributesAttributeValueColumn.label = Group attributes attribute value column
config.SqlProvisionerConfiguration.attribute.groupAttributesAttributeValueColumn.description = Column name in the group attribute table which is the value of the attribute
config.SqlProvisionerConfiguration.attribute.useSeparateTableForEntityAttributes.label = Separate table for entity attributes
config.SqlProvisionerConfiguration.attribute.entityAttributesTableName.label = Entity attributes table name
config.SqlProvisionerConfiguration.attribute.entityAttributesEntityForeignKeyColumn.label = Entity attributes entity foreign key column
config.SqlProvisionerConfiguration.attribute.entityAttributesAttributeNameColumn.label = Entity attributes attribute name column
config.SqlProvisionerConfiguration.attribute.entityAttributesAttributeValueColumn.label = Entity attributes attribute value column
config.SqlProvisionerConfiguration.attribute.entityAttributesLastModifiedColumn.label = Entity attributes attribute last modified column
config.SqlProvisionerConfiguration.attribute.entityAttributesLastModifiedColumnType.label = Entity attributes last modified column type
provisioning.configuration.validation.membershipAttributeCanNotBeCached = Error: you cannot cache the membership attribute
provisioning.configuration.validation.membershipAttributeCanNotBeMatchingAttribute = Error: you cannot match on the membership attribute
provisioning.configuration.validation.membershipAttributeCanNotBeSearchAttribute = Error: you cannot search on the membership attribute
provisioning.configuration.validation.mustHaveEntityMembershipAttribute = Error: you are provisioning entityAttributes but you do you not have an entity field or attribute marked for memberships. Identify an entity field or attribute for memberships
provisioning.configuration.validation.mustHaveGroupMembershipAttribute = Error: you are provisioning groupMemberships but you do you not have a group field or attribute marked for memberships. Identify a group field or attribute for memberships
provisioning.configuration.validation.mustHaveEntityMatchingId = Error: you are provisioning entityAttributes but you do you not have an entity field or attribute marked as matchingId. Identify an entity field or attribute as matchingId
provisioning.configuration.validation.mustHaveGroupMatchingId = Error: you are provisioning groupMemberships but you do you not have a group field or attribute marked as matchingId. Identify a group field or attribute as matchingId
provisioning.configuration.validation.mustInsertDnIfInsertingEntities = Error: if you are inserting entities, you must insert the DN (ldap_dn field)
provisioning.configuration.validation.mustInsertDnIfInsertingGroups = Error: if you are inserting groups, you must insert the DN (ldap_dn field)
provisioning.configuration.validation.mustSelectOrInsertMemberships = Error: if you are operating on memberships, then you must select, insert, or replace
provisioning.configuration.validation.mustSelectOrInsertEntities = Error: if you are operating on entities, then you must select or insert
provisioning.configuration.validation.mustSelectOrInsertGroups = Error: if you are operating on groups, then you must select or insert
provisioning.configuration.validation.mustHaveGroupDn = Error: you need to have a group field named "ldap_dn" which represents the DN
provisioning.configuration.validation.mustHaveEntityDn = Error: you need to have a entity field named "ldap_dn" which represents the DN
provisioning.configuration.validation.mustSelectDn = Error: you need to select the DN (ldap_dn field)
provisioning.configuration.validation.doSomething = Error: you need to operate on groups, entities, or memberships
provisioning.configuration.validation.oneGroupDeleteType = Error: if you are deleting groups, you need to pick one and only one delete type
provisioning.configuration.validation.oneMembershipDeleteType = Error: if you are deleting memberships, you need to pick one and only one delete type
provisioning.configuration.validation.oneEntityDeleteType = Error: if you are deleting entities, you need to pick one and only one delete type
provisioning.configuration.validation.targetGroupLinkNeedsConfig = Error: if you are using 'group link' you must translate a group attribute to a sync field (recommended) or have a group link script (less likely)
provisioning.configuration.validation.targetEntityLinkNeedsConfig = Error: if you are using 'entity link' you must translate an entity attribute to a sync field (recommended) or have an entity link script (less likely)
provisioning.configuration.validation.targetGroupLinkMultipleFromSameAttribute = Error: you cannot have multiple mappings or jexl's to multiple group link fields from the same attribute
provisioning.configuration.validation.targetEntityLinkMultipleFromSameAttribute = Error: you cannot have multiple mappings or jexl's to multiple entity link fields from the same attribute
provisioning.configuration.validation.extraneousConfigs = Error: there are extraneous configs for this provisioner: ${extraneousConfig}. Remove them from the grouper-loader.properties config file.
provisioning.configuration.validation.invalidClass = Error: invalid provisioner class
provisioning.configuration.validation.multipleAttributesSameName = Error: two ${type} ${fieldType}s have the same name '${attributeName}'
provisioning.configuration.validation.attributeNameRequired = Error: ${type} attribute name is required
provisioning.configuration.validation.dnRequired = Error: ${type} attribute 'ldap_dn' is required. It represents the LDAP DN
provisioning.configuration.validation.dnString = Error: ${type} attribute 'ldap_dn' must be value type 'string'. It represents the LDAP DN
provisioning.configuration.validation.onlyDnOverrideMatchingSameAsSearch = Error: if provisioning only DN overrides, then matching must be same as search attribute
provisioning.configuration.validation.onlyDnOverrideHasOneMatchingAttribute = Error: if provisioning only DN overrides, then there can only be one matching attribute (ldap_dn)
provisioning.configuration.validation.onlyDnOverrideHasLdapDnMatchingAttribute = Error: if provisioning only DN overrides, then there can only be ldap_dn for matching attribute
provisioning.configuration.validation.groupIdOfUsersToProvisionNotExist = Error: Group does not exist from uuid/name of users to provision
provisioning.configuration.validation.groupIdOfUsersNotToProvisionNotExist = Error: Group does not exist from uuid/name of users to exclude
provisionerConfigurationSaveErrorMetadataNotValidFormat = Metadata name must start with md_ and can only contain alpha-numeric and underscore characters.
provisionerConfigurationSaveErrorMetadataDefaultValueNotCorrectType = Default value '$$defaultValue$$' must be of the selected type '$$selectedType$$'.
provisioning.configuration.validation.noFields = You cannot have fieldName configured or isFieldElseAttribute. Make sure you followed upgrade instructions.
provisioning.configuration.validation.selectAllEntitiesRequired = '$$grouperProvisioningDiagnosticsSelectAllEntitiesLabel$$' is required
provisioning.configuration.validation.upgradeTask = '$$attributeName$$' should be refactored with an upgrade task
provisioning.configuration.validation.replaceMembershipsNotSupported = This provisioner does not support replacing memberships.
provisioning.configuration.validation.customizeMembershipCrudButNothingSet = Membership CRUD is customized but no options are configured (e.g. insertMemberships)
provisioning.configuration.validation.customizeGroupCrudButNothingSet = Group CRUD is customized but no options are configured (e.g. insertGroups)
provisioning.configuration.validation.customizeEntityCrudButNothingSet = Entity CRUD is customized but no options are configured (e.g. insertEntities)
provisioning.configuration.validation.groupAttributeRequired = Error: group attribute '$$attributeName$$' is required
provisioning.configuration.validation.entityAttributeRequired = Error: entity attribute '$$attributeName$$' is required
provisioning.configuration.validation.groupAttributeString = Error: group attribute '$$attributeName$$' must be value type 'string'
provisioning.configuration.validation.entityAttributeString = Error: entity attribute '$$attributeName$$' must be value type 'string'
provisioning.configuration.validation.incorrectGroupAttributeConfigured = Error: group attribute not allowed '$$attributeName$$'
provisioning.configuration.validation.incorrectEntityAttributeConfigured = Error: entity attribute not allowed '$$attributeName$$'
provisioning.configuration.validation.mustHaveEntitySearchAttributeOtherThanDN = Error: you need to have an entity search attribute other than or in addition to ldap_dn
config.GrouperScim2Configuration.title = Scim 2
config.GrouperScim2Configuration.attribute.bearerTokenExternalSystemConfigId.label = Bearer token external system id
config.GrouperScim2Configuration.attribute.includeActiveOnEntityCreate.label = Include active on entity create
config.GrouperScim2Configuration.attribute.includeActiveOnEntityCreate.description = Select true if you want to set active json attribute to true when an entity is inserted.
config.GrouperScim2Configuration.attribute.targetEntityAttribute.i.jsonValueType.label = __i+1__ - json value type
config.GrouperScim2Configuration.attribute.targetEntityAttribute.i.jsonValueType.description = If this is a custom attribute with a json pointer, the default value type is string. If you want the type to be number or boolean select that here.
config.GrouperScim2Configuration.attribute.targetEntityAttribute.i.entityAttributeJsonPointer.label = __i+1__ - json pointer
config.GrouperScim2Configuration.attribute.targetEntityAttribute.i.entityAttributeJsonPointer.description = If this is a custom attribute then this is the json pointer where this value gets mapped into the json e.g. /urn:ietf:params:scim:schemas:extension:servicenow:2.0:User/gender
config.GrouperScim2Configuration.attribute.targetGroupAttribute.i.groupAttributeJsonPointer.label = __i+1__ - Json pointer
config.GrouperScim2Configuration.attribute.targetGroupAttribute.i.groupAttributeJsonPointer.description = If this is a custom attribute then this is the json pointer where this value gets mapped into the json e.g. /urn:ietf:params:scim:schemas:extension:servicenow:2.0:Group/description
config.GenericConfiguration.attribute.targetEntityAttribute.i.showAdvancedAttribute.label = __i+1__ - advanced options
config.GenericConfiguration.attribute.targetEntityAttribute.i.showAdvancedAttribute.description = Show less common options like value type, CRUD control, validation, etc
config.GrouperScim2Configuration.attribute.targetGroupAttribute.i.jsonValueType.label = __i+1__ - json value type
config.GrouperScim2Configuration.attribute.targetGroupAttribute.i.jsonValueType.description = If this is a custom attribute with a json pointer, the default value type is string. If you want the type to be number or boolean select that here.
config.GrouperScim2Configuration.attribute.targetGroupAttribute.i.entityAttributeJsonPointer.label = __i+1__ - json pointer
config.GrouperScim2Configuration.attribute.targetGroupAttribute.i.entityAttributeJsonPointer.description = If this is a custom attribute then this is the json pointer where this value gets mapped into the json e.g. /urn:ietf:params:scim:schemas:extension:servicenow:2.0:User/gender
config.GenericConfiguration.attribute.targetGroupAttribute.i.showAdvancedAttribute.label = __i+1__ - advanced options
config.GenericConfiguration.attribute.targetGroupAttribute.i.showAdvancedAttribute.description = Show less common options like value type, CRUD control, validation, etc
provisioning.configuration.editActions.removeExtraneousConfigs = The extraneous config for this provisioner: '$$extraneousConfig$$' was deleted successfully.
config.GrouperScim2Configuration.attribute.scimType.label = SCIM type
config.GrouperScim2Configuration.attribute.scimType.description = SCIM type
config.GrouperScim2Configuration.attribute.acceptHeader.label = Accept header
config.GrouperScim2Configuration.attribute.acceptHeader.description = Value to send in the accept header in http request when making a call to the target
config.GrouperScim2Configuration.attribute.disableEntitiesInsteadOfDelete.label = Deactivate entities on delete
config.GrouperScim2Configuration.attribute.disableEntitiesInsteadOfDelete.description = When an entity should be deleted in the target, deactivate the entity with scim instead. Furthermore, when creating an entity, see if the deactivated entity exists and activate it and update it. Do not map an "active" entity attribute
config.GenericConfiguration.attribute.replaceMemberships.label = Replace memberships
config.GenericConfiguration.attribute.replaceMemberships.description = On a full sync should memberships be replaced in target. Generally this will be 'true' except when you do not want to full sync memberships
config.MessagingProvisionerConfiguration.title = Messaging
config.MessagingProvisionerConfiguration.attribute.messagingExternalSystemConfigId.label = Messaging external system config id
config.MessagingProvisionerConfiguration.attribute.messagingFormatType.label = Messaging format type
config.MessagingProvisionerConfiguration.attribute.queueType.label = Queue type
config.MessagingProvisionerConfiguration.attribute.queueOrTopicName.label = Queue or topic name
config.MessagingProvisionerConfiguration.attribute.routingKey.label = Routing key
config.MessagingProvisionerConfiguration.attribute.routingKey.description = Valid only for RabbitMq
config.MessagingProvisionerConfiguration.attribute.exchangeType.label = Exchange type
config.MessagingProvisionerConfiguration.attribute.exchangeType.description = Valid only for RabbitMq
config.MessagingProvisionerConfiguration.attribute.setupQueueArguments.label = Set up queue arguments
config.MessagingProvisionerConfiguration.attribute.setupQueueArguments.description = Queue arguments
config.MessagingProvisionerConfiguration.attribute.numberOfQueueArguments.label = Number of queue arguments
config.MessagingProvisionerConfiguration.attribute.numberOfQueueArguments.description = Select queue arguments
config.MessagingProvisionerConfiguration.subSection.queueArguments.title = Queue arguments
config.MessagingProvisionerConfiguration.subSection.queueArguments.description = Queue arguments
config.MessagingProvisionerConfiguration.subSection.queueArguments.i.title = Queue arguments item __i+1__
config.MessagingProvisionerConfiguration.subSection.queueArguments.i.description = Configure the queue argument
config.MessagingProvisionerConfiguration.subSection.queueArgument.i.title = Queue arguments item __i+1__
config.MessagingProvisionerConfiguration.subSection.queueArgument.i.description = Configure the queue argument
config.MessagingProvisionerConfiguration.attribute.queueArgument.i.key.label = Queue argument __i+1__: key
config.MessagingProvisionerConfiguration.attribute.queueArgument.i.key.description = Key for queue argument
config.MessagingProvisionerConfiguration.attribute.queueArgument.i.value.label = Queue argument __i+1__: value
config.MessagingProvisionerConfiguration.attribute.queueArgument.i.value.description = Value for queue argument
########################################
## Subject configuration wizard
########################################
config.GenericConfiguration.subSection.general.title = General settings
config.GenericConfiguration.subSection.general.description = Initial subject source settings
config.GenericConfiguration.subSection.subjectFieldMapping.title = Subject field mapping
config.GenericConfiguration.subSection.subjectFieldMapping.description = Subject field mapping
config.GenericConfiguration.subSection.searchAttributes.title = Search attributes
config.GenericConfiguration.subSection.searchAttributes.description = Search attributes
config.GenericConfiguration.subSection.sortAttributes.title = Sort attributes
config.GenericConfiguration.subSection.sortAttributes.description = Sort attributes
config.GenericConfiguration.subSection.ldapSettings.title = Ldap settings
config.GenericConfiguration.subSection.ldapSettings.description = Ldap settings
config.GenericConfiguration.subSection.sqlSettings.title = Sql settings
config.GenericConfiguration.subSection.sqlSettings.description = Sql settings
config.GenericConfiguration.subSection.checkConfigAndDiagnostics.title = Check config and diagnostics
config.GenericConfiguration.subSection.checkConfigAndDiagnostics.description = Check config and diagnostics
config.GenericConfiguration.subSection.statusSettings.title = Status settings
config.GenericConfiguration.subSection.statusSettings.description = Status settings
config.GenericConfiguration.subSection.searchAttribute.i.title = Search attribute index __i__
config.GenericConfiguration.subSection.searchAttribute.i.description = Search attribute
config.GenericConfiguration.subSection.sortAttribute.i.title = Sort attribute index __i__
config.GenericConfiguration.subSection.sortAttribute.i.description = Sort attribute
config.GenericConfiguration.subSection.attribute.i.title = Subject attribute __i+1__
config.GenericConfiguration.subSection.attribute.i.description = Subject attribute
config.GenericConfiguration.attribute.param.SubjectID_AttributeType.value.label = Attribute name for subject ID
config.GenericConfiguration.attribute.param.SubjectID_AttributeType.value.description = Select the attribute that should be used for subject ID, if you don't see the attribute name listed, click here to refresh
config.GenericConfiguration.attribute.param.Name_AttributeType.value.label = Attribute name for subject name
config.GenericConfiguration.attribute.param.Name_AttributeType.value.description = Select the attribute that should be used for subject name, if you don't see the attribute name listed, click here to refresh
config.GenericConfiguration.attribute.param.Description_AttributeType.value.label = Attribute name for subject description
config.GenericConfiguration.attribute.param.Description_AttributeType.value.description = Select the attribute that should be used for subject description, if you don't see the attribute name listed, click here to refresh
config.GenericConfiguration.attribute.param.emailAttributeName.value.label = Attribute name for email
config.GenericConfiguration.attribute.param.emailAttributeName.value.description = Select the attribute that should be used for email, if you don't see the attribute name listed, click here to refresh
config.GenericConfiguration.attribute.param.netId.value.label = Attribute name for net ID
config.GenericConfiguration.attribute.param.netId.value.description = Select the attribute that should be used for net ID, if you don't see the attribute name listed, click here to refresh
config.GenericConfiguration.attribute.param.subjectIdentifierAttribute0.value.label = Attribute name for subjectIdentifier0
config.GenericConfiguration.attribute.param.subjectIdentifierAttribute0.value.description = Select the attribute that should be used for subjectIdentifier0. This will be stored in the grouper_members table. If you don't see the attribute name listed, click here to refresh
config.GenericConfiguration.attribute.param.subjectIdentifierAttribute1.value.label = Attribute name for subjectIdentifier1
config.GenericConfiguration.attribute.param.subjectIdentifierAttribute1.value.description = Select the attribute that should be used for subjectIdentifier1. This will be stored in the grouper_members table. If you don't see the attribute name listed, click here to refresh
config.GenericConfiguration.attribute.param.subjectIdentifierAttribute2.value.label = Attribute name for subjectIdentifier2
config.GenericConfiguration.attribute.param.subjectIdentifierAttribute2.value.description = Select the attribute that should be used for subjectIdentifier2. This will be stored in the grouper_members table. If you don't see the attribute name listed, click here to refresh
config.GenericConfiguration.attribute.enabled.label = Enabled
config.GenericConfiguration.attribute.enabled.description = Enabled
config.LdapSubjectSourceConfiguration.attribute.id.label = Subject source ID
config.LdapSubjectSourceConfiguration.attribute.id.description = The subject source ID is the identifier of this source in code, API, loader, etc. This should be something descriptive, short, and alphanumeric. e.g. pennperson
config.LdapSubjectSourceConfiguration.attribute.name.label = Subject source name
config.LdapSubjectSourceConfiguration.attribute.name.description = The subject source name is a friendly identifier for this source which can consist of friendly characters (e.g. spaces). This is used in drop downs in the UI
config.LdapSubjectSourceConfiguration.attribute.types.label = Types
config.LdapSubjectSourceConfiguration.attribute.types.description = Types are not really currently used, just pick 'person' if your source has mostly people or 'application' is mostly service principals
config.SqlSubjectSourceConfiguration.attribute.id.label = Subject source ID
config.SqlSubjectSourceConfiguration.attribute.id.description = The subject source ID is the identifier of this source in code, API, loader, etc. This should be something descriptive, short, and alphanumeric. e.g. pennperson
config.SqlSubjectSourceConfiguration.attribute.name.label = Subject source name
config.SqlSubjectSourceConfiguration.attribute.name.description = The subject source name is a friendly identifier for this source which can consist of friendly characters (e.g. spaces). This is used in drop downs in the UI
config.SqlSubjectSourceConfiguration.attribute.types.label = Types
config.SqlSubjectSourceConfiguration.attribute.types.description = Types are not really currently used, just pick 'person' if your source has mostly people or 'application' is mostly service principals
config.GenericConfiguration.attribute.param.maxResults.value.label = Max results size
config.GenericConfiguration.attribute.param.maxResults.value.description = Max results size
config.GenericConfiguration.attribute.extraAttributesFromSource.label = Extra attributes from source
config.GenericConfiguration.attribute.extraAttributesFromSource.description = Add more source attributes to retrieve from the source if they are not mapped to a subject attribute. e.g. in SQL this is extra columns. in LDAP this is extra LDAP attributes. These attributes are only used in translation scripts. Generally you will not have many of these.
config.GenericConfiguration.attribute.param.findSubjectByIdOnCheckConfig.value.label = Find subject by id on check config
config.GenericConfiguration.attribute.param.findSubjectByIdOnCheckConfig.value.description = Find subject by id on check config
config.GenericConfiguration.attribute.param.subjectIdToFindOnCheckConfig.value.label = Subject id to find on check config
config.GenericConfiguration.attribute.param.subjectIdToFindOnCheckConfig.value.description = Subject id to find on check config
config.GenericConfiguration.attribute.param.findSubjectByIdentifiedOnCheckConfig.value.label = Find subject by identifier on check config
config.GenericConfiguration.attribute.param.findSubjectByIdentifiedOnCheckConfig.value.description = Find subject by identifier on check config
config.GenericConfiguration.attribute.param.subjectIdentifierToFindOnCheckConfig.value.label = Subject identifier to find on check config
config.GenericConfiguration.attribute.param.subjectIdentifierToFindOnCheckConfig.value.description = Subject identifier to find on check config
config.GenericConfiguration.attribute.param.findSubjectByStringOnCheckConfig.value.label = Find subject by string on check config
config.GenericConfiguration.attribute.param.findSubjectByStringOnCheckConfig.value.description = Find subject by string on check config
config.GenericConfiguration.attribute.param.stringToFindOnCheckConfig.value.label = String to find on check config
config.GenericConfiguration.attribute.param.stringToFindOnCheckConfig.value.description = String to find on check config
config.GenericConfiguration.attribute.param.statusAllFromUser.value.label = Status all from user
config.GenericConfiguration.attribute.param.statusAllFromUser.value.description = Status all from user
config.GenericConfiguration.attribute.showStatusSettings.label = Show status settings
config.GenericConfiguration.attribute.showStatusSettings.description = Show status settings
config.GenericConfiguration.attribute.param.statusDatastoreFieldName.value.label = Status datastore field name
config.GenericConfiguration.attribute.param.statusDatastoreFieldName.value.description = Status datastore field name
config.GenericConfiguration.attribute.param.statusesFromUser.value.label = Statuses from user
config.GenericConfiguration.attribute.param.statusesFromUser.value.description = Statuses from user
config.GenericConfiguration.attribute.param.statusLabel.value.label = Status label
config.GenericConfiguration.attribute.param.statusLabel.value.description = Status label
config.GenericConfiguration.attribute.param.statusSearchDefault.value.label = Status search default
config.GenericConfiguration.attribute.param.statusSearchDefault.value.description = Status search default
config.GenericConfiguration.attribute.param.statusTranslateUser0.value.label = Status translate user 0
config.GenericConfiguration.attribute.param.statusTranslateUser0.value.description = Status translate user 0
config.GenericConfiguration.attribute.param.statusTranslateUser1.value.label = Status translate user 1
config.GenericConfiguration.attribute.param.statusTranslateUser1.value.description = Status translate user 1
config.GenericConfiguration.attribute.param.statusTranslateUser2.value.label = Status translate user 2
config.GenericConfiguration.attribute.param.statusTranslateUser2.value.description = Status translate user 2
config.GenericConfiguration.attribute.param.statusTranslateUser3.value.label = Status translate user 3
config.GenericConfiguration.attribute.param.statusTranslateUser3.value.description = Status translate user 3
config.GenericConfiguration.attribute.param.statusTranslateUser4.value.label = Status translate user 4
config.GenericConfiguration.attribute.param.statusTranslateUser4.value.description = Status translate user 4
config.GenericConfiguration.attribute.param.statusTranslateDatastore0.value.label = Status translate datastore 0
config.GenericConfiguration.attribute.param.statusTranslateDatastore0.value.description = Status translate datastore 0
config.GenericConfiguration.attribute.param.statusTranslateDatastore1.value.label = Status translate datastore 1
config.GenericConfiguration.attribute.param.statusTranslateDatastore1.value.description = Status translate datastore 1
config.GenericConfiguration.attribute.param.statusTranslateDatastore2.value.label = Status translate datastore 2
config.GenericConfiguration.attribute.param.statusTranslateDatastore2.value.description = Status translate datastore 2
config.GenericConfiguration.attribute.param.statusTranslateDatastore3.value.label = Status translate datastore 3
config.GenericConfiguration.attribute.param.statusTranslateDatastore3.value.description = Status translate datastore 3
config.GenericConfiguration.attribute.param.statusTranslateDatastore4.value.label = Status translate datastore 4
config.GenericConfiguration.attribute.param.statusTranslateDatastore4.value.description = Status translate datastore 4
config.GenericConfiguration.attribute.numberOfAttributes.label = Number of subject attributes
config.GenericConfiguration.attribute.numberOfAttributes.description = Your subject will have attributes available to be called, and "internal" attributes which are used by Grouper but not visible otherwise. Select the count of the internal and non-internal subject attributes. You should have an attribute for a subject ID (opaque unchanging identifier), zero or many identifiers (don't have to be opaque, can change, e.g. netId or EPPN), name (first last), description (some descriptive text about a subject so people pick the correct search result), email (optional), etc.
config.GenericConfiguration.attribute.searchAttributeCount.label = Search attribute count
config.GenericConfiguration.attribute.searchAttributeCount.description = Search attribute count
config.GenericConfiguration.attribute.sortAttributeCount.label = Sort attribute count
config.GenericConfiguration.attribute.sortAttributeCount.description = Sort attribute count
config.GenericConfiguration.attribute.searchAttribute.i.attributeName.label = Search attribute name - __i__
config.GenericConfiguration.attribute.searchAttribute.i.attributeName.description = Select the attribute that should be used for search, if you don't see the attribute name listed, click here to refresh
config.GenericConfiguration.attribute.searchA__i__uperRequestContainer.subjectSourceContainer.index}
config.GenericConfiguration.attribute.searchAttribute.i.index.description = Search attribute index
config.GenericConfiguration.attribute.sortAttribute.i.attributeName.label = Sort attribute name - __i__
config.GenericConfiguration.attribute.sortAttribute.i.attributeName.description = Select the attribute that should be used for sort, if you don't see the attribute name listed, click here to refresh
config.GenericConfiguration.attribute.sortAttribute.i.index.label = Sort attribute index - __i__
config.GenericConfiguration.attribute.sortAttribute.i.index.description = Sort attribute index
config.GenericConfiguration.attribute.attribute.i.name.label = Attribute __i+1__: name
config.GenericConfiguration.attribute.attribute.i.name.description = Alphanumeric subject attribute name. This is what people will use e.g. in the web service or exports. e.g. firstName
config.GenericConfiguration.attribute.attribute.i.sourceAttributeSameAsSubjectAttribute.label = __i+1__: source attribute same as subject attribute
config.GenericConfiguration.attribute.attribute.i.sourceAttributeSameAsSubjectAttribute.description = Source attribute same as subject attribute
config.GenericConfiguration.attribute.attribute.i.formatToLowerCase.label = Attribute __i+1__: format to lower case
config.GenericConfiguration.attribute.attribute.i.formatToLowerCase.description = If the value of the subject attribute should be converted to lower case in the subject
config.GenericConfiguration.attribute.attribute.i.translationType.label = Attribute __i+1__: translation type
config.GenericConfiguration.attribute.attribute.i.translationType.description = 'Subject attribute' is the attribute name on the Grouper side. 'Source attribute' is the attribute in the source, e.g. the ldap attribute, sql column, etc. Three options. The subject attribute (Grouper side) has an attribute name that is the same name as the source side (e.g. SQL column name, LDAP attribute, etc): same. Or you can pick a sourceAttribute to map this subject attribute to (e.g. same value but rename it): rename. Or you can write a scriptlet (translation) to make it more dynamic and adjust the value or use multiple source or subject attributes: translation script.
config.GenericConfiguration.attribute.option.attribute.i.translationType.sourceAttributeSameAsSubjectAttribute.label = Same attribute name
config.GenericConfiguration.attribute.option.attribute.i.translationType.sourceAttribute.label = Rename attribute
config.GenericConfiguration.attribute.option.attribute.i.translationType.translation.label = Translation script
config.GenericConfiguration.attribute.attribute.i.isTranslation.label = Attribute __i+1__: is translation?
config.GenericConfiguration.attribute.attribute.i.isTranslation.description = If this is a "virtual" attribute and needs a JEXL script to translate between the source attributes (e.g. raw ldap or sql data) and the subject attributes (exposed to APIs or UI).
config.GenericConfiguration.attribute.attribute.i.sourceAttribute.label = Attribute __i+1__: source attribute
config.GenericConfiguration.attribute.attribute.i.sourceAttribute.description = Which LDAP attribute or SQL column should this subject attribute directly derive from
config.GenericConfiguration.attribute.attribute.i.translation.label = Attribute __i+1__: translation script
config.GenericConfiguration.attribute.attribute.i.translation.description = We need variables from source, and variables for other subject attributes. suggestion is ${source_attribute__first_name} - gets an attribute from the source query or filter. in this case 'first_name' column ${subject_attribute__description} - references a built in subject field, in this case the description field ${subject_attribute__emailaddress} - references a previously configured subject attribute. in this case "emailAddress". The key is lower case. Here is an example of a description:
${subject_attribute__cn + ' (' +source_attribute__uid + ') - ' + source_attribute__businesscategory + ' - ' + source_attribute__edupersonaffiliation}
config.GenericConfiguration.attribute.attribute.i.emailAttribute.label = Attribute __i+1__: email attribute
config.GenericConfiguration.attribute.attribute.i.emailAttribute.description = If this is the email attribute for the source. You should only have one email attribute.
config.GenericConfiguration.attribute.attribute.i.subjectIdentifier.label = Attribute __i+1__: subject identifier
config.GenericConfiguration.attribute.attribute.i.subjectIdentifier.description = If this is a subject identifier. A subject identifier is a value that uniquely identifies a subject, though this identifier might change over time (e.g. a netId might change when a name changes)
config.GenericConfiguration.attribute.attribute.i.internal.label = Attribute __i+1__: internal
config.GenericConfiguration.attribute.attribute.i.internal.description = Internal attributes are not available in the UI or WS, they are just used internally for Grouper. e.g. an attribute used for sorting.
config.GenericConfiguration.attribute.attribute.i.exportHeader.label = Attribute __i+1__: export header
config.GenericConfiguration.attribute.attribute.i.exportHeader.description = When exporting a group's memberships, this is the header (e.g. for CSV). Should be alphanumeric and should not be an internal label: subjectid, entityid, sourceid, memberid, name, description, screenlabel
config.GenericConfiguration.attribute.attribute.i.multiValued.label = Attribute __i+1__: multivalued?
config.GenericConfiguration.attribute.attribute.i.multiValued.description = Multivalued attributes can have more than one value. Generally these should be avoided.
config.LdapSubjectSourceConfiguration.attribute.adapterClass.label = Adapter class
config.SqlSubjectSourceConfiguration.attribute.adapterClass.label = Adapter class
config.SqlSubjectSourceConfiguration.attribute.param.dbTableOrView.value.label = Db table or view
config.SqlSubjectSourceConfiguration.attribute.param.subjectIdCol.value.label = Subject id column
config.SqlSubjectSourceConfiguration.attribute.param.lowerSearchCol.value.label = Lower search column
config.SqlSubjectSourceConfiguration.attribute.param.jdbcConfigId.value.label = External system
config.SqlSubjectSourceConfiguration.attribute.param.defaultSortCol.value.label = Default sort column
config.SqlSubjectSourceConfiguration.attribute.param.jdbcConfigId.value.description = SQL external system to connect to. Add another connection in the "external systems" config.
config.LdapSubjectSourceConfiguration.attribute.param.ldapServerId.value.label = External system
config.LdapSubjectSourceConfiguration.attribute.param.ldapServerId.value.description = LDAP external system to connect to. Add another connection in the "external systems" config.
config.LdapSubjectSourceConfiguration.attribute.search.searchSubject.param.filter.value.label = Subject ID search filter
config.LdapSubjectSourceConfiguration.attribute.search.searchSubject.param.filter.value.description = Find a subject by ID. ID is generally an opaque and permanent identifier, e.g. 12345678. Each subject has one and only on ID. Returns one result when searching for one ID. sql is the sql to search for the subject by id. %TERM% will be subsituted by the id searched for subjectApi.source.example.search.searchSubject.param.filter.value = (& (exampleEduRegId=%TERM%) (objectclass=exampleEduPerson))
config.LdapSubjectSourceConfiguration.attribute.search.searchSubject.param.scope.value.label = Search subject scope
config.LdapSubjectSourceConfiguration.attribute.search.searchSubject.param.base.value.label = Search subject base
config.LdapSubjectSourceConfiguration.attribute.search.searchSubjectByIdentifier.param.filter.value.label = Subject identifier search filter
config.LdapSubjectSourceConfiguration.attribute.search.search.param.filter.value.label = Subject free-form search filter
config.LdapSubjectSourceConfiguration.attribute.param.Multiple_Results.value.label = Fetch multiple results
config.LdapSubjectSourceConfiguration.attribute.param.throwErrorOnFindAllFailure.value.label = Throw error on find all failure
config.LdapSubjectSourceConfiguration.attribute.param.maxPageSize.value.label = Max page size
config.LdapSubjectSourceConfiguration.attribute.param.errorOnMaxResults.value.label = Error on max results
config.LdapSubjectSourceConfiguration.attribute.ldapSearchSubjectByIdFilter.label = Ldap search subject by id filter
config.LdapSubjectSourceConfiguration.attribute.ldapSearchSubjectByIdScope.label = Ldap search subject by id scope
config.LdapSubjectSourceConfiguration.attribute.ldapSearchSubjectByIdBaseDn.label = Ldap search subject by id base dn
config.LdapSubjectSourceConfiguration.attribute.ldapSearchSubjectByIdentifierFilter.label = Ldap search subject by identifier filter
config.LdapSubjectSourceConfiguration.attribute.ldapSearchSubjectByIdentifierScope.label = Ldap search subject by identifier scope
config.LdapSubjectSourceConfiguration.attribute.ldapSearchSubjectByIdentifierBaseDn.label = Ldap search subject by identifier base dn
config.LdapSubjectSourceConfiguration.attribute.ldapFindSubjectsFilter.label = Ldap find subjects filter
config.LdapSubjectSourceConfiguration.attribute.ldapFindSubjectsScope.label = Ldap find subjects scope
config.LdapSubjectSourceConfiguration.attribute.ldapFindSubjectsBaseDn.label = Ldap find subjects base dn
config.SqlSubjectSourceConfiguration.attribute.sqlExternalSystemConfigId.label = External system
config.SqlSubjectSourceConfiguration.attribute.dbTableOrView.label = Database table or view
########################################
## Admin menu daemon jobs
########################################
# link to the daemon jobs page
adminDaemonJobsLink = Daemon jobs
# error if not allowed to see screen
adminDaemonJobsErrorNotAllowed = Not allowed to see daemon jobs, it is either disabled or you are not an admin or in the appropriate group
# breadcrumb for home
adminDaemonJobsHomeBreadcrumb = Home
# breadcrumb on the daemon jobs screen
adminDaemonJobsBreadcrumb = All daemon jobs
# breadcrumb on the daemon logs screen
adminDaemonLogsBreadcrumb = Daemon logs
# title of daemon jobs
adminDaemonJobsTitle = All daemon jobs
# job name
adminDaemonJobsColumnHeaderJobName = Job name
# tooltip on job name column
adminDaemonJobsColumnTooltipJobName = The internal name of this job in Quartz.
# state
adminDaemonJobsColumnHeaderState = State
# tooltip on state column
adminDaemonJobsColumnTooltipState = The state of the job (RUNNING, ENABLED, DISABLED).
# schedule associated with this job
adminDaemonJobsColumnHeaderSchedule = Schedule
# tooltip on schedule column
adminDaemonJobsColumnTooltipSchedule = Interval or cron schedule that defines this job
# next fire time
adminDaemonJobsColumnHeaderNextFireTime = Next start time
# tooltip on next fire time column
adminDaemonJobsColumnTooltipNextFireTime = The time when this job will next run
# last run status
adminDaemonJobsColumnHeaderLastRunStatus = Last run status
# tooltip on last run status column
adminDaemonJobsColumnTooltipLastRunStatus = The most recent status of this job
# tooltip on overall status column
adminDaemonJobsColumnTooltipOverallStatus = The overall status of this job. If the last status was ERROR, the overall status may still be SUCCESS if there was a recent success. Also if the last status was SUCCESS, the overall status may be ERROR if the success wasn't recent.
# last run start time
adminDaemonJobsColumnHeaderLastRunStartTime = Last run start time
# tooltip on last run start time column
adminDaemonJobsColumnTooltipLastRunStartTime = The last time this job started
# last run host
adminDaemonJobsColumnHeaderLastRunHost = Last run host
# overall status
adminDaemonJobsColumnHeaderOverallStatus = Overall status
# tooltip on last run host column
adminDaemonJobsColumnTooltipLastRunHost = The host that ran the most recent job
# last run summary
adminDaemonJobsColumnHeaderLastRunSummary = Last run summary
# tooltip on last run summary column
adminDaemonJobsColumnTooltipLastRunSummary = The summary of the most recent execution
# change log info
adminDaemonJobsColumnHeaderChangeLogInfo = Change log information
# tooltip on change log info column
adminDaemonJobsColumnTooltipChangeLogInfo = Additional information for change log jobs
# last run total time
adminDaemonJobsColumnHeaderLastRunTotalTime = Last run total time
# tooltip on last run total time column
adminDaemonJobsColumnTooltipLastRunTotalTime = The total time of the most recent execution
# more actions
adminDaemonJobsColumnHeaderMoreActions = Actions
# tooltip on more actions column
adminDaemonJobsColumnTooltipMoreActions = Actions that you can take on this job
# quartz cron schedule error
adminDaemonJobsCronDescriptionError = Error: could not parse quartz cron string
# various states
adminDaemonJobsStateRunning = RUNNING
adminDaemonJobsStateEnabled = ENABLED
adminDaemonJobsStateDisabled = DISABLED
# more actions
ariaLabelGuiMoreDaemonJobActions = Show more actions for this job
adminDaemonJobsMoreActionsDefaultText = Job actions
adminDaemonJobsMoreActionsRunNow = Run job now
adminDaemonJobsMoreActionsDisable = Disable job
adminDaemonJobsMoreActionsEnable = Enable job
adminDaemonJobsMoreActionsLogs = View daemon logs
adminDaemonJobsMoreActionsDelete = Delete
daemonJobRun = Success: the report has been scheduled to run now on the daemon
# daemon jobs change log pending in queue
daemonJobsChangeLogPendingInQueue = Pending in queue:
# daemon jobs filter for label
daemonJobsFilterFor = Filter for:
# show extended results?
daemonJobsFilterShowExtendedResults = Show extended results?
# daemon jobs name placeholder
daemonJobsSearchNamePlaceholder = Job name
# daemon job names common placeholder
daemonJobsCommonSearchNamePlaceholder = Common filters
# daemon job names status placeholder
daemonJobsStatusSearchNamePlaceholder = Filter status
# daemon job status filter options
adminDaemonJobsStatusFilterRunning = Running
adminDaemonJobsStatusFilterEnabled = Enabled
adminDaemonJobsStatusFilterDisabled = Disabled
adminDaemonJobsStatusFilterAnyError = Any error
adminDaemonJobsStatusFilterFailsafeError = Failsafe error
adminDaemonJobsStatusFilterSubjectProblems = Subject problems
adminDaemonJobsStatusFilterStarted = Started
adminDaemonJobsStatusFilterSuccess = Success
adminDaemonJobsStatusFilterWarning = Warning
# daemon jobs search button
daemonJobsSearchButton = Apply filter
# daemon jobs reset button
daemonJobsResetButton = Reset
# if no results found
daemonJobsNoResultsFound = No results found
# if no results found
daemonJobConfigNotFound = Error: can't find daemon config for jobName ${grouperRequestContainer.adminContainer.daemonJobName}
# next refresh
daemonJobsNextRefresh = Next refresh:
# max refreshes reached
daemonJobsMaxRefreshesReached = Maximum refreshes reached
# description at the top of log screen
daemonJobsViewLogsTitle = Daemon logs
# if there are logs
daemonJobsViewLogsDescription = ${grouperUtil.length(grouperRequestContainer.adminContainer.guiHib3GrouperLoaderLogs)} logs found for job name: ${grouperRequestContainer.adminContainer.guiDaemonJobs.get(0).jobName}
# aria label accessibility for more actions for daemon
daemonJobsMoreActionsAria = Show daemon actions
# more actions button
daemonJobsViewMoreActionsButton = Daemon actions
# all daemon jobs button
daemonJobsButtonAllDaemonJobs = All daemon jobs
# add daemon
daemonJobsAddDaemon = Add daemon
# edit daemon
daemonJobsEditDaemon = Edit daemon
daemonNameLabel = Daemon
########################################
## Daemon add/edit/delete
########################################
daemonJobTypeLabel = Daemon type
# grouper daemon type hint
grouperDaemonTypeHint = Type of grouper daemon, for example change log or script daemon.
# daemon config id label
daemonConfigIdLabel = Config id
# daemon config id hint
daemonConfigIdHint = The Config id is an alphanumeric key for the daemon. It is also used in the configuration keys. Example: incrementalLoader1
# next button
grouperDaemonAddFormNextButton = Next
# submit button
grouperDaemonAddEditSubmitButton = Submit
grouperDaemonConfigCancelButton = Cancel
# success message on edit/add submit
grouperDaemonConfigAddEditSuccess = Grouper daemon config was saved successfully.
grouperDaemonConfigLoaderType = Loader
grouperDaemonConfigDeleteJob = Delete daemon
grouperDaemonConfigEditJob = Edit daemon
grouperDaemonConfigDeleteSuccess = Grouper daemon config was deleted successfully.
grouperDaemonConfigLoaderInstructions = - The loader configuration is on a group
- For a "simple" loader, navigate to the group that should be loaded
- For a "list" loader, navigate to a group which is not in the folder to be loaded
- Click on the More\u2192Loader tab
grouperDaemonConfigEnableLabel = Enable
grouperDaemonConfigEnableYes = Yes, enable the job on save
grouperDaemonConfigEnableNo = No, do not enable the job on save
grouperDaemonConfigEnableDescription = If job should be enabled on save
# error that config id is required
grouperDaemonConfigCreateErrorConfigIdRequired = Error: Config id is required
grouperDaemonConfigCreateErrorConfigTypeRequired = Error: Config type is required
grouperDaemonConfirmDeleteConfig = Are you sure you want to delete this daemon?
########################################
## Admin menu job history chart
########################################
# job history chart
adminJobHistoryChart = Job history chart
# breadcrumb for home
adminJobHistoryHomeBreadcrumb = Home
# job history chart minimal execution time filter
adminJobHistoryMinExecutionFilter = Minimum job time
# job history chart minimal execution time filter
adminJobHistoryMinExecutionFilterHint = Only show jobs that took at least this many seconds
# job history chart names like string filter (comma-separated)
adminJobHistoryNamesLikeFilter = Job names
# job history chart names like string filter (comma-separated)
adminJobHistoryNamesLikeFilterHint = Job names wilcard filter (use % wildcard and comma separator)
# error if not allowed to see screen
adminJobHistoryErrorNotAllowed = Not allowed to see job history, it is either disabled or you are not an admin or in the appropriate group
# filter label
adminJobHistoryFilterLabel = Filter jobs
# daemon job filtering date range label
adminJobFilterFrom = Date range from
# daemon job filtering date range label
adminJobFilterTo = Date range to
# placeholder in date field
adminJobHistoryDatePlaceholder=yyyy/mm/dd
# placeholder in time field
adminJobHistoryTimePlaceholder=hh:mm:ss
# hint in date from row
adminJobFilterFromHint=Date and time when the gantt chart starts
# hint in date to row
adminJobFilterToHint=Date and time when the gantt chart ends
# seconds placeholder
adminJobFilterPlaceholderSeconds=seconds
# refresh button
adminJobFilterRefreshButton=Refresh view
# if no data show this message
adminJobHistoryNoData=No data to display for this time period
# status tooltip label
adminJobHistoryTooltipStatus = Status
# Started tooltip label
adminJobHistoryTooltipStarted = Started
# Finished tooltip label
adminJobHistoryTooltipFinished = Finished
# Last updated tooltip label
adminJobHistoryTooltipLastUpdated = Last updated
# Elapsed tooltip label
adminJobHistoryTooltipElapsed = Elapsed
# seconds suffix tooltip label
adminJobHistoryTooltipSecondsSuffix = sec
# insert prefix tooltip label
adminJobHistoryTooltipInsertPrefix = ins
# update prefix tooltip label
adminJobHistoryTooltipUpdatePrefix = upd
# delete prefix tooltip label
adminJobHistoryTooltipDeletePrefix = del
# total prefix tooltip label
adminJobHistoryTooltipTotalPrefix = tot
########################################
## Admin menu job schedule
########################################
adminJobScheduleSuccess = Success: Analyzed configs and made ${grouperRequestContainer.adminContainer.scheduleChanges} schedule changes
# button on jobs screen that schedules jobs
adminJobSchedule = Schedule jobs
########################################
## Admin menu subject API diagnostics
########################################
# link to the diagnostics page
adminSubjectApiDiagnosticsLink = Subject API diagnostics
# error if not allowed to see screen
adminSubjectApiDiagnosticsErrorNotAllowed = Not allowed to see subject API diagnostics, its either disabled or you are not an admin or in the appropriate group
# breadcrumb for home
adminSubjectApiDiagnosticsHomeBreadcrumb = Home
# breadcrumb on the subject api screen
adminSubjectApiDiagnosticsBreadcrumb = Subject API diagnostics
# title of subject API diagnostics
adminSubjectApiDiagnosticsTitle = Subject API diagnostics
# source id field
adminSubjectApiDiagnosticsSourceId = Source ID:
# submit button
subjectApiDiagnosticsSubmitButton = Run diagnostics
# subject id to search for
adminSubjectApiDiagnosticsSubjectId = Subject ID:
# source ID label
adminSubjectApiDiagnosticsSourceIdLabel = The Source ID is configured in the subject.properties file. Some sources are internal for Grouper and one or more are custom for your institution. The fewer the better.
# subject id label
adminSubjectApiDiagnosticsSubjectIdLabel = Enter a Subject ID to search for. This should be an unchanging opaque identifier. This defaults to the subject.properties source param 'subjectIdToFindOnCheckConfig' or to a hardcoded default value if not configured, which is used in the status servlet.
# subject identifier label
adminSubjectApiDiagnosticsSubjectIdentifierLabel = Enter a Subject Identifier to search for. This is any identifier that uniquely identifies this subject in this source. e.g. netId, eppn, etc. It is nice if identifiers are unique across sources, which defaults to the subject.properties source param 'subjectIdentifierToFindOnCheckConfig' or to a hardcoded default value if not configured. This is used in the status servlet.
# search string label
adminSubjectApiDiagnosticsSearchStringLabel = Enter a Search String to search for. This usually searches based on name, id, identifier, description, etc. This defaults to the subject.properties source param 'stringToFindOnCheckConfig' or to a hardcoded default value if not configured, which is used in the status servlet.
# subject identifier to search for
adminSubjectApiDiagnosticsSubjectIdentifier = Subject Identifier:
# free form search string
adminSubjectApiDiagnosticsSearchString = Search String:
# act as another subject
adminSubjectApiDiagnosticsActAs = Act as:
# act as label
adminSubjectApiDiagnosticsActAsLabel = Act as another user. Some subject sources use the current user for privileges (e.g. searching for groups). Search for a user or enter a subject id or subject identifier (must be unique across sources if entering id or identifier).
########################################
## Group copy
########################################
# title of the copy group screen
groupCopyTitle = Copy group
# label of copy group name
groupCopyNewGroupNameLabel = New group name:
# description of copy group name
groupCopyNewGroupNameDescription = Name is the label that identifies this group, and might change.
# label of copy group id
groupCopyNewGroupIdLabel = New group ID:
# description of copy id
groupCopyNewGroupIdDescription = ID is the unique identifier for this group. It should be short and simple, and must be all lowercase with no spaces or special characters. The ID must be unique within this folder, and should rarely change.
# group copy into folder
groupCopyIntoFolder = Copy into this folder:
# group copy into folder instructions for combobox
groupCopyIntoFolderDescription = Enter a folder name or search for a folder where you are allowed to create new groups.
# group copy cant find parent stem
groupCopyCantFindParentStemId = Error: Cannot find parent folder. Select a folder from the combobox results.
# group copy no privileges on parent stem
groupCopyCantCreateGroupsInParent = Error: You do not have 'Create' privilege on the parent folder
# generic insufficient privileges
groupCopyInsufficientPrivileges = Error: Insufficient privileges
# success the group was copied
groupCopySuccess = Success: the group was copied
# group copy search for folder
groupCopySearchForFolder = Search for a folder
# group copy search for a folder placeholder
groupCopySearchForFolderPlaceholder = Search for a folder
# group copy search button
groupCopySearchButton = Search
# group copy close button
groupCopyCloseButton = Close
# group copy group attributes checkbox
groupCopyGroupAttributes = Copy attributes?
# group copy group attributes checkbox help
groupCopyGroupAttributesHelp = If you select this option, all custom attributes will be copied to the new group. If you do not have read access to all attributes in the group, you will get a privilege error.
# group copy list memberships checkbox
groupCopyListMemberships = Copy list memberships of the group?
# group copy list memberships checkbox help
groupCopyListMembershipsHelp = If you select this option, all members of the group in the default list along with any custom lists will be copied to the new group. If you do not have read access to any of the custom lists, you will get a privilege error.
# group copy group privileges checkbox
groupCopyGroupPrivileges = Copy privileges of the group?
# group copy group privileges checkbox help
groupCopyGroupPrivilegesHelp = If you select this option, all privileges of the group will be copied to the new group. If you do not have read access to any of the privileges, you will get a privilege error.
# group copy groups as members checkbox
groupCopyGroupsAsMembers = Copy list memberships where the group is a member of other groups?
# group copy groups as members checkbox help
groupCopyGroupsAsMembersHelp = If you select this option and the group is a member of other groups, the new copied group will be added to the other groups' membership list. If you do not have access to add members to the other groups, you will get a privilege error.
# group copy groups have privileges elsewhere checkbox
groupCopyGroupsAsPrivilegees = Copy privileges where the group has privileges to other groups or folders?
# group copy groups have privileges elsewhere checkbox help
groupCopyGroupsAsPrivilegeesHelp = If you select this option and the group has privileges to other groups or folders, the new copied group will also be given privileges to those other groups or folders. If you do not have access to add privileges to the other groups or folders, you will get a privilege error.
# group copy copy button
groupCopyCopyButton = Copy
# group copy cancel button
groupCopyCancelButton = Cancel
########################################
## Edit group loader from UI
########################################
# description at top of group loader
grouperLoaderGroupDecription = Loader settings
# description at top of edit grouper loader screen
grouperLoaderEditGroupDecription = Edit loader settings
# label next to top row of edit loader tab
grouperLoaderHasLoaderLabel = Loader
# select box for if has loader
grouperLoaderYesHasLoaderLabel = Yes, has loader configuration
grouperLoaderNoDoesNotHaveLoaderLabel = No, does not have loader configuration
# description under select box
grouperLoaderHasLoaderDescription = If this group has loader configuration
# select box for if the job should be scheduled
grouperLoaderYesScheduleJobLabel = Yes, schedule and enable this job
grouperLoaderNoDoNotScheduleJobLabel = No, do not schedule and enable this job yet
# description under select box
grouperLoaderScheduleJobDescription = If this job should immediately be scheduled and enabled
# schedule job
grouperLoaderScheduleJob = Schedule job
# schedule job
grouperLoaderFailsafeLabel = Customize failsafe
# description under select box
grouperLoaderFailsafeDescription = If you want to make sure too many deletes do not occur at once, customize the failsafe settings for this job
grouperLoaderYesFailsafeLabel = Yes, customize the failsafe
grouperLoaderNoFailsafeLabel = No, do not customize the failsafe
# if should use failsafe
grouperLoaderFailsafeUseLabel = Failsafe enabled
grouperLoaderFailsafeUseDescription = If a local or global failsafe should be used on this job.
grouperLoaderDefaultUseFailsafeLabel = Default: ${edu.internet2.middleware.grouper.app.loader.GrouperLoaderConfig.retrieveConfig().propertyValueString("loader.failsafe.use", "false")}
grouperLoaderYesUseFailsafeLabel = Yes, failsafe is enabled
grouperLoaderNoDoNotUseFailsafeLabel = No, failsafe is not enabled
grouperLoaderFailsafeSendEmailLabel = Failsafe send email
grouperLoaderFailsafeSendEmailDescription = Send email to the configured failsafe email list or group when a failsafe issue occurs so they can approve the failsafe or fix the issue
grouperLoaderDefaultSendEmailLabel = Default: ${edu.internet2.middleware.grouper.app.loader.GrouperLoaderConfig.retrieveConfig().failsafeSendEmailDefault()}
grouperLoaderYesSendEmailFailsafeLabel = Yes, send email on failsafe issue
grouperLoaderNoDoNotSendEmailFailsafeLabel = No, do not send email on failsafe issue
grouperLoaderMinGroupSizeLabel = Failsafe applies above group size
grouperLoaderMinGroupSizeDescription = The group percent and min members failsafe will only be enabled if the group has this many members. -1 means disable this setting. Default configuration is: ${edu.internet2.middleware.grouper.app.loader.GrouperLoaderConfig.retrieveConfig().propertyValueString("loader.failsafe.minGroupSize")}
grouperLoaderMinGroupSizeInvalid = Error with '$$grouperLoaderMinGroupSizeLabel$$', value must be an integer greater than or equal to -1.
grouperLoaderMaxGroupPercentRemoveLabel = Failsafe max percent remove from group
grouperLoaderMaxGroupPercentRemoveDescription = If the percent of memberships to be removed from the group is greater than this percent then trigger a failsafe (do not run the job). -1 means disable this failsafe. An admin will need to fix the data problem or approve the failsafe. Default configuration is: ${edu.internet2.middleware.grouper.app.loader.GrouperLoaderConfig.retrieveConfig().propertyValueString("loader.failsafe.maxPercentRemove")}
grouperLoaderMaxGroupPercentRemoveInvalid = Error with '$$grouperLoaderMaxGroupPercentRemoveLabel$$', value must be an integer greater than or equal to -1 and less than or equal to 100.
grouperLoaderMinGroupNumberOfMembersLabel = Failsafe min number of members
grouperLoaderMinGroupNumberOfMembersDescription = If the number of memberships in a group falls below this number then trigger a failsafe (do not run the job). -1 means disable this failsafe. An admin will need to fix the data problem or approve the failsafe. There is no default for this config value.
grouperLoaderMinGroupNumberOfMembersInvalid = Error with '$$grouperLoaderMinGroupNumberOfMembersLabel$$', value must be an integer greater than or equal to -1.
grouperLoaderMinManagedGroupsLabel = Failsafe applies above group count
grouperLoaderMinManagedGroupsDescription = The 'max percent groups emptied' failsafe will only be enabled if there are this many groups managed by the job. -1 means disable this setting. Default configuration is: ${edu.internet2.middleware.grouper.app.loader.GrouperLoaderConfig.retrieveConfig().propertyValueString("loader.failsafe.groupList.managedGroups.minManagedGroups")}
grouperLoaderMinManagedGroupsInvalid = Error with '$$grouperLoaderMinManagedGroupsLabel$$', value must be an integer greater than or equal to -1.
grouperLoaderMaxOverallPercentGroupsRemoveLabel = Failsafe max percent groups emptied
grouperLoaderMaxOverallPercentGroupsRemoveDescription = If the percent of groups to be deleted or the members removed is more than this percent then trigger a failsafe (do not run the job). -1 means disable this failsafe. An admin will need to fix the data problem or approve the failsafe. Default configuration is: ${edu.internet2.middleware.grouper.app.loader.GrouperLoaderConfig.retrieveConfig().propertyValueString("loader.failsafe.groupList.managedGroups.maxPercentGroupsRemove")}
grouperLoaderMaxOverallPercentGroupsRemoveInvalid = Error with '$$grouperLoaderMaxOverallPercentGroupsRemoveLabel$$', value must be an integer greater than or equal to -1 and less than or equal to 100.
grouperLoaderMaxOverallPercentMembershipsRemoveLabel = Failsafe max percent mships removed overall
grouperLoaderMaxOverallPercentMembershipsRemoveDescription = If the percent of memberships to be deleted is more than this percent then trigger a failsafe (do not run the job). -1 means disable this failsafe. Default configuration is: ${edu.internet2.middleware.grouper.app.loader.GrouperLoaderConfig.retrieveConfig().propertyValueString("loader.failsafe.groupList.managedGroups.maxPercentMembershipsRemove")}
grouperLoaderMaxOverallPercentMembershipsInvalid = Error with '$$grouperLoaderMaxOverallPercentMembershipsRemoveLabel$$', value must be an integer greater than or equal to -1 and less than or equal to 100.
grouperLoaderMinOverallNumberOfMembersLabel = Failsafe min overall membership count
grouperLoaderMinOverallNumberOfMembersDescription = If the overall membership count of the job is less than this amount then trigger a failsafe (do not run the job). -1 means disable this failsafe. There is no default value for this configuration.
grouperLoaderMinOverallNumberOfMembersInvalid = Error with '$$grouperLoaderMinOverallNumberOfMembersLabel$$', value must be an integer greater than or equal to -1.
grouperLoaderFailsafeApprove = Failsafe approve
adminDaemonJobsMoreActionsFailsafeApprove = Failsafe approve
failsafeApproved = Success: failsafe approved
daemonJobDisabledSuccess = Success: Daemon job disabled
daemonJobRunButRunning = Error: Daemon job is detected to be running, try again in a minute if the job is not running
daemonJobEnabledSuccess = Success: Daemon job enabled
# cancel the grouper loader edit
grouperLoaderEditButtonCancel = Cancel
# cancel the grouper loader edit
grouperLoaderEditButtonSave = Save
# If this group is a grouper loader
grouperLoaderIsGrouperLoader = This group has loader configuration
# If this group is a grouper loader
grouperLoaderIsGrouperLoaderRecent = This loader group contains members who were recently and/or currently in another group
# Message to show when a group is managed by loader.
grouperLoaderGroupManagedByLoader = This group is managed by loader group {0}.
# Message to show when a group was managed by loader.
grouperLoaderGroupWasManagedByLoader = This group was managed by loader group {0}.
# show this message when fully loaded is not null
grouperLoaderGroupManagedByLoaderFullyLoaded = It was last fully loaded on {0}.
# Show this message only if incremental loaded value is there.
grouperLoaderGroupManagedByLoaderIncrementallyLoaded = It was last incrementally loaded on {0}.
# summary message
grouperLoaderGroupManagedByLoaderSummary = Summary is: {0}
# If this group is not a grouper loader group
grouperLoaderIsNotGrouperLoader = This group does not have loader configuration
# description at top of group loader
grouperLoaderEditConfiguration = Edit loader configuration
# LDAP or SQL
grouperLoaderSourceType = Source type
grouperLoaderLdap = LDAP
grouperLoaderSql = SQL
grouperLoaderRecentMemberships = Recent memberships
grouperLoaderJexlScript = JEXL script
grouperLoaderSourceType__SQL = Pull the members from a SQL database
grouperLoaderSourceType__LDAP = Pull the members from an LDAP server
grouperLoaderSourceType__JEXL_SCRIPT = Pull the members from a JEXL script
grouperLoaderSourceType__RECENT_MEMBERSHIPS = Pull members from an existing group's recent memberships
grouperLoaderSourceType__ = Pull members from a JEXL script, an LDAP server, recent group memberships, or a SQL database
# If this group is a grouper loader
grouperLoaderIsGrouperLoaderJexlScript = This loader group contains members who are the result of a JEXL script
# tooltip for required fields
grouperRequiredTooltip = This is a required field
# if loader configuration was removed
grouperLoaderEditRemoved = Loader configuration was removed
grouperLoaderRecentMembershipsEditRemoved = Recent memberships configuration was removed
grouperLoaderJexlScriptEditRemoved = JEXL script configuration was removed
grouperLoaderRecentFromGroup = From group
grouperLoaderRecentFromGroupDescription = Group whose recent memberships should be populated in this group
# text before the combo link
grouperLoaderRecentPreComboLink = Enter a group name or ID
grouperLoaderEntityJexlScript = Entity JEXL script
grouperLoaderEntityJexlScriptDescription = Enter a JEXL expression that controls the group membership (generally this is users or people).
The variable 'entity' is an instance of class: edu.internet2.middleware.grouper.abac.GrouperAbacEntity
You can use entity.memberOf('full:group:id:path') exactly like that to see if user is in a group or not.
Here is an example of a three part intersection:
${ entity.memberOf('ref:staff') && entity.memberOf('ref:payroll:fullTime') && entity.memberOf('ref:mfaEnrolled') }
Here is an example policy:
${ ( entity.memberOf('ref:employee') || entity.memberOf('ref:student') || (entity.memberOf('ref:guests') && entity.memberOf('app:vpn:vpnManualOverrides'))) && !entity.memberOf('ref:globalLockout') && !entity.memberOf('app:vpn:vpnManualLockout') }
This script identifies users who are not in globalLockout and not in vpnManualLockout and in an eligible population which is faculty, students, or guests who are in the manual app override group
grouperLoaderIncludeInternalSources = Include internal subject sources
grouperLoaderIncludeInternalSourcesDescription = Include internal subject sources in the entity script results. e.g. g:gsa (groups), g:isa (e.g. GrouperSystem, GrouperAll), grouperExternal, grouperEntities . Default: No, do not include those internal sources.
grouperLoaderIncludeInternalSourcesFalse = No, only include institution defined subject sources (default)
grouperLoaderIncludeInternalSourcesTrue = Yes, include all subject sources (you can filter in the JEXL script)
grouperLoaderRecentDays = Days of recent memberships
grouperLoaderRecentDaysDescription = Number of days of recent memberships included in this group. E.g. If 90 is entered then this group will contain members who were in the "from group" in the last 90 days.
grouperLoaderRecentIncludeCurrent = Include current members
grouperLoaderRecentIncludeCurrentDescription = Include current members and recent memberships in this group. If this group is for grace periods, then including current members will prevent provisioning changes as members transition from current group to previous group.
grouperLoaderRecentIncludeCurrentTrue = Yes, include current members in this group since it is a policy group
grouperLoaderRecentIncludeCurrentFalse = No, only include recent members but not current members
grouperLoaderEditJexlScriptRequired = JEXL script is required
grouperLoaderEditJexlScriptInvalid = JEXL script is invalid
grouperLoaderEditJexlScriptInvalidDoubleQuote = JEXL script is invalid, do not use double quotes around group names
grouperLoaderEditRecentGroupFromUuidRequired = From group is required
grouperLoaderEditRecentRecentDaysRequired = Days of recent memberships required
grouperLoaderEditRecentGroupFromUuidNotFound = From group not found
grouperLoaderEditRecentGroupFromUuidNotAllowed = From group not allowed to read
grouperLoaderEditRecentRecentDaysInvalid = Days of recent memberships required must be a valid positive number
grouperLoaderEditRecentIncludeCurrentRequired = Include current members is required
# validation problems
grouperLoaderEditTypeRequired = Source type is required
grouperLoaderEditSqlTypeRequired = Loader type is required
grouperLoaderEditSqlTypeInvalid = Loader type invalid
grouperLoaderEditSqlTypeWrong = Loader type must be SQL_SIMPLE or SQL_GROUP_LIST
grouperLoaderEditServerIdRequired = Database name is required
grouperLoaderEditSqlQueryRequired = SQL query is required
grouperLoaderEditScheduleTypeRequired = Schedule type is required
grouperLoaderEditScheduleIntervalRequired = Schedule interval is required
grouperLoaderEditScheduleIntervalInvalid = Schedule interval must be an integer
grouperLoaderEditScheduleCronRequired = Schedule is required
grouperLoaderEditScheduleCronInvalid = Schedule cron is invalid
grouperLoaderEditPriorityInvalid = Priority is invalid
grouperLoaderEditLevelsInvalid = Levels is invalid. It must be an integer greater than 0
grouperLoaderEditScheduleGroupsQueryBlank = Group query cannot be blank when sync display name config is set
grouperLoaderEditScheduleBaseFolderNameBlank = Base folder path cannot be blank when sync display name config is set to Base folder path
grouperLoaderEditScheduleLevelsBlank = Levels cannot be blank when sync display name config is set to levels
grouperLoaderEditLdapTypeRequired = Loader type is required
grouperLoaderEditLdapTypeWrong = Loader type must be LDAP_SIMPLE, LDAP_GROUP_LIST, or LDAP_GROUPS_FROM_ATTRIBUTES
grouperLoaderEditLdapTypeInvalid = Loader type invalid
grouperLoaderEditLdapServerIdRequired = Server ID is required
grouperLoaderEditLdapFilterRequired = LDAP filter is required
grouperLoaderEditLdapSubjectAttributeNameRequired = Subject attribute name is required when loader type is LDAP_SIMPLE or LDAP_GROUP_LIST
grouperLoaderEditLdapGroupAttributeNameRequired = Group attribute name is required when loader type is LDAP_GROUPS_FROM_ATTRIBUTES
# success message
grouperLoaderEditSaveSuccess = Loader configuration was saved. You should run loader diagnostics to make sure it is configured correctly.
grouperLoaderDeleteSaveSuccess = Loader configuration was removed.
# database name where the query is run
grouperLoaderDatabaseName = Database name
# quartz state
grouperLoaderSchedulerState = State
grouperLoaderSchedulerStateNotScheduled = Not Scheduled
grouperLoaderDatabaseNameDescription = server ID that is configured in the grouper-loader.properties that identifies the connection information to the database server. Note: "grouper" means use the Grouper registry database connection.
grouperLoaderDatabaseNameNotFound = Error: db.${grouperRequestContainer.grouperLoaderContainer.ldapServerId}.url not found in grouper-loader.properties note maybe its in your GrouperDaemon grouper-loader.properties but not your Grouper UI grouper-loader.properties
# query run to get the memberships
grouperLoaderSqlQuery = SQL query
grouperLoaderSqlQueryDescription__SQL_SIMPLE = query for memberships. Since this is SQL_SIMPLE, the SUBJECT_ID or SUBJECT_IDENTIFIER or SUBJECT_ID_OR_IDENTIFIER column is required, and the SUBJECT_SOURCE_ID column is optional (but recommended for better performance). SUBJECT_ID has the best performance, and SUBJECT_IDENTIFIER and SUBJECT_ID_OR_IDENTIFIER are slower since they require subject API lookups. If the data has group names as members, it must be in a SUBJECT_IDENTIFER column.
If you have a large query (e.g. over ~4k characters), configure a property in grouper-loader.properties (e.g. from the UI) where the key is arbitrary (e.g. loaderSqlQueryFor_testLoader2) and the value is the query. Then configure this value to be an EL script, e.g. ${edu.internet2.middleware.grouper.app.loader.GrouperLoaderConfig.retrieveConfig().propertyValueString("loaderSqlQueryFor_testLoader2")}
grouperLoaderSqlQueryDescription__SQL_GROUP_LIST = query for memberships. Since this is SQL_GROUP_LIST, the required GROUP_NAME column holds the group system name of the membership. the SUBJECT_ID or SUBJECT_IDENTIFIER or SUBJECT_ID_OR_IDENTIFIER column is required, and the SUBJECT_SOURCE_ID column is optional (but recommended for better performance). SUBJECT_ID has the best performance, and SUBJECT_IDENTIFIER and SUBJECT_ID_OR_IDENTIFIER are slower since they require subject API lookups. If the data has group names as members, it must be in a SUBJECT_IDENTIFER column.
If you have a large query (e.g. over ~4k characters), configure a property in grouper-loader.properties (e.g. from the UI) where the key is arbitrary (e.g. loaderSqlQueryFor_testLoader2) and the value is the query. Then configure this value to be an EL script, e.g. ${edu.internet2.middleware.grouper.app.loader.GrouperLoaderConfig.retrieveConfig().propertyValueString("loaderSqlQueryFor_testLoader2")}
# quartz cron schedule
grouperLoaderSqlScheduleType = Schedule type
grouperLoaderSqlScheduleType__START_TO_START_INTERVAL = Runs a certain amount of seconds from last run. Can be CRON (recommended) or START_TO_START_INTERVAL
grouperLoaderSqlScheduleType__CRON = Cron setting runs on a certain schedule. Can be CRON (recommended) or START_TO_START_INTERVAL
grouperLoaderSqlScheduleType__ = Can be CRON (recommended) or START_TO_START_INTERVAL
grouperLoaderSqlScheduleTypeOption__CRON = CRON - (recommended) Cron setting runs on a certain schedule
grouperLoaderSqlScheduleTypeOption__START_TO_START_INTERVAL = START_TO_START_INTERVAL - Runs a certain amount of seconds from last run
# loader type like SQL_SIMPLE
grouperLoaderSqlLoaderType = Loader type
grouperLoaderSqlLoaderType__SQL_SIMPLE = the SQL query loads the members of this group. Can be SQL_SIMPLE or SQL_GROUP_LIST
grouperLoaderSqlLoaderType__SQL_GROUP_LIST = the SQL query loads the members of multiple groups. Can be SQL_SIMPLE or SQL_GROUP_LIST
grouperLoaderSqlLoaderType__ = the SQL query manages either members of this group (SQL_SIMPLE)
or members of multiple groups (SQL_GROUP_LIST)
grouperLoaderSqlLoaderTypeOption__SQL_SIMPLE = SQL_SIMPLE: the SQL query loads the members of this group
grouperLoaderSqlLoaderTypeOption__SQL_GROUP_LIST = SQL_GROUP_LIST: the SQL query loads the members of multiple groups
# quartz cron schedule
grouperLoaderSqlCron = Schedule
# quartz cron schedule
grouperLoaderSqlCronDescriptionError = Error: could not parse quartz cron string
# help text for cron in edit loader screen
grouperLoaderSqlCronDescription = $$tooltipTargetted.groupFields.grouperLoaderQuartzCron$$
# schedule interval
grouperLoaderSqlScheduleInterval = Schedule interval (seconds)
grouperLoaderSqlScheduleIntervalSeconds = seconds
grouperLoaderSqlScheduleIntervalMinutes = minutes
grouperLoaderSqlScheduleIntervalHours = hours
grouperLoaderSqlScheduleIntervalDays = days
# quartz priority
grouperLoaderSqlPriority = Priority
# describe the priority
grouperLoaderSqlPriorityInvalid = this priority is invalid
grouperLoaderSqlPriorityAverage = this job has the default and middle priority of 5 (higher numbers have a higher priority)
grouperLoaderSqlPriorityLow = this job has lower than the default and middle priority of 5
grouperLoaderSqlPriorityHigh = this job has higher than the default and middle priority of 5
# if members of this job must be in other groups
grouperLoaderSqlAndGroups = Require members in other group(s)
# group query
grouperLoaderSqlGroupQuery = Group query (metadata on groups)
grouperLoaderSqlGroupQueryDescription = query (optional) for SQL_GROUP_LIST which should return cols: group_name, group_display_name (optional), group_description (optional). This should return all groups managed by this job. The name and display name are the full folder path. If there is a column named any of the following: readers, viewers, admins, updaters, optins, optouts, group_attr_readers, group_attr_updaters, then the data in the column (comma separated subjectId's or subjectIdentifers which can include group names) will be assigned to that group's privilege list. Note you can use inherited privileges on a folder instead.
# part of sql query that groups must be like to stay in
grouperLoaderSqlGroupsLike = Groups like sql part
grouperLoaderSqlGroupsLikeDescription = sql like string (e.g. school:orgs:%org%_systemOfRecord), and the loader should be able to query group names to see which names are managed by this loader job. So if a group falls off the loader resultset (or is moved), this will help the loader remove the members from this group. Note, if the group is used anywhere as a member or composite member, it won't be removed.
# sync display name configuration
grouperLoaderSqlGroupsSyncDisplayNameConfig = Sync display names configuration
grouperLoaderSqlGroupsSyncDisplayNameDescription = Choose an option to sync groups display names between source and grouper
grouperLoaderSyncDisplayNameOption__BASE_FOLDER_NAME = Sync display name after base folder name
grouperLoaderSyncDisplayNameOption__LEVELS = Levels from group to sync display name
grouperLoaderSyncDisplayNameBaseFolderName = Base folder path
grouperLoaderSyncDisplayNameBaseFolderNameDescription = Base folder name after which display names to be synced between source and grouper. Enter 'root' if you want to sync all the folders display names.
grouperLoaderSyncDisplayNameLevels = Levels from group
grouperLoaderSyncDisplayNameLevelsDescription = Levels from the group to sync display names between source and grouper
# types applied to groups
grouperLoaderSqlGroupTypes = Grouper types applied to groups
grouperLoaderSqlGroupTypesDescription = comma separated GroupTypes which will be applied to the loaded groups. e.g. addIncludeExclude
# loader type like SQL_SIMPLE
grouperLoaderLdapLoaderType = Loader type
grouperLoaderLdapLoaderType__LDAP_SIMPLE = loaded from LDAP filter which returns subject ids or identifiers. Can be LDAP_SIMPLE, LDAP_GROUP_LIST, or LDAP_GROUPS_FROM_ATTRIBUTES
grouperLoaderLdapLoaderType__LDAP_GROUP_LIST = filter returns group objects, and the group objects have a list of subjects. Can be LDAP_SIMPLE, LDAP_GROUP_LIST, or LDAP_GROUPS_FROM_ATTRIBUTES
grouperLoaderLdapLoaderType__LDAP_GROUPS_FROM_ATTRIBUTES = returns subjects which have a multi-valued attribute e.g. affiliations where groups will be created based on subject who have each attribute value. Can be LDAP_SIMPLE, LDAP_GROUP_LIST, or LDAP_GROUPS_FROM_ATTRIBUTES
grouperLoaderLdapLoaderType__ = the LDAP filter manages either members of this group (LDAP_SIMPLE)
or members of multiple groups (LDAP_GROUP_LIST or LDAP_GROUPS_FROM_ATTRIBUTES)
grouperLoaderLdapLoaderTypeOption__LDAP_SIMPLE = LDAP_SIMPLE: the LDAP filter loads members of this group
grouperLoaderLdapLoaderTypeOption__LDAP_GROUP_LIST = LDAP_GROUP_LIST: the LDAP filter returns groups with members which are loaded into multiple groups
grouperLoaderLdapLoaderTypeOption__LDAP_GROUPS_FROM_ATTRIBUTES = LDAP_GROUPS_FROM_ATTRIBUTES: the LDAP filter returns subjects with attributes which load multiple groups
# loader ldap server id in grouper-loader.properties
grouperLoaderLdapServerId = Server ID
grouperLoaderLdapServerIdDescription = server ID that is configured in the grouper-loader.properties that identifies the connection information to the LDAP server
grouperLoaderLdapServerIdNotFound = Error: ldap.${grouperRequestContainer.grouperLoaderContainer.ldapServerId}.url not found in grouper-loader.properties note maybe its in your GrouperDaemon grouper-loader.properties but not your Grouper UI grouper-loader.properties
# loader ldap filter
grouperLoaderLdapFilter = LDAP filter
grouperLoaderLdapFilterDescription__LDAP_SIMPLE = LDAP filter returns objects that have subjectIds or subjectIdentifiers
grouperLoaderLdapFilterDescription__LDAP_GROUP_LIST = LDAP filter returns objects which are groups which have subjects in an attribute of each group
grouperLoaderLdapFilterDescription__LDAP_GROUPS_FROM_ATTRIBUTES = LDAP filter returns objects which are subjects, and the subjects have attributes which will be the groups they are in
# loader ldap subject attribute
grouperLoaderLdapSubjectAttributeName = Subject attribute name
grouperLoaderLdapSubjectAttributeNameDescription__LDAP_SIMPLE = attribute name of the returned object the holds subject IDs or identifiers
grouperLoaderLdapSubjectAttributeNameDescription__LDAP_GROUP_LIST = attribute name of the returned groups which holds subject IDs or identifiers
grouperLoaderLdapSubjectAttributeNameDescription__LDAP_GROUPS_FROM_ATTRIBUTES = attribute name of the returned users which holds subject ID or identifier
# group attribute name
grouperLoaderLdapGroupAttributeName = Group attribute name
grouperLoaderLdapGroupAttributeNameDescription = attribute name of the filter result objects that holds the group name. Note, you can put multiple attribute names here comma separated
# loader ldap search dn
grouperLoaderLdapSearchDn = Search base DN
grouperLoaderLdapSearchDnDescription = location that constrains the subtree where the filter is applicable. Note, this is relative to the base DN in the ldap server config in the grouper-loader.properties for this server. This makes the query more efficient
# schedule string
grouperLoaderLdapQuartzCron = Schedule
# quartz cron schedule
grouperLoaderLdapCronDescriptionError = Error: could not parse quartz cron string
# source id
grouperLoaderLdapSourceId = Subject source ID
grouperLoaderLdapSourceIdDescription = source ID from the sources.xml that narrows the search for subjects. This is optional though makes the loader job more efficient
# subject id type
grouperLoaderLdapSubjectLookupType = Subject lookup type
grouperLoaderLdapSubjectLookupTypeDescription = can be either: subjectId (most efficient, default), subjectIdentifier (2nd most efficient), or subjectIdOrIdentifier
# search scope in ldap
grouperLoaderLdapSearchScope = Search scope
grouperLoaderLdapSearchScopeDescription = how deep to search in LDAP. Can be OBJECT_SCOPE, ONELEVEL_SCOPE, or SUBTREE_SCOPE (default)
# require groups
grouperLoaderLdapAndGroups = Require members in other group(s)
# ldap priority
grouperLoaderLdapPriority = Priority
# groups like LDAP_GROUP_LIST, or LDAP_GROUPS_FROM_ATTRIBUTES
grouperLoaderLdapGroupsLike = Groups SQL 'like' configuration
grouperLoaderLdapGroupsLikeDescription = sql like string (e.g. school:orgs:%org%_systemOfRecord), and the loader should be able to query group names to see which names are managed by this loader job. So if a group falls off the loader resultset (or is moved), this will help the loader remove the members from this group. Note, if the group is used anywhere as a member or composite member, it won't be removed.
# extra attributes
grouperLoaderLdapExtraAttributes = Extra LDAP attributes
grouperLoaderLdapExtraAttributesDescription = attribute names (comma separated) to get LDAP data for expressions in group name, displayExtension, description
# transformation class for LDAP_GROUP_FROM_ATTRIBUTES
grouperLoaderLdapResultsTransformationClass = Results transformation class
grouperLoaderLdapResultsTransformationClassDescription = Custom Java class to adjust data from LDAP in order to support advanced data transformations and filtering
# filter expression: LDAP_GROUPS_FROM_ATTRIBUTES
grouperLoaderLdapAttributeFilterExpression = Attribute filter expression
grouperLoaderLdapAttributeFilterExpressionDescription = grouper loader LDAP JEXL expression to filter attributes in LDAP_GROUPS_FROM_ATTRIBUTES. e.g. ${attributeValue == 'a' || attributeValue == 'b'} ${attributeValue != 'a' && attributeValue != 'b'} ${attributeName.toLowerCase().startsWith('st')} ${attributeName =~ '^fa.*$' }
# group name expression: LDAP_GROUP_LIST, or LDAP_GROUPS_FROM_ATTRIBUTES
grouperLoaderLdapGroupNameExpression = Group name expression
grouperLoaderLdapGroupNameExpressionDescription = JEXL expression language fragment that evaluates to the group name (relative to the stem of the group which has the loader definition). For groups from attributes, groupAttribute is the attribute value of the membership attribute (e.g. test:folder:${groupAttribute}. groupAttributes['dn'] is a variable in scope as is groupAttributes['cn'] etc
# group display name expression: LDAP_GROUP_LIST, or LDAP_GROUPS_FROM_ATTRIBUTES
grouperLoaderLdapGroupDisplayNameExpression = Group display name expression
grouperLoaderLdapGroupDisplayNameExpressionDescription = JEXL expression language fragment that evaluates to the group display name. For groups from attributes, groupAttribute is the attribute value of the membership attribute (e.g. test:folder:${groupAttribute}. groupAttributes['dn'] is a variable in scope as is groupAttributes['cn'] etc
# group description: LDAP_GROUP_LIST, or LDAP_GROUPS_FROM_ATTRIBUTES
grouperLoaderLdapGroupDescriptionExpression = Group description expression
grouperLoaderLdapGroupDescriptionExpressionDescription = JEXL expression language fragment that evaluates to the group description. For groups from attributes, groupAttribute is the attribute value of the membership attribute (e.g. test:folder:${groupAttribute}. groupAttributes['dn'] is a variable in scope as is groupAttributes['cn'] etc
# subject expression
grouperLoaderLdapSubjectExpression = Subject expression
grouperLoaderLdapSubjectExpressionDescription = JEXL expression language fragment that processes the subject string before passing it to the subject API. e.g. ${loaderLdapElUtils.convertDnToSpecificValue(subjectId)}
# group types for LDAP_GROUP_LIST or LDAP_GROUPS_FROM_ATTRIBUTES
grouperLoaderLdapGroupTypes = Grouper types applied to groups
grouperLoaderLdapGroupTypesDescription = comma separated GroupTypes which will be applied to the loaded groups. e.g. addIncludeExclude
# readers for LDAP_GROUP_LIST or LDAP_GROUPS_FROM_ATTRIBUTES
grouperLoaderLdapReaders = Readers
grouperLoaderLdapReadersDescription = comma separated subjectIds or subjectIdentifiers who will be allowed to READ the group memberships
grouperLoaderLdapViewers = Viewers
grouperLoaderLdapViewersDescription = comma separated subjectIds or subjectIdentifiers who will be allowed to VIEW the groups
grouperLoaderLdapAdmins = Admins
grouperLoaderLdapAdminsDescription = comma separated subjectIds or subjectIdentifiers who will be allowed to ADMIN the groups
grouperLoaderLdapUpdaters = Updaters
grouperLoaderLdapUpdatersDescription = comma separated subjectIds or subjectIdentifiers who will be allowed to UPDATE the group memberships
grouperLoaderLdapOptins = Opt ins
grouperLoaderLdapOptinsDescription = comma separated subjectIds or subjectIdentifiers who will be allowed to OPTIN to the group
grouperLoaderLdapOptouts = Opt outs
grouperLoaderLdapOptoutsDescription = comma separated subjectIds or subjectIdentifiers who will be allowed to OPTOUT from the group
grouperLoaderLdapAttrReaders = Attribute readers
grouperLoaderLdapAttrReadersDescription = comma separated subjectIds or subjectIdentifiers who will be allowed to READ the group attributes
grouperLoaderLdapAttrUpdaters = Attribute updaters
grouperLoaderLdapAttrUpdatersDescription = comma separated subjectIds or subjectIdentifiers who will be allowed to UPDATE the group attributes
# job name in database
grouperLoaderJobName = Job name
grouperLoaderJobNameDescription = used in the database in the grouper_loader_log table to identify records for this job
# aria label accessibility for more actions for this group
ariaLabelGuiMoreGrouperLoaderActions = Show more actions for this group
# more action buttons on group screen
grouperLoaderViewMoreActionsButton = Loader actions
# status
grouperLoaderStatus_SUCCESS = Success
grouperLoaderStatus_ERROR = Error
grouperLoaderStatus_STARTED = Started
grouperLoaderStatus_RUNNING = Running
grouperLoaderStatus_WARNING = Warning
grouperLoaderStatus_CONFIG_ERROR = Config error
grouperLoaderStatus_SUBJECT_PROBLEMS = Subject problems
grouperLoaderStatus_ERROR_FAILSAFE = Failsafe error
grouperLoaderStatus_ANY_ERROR = Any error
# ignore zero count logs
grouperLoaderLogsFilterZeroCount = Ignore zero counts
grouperLoaderZeroFilter_Total = Total count
grouperLoaderZeroFilter_CRUD = Add/update/delete/unresolvable count
# drop down for view loader settings
grouperLoaderMoreActionsViewLoader = View loader settings
# drop down for view loader logs
grouperLoaderMoreActionsViewLoaderLogs = View loader logs
# apply filter button
grouperLoaderButtonApplyFilter = Apply filter
grouperLoaderButtonReset = Reset
grouperLoaderButtonExport = Export
########################################
## Grouper loader logs in UI
########################################
# description at top of grouper loader logs screen
grouperLoaderLogsTitle = Loader logs
# description at top of grouper loader managed groups screen
grouperLoaderManagedGroupsTitle = Loader managed groups
# no logs found for this job
grouperLoaderLogsNoLogs = No logs found for job name: ${grouperRequestContainer.grouperLoaderContainer.jobName}
# if there are logs
grouperLoaderLogsDescription = ${grouperUtil.length(grouperRequestContainer.grouperLoaderContainer.guiHib3GrouperLoaderLogs)} logs found for job name: ${grouperRequestContainer.grouperLoaderContainer.jobName}
# header for status
grouperLoaderLogsJobTypeHeader = Job type
grouperLoaderLogsJobTypeHeaderTooltip = Job type can be: simple - job that loads a group. overall - job that contains a set of subjobs. subjob - job that loads a group that is kicked off by an overall job.
grouperLoaderLogsStatusHeader = Status
grouperLoaderLogsStatusHeaderTooltip = Status can be: Config_error, Error, Running, Started, Subject_problems, Success, Warning
grouperLoaderLogsMillisGetDataHeader = Millis
get
data
grouperLoaderLogsMillisGetDataHeaderTooltip = How many milliseconds it took to retrieve the data from the source
grouperLoaderLogsMillisLoadDataHeader = Millis
load
data
grouperLoaderLogsMillisLoadDataHeaderTooltip = How many milliseconds it took to load the changes into the group registry
grouperLoaderLogsIdHeader = Log ID
grouperLoaderLogsIdHeaderTooltip = The UUID which is the primary key in the database for this log record in the grouper_loader_log table
grouperLoaderLogsStartedHeader = Start time
grouperLoaderLogsStartedHeaderTooltip = When this job started
grouperLoaderLogsEndedHeader = End time
grouperLoaderLogsEndedHeaderTooltip = When this job ended
grouperLoaderLogsTotalCountHeader = Total
count
grouperLoaderLogsTotalCountHeaderTooltip = The total number of entities loaded by this job
grouperLoaderLogsInsertCountHeader = Add
count
grouperLoaderLogsInsertCountHeaderTooltip = How many entities were added by this job (inserts)
grouperLoaderLogsUpdateCountHeader = Update
count
grouperLoaderLogsUpdateCountHeaderTooltip = How many entities were changed by this job (not common, generally changes are adds/deletes)
grouperLoaderLogsDeleteCountHeader = Delete
count
grouperLoaderLogsDeleteCountHeaderTooltip = How many entities were removed from group(s) by this job
grouperLoaderLogsUnresolvableCountHeader = Unresolvable
count
grouperLoaderLogsUnresolvableCountHeaderTooltip = How many entities were unresolvable in this job. This means they cannot be found in a subject source
grouperLoaderLogsMillisHeader = Millis
grouperLoaderLogsMillisHeaderTooltip = How many milliseconds it took for this job to run
grouperLoaderLogsLoadedGroupHeader = Loaded group
grouperLoaderLogsLoadedGroupHeaderTooltip = Link to group if this job or subjob loads a group (as opposed to has subjobs to load groups)
grouperLoaderLogsLoadedGroupMultiple = multiple
grouperLoaderLogsLoadedLastUpdatedHeader = Last updated
grouperLoaderLogsLoadedLastUpdatedHeaderTooltip = When this job log records was last updated in the database
grouperLoaderLogsLoadedHostHeader = Host
grouperLoaderLogsLoadedHostHeaderTooltip = Host that this job ran on in the daemon
grouperLoaderLogsLoadedJobMessageHeader = Job message
grouperLoaderLogsLoadedJobMessageHeaderTooltip = Job might update the message with information about the job
grouperLoaderLogsParentJobIdHeader = Parent job ID
grouperLoaderLogsParentJobIdHeaderTooltip = If this is a subjob of another job, this parent job ID will equal the job ID of the parent job
grouperLoaderLogsLoadedJobMessageShow = show
grouperLoaderLogsLoadedGroupNotFound = Group not found
grouperLoaderLogsLoadedGroupNotAGroup = N/A
# job types
grouperLoaderLogsJobTypeSimple = simple
grouperLoaderLogsJobTypeOverall = overall
grouperLoaderLogsJobTypeSubjob = subjob
# filter in log screen
grouperLoaderLogsFilterFor = Filter for:
grouperLoaderLogsStartedTime = Start time between:
grouperLoaderLogsStartedTooltip = Set two times to find logs with started between those two times. If you set one or the other, it will look at everything from that time or to that time. Note, you don't have to put all parts of the timestamp in. e.g. you can just put the date part.
grouperLoaderLogsEndedTime = End time between:
grouperLoaderLogsEndedTooltip = Set two times to find logs with ended between those two times. If you set one or the other, it will look at everything from that time or to that time. Note, you don't have to put all parts of the timestamp in. e.g. you can just put the date part.
grouperLoaderLogsLastUpdatedTime = Last updated between:
grouperLoaderLogsLastUpdatedTooltip = Set two times to find logs last updated between those two times. If you set one or the other, it will look at everything from that time or to that time. Note, you don't have to put all parts of the timestamp in. e.g. you can just put the date part.
grouperLoaderLogsTimePlaceholder = yyyy-mm-dd hh:mi:ss
grouperLoaderLogsShowSubjobs = Subjobs:
grouperLoaderLogsShowSubjobsLabel = Show subjobs
grouperLoaderLogsShowSubjobsTooltip = A job which manages multiple groups have a subjob line for each of those groups. Checking this box will show those log records too.
grouperLoaderLogsShowStatus = Status:
grouperLoaderLogsNumberOfRows = Number of rows:
grouperLoaderLogsCannotParseDate = Cannot process date:
grouperLoaderLogsCannotParseNumberOfRows = Cannot process number of rows:
grouperLoaderLogsNumberOfRowsOverMax = Max number of rows is:
########################################
## Grouper loader diagnostics
########################################
# button on right side of loader screen in drop down menu
grouperLoaderDiagnosticsButton = Loader diagnostics
# title of loader diagnostics screen
grouperLoaderDiagnosticsHeader = Loader diagnostics
# run loader diagnostics
grouperLoaderDiagnosticsRunButton = Run loader diagnostics
########################################
## Update loader group from UI
########################################
# if there was an error while updating the group
loaderGroupUpdateError = Error scheduling group to run on the daemon
# success the group was updated
loaderGroupUpdateSuccess = Success: the group has been scheduled to run on the daemon
########################################
## Schedule loader group from UI
########################################
# if there was an error while scheduling the group
loaderGroupScheduleError = Error scheduling loader process for this group
# success the group was updated
loaderGroupScheduleSuccess = Success: the loader process was successfully scheduled for this group
########################################
## Loader overall in UI
########################################
# link in misc page for loader overall
adminLoaderLink = Loader jobs
# breadcrumb for loader jobs overall
miscellaneousGrouperLoaderOverallBreadcrumb = Loader jobs
# title of loader jobs overall screen
miscellaneousLoaderOverallDecription = Loader jobs
# subheading of loader jobs overall screen
miscellaneousLoaderOverallSubtitle = List of all loader jobs and statuses
# if there are no loader jobs
miscellaneousLoaderOverallNoJobs = There are no loader jobs configured in the registry
# group that has configuration
grouperLoaderOverallColumnHeaderGroup = Group
# tooltip on this column
grouperLoaderOverallColumnTooltipGroup = Group where this job is configured. If it is a 'simple' job then this is also the group that is loaded with entities.
# if the most recent finished log item is a success
grouperLoaderOverallColumnHeaderStatus = Status
# tooltip on this column
grouperLoaderOverallColumnTooltipStatus = SUCCESS or ERROR with a tooltip with more information. Go to the job's diagnostics for more information.
# actions to perform on job
grouperLoaderOverallColumnHeaderActions = Actions
# tooltip on this column
grouperLoaderOverallColumnTooltipActions = Go to other screens or perform a loader action
# type of job, e.g. SQL_SIMPLE
grouperLoaderOverallColumnHeaderType = Type
# tooltip on this column
grouperLoaderOverallColumnTooltipType = If this is a SQL or LDAP job and if it is simple or a list of groups.
# source of job, e.g. if from warehouse or which ldap
grouperLoaderOverallColumnHeaderSource = Source
# tooltip on this column
grouperLoaderOverallColumnTooltipSource = Source of this job if applicable
# query or filter associated with this job
grouperLoaderOverallColumnHeaderQuery = Query
# tooltip on this column
grouperLoaderOverallColumnTooltipQuery = Query or LDAP filter that defines this job
# schedule associated with this job
grouperLoaderOverallColumnHeaderSchedule = Schedule
# tooltip on this column
grouperLoaderOverallColumnTooltipSchedule = Cron schedule that defines this job
# number of members this job manages
grouperLoaderOverallColumnHeaderCount = Count
# tooltip on this column
grouperLoaderOverallColumnTooltipCount = Total number of memberships managed by this job
# number of changes in the last run
grouperLoaderOverallColumnHeaderChanges = Recent
changes
# tooltip on this column
grouperLoaderOverallColumnTooltipChanges = In the last SUCCESS, this is the sum of the inserts, updates, and deletes
# only show up to paging size
loaderGroupMaxSize = Note: only the first 200 results are shown
########################################
## Paging Tag 2nd edition
########################################
# paging 2 tag, showing label
paging2.showing = Showing
# of link in paging 2 tag
paging2.of = of
# text after paging count for group memberships in a folder in paging 2 tag
paging2.textAfterPageCount.groupMembershipsInFolder = entities
# First link of paging2
paging2.first = First
# Prev link of paging2
paging2.prev = Prev
# Next link of paging2
paging2.next = Next
# Last link of paging2
paging2.last = Last
# Show link of paging2
paging2.show = Show:
##############################################################################
## attribute def attribute assignments######################
##############################################################################
attributeDefViewAttributeAssignmentsColumnAction = Choose action
attributeDefAttributeAssignEnabledYes = Yes
attributeDefAttributeAssignEnabledNo = No
# title of assign attribute to stem screen
attributeDefAssignAttributeTitle = Assign attribute
# attribute def label on assign attribute screen
attributeDefAssignAttributeAttributeDefLabel = Attribute definition:
# description text for attribute def
attributeDefAssignAttributeAttributeDefDescription = The definition part of the attribute holds the settings, security, metadata. Generally attribute definitions have multiple attribute names.
# attribute name label
attributeDefAssignAttributeAttributeDefNameLabel = Attribute name:
# attribute name description
attributeDefAssignAttributeAttributeDefNameDescription = The attribute name is the part of the attribute which is assigned to owner objects. Generally multiple attribute names are related to one attribute definition.
# enabled date label
attributeDefAssignAttributeEnabledDateLabel = Start date:
# enabled date description
attributeDefAssignAttributeEnabledDateDescription = Start attribute assignment date.
# disabled date label
attributeDefAssignAttributeDisabledDateLabel = End date:
# disabled date description
attributeDefAssignAttributeDisabledDateDescription = End attribute assignment date.
# placeholder for start/end date
attributeDefAssignAttributeDatePlaceholder = yyyy/mm/dd
# attribute def is required
attributeDefAssignAttributeDefRequired = Error: valid attribute def is required
# attribute def name is required
attributeDefAssignAttributeAttributeDefNameRequired = Error: valid attribute def name is required
# enabled date/start date is not valid
attributeDefAssignAttributeAttributeStartDateNotValid = Error: start date is not valid.
# disabled date/end date is not valid.
attributeDefAssignAttributeAttributeEndDateNotValid = Error: end date is not valid.
# can't assign attribute because not multi-assignable
attributeDefAssignAttributeNotMultiAssignableError = Error: the attribute is already assigned, and is not multi-assignable
# error assigning attribute to stem
attributeDefAssignAttributeError = Error: could not assign attribute
# success assigning attribute to attribute def
attributeDefAssignAttributeSuccess = Success: assigned attribute to attribute def.
# text to show on the attribute def assignment screen when there are no attributes assigned
attributeDefViewAttributeAssignsNoAssignedAttributes = No attributes assigned
# title of the attribute def attribute assignments screen
attributeDefAttributeAssignmentsTitle = Attribute Assignments
# description of the attribute def attribute assignments screen
attributeDefAttributeAssignmentsDescription = The following table lists all attributes assigned to this attribute definition
# more actions on attribute def more actions panel
attributeDefViewMoreActionsButton = Attribute actions
# save button on attribute def assignment screen
attributeDefAssignSaveButton = Save
# attribute def assign attribute
attributeDefAssignAttributeButton = Assign attribute
###################################################
## Subject attribute assignments
###################################################
# text to show on the view subject attribute assignment screen when there are no attributes assigned
subjectViewAttributeAssignsNoAssignedAttributes = No attributes assigned
# button to show assign attribute to subject section
subjectAssignAttributeButton = Assign attribute
# view subject attribute assignments - choose action column
subjectViewAttributeAssignmentsColumnAction = Choose action
# dropdown label in subject view attribute assignments screen
subjectViewActionsButton = Actions
# attribute def is required
subjectAssignAttributeDefRequired = Error: valid attribute def is required
# attribute def name is required
subjectAssignAttributeAttributeDefNameRequired = Error: valid attribute def name is required
# enabled date/start date is not valid
subjectAssignAttributeAttributeStartDateNotValid = Error: start date is not valid.
# disabled date/end date is not valid.
subjectAssignAttributeAttributeEndDateNotValid = Error: end date is not valid.
# can't assign attribute because not multi-assignable
subjectAssignAttributeNotMultiAssignableError = Error: the attribute is already assigned, and is not multi-assignable
# error assigning attribute to group
subjectAssignAttributeError = Error: could not assign attribute
# success assigning attribute to group
subjectAssignAttributeSuccess = Success: assigned attribute to group
# attribute def label on assign attribute screen
subjectAssignAttributeAttributeDefLabel = Attribute definition:
# description text for attribute def
subjectAssignAttributeAttributeDefDescription = The definition part of the attribute holds the settings, security, metadata. Generally attribute definitions have multiple attribute names.
# attribute name label
subjectAssignAttributeAttributeDefNameLabel = Attribute name:
# attribute name description
subjectAssignAttributeAttributeDefNameDescription = The attribute name is the part of the attribute which is assigned to owner objects. Generally multiple attribute names are related to one attribute definition.
# attribute assignment title
subjectAttributeAssignmentsTitle = Attribute assignments
# attribute assignments description
subjectAttributeAssignmentsDescription = The following table lists all attributes assigned to this entity
###################################################
## Membership attribute assignments
###################################################
# text to show on the view membership attribute assignment screen when there are no attributes assigned
membershipViewAttributeAssignsNoAssignedAttributes = No attributes assigned
# view membership attribute assignments - choose action column
membershipViewAttributeAssignmentsColumnAction = Choose action
# dropdown label in membership view attribute assignments screen
membershipViewActionsButton = Actions
# attribute def is required
membershipAssignAttributeDefRequired = Error: valid attribute def is required
# attribute def name is required
membershipAssignAttributeAttributeDefNameRequired = Error: valid attribute def name is required
# enabled date/start date is not valid
membershipAssignAttributeAttributeStartDateNotValid = Error: start date is not valid.
# disabled date/end date is not valid.
membershipAssignAttributeAttributeEndDateNotValid = Error: end date is not valid.
# can't assign attribute because not multi-assignable
membershipAssignAttributeNotMultiAssignableError = Error: the attribute is already assigned, and is not multi-assignable
# error assigning attribute to membership
membershipAssignAttributeError = Error: could not assign attribute
# success assigning attribute to membership
membershipAssignAttributeSuccess = Success: assigned attribute to group
# attribute def label on assign attribute screen
membershipAssignAttributeAttributeDefLabel = Attribute definition:
# description text for attribute def
membershipAssignAttributeAttributeDefDescription = The definition part of the attribute holds the settings, security, metadata. Generally attribute definitions have multiple attribute names.
# attribute name label
membershipAssignAttributeAttributeDefNameLabel = Attribute name:
# group label
membershipAssignAttributeGroupLabel = Group:
# attribute name description
membershipAssignAttributeAttributeDefNameDescription = The attribute name is the part of the attribute which is assigned to owner objects. Generally multiple attribute names are related to one attribute definition.
# membership assign attribute
membershipAssignAttributeButton = Assign attribute
# attribute assignment title
membershipAttributeAssignmentsTitle = Attribute assignments
# attribute assignments description
membershipAttributeAssignmentsDescription = The following table lists all attributes assigned to this membership
# attribute assignments option in dropdown
membershipAttributeAssignmentsButton = Attribute assignments
# membership attribute assignment type
membershipAttributeAssignmentType = Attribute assignment type:
# any membership type radio button
membershipAttributeAssignmentAnyMembershipType = Membership
# immediate membership type radio button
membershipAttributeAssignmentImmediateMembershipType = Immediate Membership
########################################
## Search
########################################
# breadcrumb on search screen
searchBreadcrumb = Search results
# search results
searchTitle = Search results
# placeholder in the search textfield
searchPlaceholder = Search
# search button text on search screen
searchButton = Search
# reset button text on search screen
searchResetButton = Reset
# folder header in the search results
searchFolderHeader = Folder
# name header in the search results
searchNameHeader = Name
# needs at least two chars to search
searchErrorNotEnoughChars=Error: enter 2 or more characters
# too many results based on config in sources.xml
searchTooManyResults = Please narrow your search. The number of results found is more than what is allowed in the configuration.
# if too many subjects are returned
searchNoteNotAllResultsShown=Note: some results might not be included, please narrow your search
# search types in drop down
searchTypeAll = Everything
searchTypeStems = Folders
searchTypeGroups = Groups
searchTypeSubjects = Entities
searchTypeAttributeDefNames = Attributes
searchTypeAttributeDefs = Attribute definitions
#####################################################
############# Configuration index
#####################################################
# configuration index page breadcrumb
configurationIndexBreadcrumb = Configure
# configuration index page breadcrumb
configurationIndexTitle = Configure
# configuration index page breadcrumb
configurationIndexSubtitle = System settings and wizards to setup the registry. Grouper version: ${edu.internet2.middleware.grouper.misc.GrouperVersion.grouperContainerVersionOrMavenVersion()}
# configuration index page breadcrumb
configurationIndexConfigFiles = Configuration files
#####################################################
############# Configuration files
#####################################################
# more action buttons on group screen
configurationFilesViewMoreActionsButton = Config actions
# aria label for more actions on config files more actions dropdown
ariaLabelGuiMoreConfigureFilesActions = Show more configuration files actions
# index for configuration files, select file
configurationFilesMenuIndex = Select configuration file
# if user is not allowed to view configuration
configurationNotAllowedToView = Error: not allowed to view configuration
# if configuration is not enabled
configurationNotEnabled = Error: configuration is not enabled
# configure link from misc screen
adminConfigureLink = Configure
# breadcrumb for configure
miscellaneousConfigureBreadcrumb = Configure
# breadcrumb for configuration files
miscellaneousConfigurationFilesBreadcrumb = Configuration files
# breadcrumb for configuration files history
miscellaneousConfigurationFilesHistoryBreadcrumb = Configuration files history
# breadcrumb for grouper external systems
miscellaneousGrouperExternalSystemsBreadcrumb = External systems
# breadcrumb for provisioner configs
miscellaneousProvisionerConfigurationsBreadcrumb = Provisioning
# breadcrumb for provisioning logs
miscellaneousProvisionerConfigurationsLogsBreadcrumb = Provisioning logs
miscellaneousProvisionerConfigurationsGroupsProvisionableBreadcrumb = Provisionable groups
miscellaneousProvisionerConfigurationsAssignmentsBreadcrumb = Provisionable assignments
provisionerConfigurationsAssignmentsTypeGroup = Group
provisionerConfigurationsAssignmentsTypeFolder = Folder
# breadcrumb for provisioning jobs
miscellaneousProvisionerConfigurationsJobsBreadcrumb = Provisioning jobs
# breadcrumb for provisioning job details
miscellaneousProvisionerConfigurationsJobDetailsBreadcrumb = Provisioning job details
# breadcrumb for provisioner config run full sync
miscellaneousProvisionerConfigRunFullSyncBreadcrumb = Run full sync
# breadcrumb for provisioner config view activity
miscellaneousProvisionerConfigViewActivityBreadcrumb = View activity
miscellaneousProvisionerConfigViewErrorsBreadcrumb = View errors
# breadcrumb for provisioner config details page
miscellaneousProvisionerConfigDetailsBreadcrumb = Config details
miscellaneousGrouperProvisioningDiagnosticsBreadcrumb = Provisioner diagnostics
# breadcrumb for configuration files add entry
miscellaneousConfigurationFilesAddEntryBreadcrumb = Add config entry
# h1 header for configuration
miscellaneousConfigurationMainDescription = Configuration files
# h1 header for configuration history
miscellaneousConfigurationHistoryMainDescription = Configuration (in database) history
# subtitle for configuration history
miscellaneousConfigurationHistoryMainSubtitle = Select one or multiple checkboxes that you want to revert the changes for. Click 'Revert to old value' to undo the changes that were made. If there is no 'Old value' then the configuration will be removed from the database. If there is an 'Old value' then the configuration value in 'Old value' will become the current value.
# header for grouper external systems
miscellaneousGrouperExternalSystemsMainDescription = Grouper external systems
miscellaneousSubjectSourcesMainDescription = Subject sources
miscellaneousSubjectSourcesMainDescriptionBelow = A subject source allows Grouper to pull in entities from an external SQL or LDAP so you can add them to groups and add privileges etc. Pick a high performance highly available service, or ETL the data into the Grouper database.
# header for provisioner configurations
miscellaneousProvisionerConfigurationsMainDescription = Provisioning
miscellaneousProvisionerConfigurationsDetailsDescription = Provisioning details for '${grouperRequestContainer.provisionerConfigurationContainer.guiProvisionerConfiguration.provisionerConfiguration.configId}'
miscellaneousProvisionerConfigurationsEditProvisionerDescription = Edit provisioning for '${grouperRequestContainer.provisionerConfigurationContainer.guiProvisionerConfiguration.provisionerConfiguration.configId}'
# submit button
provisioningDiagnosticsSubmitButton = Run diagnostics
# cancel button
provisioningDiagnosticsCancelButton = Cancel
# header for provisioner recent activity
miscellaneousProvisionerConfigurationsRecentActivityTitle = Provisioning recent activity for '${grouperRequestContainer.provisionerConfigurationContainer.guiProvisionerConfiguration.provisionerConfiguration.configId}'
miscellaneousProvisionerConfigurationsRecentActivityDescription = This will show max 200 inserts and max 200 deletes per object type. Deletes are only shown until they are removed from the sync table. Only tracked objects from grouper are reported here. This does not capture all the activity. This is just for reference.
miscellaneousProvisionerConfigurationsErrorsDescription = Provisioning errors for '${grouperRequestContainer.provisionerConfigurationContainer.guiProvisionerConfiguration.provisionerConfiguration.configId}'
# header for provisioner configurations logs
miscellaneousProvisionerConfigurationsLogsMainDescription = Provisioning logs for '${grouperRequestContainer.provisionerConfigurationContainer.guiProvisionerConfiguration.provisionerConfiguration.configId}'
miscellaneousProvisionerConfigurationsGroupsProvisionableMainDescription = Provisionable groups for '${grouperRequestContainer.provisionerConfigurationContainer.guiProvisionerConfiguration.provisionerConfiguration.configId}'
miscellaneousProvisionerConfigurationsAssignmentsMainDescription = Provisionable assignments for '${grouperRequestContainer.provisionerConfigurationContainer.guiProvisionerConfiguration.provisionerConfiguration.configId}'
miscellaneousProvisionerConfigurationsGroupsProvisionableTotalGroups = There are a total of ${grouperRequestContainer.provisionerConfigurationContainer.totalProvisionableGroups} groups provisionable.
The list below shows up to 1000 groups. Provisionability of a group is determined when the provisioner runs. If you marked a group or folder as provisionable and the provisioner has not run, then it will not display in the results.
miscellaneousProvisionerConfigurationsAssignmentsTotalAssignments = There are a total of ${grouperRequestContainer.provisionerConfigurationContainer.totalProvisioningAssignments} assignments.
The list below shows up to 1000 assignments. This screen shows assignments on groups and folders. If the provisionability of a folder inherits to groups below, then they will not display in the results.
# header for provisioner configurations jobs
miscellaneousProvisionerConfigurationsJobsMainDescription = Provisioning jobs for '${grouperRequestContainer.provisionerConfigurationContainer.guiProvisionerConfiguration.provisionerConfiguration.configId}'
# header for provisioner configurations job details
miscellaneousProvisionerConfigurationsJobDetailsMainDescription = Provisioning job details for '${grouperRequestContainer.provisionerConfigurationContainer.guiProvisionerConfiguration.provisionerConfiguration.configId}'
# configuration description below the h1
miscellaneousConfigurationMainSubtitle = Configure Grouper settings. Changes take a couple minutes to propagate to all JVMs connected to this database.
# group import how to add members
configurationImportHowAdd = Import configuration with
# config file to import
configurationImportHowAddRequired = Import configuration with is required
# config file to import
configurationImportCopyPasteFileTypeRequired = Configuration file type is required
# group import, import a file
configurationImportFile = Upload a file
# group import, copy list of member ids
configurationImportCopyPaste = Copy/paste configuration entries
# config file to import
configurationImportSelectConfigFile = Configuration file type
# config file to import
configurationImportSelectConfigFileDescription = Select the config file type that you would like to import to add or update entries
# config file to import
configurationImportConfigFileCopyPaste = Configuration file contents
# config file to import
configurationImportConfigFileCopyPasteRequired = Configuration file contents required
# config file to import
configurationImportConfigFileCopyPasteDescription = Paste the contents of the config file to add or update entries
# select config file
configurationSelectConfigFile = Config file
# description of config file select
configurationSelectConfigFileDescription = Select the config file you would like to view or edit
# if the config file was not selected
configurationFileRequired = Error: Select a config file
# filter text field placeholder
configurationFilterTextPlaceholder = Enter text to filter
# advanced filter label
configSourceFilterFor = Filter for:
# config source all option
configSourceAll = All sources
# config source non base
configSourceNonBase = Non base config
# config source db only
configSourceDbConfigOnly = Db config only
# config filter advanced button label
configurationFilterAdvancedButton = Advanced
# apply filter button
configurationFilterApplyButton = Apply filter
# reset filter button
configurationFilterResetButton = Reset
# header for actions
configurationColumnAction = Choose action
configurationColumnSelect = Select
configurationSelectConfigCheckboxAriaLabel = Select checkbox to delete this config
configurationDeleteSelectConfigs = Select all db configs
configurationDeleteSelectedConfigsButton = Delete selected configs
# header for property name config file
configurationColumnPropertyName = Property name
# header for property name config file
configurationColumnValue = Value
# header for property old value
configurationColumnPreviousValue = Old value
# header for property new value
configurationColumnNewValue = New value
# label for action performed
configurationColumnActionLabel = Action
# add label for action performed
configurationColumnActionLabelAdd = Add
# edit label for action performed
configurationColumnActionLabelEdit = Edit
# delete label for action performed
configurationColumnActionLabelDelete = Delete
# revert to old value config history checkbox aria-label
configurationHistoryRevertValueCheckboxAriaLabel = Select this to revert config value
# label of the revert to old value button on the configuration history screen
configurationHistoryRevertPropertyValues = Revert to old value
# when there are multiple config keys chosen on the revert screen
configurationHistoryRevertErrorDuplicateConfigKeys = Select only one history item for each config key. You selected multiple for '#configKey'
# if they didnt select any property
configurationHistoryRevertNoPropertiesSelects = Error: select at least one property
# configuration revert success
configurationHistoryRevertSuccess = Config(s) were reverted successfully
# header for property name config file
configurationColumnConfiguredIn = Configured in
# header for property name config file for history view
configurationColumnConfigurationFile = Config file
# header for who changed the config
configurationColumnChangedBy = Changed by
# header for config change timestamp
configurationColumnChangeTimestamp = Change timestamp
# value not set
configurationColumnValueNotSet = <>
# for sample value
configurationSampleValueLabel = Sample value:
# EL scriptlet
configurationElScriptletLabel = EL scriptlet:
# type label
configurationTypeLabel = Type:
# if multiple
configurationMultiple = , multiple comma separated values
# if must extend java class
configurationMustExtendClass = , must extend Java class:
# if must implement interface
configurationMustImplementInterface = , must implement Java interface:
# if base value is different put here
configurationBaseValueIfDifferent = Default value:
# if unprocessed value is different
configurationUnprocessedValueIfDifferentLabel = Unprocessed value:
# cron description
configurationCronLabel = Cron human readable:
# if not allowed to cofnigur based on IP address
configurationNotAllowedBySourceIp = Your source IP address (${grouperRequestContainer.httpServletRequest.remoteAddr}) is not allowed to access the Configuration UI (in grouper-ui configuration)
# add a config entry
configurationFilesMenuAddConfig = Add config entry
# view history of config changes
configurationFilesMenuHistory = Config history
# Export configuration file
configurationFilesMenuExport = Export configuration file
# breadcrumb for configuration files add entry
configurationFilesAddEntryTitle = Add config entry
# subtitle for configuration files add entry
configurationFilesAddEntrySubtitle = Add a configuration line to the configuration stored in the database
# hint on select config file add entry
configurationFilesAddEntrySelectConfigFileDescription = Config file to add setting to
# hint on select config file add entry
configurationFilesImportSelectConfigFileDescription = Config file to add / update settings. Must be named one of: ${grouperRequestContainer.configurationContainer.configFileNamesForImport}
# property name label
configurationFilesAddEntryPropertyName = Property name
# hint on select config file add entry
configurationFilesAddEntryPropertyNameDescription = Property name to add to config file
# expression language script label
configurationFilesAddEntryExpressionLanguage = Expression language script
# hint on select config file add entry
configurationFilesAddEntryExpressionLanguageDescription = If this is an expression language script that should be evaluated when the property is read
# expression language yes label
configurationFilesAddEntryExpressionLanguageTrue = Yes, this is an expression language script
# expression language no label
configurationFilesAddEntryExpressionLanguageFalse = No, this is a literal value
# add entry value label
configurationFilesAddEntryValue = Value
# add entry value hint
configurationFilesAddEntryValueDescription = Value or scriptlet to assign to the property name
# add entry submit button
configurationFilesAddEntrySubmit = Submit
# add entry cancel button
configurationFilesAddEntryCancel = Cancel
# add for individual property
configurationPropertyActionAdd = Add
# edit for individual property
configurationPropertyActionEdit = Edit
# delete for individual property
configurationPropertyActionDelete = Delete
# if property name is not entered
configurationFilesAddEntryPropertyNameRequired = 'Property name' is a required field
# property name should not end in .elConfig
configurationFilesAddEntryPropertyNameElConfig = 'Property name' should not end in .elConfig. Leave that off and select that it is a script
# if property name is not entered
configurationFilesAddEntryPropertyValueRequired = 'Property value' is a required field
# when property is in another file
configurationFilesPropertyExistsInAnother = Warning: the propertyName: ${currentConfigPropertyName} is used in another propertyFile: ${currentConfigFileName}
# when property is in another file
configurationFilesAdded = Success: ${currentConfigFileName} property '${currentConfigPropertyName}' value '${currentConfigValueTruncatedEscaped}' was added to the database
# when property is in another file
configurationFilesEdited = Success: ${currentConfigFileName} property '${currentConfigPropertyName}' existed and was changed to '${currentConfigValueTruncatedEscaped}' and saved
# success property was deleted
configurationFilesDeleted = Success: ${currentConfigFileName} property '${currentConfigPropertyName}' was deleted from the database
configurationFilesDeletedButStillExists = Warning: ${currentConfigFileName} property '${currentConfigPropertyName}' was deleted from the database, but there is still a configuration value in the non built-in config file.
# when property is in another file
configurationFilesEditedNotChanged = Note: ${currentConfigFileName} property '${currentConfigPropertyName}' existed and the value was not changed
# when property attmpted to be deleted but not found
configurationFilesDeletedNotChanged = Warning: ${currentConfigFileName} property '${currentConfigPropertyName}' was not configured in the database
# aria for configuration files actions
ariaLabelGuiConfigurationFilesActions = Show more actions for config item
# view actions for config line
configurationFilesViewActionsButton = Actions
# edit action for config line
configurationFilesActionEdit = Edit
# delete action for config line
configurationFilesActionDelete = Delete
# edit config entry should this be encrypted in the database?
configurationFilesAddEntryPasswordLabel = Is password?
# edit config entry should this be encrypted in the database?
configurationFilesAddEntryPasswordDescription = Password credentials will be encrypted in the database if not stored externally in a file
# edit config entry should this be encrypted in the database? no
configurationFilesAddEntryPasswordFalse = No, this is a literal value
# edit config entry should this be encrypted in the database? no
configurationFilesAddEntryPasswordTrue = Yes, the value is a password and should be encrypted in the database
# the value of the password label
configurationFilesAddEntryPasswordFieldLabel = Password
# the value of the password label
configurationFilesAddEntryPasswordFieldDescription = Enter the password value here
#####################################################
############# Config file edit
#####################################################
#####################################################
############# Config file import
#####################################################
# breadcrumb for configuration files import
miscellaneousConfigurationFilesImportBreadcrumb = Import config file
# import a config
configurationFilesMenuImport = Import config file
# breadcrumb for configuration files Import
configurationFilesImportTitle = Import config file
# subtitle for configuration files add entry
configurationFilesImportSubtitle = Import a config file to load configuration to the database
# error if file not there
configurationFilesImportFileRequired = File to import is required
# error if file not there
configurationFilesImportFileNotValid = File name must be one of the following: ${grouperRequestContainer.configurationContainer.configFileNamesForImport}
# hint on config file select
configurationFilesImportFileDescription = Config file to import
# import cancel button
configurationFilesImportCancel = Cancel
# import submit button
configurationFilesImportSubmit = Submit
# import summary first word
configurationFilesImportFirstWord = ${grouperRequestContainer.configurationContainer.countError + grouperRequestContainer.configurationContainer.countWarning == 0 ? "Success:" : (grouperRequestContainer.configurationContainer.countError == 0 ? "Warning:" : (grouperRequestContainer.configurationContainer.countSuccess == 0 ? "Error:" : "Partial error:"))}
#import summary
configurationFilesImportSummary = ${textContainer.text['configurationFilesImportFirstWord']} ${grouperRequestContainer.configurationContainer.countProperties} properties uploaded to ${grouperRequestContainer.configurationContainer.configFileName.configFileName}. Added: ${grouperRequestContainer.configurationContainer.countAdded}, updated: ${grouperRequestContainer.configurationContainer.countUpdated}, unchanged: ${grouperRequestContainer.configurationContainer.countUnchanged}, warnings: ${grouperRequestContainer.configurationContainer.countWarning}, errors: ${grouperRequestContainer.configurationContainer.countError}.
#####################################################
############# Edit role inheritance
#####################################################
# title of role inheritance edit screen
roleInheritanceEditTitle = Role inheritance edit
# label for role name
editRoleInheritanceLabel = Edit inheritance:
# button text for roles that imply
roleInheritanceEditRolesThatImplyButtonText = Add role that implies {0}
# button text for roles implied by
roleInheritanceEditRolesImpliedByButtonText = Add role implied by {0}
# label for roles that imply
roleInheritanceEditRolesThatImply = Roles that imply {0}:
# label for roles that immediate imply
roleInheritanceEditRolesThatImmediatelyImply = Immediate roles that imply {0}:
# label for roles implied by
roleInheritanceEditRolesImpliedBy = Roles implied by {0}:
# label for roles implied by immediate
roleInheritanceEditRolesImpliedByImmediate = Immediate roles implied by {0}:
# success: role inheritance was saved
roleInheritanceEditSuccess = Success: role inheritance was saved.
# error on saving role inheritance
roleInheritanceEditError = Error: role inheritance was not saved.
# error message when trying to establish role inheritance with itself
roleInheritanceEditSelfError = Error: role inheritance cannot be established with itself.
# info message to show when adding role inheritance but relationship already exists
roleInheritanceAddRelationshipAlreadyThereInfo = Info: role inheritance already exists.
# info message to show when deleting role inheritance but relationship already does not exist
roleInheritanceDeleteRelationshipAlreadyThereInfo = Info: role inheritance already does not exist.
########################################
## Audits
########################################
# this shouldnt really happen, but if it does, this is what is displayed, doesnt know which audit action
auditsUndefinedAction = Unknown action
# do some common words for "CMS"
auditsAdded = Added
auditsEdited = Edited
auditsDeleted = Deleted
auditsInvited = Invited
auditsAttribute = attribute
auditsPermission = permission
auditsAttributeAssignment = attribute assignment
auditsPrivilege = privilege
auditsAssigned = Assigned
auditsAttributeDef = attribute definition
auditsAttributeDefName = attribute name
auditsGroup = group
auditsRole = role
auditsAttestation = attestation
auditsDeprovision = deprovision
auditsDeprovisionCap = Deprovision
auditsEntity = entity
auditsExternalEntity = external entity
auditsExternalEntityAttribute = external entity attribute
auditsMember = member
auditsMembership = membership
auditsFolder = folder
auditsStem = $$auditsFolder$$
#audits_ATTRIBUTE_ASSIGN_ANYMSHIP_ADD = $$auditsAdded$$ there ${grouperRequestContainer.guiAuditEntry.guiAttributeDef.permission ? textContainer.text['auditsPermission'] : textContainer.text['auditsAttribute']} ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} to a $$auditsMembership$$ for $$auditsMember$$ ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink}.
audits_ATTRIBUTE_ASSIGN_ANYMSHIP_ADD = $$auditsAdded$$ $$auditsAttribute$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} to a $$auditsMembership$$ for $$auditsMember$$ ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink}.
audits_ATTRIBUTE_ASSIGN_ANYMSHIP_DELETE = $$auditsDeleted$$ $$auditsAttribute$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} from a $$auditsMembership$$ for $$auditsMember$$ ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink}.
audits_ATTRIBUTE_ASSIGN_ANYMSHIP_UPDATE = $$auditsEdited$$ $$auditsAttribute$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} to a $$auditsMembership$$ for $$auditsMember$$ ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink}.
audits_ATTRIBUTE_ASSIGN_ANYMSHIP_ADD_ROLE = $$auditsAdded$$ $$auditsPermission$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} with action '${grouperRequestContainer.guiAuditEntry.action}' to a $$auditsMembership$$ for $$auditsMember$$ ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink} in $$auditsRole$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_ATTRIBUTE_ASSIGN_ANYMSHIP_DELETE_ROLE = $$auditsDeleted$$ $$auditsPermission$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} with action '${grouperRequestContainer.guiAuditEntry.action}' from a $$auditsMembership$$ for $$auditsMember$$ ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink} in $$auditsRole$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_ATTRIBUTE_ASSIGN_ANYMSHIP_UPDATE_ROLE = $$auditsEdited$$ $$auditsPermission$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} with action '${grouperRequestContainer.guiAuditEntry.action}' to a $$auditsMembership$$ for $$auditsMember$$ ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink} in $$auditsRole$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_ATTRIBUTE_ASSIGN_ASSIGN_ADD = $$auditsAdded$$ $$auditsAttribute$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} to an $$auditsAttributeAssignment$$.
audits_ATTRIBUTE_ASSIGN_ASSIGN_DELETE = $$auditsDeleted$$ $$auditsAttribute$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} from an $$auditsAttributeAssignment$$.
audits_ATTRIBUTE_ASSIGN_ASSIGN_UPDATE = $$auditsEdited$$ $$auditsAttribute$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} to an $$auditsAttributeAssignment$$.
audits_ATTRIBUTE_ASSIGN_ATTRDEF_ADD = $$auditsAdded$$ $$auditsAttribute$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} to $$auditsAttributeDef$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDef.shortLink}.
audits_ATTRIBUTE_ASSIGN_ATTRDEF_DELETE = $$auditsDeleted$$ $$auditsAttribute$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} from $$auditsAttributeDef$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDef.shortLink}.
audits_ATTRIBUTE_ASSIGN_ATTRDEF_UPDATE = $$auditsEdited$$ $$auditsAttribute$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} to $$auditsAttributeDef$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDef.shortLink}.
audits_ATTRIBUTE_ASSIGN_GROUP_ADD = $$auditsAdded$$ $$auditsAttribute$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} to $$auditsGroup$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_ATTRIBUTE_ASSIGN_GROUP_DELETE = $$auditsDeleted$$ $$auditsAttribute$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} from $$auditsGroup$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_ATTRIBUTE_ASSIGN_GROUP_UPDATE = $$auditsEdited$$ $$auditsAttribute$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} to $$auditsGroup$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_ATTRIBUTE_ASSIGN_ROLE_ADD = $$auditsAdded$$ $$auditsPermission$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} with action '${grouperRequestContainer.guiAuditEntry.action}' to $$auditsRole$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_ATTRIBUTE_ASSIGN_ROLE_DELETE = $$auditsDeleted$$ $$auditsPermission$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} with action '${grouperRequestContainer.guiAuditEntry.action}' from $$auditsRole$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_ATTRIBUTE_ASSIGN_ROLE_UPDATE = $$auditsEdited$$ $$auditsPermission$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} with action '${grouperRequestContainer.guiAuditEntry.action}' to $$auditsRole$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_ATTRIBUTE_ASSIGN_IMMMSHIP_ADD = $$auditsAdded$$ $$auditsAttribute$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} to a $$auditsMembership$$ for $$auditsMember$$ ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink}.
audits_ATTRIBUTE_ASSIGN_IMMMSHIP_DELETE = $$auditsDeleted$$ $$auditsAttribute$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} from a $$auditsMembership$$ for $$auditsMember$$ ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink}.
audits_ATTRIBUTE_ASSIGN_IMMMSHIP_UPDATE = $$auditsEdited$$ $$auditsAttribute$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} to a $$auditsMembership$$ for $$auditsMember$$ ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink}.
audits_ATTRIBUTE_ASSIGN_MEMBER_ADD = $$auditsAdded$$ $$auditsAttribute$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} to $$auditsMember$$ ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink}.
audits_ATTRIBUTE_ASSIGN_MEMBER_DELETE = $$auditsDeleted$$ $$auditsAttribute$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} from $$auditsMember$$ ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink}.
audits_ATTRIBUTE_ASSIGN_MEMBER_UPDATE = $$auditsEdited$$ $$auditsAttribute$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} to $$auditsMember$$ ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink}.
audits_ATTRIBUTE_ASSIGN_STEM_ADD = $$auditsAdded$$ $$auditsAttribute$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} to $$auditsFolder$$ ${grouperRequestContainer.guiAuditEntry.guiStem.shortLink}.
audits_ATTRIBUTE_ASSIGN_STEM_DELETE = $$auditsDeleted$$ $$auditsAttribute$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} from $$auditsFolder$$ ${grouperRequestContainer.guiAuditEntry.guiStem.shortLink}.
audits_ATTRIBUTE_ASSIGN_STEM_UPDATE = $$auditsEdited$$ $$auditsAttribute$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink} to $$auditsFolder$$ ${grouperRequestContainer.guiAuditEntry.guiStem.shortLink}.
audits_ATTRIBUTE_ASSIGN_ASSIGN_ADD = $$auditsAdded$$ $$auditsAttribute$$ '${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink}' to $$auditsAttribute$$.
audits_ATTRIBUTE_ASSIGN_ASSIGN_DELETE = $$auditsDeleted$$ $$auditsAttribute$$ '${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink}' from $$auditsAttribute$$.
audits_ATTRIBUTE_ASSIGN_ASSIGN_UPDATE = $$auditsEdited$$ $$auditsAttribute$$ '${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink}' for $$auditsAttribute$$.
audits_ATTRIBUTE_ASSIGN_VALUE_ADD = $$auditsAdded$$ $$auditsAttribute$$ value '${grouperRequestContainer.guiAuditEntry.attributeValue}' to $$auditsAttribute$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink}.
audits_ATTRIBUTE_ASSIGN_VALUE_DELETE = $$auditsDeleted$$ $$auditsAttribute$$ value '${grouperRequestContainer.guiAuditEntry.attributeValue}' from $$auditsAttribute$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink}.
audits_ATTRIBUTE_ASSIGN_VALUE_UPDATE = $$auditsEdited$$ $$auditsAttribute$$ value '${grouperRequestContainer.guiAuditEntry.attributeValue}' for $$auditsAttribute$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink}.
audits_ATTRIBUTE_DEF_ADD = $$auditsAdded$$ $$auditsAttributeDef$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDef.shortLink}.
audits_ATTRIBUTE_DEF_DELETE = $$auditsDeleted$$ $$auditsAttributeDef$$.
audits_ATTRIBUTE_DEF_UPDATE = $$auditsEdited$$ $$auditsAttributeDef$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDef.shortLink}.
audits_ATTRIBUTE_DEF_NAME_ADD = $$auditsAdded$$ $$auditsAttributeDefName$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink}.
audits_ATTRIBUTE_DEF_NAME_DELETE = $$auditsDeleted$$ $$auditsAttributeDefName$$.
audits_ATTRIBUTE_DEF_NAME_UPDATE = $$auditsEdited$$ $$auditsAttributeDefName$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDefName.shortLink}.
audits_ENTITY_ADD = $$auditsAdded$$ $$auditsEntity$$ ${grouperRequestContainer.guiAuditEntry.guiEntity.shortLink}.
audits_ENTITY_DELETE = $$auditsDeleted$$ $$auditsEntity$$.
audits_ENTITY_UPDATE = $$auditsEdited$$ $$auditsEntity$$ ${grouperRequestContainer.guiAuditEntry.guiEntity.shortLink}.
audits_EXTERNAL_SUBJ_ATTR_ADD = $$auditsAdded$$ $$auditsExternalEntityAttribute$$.
audits_EXTERNAL_SUBJ_ATTR_DELETE = $$auditsDeleted$$ $$auditsExternalEntityAttribute$$.
audits_EXTERNAL_SUBJ_ATTR_UPDATE = $$auditsEdited$$ $$auditsExternalEntityAttribute$$.
audits_EXTERNAL_SUBJECT_ADD = $$auditsAdded$$ $$auditsExternalEntity$$.
audits_EXTERNAL_SUBJECT_DELETE = $$auditsDeleted$$ $$auditsExternalEntity$$.
audits_EXTERNAL_SUBJECT_INVITE_EMAIL = $$auditsInvited$$ $$auditsExternalEntity$$.
audits_EXTERNAL_SUBJECT_INVITE_IDENTIFIER = $$auditsInvited$$ $$auditsExternalEntity$$.
audits_EXTERNAL_SUBJECT_REGISTER_ADD = $$auditsAdded$$ $$auditsExternalEntity$$.
audits_EXTERNAL_SUBJECT_REGISTER_DELETE = $$auditsDeleted$$ $$auditsExternalEntity$$.
audits_EXTERNAL_SUBJECT_REGISTER_UPDATE = $$auditsEdited$$ $$auditsExternalEntity$$.
audits_EXTERNAL_SUBJECT_UPDATE = $$auditsEdited$$ $$auditsExternalEntity$$.
audits_GROUP_ATTESTATION_ADD = $$auditsAdded$$ $$auditsAttestation$$ on $$auditsGroup$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_GROUP_ATTESTATION_DELETE = $$auditsDeleted$$ $$auditsAttestation$$ on $$auditsGroup$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_GROUP_ATTESTATION_UPDATE = $$auditsEdited$$ $$auditsAttestation$$ on $$auditsGroup$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_GROUP_ATTESTATION_UPDATE_LAST_CERTIFIED_DATE = Attested $$auditsGroup$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_GROUP_ATTESTATION_CLEAR_LAST_CERTIFIED_DATE = Cleared last certified date on $$auditsGroup$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_STEM_ATTESTATION_ADD = $$auditsAdded$$ $$auditsAttestation$$ on $$auditsStem$$ ${grouperRequestContainer.guiAuditEntry.guiStem.shortLink}.
audits_STEM_ATTESTATION_DELETE = $$auditsDeleted$$ $$auditsAttestation$$ on $$auditsStem$$ ${grouperRequestContainer.guiAuditEntry.guiStem.shortLink}.
audits_STEM_ATTESTATION_UPDATE = $$auditsEdited$$ $$auditsAttestation$$ on $$auditsStem$$ ${grouperRequestContainer.guiAuditEntry.guiStem.shortLink}.
audits_STEM_ATTESTATION_UPDATE_LAST_CERTIFIED_DATE = Attested $$auditsStem$$ ${grouperRequestContainer.guiAuditEntry.guiStem.shortLink}.
audits_MEMBER_DEPROVISIONING = $$auditsDeprovisionCap$$ to ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink}.
audits_GROUP_DEPROVISIONING_UPDATE_LAST_CERTIFIED_DATE = $$auditsDeprovisionCap$$ certified date set on $$auditsGroup$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_GROUP_DEPROVISIONING_CLEAR_LAST_CERTIFIED_DATE = $$auditsDeprovisionCap$$ certified date cleared on $$auditsGroup$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_STEM_DEPROVISIONING_UPDATE_LAST_CERTIFIED_DATE = $$auditsDeprovisionCap$$ certified date set on $$auditsFolder$$ ${grouperRequestContainer.guiAuditEntry.guiStem.shortLink}.
audits_STEM_DEPROVISIONING_CLEAR_LAST_CERTIFIED_DATE = $$auditsDeprovisionCap$$ certified date cleared on $$auditsFolder$$ ${grouperRequestContainer.guiAuditEntry.guiStem.shortLink}.
audits_ATTR_DEPROVISIONING_UPDATE_LAST_CERTIFIED_DATE = $$auditsDeprovisionCap$$ certified date set on $$auditsAttributeDef$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDef.shortLink}.
audits_ATTR_DEPROVISIONING_CLEAR_LAST_CERTIFIED_DATE = $$auditsDeprovisionCap$$ certified date cleared on $$auditsAttributeDef$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDef.shortLink}.
audits_GROUP_ADD = $$auditsAdded$$ $$auditsGroup$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_GROUP_DELETE = $$auditsDeleted$$ $$auditsGroup$$.
audits_GROUP_DELETE_ALL_MEMBERSHIPS = Deleted all memberships from $$auditsGroup$$.
audits_GROUP_UPDATE = $$auditsEdited$$ $$auditsGroup$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_GROUP_DISABLE = Disabled $$auditsGroup$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_GROUP_ENABLE = Enabled $$auditsGroup$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_GROUP_ATTRIBUTE_ADD = $$auditsAdded$$ $$auditsAttribute$$ to $$auditsGroup$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_GROUP_ATTRIBUTE_DELETE = $$auditsDeleted$$ $$auditsAttribute$$ from $$auditsGroup$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_GROUP_ATTRIBUTE_UPDATE = $$auditsEdited$$ $$auditsAttribute$$ on $$auditsGroup$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_GROUP_COMPOSITE_ADD = $$auditsAdded$$ a composite for $$auditsGroup$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_GROUP_COMPOSITE_DELETE = $$auditsDeleted$$ a composite from $$auditsGroup$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_GROUP_COMPOSITE_UPDATE = $$auditsEdited$$ a composite of $$auditsGroup$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_GROUP_COPY = Copied $$auditsGroup$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_GROUP_REPORT_CONFIG_ADD = $$auditsAdded$$ report ${grouperUtil.abbreviate(grouperRequestContainer.guiAuditEntry.auditEntry.retrieveStringValue('reportConfigId'), 7)} to group ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_GROUP_REPORT_CONFIG_DELETE = $$auditsDeleted$$ report ${grouperUtil.abbreviate(grouperRequestContainer.guiAuditEntry.auditEntry.retrieveStringValue('reportConfigId'), 7)} from group ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_GROUP_REPORT_CONFIG_UPDATE = $$auditsEdited$$ report ${grouperUtil.abbreviate(grouperRequestContainer.guiAuditEntry.auditEntry.retrieveStringValue('reportConfigId'), 7)} on group ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_GROUP_REPORT_DOWNLONAD = Downloaded report ${grouperUtil.abbreviate(grouperRequestContainer.guiAuditEntry.auditEntry.retrieveStringValue('reportConfigId'), 7)} from group ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_GROUP_FIELD_ADD = $$auditsAdded$$ field.
audits_GROUP_FIELD_DELETE = $$auditsDeleted$$ field.
audits_GROUP_FIELD_UPDATE = $$auditsEdited$$ field.
audits_GROUP_MOVE = Moved $$auditsGroup$$ to ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_GROUP_TYPE_ADD = $$auditsAdded$$ $$auditsGroup$$ type.
audits_GROUP_TYPE_ASSIGN = $$auditsAssigned$$ $$auditsGroup$$ type.
audits_GROUP_TYPE_DELETE = $$auditsDeleted$$ $$auditsGroup$$ type.
audits_GROUP_TYPE_UNASSIGN = Unassigned $$auditsGroup$$ type.
audits_GROUP_TYPE_UPDATE = $$auditsEdited$$ $$auditsGroup$$ type.
audits_GSH_TEMPLATE_ADD = $$auditsAdded$$ GSH template ${grouperRequestContainer.guiAuditEntry.auditEntry.retrieveStringValue('gshTemplateConfigId')}
audits_GSH_TEMPLATE_DELETE = $$auditsDeleted$$ GSH template ${grouperRequestContainer.guiAuditEntry.auditEntry.retrieveStringValue('gshTemplateConfigId')}
audits_GSH_TEMPLATE_EXEC = Run GSH template ${grouperRequestContainer.guiAuditEntry.auditEntry.retrieveStringValue('gshTemplateConfigId')}
audits_GSH_TEMPLATE_TEST = Test GSH template ${grouperRequestContainer.guiAuditEntry.auditEntry.retrieveStringValue('gshTemplateConfigId')}
audits_GSH_TEMPLATE_UPDATE = $$auditsEdited$$ GSH template ${grouperRequestContainer.guiAuditEntry.auditEntry.retrieveStringValue('gshTemplateConfigId')}
audits_MEMBERSHIP_GROUP_ADD = $$auditsAdded$$ ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink} as a $$auditsMember$$ of the ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink} $$auditsGroup$$.
audits_MEMBERSHIP_GROUP_DELETE = $$auditsDeleted$$ ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink} as a $$auditsMember$$ of the ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink} $$auditsGroup$$.
audits_MEMBERSHIP_GROUP_UPDATE = $$auditsEdited$$ ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink} as a $$auditsMember$$ of the ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink} $$auditsGroup$$.
audits_MEMBERSHIP_GROUP_IMPORT = Imported file ${grouperRequestContainer.guiAuditEntry.file}. Added ${grouperRequestContainer.guiAuditEntry.importTotalAdded} member(s) and deleted ${grouperRequestContainer.guiAuditEntry.importTotalDeleted} member(s) in ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink} $$auditsGroup$$.
audits_MEMBERSHIP_GROUP_EXPORT = Exported ${grouperRequestContainer.guiAuditEntry.exportSize} member(s) in file ${grouperRequestContainer.guiAuditEntry.file} from ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink} $$auditsGroup$$.
audits_MEMBER_CHANGE_SUBJECT = Changed entity ID of an entity.
audits_PRIVILEGE_GROUP_ADD = $$auditsAssigned$$ '${grouperRequestContainer.guiAuditEntry.guiPrivilege.shortLink}' $$auditsPrivilege$$ to ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink} for the $$auditsGroup$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_PRIVILEGE_GROUP_DELETE = $$auditsDeleted$$ '${grouperRequestContainer.guiAuditEntry.guiPrivilege.shortLink}' $$auditsPrivilege$$ to ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink} for the $$auditsGroup$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_PRIVILEGE_GROUP_UPDATE = $$auditsEdited$$ '${grouperRequestContainer.guiAuditEntry.guiPrivilege.shortLink}' $$auditsPrivilege$$ to ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink} for the $$auditsGroup$$ ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_PRIVILEGE_STEM_ADD = $$auditsAssigned$$ '${grouperRequestContainer.guiAuditEntry.guiPrivilege.shortLink}' $$auditsPrivilege$$ to ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink} for the $$auditsFolder$$ ${grouperRequestContainer.guiAuditEntry.guiStem.shortLink}.
audits_PRIVILEGE_STEM_DELETE = $$auditsDeleted$$ '${grouperRequestContainer.guiAuditEntry.guiPrivilege.shortLink}' $$auditsPrivilege$$ to ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink} for the $$auditsFolder$$ ${grouperRequestContainer.guiAuditEntry.guiStem.shortLink}.
audits_PRIVILEGE_STEM_UPDATE = $$auditsEdited$$ '${grouperRequestContainer.guiAuditEntry.guiPrivilege.shortLink}' $$auditsPrivilege$$ to ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink} for the $$auditsFolder$$ ${grouperRequestContainer.guiAuditEntry.guiStem.shortLink}.
audits_PRIVILEGE_ATTRIBUTE_DEF_ADD = $$auditsAssigned$$ '${grouperRequestContainer.guiAuditEntry.guiPrivilege.shortLink}' $$auditsPrivilege$$ to ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink} for the $$auditsAttributeDef$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDef.shortLink}.
audits_PRIVILEGE_ATTRIBUTE_DEF_DELETE = $$auditsDeleted$$ '${grouperRequestContainer.guiAuditEntry.guiPrivilege.shortLink}' $$auditsPrivilege$$ to ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink} for the $$auditsAttributeDef$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDef.shortLink}.
audits_PRIVILEGE_ATTRIBUTE_DEF_UPDATE = $$auditsEdited$$ '${grouperRequestContainer.guiAuditEntry.guiPrivilege.shortLink}' $$auditsPrivilege$$ to ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink} for the $$auditsAttributeDef$$ ${grouperRequestContainer.guiAuditEntry.guiAttributeDef.shortLink}.
audits_PROVISIONER_SYNC_RUN = Ran provisioner sync for ${grouperRequestContainer.guiAuditEntry.auditEntry.retrieveStringValue('provisionerName')}
audits_PROVISIONER_SYNC_RUN_GROUP = Ran provisioner sync for ${grouperRequestContainer.guiAuditEntry.auditEntry.retrieveStringValue('provisionerName')} on ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_PROVISIONER_SYNC_RUN_MEMBER = Ran provisioner sync for ${grouperRequestContainer.guiAuditEntry.auditEntry.retrieveStringValue('provisionerName')} on ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink}.
audits_PROVISIONER_SYNC_RUN_MEMBERSHIP = Ran provisioner sync for ${grouperRequestContainer.guiAuditEntry.auditEntry.retrieveStringValue('provisionerName')} on ${grouperRequestContainer.guiAuditEntry.guiMember.shortLink} in group ${grouperRequestContainer.guiAuditEntry.guiGroup.shortLink}.
audits_STEM_ADD = $$auditsAdded$$ $$auditsFolder$$ ${grouperRequestContainer.guiAuditEntry.guiStem.shortLink}.
audits_STEM_DELETE = $$auditsDeleted$$ $$auditsFolder$$.
audits_STEM_UPDATE = $$auditsEdited$$ $$auditsFolder$$ ${grouperRequestContainer.guiAuditEntry.guiStem.shortLink}.
audits_STEM_COPY = Copied $$auditsFolder$$ ${grouperRequestContainer.guiAuditEntry.guiStem.shortLink}.
audits_STEM_MOVE = Moved $$auditsFolder$$ to ${grouperRequestContainer.guiAuditEntry.guiStem.shortLink}.
audits_STEM_REPORT_CONFIG_ADD = $$auditsAdded$$ report ${grouperUtil.abbreviate(grouperRequestContainer.guiAuditEntry.auditEntry.retrieveStringValue('reportConfigId'), 7)} to folder ${grouperRequestContainer.guiAuditEntry.guiStem.shortLink}.
audits_STEM_REPORT_CONFIG_DELETE = $$auditsDeleted$$ report ${grouperUtil.abbreviate(grouperRequestContainer.guiAuditEntry.auditEntry.retrieveStringValue('reportConfigId'), 7)} from folder ${grouperRequestContainer.guiAuditEntry.guiStem.shortLink}.
audits_STEM_REPORT_CONFIG_UPDATE = $$auditsEdited$$ report ${grouperUtil.abbreviate(grouperRequestContainer.guiAuditEntry.auditEntry.retrieveStringValue('reportConfigId'), 7)} on folder ${grouperRequestContainer.guiAuditEntry.guiStem.shortLink}.
audits_STEM_REPORT_DOWNLONAD = Downloaded report ${grouperUtil.abbreviate(grouperRequestContainer.guiAuditEntry.auditEntry.retrieveStringValue('reportConfigId'), 7)} from folder ${grouperRequestContainer.guiAuditEntry.guiStem.shortLink}.
audits_XML_IMPORT = Imported from XML
audits_USDU_DELETE_MEMBER = Deleted ${grouperRequestContainer.guiAuditEntry.auditEntry.string03}
audits_JEXL_SCRIPT_EXECUTE = Executed Jexl script test
#########################################
## Custom composites
#########################################
# This feature allows users to easily do a custom intersect or complement on their group with another group when viewing the members in the Grouper UI.
# Define your custom composites in the override configuration. Users must have READ privilege on the group.
# Note that each custom composite also needs to be defined in the main Grouper properties in order to provide the details of the custom composite (group name ane composite type). customCompositeMinusEmployees and customCompositeIntersectIt are also defined as examples there.
#customCompositeMinusEmployees = Members who are not employees
#customCompositeIntersectIt = Members who are IT people
##########################################
## Custom UI
##########################################
# default link of help text for simple ui screen
guiCustomUiHelpDefaultLink = ${textContainer.text['grouper.help'] }
# header on simple ui group screen
guiCustomUiGroupHeader = Custom UI for group: ${grouperUtil.xmlEscape(grouperRequestContainer.groupContainer.guiGroup.group.displayExtension)}
guiCustomUiUserLabel = Person name or ID:
# enroll button
guiCustomUiGroupDefaultEnrollButtonText = Enroll
# enroll button
guiCustomUiGroupDefaultUnenrollButtonText = Unenroll
# instructions for manager
guiCustomUiGroupManagerInstructions = Search for a person to manage their enrollment
guiCustomUiUserQueryTypeLabel_box = Box
guiCustomUiUserQueryTypeLabel_azure = Azure
guiCustomUiUserQueryTypeLabel_zoom = Zoom
guiCustomUiUserQueryTypeLabel_ldap = LDAP
guiCustomUiUserQueryTypeLabel_sql = SQL
guiCustomUiUserQueryTypeLabel_grouper = Grouper
guiCustomUiUserQueryTypeLabel_expressionlanguage = Expression Language
guiCustomUiUserQueryTypeLabel_url = URL param
guiCustomUiTableVariableLabel = Environment
guiCustomUiTableVariableName = Variable name
guiCustomUiTableVariableValue = Result
guiCustomUiTableVariableType = Type
guiCustomUiTableUserQueryType = Operation
guiCustomUiTableVariableDescription = Description
guiCustomUiTableVariableLoggedInUser = For logged in user
guiCustomUiTableTextType = Text type
guiCustomUiTableTextIndex = Rule index
guiCustomUiTableTextScript = Expression
guiCustomUiTableTextScriptResult = Expression result
guiCustomUiTableTextConfigured = Configured text
guiCustomUiTableTextEvaluated = Evaluated text
guiCustomUiTableTextDefault = Default
guiCustomUiTableTextEndIfMatches = End if matches
guiAbbreviateShow = more
guiCustomUiSelectUser = Select user
guiCustomUiUserEnvironmentHeader = User environment
guiCustomUiScreenState = Screen state
guiCustomUiAllScreenText = All screen text
guiCustomUiTypeBlank = <blank>
guiCustomUiTypeTrue = Yes
guiCustomUiTypeFalse = No
guiCustomUiUserQueryDescriptionUrl = URL parameter ${customUiUserQueryConfigBean.getVariableToAssign()}
guiCustomUiUserQueryDescriptionBox = Analyze box.com account for user
guiCustomUiUserQueryDescriptionAzureGroup = User in group ${guiGroup.getShortLink()} in Azure (${customUiUserQueryConfigBean.getConfigId()})
guiCustomUiUserQueryDescriptionAzureGroupId = User in AzureGroup ${customUiUserQueryConfigBean.getAzureGroupId()} in Azure (${customUiUserQueryConfigBean.getConfigId()})
guiCustomUiUserQueryDescriptionAzureExpression = Expression from Azure data: ${grouperUtil.xmlEscape(customUiUserQueryConfigBean.getScript(), true)}
guiCustomUiUserQueryDescriptionZoomExpression = Expression from Zoom data: ${grouperUtil.xmlEscape(customUiUserQueryConfigBean.getScript(), true)}
guiCustomUiUserQueryDescriptionExpression = Expression: ${grouperUtil.xmlEscape(customUiUserQueryConfigBean.getScript(), true)}
guiCustomUiUserQueryDescriptionGroupMember = Member of group ${guiGroup.getShortLink()}
guiCustomUiUserQueryDescriptionGroupAccess = Has privileges ${thePrivileges} of group ${guiGroup.getShortLink()}
guiCustomUiUserQueryDescriptionStemNaming = Has privileges ${thePrivileges} of folder ${guiStem.getShortLink()}
guiCustomUiUserQueryDescriptionAttributeDefPrivileges = Has privileges ${thePrivileges} of attribute definition ${guiAttributeDef.getShortLink()}
guiCustomUiUserQueryDescriptionSql = Query: ${grouperUtil.xmlEscape(customUiUserQueryConfigBean.getQuery())}
guiCustomUiUserQueryDescriptionLdapGroup = Group ${guiGroup.getShortLink()} in LDAP filter: ${grouperUtil.xmlEscape(customUiUserQueryConfigBean.getLdapFilter())}
guiCustomUiUserQueryDescriptionLdap = Filter: ${grouperUtil.xmlEscape(customUiUserQueryConfigBean.getLdapFilter())}
customUiCantFindSubject = Select an entity from the search results
# text before the combo link
customUiSearchLabelPreComboLink = Enter an entity name or ID
groupViewCustomUiButton = Custom UI