All Downloads are FREE. Search and download functionalities are using the official Maven repository.

grouperText.grouper.textNg.en.us.base.properties Maven / Gradle / Ivy

There is a newer version: 5.12.2
Show newest version

# 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:
    1. any of the entity attributes are an exact* match for the query string
    2. the entity is not a person and the the query string is a substring of a entity attribute.
    3. the entity is a person and:
      1. the query string is an exact match for a fisrt name
      2. 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:

    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 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 groupRulesPageTitle = Group rules folderRulesPageTitle = Folder rules 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 globalInheritedPrivilegesPageTitle = Global inherited privileges workflowFormsPageTitle = Workflow forms configurationFilesPageTitle = Configuration files instrumentationPageTitle = Instrumentation deprovisioningPageTitle = Deprovisioning authenticationPageTitle = Authentication myServicesPageTitle = My services provisionerConfigsPageTitle = Provisioners rulesConfigsPageTitle = Rules 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 groupAddMemberMadeChangesEndDateBeforeChangeLogCanPickupWarn = Warn: The end date should be at least ##minsInFuture## minutes in the future as configured in this environment # 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? # label for radio button to remove existing members groupImportRemoveMembers = Remove members? groupImportDoNotModifyExistingMembers = Do not modify existing 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? groupDeleteRulesDeleteCount = ${grouperRequestContainer.groupContainer.guiGroup.rulesDeleteCount} rule(s) will be deleted # 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 miscAttestationDataFieldAndRowDictionaryLink = Data field dictionary dataFieldDictionaryPageDescription = Data fields (e.g. used for ABAC scripted groups) which are configured in your institution. You will only see data fields which you have the "view" privilege on. If you have the "read" privilege then you can see the data field when viewing ABAC policy scripts or can see which users have the attribute. If you have "update", then you can use the data field in a scripted group. # 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 requiredprovisioningMetadataItemNotUnique 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 provisioningConfigTableHeaderAssignedOnThisFolder = This folder provisioningConfigTableHeaderAssignedOnThisGroup=This group provisioningConfigTableHeaderProvisionableNoLabel = No provisioningConfigTableHeaderProvisionableNotApplicableLabel = N/A 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.templateType.label = Template type config.GshTemplateConfiguration.attribute.templateType.description = GSH template is for UI screen with inputs. ABAC template sets up scripted groups. config.GshTemplateConfiguration.attribute.option.templateType.gsh.label = GSH config.GshTemplateConfiguration.attribute.option.templateType.abac.label = ABAC 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 Analysis ######################################## jexlAnalysisMemberOfGroup = member of group jexlAnalysisHasAttribute = has attribute jexlAnalysisHasAttributeValue1 = has attribute jexlAnalysisHasAttributeValue2 = value jexlAnalysisHasAttributeAnyValue = with any value: jexlAnalysisHasRow = has row jexlAnalysisHasRowAttribute = with attribute jexlAnalysisHasRowAttributeValue1 = with attribute jexlAnalysisHasRowAttributeValue2 = value jexlAnalysisHasRowAttributeAnyValue = with any value: jexlAnalysisNot = not jexlAnalysisAnd = and jexlAnalysisOr = or ######################################## ## 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

    stemDeleteRulesDeleteCount = ${grouperRequestContainer.stemDeleteContainer.rulesDeleteCount} rule(s) will be deleted # 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 ######################################## ### Rules ######################################## stemViewRulesButton = Rules rulesFolderSettingsTitle = Folder rules rulesGroupSettingsTitle = Group rules rulesDocumentationLink = Documentation rulesFolderDescription = List of rules that are associated with this folder. This includes rules assigned to other objects that reference this folder. rulesGroupDescription = List of rules that are associated with this group. This includes rules assigned to other objects that reference this group. rulesMoreActionsButton = Rules actions ariaLabelGuiMoreRulesActions = Show rules actions rulesMoreActionsViewRule = View rules rulesMoreActionsAddRule = Add rule rulesNoneAllConfigured = No rules are associated with this object rulesTableActionsButton = Actions rulesTableHeaderActions = Actions rulesTableHeaderPattern = Rule pattern rulesTableHeaderAssignedOnThisFolder = Assigned on
    this folder rulesTableHeaderAssignedOn = Assigned on rulesTableHeaderAssignedOnThisGroup = Assigned on
    this group rulesTableHeaderCheck = Fires when rulesTableHeaderCondition = Condition rulesTableHeaderResult = Result rulesTableHeaderHasNightlyDaemon = Will run
    daemon rulesTableHeaderFiresImmediately = Fires immediately rulesTableHeaderValid = Valid rulesTableActionsViewRuleSettings = View rulesTableActionsEditRuleSettings = Edit rulesTableActionsDeleteRuleSettings = Delete adminRulesConfigurationsLink = Rules rulesConfigNoConfiguredRulesConfigsFound = There are no rules configured. rulePattern_CompositeOrgIntersection = Composite-org intersection rulePattern_AddDisabledDateOnInvalidMembership = Add disabled date on invalid membership rulePattern_AddDisabledDateOnInvalidMembershipDueToGroup = Add disabled date on invalid membership due to group rulePattern_AddDisabledDateOnInvalidPermissions = Add disabled date on invalid permissions rulePattern_AddDisabledDateOnMembership = Add disabled date on membership rulePattern_AssignAttributeToFolder = Assign attribute to folder rulePattern_AssignAttributeToGroup = Assign attribute to group rulePattern_ForeverMembership = Forever membership rulePattern_InheritedPrivilegesOnAttributeDefinitions = Inherited privileges on attribute definitions rulePattern_InheritedPrivilegesOnCertainGroups = Inherited privileges on certain groups rulePattern_InheritedPrivilegesOnFolders = Inherited privileges on folders rulePattern_InheritedPrivilegesOnGroups = Inherited privileges on groups rulePattern_ReassignAttributeDefinitionPrivilegesIfFromGroup = Reassign attribute definition privileges if from group rulePattern_ReassignFolderPrivilegesIfFromGroup = Reassign folder privileges if from group rulePattern_ReassignGroupPrivilegesIfFromGroup = Reassign group privileges if from group rulePattern_RemoveInvalidMembershipDueToFolder = Remove invalid membership due to folder rulePattern_RemoveInvalidMembershipDueToGroup = Remove invalid membership due to group rulePattern_RemoveInvalidPermissionsDueToFolder = Remove invalid permissions due to folder rulePattern_RemoveInvalidPermissionsDueToGroup = Remove invalid permissions due to group rulePattern_SendEmailAfterMembershipRemove = Send email after membership remove rulePattern_SendEmailAfterNewMembership = Send email after new membership rulePattern_SendEmailDueToDisabledDate = Send email due to disabled date rulePattern_SendEmailDueToPermissionsDisabledDate = Send email due to permissions disabled date rulePattern_SendEmailMembershipDueToFolder = Send email membership add due to folder rulePattern_SendEmailWhenGroupMemberInvalidDueToFolder = Send email when group member invalid due to folder rulePattern_VetoIfNotEligibleDueToFolder = Veto if not eligible due to folder rulePattern_VetoIfNotEligibleDueToGroup = Veto if not eligible due to group rulePattern_VetoIfTooManyMembers = Veto if too many members rulePattern_VetoInFolderIfNotEligibleDueToGroup = Veto in folder if not eligible due to group rulePattern_VetoPermissionIfNotEligibleDueToGroup = Veto permission if not eligible due to group rulesTableCheckHumanFriendlyValue_attributeDefCreate = Attribute definition created in ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.checkGuiObject.shortLinkWithIcon} rulesTableCheckHumanFriendlyValue_flattenedMembershipAdd = Membership add (flattened) in ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.checkGuiObject.shortLinkWithIcon} rulesTableCheckHumanFriendlyValue_flattenedMembershipAddInFolder = Membership add (flattened) in ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.checkGuiObject.shortLinkWithIcon} rulesTableCheckHumanFriendlyValue_flattenedMembershipRemove = Membership remove (flattened) from ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.checkGuiObject.shortLinkWithIcon} rulesTableCheckHumanFriendlyValue_flattenedMembershipRemoveInFolder = Membership remove (flattened) from ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.checkGuiObject.shortLinkWithIcon} rulesTableCheckHumanFriendlyValue_groupCreate = Group created in ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.checkGuiObject.shortLinkWithIcon} rulesTableCheckHumanFriendlyValue_membershipAdd = Membership add (direct) in ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.checkGuiObject.shortLinkWithIcon} rulesTableCheckHumanFriendlyValue_membershipAddInFolder = Membership add (direct) in ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.checkGuiObject.shortLinkWithIcon} rulesTableCheckHumanFriendlyValue_membershipDisabledDate = Membership will expire in ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.ruleDefinition.check.checkArg0} to ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.ruleDefinition.check.checkArg1} days rulesTableCheckHumanFriendlyValue_membershipRemove = Membership remove (direct) from ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.checkGuiObject.shortLinkWithIcon} rulesTableCheckHumanFriendlyValue_membershipRemoveInFolder = Membership remove (direct) from ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.checkGuiObject.shortLinkWithIcon} rulesTableCheckHumanFriendlyValue_permissionAssignToSubject = Permission assigned rulesTableCheckHumanFriendlyValue_permissionDisabledDate = Permission will expire in ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.ruleDefinition.check.checkArg0} to ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.ruleDefinition.check.checkArg1} days rulesTableCheckHumanFriendlyValue_stemCreate = Stem created in ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.checkGuiObject.shortLinkWithIcon} rulesTableCheckHumanFriendlyValue_subjectAssignInStem = Subject added membership, privilege, or permission in ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.checkGuiObject.shortLinkWithIcon} ruleDeleleConfirmation = Are you sure you want to delete this rule? rulesCheckArgHumanFriendlyLabel_subjectAssignInStem_Arg0 = Subject source id rulesCheckArgHumanFriendlyDescription_subjectAssignInStem_Arg0 = Subject source id: ${edu.internet2.middleware.subject.provider.SourceManagerOptionValueDriver.retrieveAllSourceIdsCommaSeparatedLabel()} rulesConditionArgHumanFriendlyLabel_groupHasTooManyMembers_Arg0 = Maximum number of members allowed rulesConditionArgHumanFriendlyDescription_groupHasTooManyMembers_Arg0 = Enter 10 if the 11th member should be vetoed. rulesConditionArgHumanFriendlyLabel_groupHasTooManyMembers_Arg1 = Subject source ids rulesConditionArgHumanFriendlyDescription_groupHasTooManyMembers_Arg1 = Comma separated subject source ids: ${edu.internet2.middleware.subject.provider.SourceManagerOptionValueDriver.retrieveAllSourceIdsCommaSeparatedLabel()} rulesCheckArgHumanFriendlyLabel_membershipDisabledDate_Arg0 = Minimum days in the future rulesCheckArgHumanFriendlyDescription_membershipDisabledDate_Arg0 = The rule will fire when a membership has a disabled date at least X days in the future. For instance, if you enter 7, then it will fire for memberships that expire after a week. rulesCheckArgHumanFriendlyLabel_membershipDisabledDate_Arg1 = Maximum days in the future rulesCheckArgHumanFriendlyDescription_membershipDisabledDate_Arg1 = The rule will fire when a membership has a disabled date at most X days in the future. For instance, if you enter 14, then it will fire for memberships that expire before two weeks from now. The 'Maximum days in the future' must be greater than 'Minimum days in the future'. rulesThenArgHumanFriendlyLabel_assignMembershipDisabledDaysForOwnerGroupId_Arg0 = Number of days rulesThenArgHumanFriendlyDescription_assignMembershipDisabledDaysForOwnerGroupId_Arg0 = Enter the number of days in the future when the membership should be disabled, e.g. 7 means the membership will last one week. rulesThenArgHumanFriendlyLabel_assignMembershipDisabledDaysForOwnerGroupId_Arg1 = Add membership if not exists rulesThenArgHumanFriendlyDescription_assignMembershipDisabledDaysForOwnerGroupId_Arg1 = Enter 'true' if the entity should be added to the result group if they are not already a member. Enter 'false' if the entity should not be added to the result group if they are not already a member. rulesThenArgHumanFriendlyLabel_assignDisabledDaysToOwnerPermissionDefAssignments_Arg0 = Number of days rulesThenArgHumanFriendlyDescription_assignDisabledDaysToOwnerPermissionDefAssignments_Arg0 = Enter the number of days in the future when the permission should be disabled, e.g. 7 means the permission will last one week. rulesThenArgHumanFriendlyLabel_assignAttributeDefPrivilegeToAttributeDefId_Arg1 = $$InheritedPrivilegesOnAttributeDefinitions.privilegesToAdd.label$$ rulesThenArgHumanFriendlyDescription_assignAttributeDefPrivilegeToAttributeDefId_Arg1 = $$InheritedPrivilegesOnAttributeDefinitions.privilegesToAdd.description$$ rulesThenArgHumanFriendlyLabel_assignStemPrivilegeToStemId_Arg0 = Subject source and id or identifier rulesThenArgHumanFriendlyDescription_assignStemPrivilegeToStemId_Arg0 = This is a string that represents how to find a subject. subjectIdOrIdentifier or sourceId::::subjectId or ::::subjectId or sourceId::::::subjectIdentifier or ::::::subjectIdentifier or sourceId::::::::subjectIdOrIdentifier or ::::::::subjectIdOrIdentifier rulesThenArgHumanFriendlyLabel_assignStemPrivilegeToStemId_Arg1 = $$InheritedPrivilegesOnFolders.privilegesToAdd.label$$ rulesThenArgHumanFriendlyDescription_assignStemPrivilegeToStemId_Arg1 = $$InheritedPrivilegesOnFolders.privilegesToAdd.description$$ rulesThenArgHumanFriendlyLabel_assignGroupPrivilegeToGroupId_Arg0 = $$rulesThenArgHumanFriendlyLabel_assignStemPrivilegeToStemId_Arg0$$ rulesThenArgHumanFriendlyDescription_assignGroupPrivilegeToGroupId_Arg0 = $$rulesThenArgHumanFriendlyDescription_assignStemPrivilegeToStemId_Arg0$$ rulesThenArgHumanFriendlyLabel_assignGroupPrivilegeToGroupId_Arg1 = $$InheritedPrivilegesOnGroups.privilegesToAdd.label$$ rulesThenArgHumanFriendlyDescription_assignGroupPrivilegeToGroupId_Arg1 = $$InheritedPrivilegesOnGroups.privilegesToAdd.description$$ rulesThenArgHumanFriendlyLabel_assignSelfGroupPrivilege_Arg0 = $$InheritedPrivilegesOnGroups.privilegesToAdd.label$$ rulesThenArgHumanFriendlyDescription_assignSelfGroupPrivilege_Arg0 = $$InheritedPrivilegesOnGroups.privilegesToAdd.description$$ rulesThenArgHumanFriendlyLabel_sendEmail_Arg0 = Email addresses rulesThenArgHumanFriendlyDescription_sendEmail_Arg0 = Comma separated list of email addresses. Sysadmins can configure the email to go to a group, e.g. a:b:c@grouper rulesThenArgHumanFriendlyLabel_sendEmail_Arg1 = Email subject rulesThenArgHumanFriendlyDescription_sendEmail_Arg1 = This is the subject of the email that will be sent out rulesThenArgHumanFriendlyLabel_sendEmail_Arg2 = Email body rulesThenArgHumanFriendlyDescription_sendEmail_Arg2 = This is the body of the email that will be sent out rulesThenArgHumanFriendlyLabel_veto_Arg0 = Externalized text key rulesThenArgHumanFriendlyDescription_veto_Arg0 = The key in the grouper.text.en.us.properties file that will be displayed on the UI when there is a veto rulesThenArgHumanFriendlyLabel_veto_Arg1 = Override text value rulesThenArgHumanFriendlyDescription_veto_Arg1 = If this is entered, this is the literal text that will be displayed on the UI when there is a veto. This is the most common way to configure the text. AddCreatedGroupsToAnotherGroupUserFriendlyText = Add created groups to another group rulePatternCustomUserFriendlyText = Custom AddSelfPrivilegesToNewGroupsUserFriendlyText = Add self privileges to new groups rulesTableConditionHumanFriendlyValue_thisGroupHasImmediateEnabledMembership = ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.ifGuiObject.shortLinkWithIcon} has immediate enabled membership rulesTableConditionHumanFriendlyValue_groupHasNoEnabledMembership = Entity is not a member of ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.ifGuiObject.shortLinkWithIcon} rulesTableConditionHumanFriendlyValue_groupHasNoImmediateEnabledMembership = Entity is not a direct member of ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.ifGuiObject.shortLinkWithIcon} rulesTableConditionHumanFriendlyValue_groupHasTooManyMembers = Group ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.ifGuiObject.shortLinkWithIcon} has more than ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.ruleDefinition.ifCondition.ifConditionEnumArg0} members rulesTableConditionHumanFriendlyValue_nameMatchesSqlLikeString = Name matches "SQL like" pattern: ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.ruleDefinition.ifCondition.ifConditionEnumArg0} (note, HTML escape things like this) rulesTableConditionHumanFriendlyValue_never = Never rulesTableConditionHumanFriendlyValue_noGroupInFolderHasImmediateEnabledMembership = Entity is a direct member in a group in ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.ifGuiObject.shortLinkWithIcon} rulesTableConditionHumanFriendlyValue_thisGroupAndNotFolderHasImmediateEnabledMembership = Entity is a direct member of ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.ifGuiObject.shortLinkWithIcon} but not in ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.checkGuiObject.shortLinkWithIcon} rulesTableConditionHumanFriendlyValue_thisGroupHasImmediateEnabledMembership = Entity is a direct member of ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.ifGuiObject.shortLinkWithIcon} rulesTableConditionHumanFriendlyValue_thisGroupHasImmediateEnabledNoEndDateMembership = Entity is a direct member of ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.ifGuiObject.shortLinkWithIcon} with no end date rulesTableConditionHumanFriendlyValue_thisPermissionDefHasAssignment = Entity has a ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.ruleDefinition.attributeAssignType.ownerAttributeDefId} permission rulesTableConditionHumanFriendlyValue_thisPermissionDefHasAssignmentAndNotFolder = Entity has a ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.ruleDefinition.attributeAssignType.ownerAttributeDefId} permission but is not a member in ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.checkGuiObject.shortLinkWithIcon} rulesTableConditionHumanFriendlyValue_thisPermissionDefHasNoEndDateAssignment = Entity has a ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.ruleDefinition.attributeAssignType.ownerAttributeDefId} permission with no end date rulesTableResultHumanFriendlyValue_sendEmail = Send email to ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.ruleDefinition.then.thenEnumArg0} rulesTableResultHumanFriendlyValue_removeMemberFromOwnerGroup = Remove member from ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.thenGuiObject.shortLinkWithIcon} rulesTableResultHumanFriendlyValue_addMemberToOwnerGroup = Add member to ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.thenGuiObject.shortLinkWithIcon} rulesTableResultHumanFriendlyValue_assignAttributeDefPrivilegeToAttributeDefId = Assign ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.ruleDefinition.then.thenEnumArg1} to ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.thenGuiObject.shortLinkWithIcon} rulesTableResultHumanFriendlyValue_assignDisabledDaysToOwnerPermissionDefAssignments = Assign permissions end date in ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.ruleDefinition.then.thenEnumArg0} days rulesTableResultHumanFriendlyValue_assignGroupPrivilegeToGroupId = Assign ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.ruleDefinition.then.thenEnumArg1} to ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.thenGuiObject.shortLinkWithIcon} rulesTableResultHumanFriendlyValue_assignMembershipDisabledDaysForOwnerGroupId = Assign membership end date in ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.ruleDefinition.then.thenEnumArg0} days rulesTableResultHumanFriendlyValue_assignStemPrivilegeToStemId = Assign ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.convertPrivilegeToHtml(grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.ruleDefinition.then.thenEnumArg1)} to the new folder rulesTableResultHumanFriendlyValue_reassignAttributeDefPrivilegesIfFromGroup = Change privileges to inherited attribute definition admins rulesTableResultHumanFriendlyValue_reassignGroupPrivilegesIfFromGroup = Change privileges to inherited group admins rulesTableResultHumanFriendlyValue_reassignStemPrivilegesIfFromGroup = Change privileges to inherited folder admins rulesTableResultHumanFriendlyValue_removeMemberFromOwnerPermissionDefAssignments = Remove permission assignments rulesTableResultHumanFriendlyValue_veto = Veto action rulesTableResultHumanFriendlyValue_assignSelfGroupPrivilege = Assign privilege(s) to group rulesTableResultHumanFriendlyValue_addGroupToOwnerGroup = Add member to ${grouperRequestContainer.rulesContainer.currentGuiRuleDefinition.thenGuiObject.shortLinkWithIcon} ruleCheckTypeOptionUserFriendlyLabel_attributeDefCreate = Attribute definition created in folder ruleCheckTypeOptionUserFriendlyLabel_flattenedMembershipAdd = Membership add (flattened) in group ruleCheckTypeOptionUserFriendlyLabel_flattenedMembershipAddInFolder = Membership add (flattened) in folder ruleCheckTypeOptionUserFriendlyLabel_flattenedMembershipRemove = Membership remove (flattened) from group ruleCheckTypeOptionUserFriendlyLabel_flattenedMembershipRemoveInFolder = Membership remove (flattened) from folder ruleCheckTypeOptionUserFriendlyLabel_groupCreate = Group created in folder ruleCheckTypeOptionUserFriendlyLabel_membershipAdd = Membership add (direct) in group ruleCheckTypeOptionUserFriendlyLabel_membershipAddInFolder = Membership add (direct) in folder ruleCheckTypeOptionUserFriendlyLabel_membershipDisabledDate = Membership will expire in <daysFrom> to <daysTo> days ruleCheckTypeOptionUserFriendlyLabel_membershipRemove = Membership remove (direct) from group ruleCheckTypeOptionUserFriendlyLabel_membershipRemoveInFolder = Membership remove (direct) from folder ruleCheckTypeOptionUserFriendlyLabel_permissionAssignToSubject = Permission assigned to subject ruleCheckTypeOptionUserFriendlyLabel_permissionDisabledDate = Permission will expire in <daysFrom> to <daysTo> days ruleCheckTypeOptionUserFriendlyLabel_stemCreate = Stem created in folder ruleCheckTypeOptionUserFriendlyLabel_subjectAssignInStem = Subject added membership, privilege, or permission in folder ruleIfConditionOptionUserFriendlyLabel_groupHasNoEnabledMembership = Entity is not a member of group ruleIfConditionOptionUserFriendlyLabel_groupHasNoImmediateEnabledMembership = Entity is not a direct member of group ruleIfConditionOptionUserFriendlyLabel_groupHasTooManyMembers = Group has more than <max> members ruleIfConditionOptionUserFriendlyLabel_nameMatchesSqlLikeString = Name matches "SQL like" pattern: <sqlLikePattern> (note, HTML escape things like this) ruleIfConditionOptionUserFriendlyLabel_never = Never ruleIfConditionOptionUserFriendlyLabel_noGroupInFolderHasImmediateEnabledMembership = Entity is a direct member in a group in folder ruleIfConditionOptionUserFriendlyLabel_thisGroupAndNotFolderHasImmediateEnabledMembership = Entity is a direct member of group but not in folder ruleIfConditionOptionUserFriendlyLabel_thisGroupHasImmediateEnabledMembership = Entity is a direct member of group ruleIfConditionOptionUserFriendlyLabel_thisGroupHasImmediateEnabledNoEndDateMembership = Entity is a direct member of group with no end date ruleIfConditionOptionUserFriendlyLabel_thisPermissionDefHasAssignment = Entity has a attributeDef permission ruleIfConditionOptionUserFriendlyLabel_thisPermissionDefHasAssignmentAndNotFolder = Entity has a attribute definition permission but is not a member in folder ruleIfConditionOptionUserFriendlyLabel_thisPermissionDefHasNoEndDateAssignment = Entity has a attribute definition permission with no end date ruleThenOptionUserFriendlyLabel_addMemberToOwnerGroup = Add member to group ruleThenOptionUserFriendlyLabel_assignAttributeDefPrivilegeToAttributeDefId = Assign privileges to attribute definition ruleThenOptionUserFriendlyLabel_assignDisabledDaysToOwnerPermissionDefAssignments = Assign permissions end date in <x> days ruleThenOptionUserFriendlyLabel_assignGroupPrivilegeToGroupId = Assign privileges to group ruleThenOptionUserFriendlyLabel_assignMembershipDisabledDaysForOwnerGroupId = Assign membership end date in <x> days ruleThenOptionUserFriendlyLabel_assignStemPrivilegeToStemId = Assign privileges to folder ruleThenOptionUserFriendlyLabel_reassignAttributeDefPrivilegesIfFromGroup = Change privileges to inherited attribute definition admins ruleThenOptionUserFriendlyLabel_reassignGroupPrivilegesIfFromGroup = Change privileges to inherited group admins ruleThenOptionUserFriendlyLabel_reassignStemPrivilegesIfFromGroup = Change privileges to inherited folder admins ruleThenOptionUserFriendlyLabel_removeMemberFromOwnerGroup = Remove member from group ruleThenOptionUserFriendlyLabel_removeMemberFromOwnerPermissionDefAssignments = Remove permission assignments ruleThenOptionUserFriendlyLabel_sendEmail = Send email ruleThenOptionUserFriendlyLabel_veto = Veto action ruleThenOptionUserFriendlyLabel_addGroupToOwnerGroup = Add group to owner group ruleThenOptionUserFriendlyLabel_assignSelfGroupPrivilege = Assign privilege(s) to group rulesTableConditionAlwaysHumanFriendlyValue = <Always> grouperRuleRunDaemonLabel = Run daemon override grouperRuleRunDaemonHint = If the rule has the ability to be run by daemon (for example to clean up data corruption), then you can set this to false if you do not want the daemon to run for this rule. If the rule does not have the ability to run in the daemon then this setting is ignored. grouperRuleRunDaemonYesLabel = Yes, override the default and run in the daemon grouperRuleRunDaemonNoLabel = No, override the default and do not run in the daemon rulesTableConditionElPrefix = EL: rulesTableResultElPrefix = EL: grouperRulePatternLabel = Rule pattern grouperRulePatternHint = Type of rule that solves an existing use case with a certain action, condition, and result. AddCreatedGroupsToAnotherGroup.group.label = Group name to add to AddCreatedGroupsToAnotherGroup.group.description = Enter the group name. Note this is the UI ID path. e.g. a:b:c AddCreatedGroupsToAnotherGroup.folder.label = Folder name where groups are created AddCreatedGroupsToAnotherGroup.folder.description = Enter the folder name. Note this is the UI ID path. e.g. a:b:c AddCreatedGroupsToAnotherGroup.stemScope.label = Folder scope AddCreatedGroupsToAnotherGroup.stemScope.description = Select 'All' for everything in this folder and subfolders (most common). Otherwise, it only applies to objects directly in this folder. InheritedPrivilegesOnGroups.subjectIdOrIdentifier.label = Subject id or identifier InheritedPrivilegesOnGroups.subjectIdOrIdentifier.description = Generally put the group name of the group to assign privileges to. Or you can input a subject id or identifier. InheritedPrivilegesOnGroups.privilegesToAdd.label = Privileges to add InheritedPrivilegesOnGroups.privilegesToAdd.description = Comma separated privileges to assign. e.g. read, admin, update, view, optin, optout, groupAttrRead, groupAttrUpdate InheritedPrivilegesOnGroups.stemScope.label = Folder scope InheritedPrivilegesOnGroups.stemScope.description = Select 'All' for everything in this folder and subfolders (most common). Otherwise, it only applies to objects directly in this folder. InheritedPrivilegesOnGroupsUserFriendlyText = Inherited privileges on groups InheritedPrivilegesOnGroups.subjectSource.label = Subject source InheritedPrivilegesOnGroups.subjectSource.description = Generally pick g:gsa to input the group name. Or pick any other source. AddSelfPrivilegesToNewGroups.privilegesToAdd.label = Privileges to add AddSelfPrivilegesToNewGroups.privilegesToAdd.description = Comma separated privileges to assign. e.g. read, admin, update, view, optin, optout, groupAttrRead, groupAttrUpdate AddSelfPrivilegesToNewGroups.stemScope.label = Folder scope AddSelfPrivilegesToNewGroups.stemScope.description = Select 'All' for everything in this folder and subfolders (most common). Otherwise, it only applies to objects directly in this folder. InheritedPrivilegesOnAttributeDefinitions.subjectIdOrIdentifier.label = Subject id or identifier InheritedPrivilegesOnAttributeDefinitions.subjectIdOrIdentifier.description = Generally put the group name of the group to assign privileges to. Or you can input a subject id or identifier. InheritedPrivilegesOnAttributeDefinitions.privilegesToAdd.label = Privileges to add InheritedPrivilegesOnAttributeDefinitions.privilegesToAdd.description = Comma separated attribute definition privileges: attrAdmin, attrOptin, attrOptout, attrRead, attrUpdate, attrView, attrDefAttrRead, attrDefAttrUpdate InheritedPrivilegesOnAttributeDefinitions.stemScope.label = Folder scope InheritedPrivilegesOnAttributeDefinitions.stemScope.description = Select 'All' for everything in this folder and subfolders (most common). Otherwise, it only applies to objects directly in this folder. InheritedPrivilegesOnAttributeDefinitionsUserFriendlyText = Inherited privileges on attribute definitions InheritedPrivilegesOnAttributeDefinitions.subjectSource.label = Subject source InheritedPrivilegesOnAttributeDefinitions.subjectSource.description = Generally pick g:gsa to input the group name. Or pick any other source. InheritedPrivilegesOnFolders.subjectIdOrIdentifier.label = Subject id or identifier InheritedPrivilegesOnFolders.subjectIdOrIdentifier.description = Generally put the group name of the group to assign privileges to. Or you can input a subject id or identifier. InheritedPrivilegesOnFolders.privilegesToAdd.label = Privileges to add InheritedPrivilegesOnFolders.privilegesToAdd.description = Comma separated privileges to assign. e.g. stemView, create, stemAdmin, stemAttrRead, stemAttrUpdate InheritedPrivilegesOnFolders.stemScope.label = Folder scope InheritedPrivilegesOnFolders.stemScope.description = Select 'All' for everything in this folder and subfolders (most common). Otherwise, it only applies to objects directly in this folder. InheritedPrivilegesOnFoldersUserFriendlyText = Inherited privileges on folders InheritedPrivilegesOnFolders.subjectSource.label = Subject source InheritedPrivilegesOnFolders.subjectSource.description = Generally pick g:gsa to input the group name. Or pick any other source. VetoInFolderIfNotEligibleDueToGroup.stemScope.label = Folder scope VetoInFolderIfNotEligibleDueToGroup.stemScope.description = Select 'All' for everything in this folder and subfolders (most common). Otherwise, it only applies to objects directly in this folder. VetoInFolderIfNotEligibleDueToGroupUserFriendlyText = Veto in folder if not eligible due to group VetoInFolderIfNotEligibleDueToGroup.groupName.label = Eligibility group name VetoInFolderIfNotEligibleDueToGroup.groupName.description = Enter the eligibility group name. If an entity is not in the eligibility group then they will be vetoed or removed from groups in this folder. Note this is the UI ID path. e.g. a:b:c VetoInFolderIfNotEligibleDueToGroup.errorMessageKey.label = $$rulesThenArgHumanFriendlyLabel_veto_Arg0$$ VetoInFolderIfNotEligibleDueToGroup.errorMessageKey.description = $$rulesThenArgHumanFriendlyDescription_veto_Arg0$$ VetoInFolderIfNotEligibleDueToGroup.errorMessageKey.defaultValue = Entity cannot be assigned if not a member of AddDisabledDateOnInvalidMembership.groupName.label = Must be in group name AddDisabledDateOnInvalidMembership.groupName.description = Enter the group name that the entity must be a member of. Note this is the UI ID path. e.g. a:b:c AddDisabledDateOnInvalidMembershipUserFriendlyText = Add disabled date on invalid membership AddDisabledDateOnInvalidMembership.checkIfRemovedFromGroup = Check if removed from group AddDisabledDateOnInvalidMembership.checkIfAddedToGroup = Check if added to group AddDisabledDateOnInvalidMembership.checkIfRemovedFromGroup.label = What action the rule should check for AddDisabledDateOnInvalidMembership.checkIfRemovedFromGroup.description = If you are checking a required group like employee then check if removed from group. If you are checking a forbidden group like lock-out then check if added to group. AddDisabledDateOnInvalidMembership.gracePeriod.label = Grace period in days AddDisabledDateOnInvalidMembership.gracePeriod.description = Enter the number of days in the future when the membership should be disabled, e.g. 7 means the membership will last one week. AddDisabledDateOnInvalidMembership.addIfNotThere.label = Add entity to group if not there AddDisabledDateOnInvalidMembership.addIfNotThere.description = If 'Yes' and the entity which has invalid membership does not exist in this group, add them with a disabled date. If 'No' and the entity does not exist in this group then do nothing. AddDisabledDateOnInvalidMembership.addIfNotThere.yes = Yes AddDisabledDateOnInvalidMembership.addIfNotThere.no = No AddDisabledDateOnMembershipUserFriendlyText = Add disabled date on membership AddDisabledDateOnMembership.expireAfterDays.label = Expire after X days AddDisabledDateOnMembership.expireAfterDays.description = Enter the number of days in the future when the membership should be disabled, e.g. 7 means the membership will last one week. AddDisabledDateOnMembership.addIfNotThere.label = Add entity to group if not there AddDisabledDateOnMembership.addIfNotThere.description = If 'Yes' and the entity which has invalid membership does not exist in this group, add them with a disabled date. If 'No' and the entity does not exist in this group then do nothing. AddDisabledDateOnMembership.addIfNotThere.yes = Yes AddDisabledDateOnMembership.addIfNotThere.no = No AddMemberToGroupIfAddedToAnotherGroup.groupName.label = 'Fires when' added to group AddMemberToGroupIfAddedToAnotherGroup.groupName.description = Enter the group name of the group to check. Note this is the UI ID path. e.g. a:b:c AddMemberToGroupIfAddedToAnotherGroupUserFriendlyText = Add member to this group if added to another group AddMemberToGroupIfRemovedFromAnotherGroup.groupName.label = 'Fires when' removed from group AddMemberToGroupIfRemovedFromAnotherGroup.groupName.description = Enter the group name of the group to check. Note this is the UI ID path. e.g. a:b:c AddMemberToGroupIfRemovedFromAnotherGroupUserFriendlyText = Add member to this group if removed from another group AddDisabledDateOnInvalidMembershipDueToFolderUserFriendlyText = Add disabled date on invalid membership due to folder AddDisabledDateOnInvalidMembershipDueToFolder.checkIfRemovedFromGroup = Check if removed from group AddDisabledDateOnInvalidMembershipDueToFolder.checkIfAddedToGroup = Check if added to group AddDisabledDateOnInvalidMembershipDueToFolder.checkIfRemovedFromGroup.label = What action the rule should check for AddDisabledDateOnInvalidMembershipDueToFolder.checkIfRemovedFromGroup.description = If you are checking a required group like employee then check if removed from group. If you are checking a forbidden group like lock-out then check if added to group. AddDisabledDateOnInvalidMembershipDueToFolder.gracePeriod.label = Grace period in days AddDisabledDateOnInvalidMembershipDueToFolder.gracePeriod.description = Enter the number of days in the future when the membership should be disabled, e.g. 7 means the membership will last one week. AddDisabledDateOnInvalidMembershipDueToFolder.addIfNotThere.label = Add entity to group if not there AddDisabledDateOnInvalidMembershipDueToFolder.addIfNotThere.description = If 'Yes' and the entity which has invalid membership does not exist in this group, add them with a disabled date. If 'No' and the entity does not exist in this group then do nothing. AddDisabledDateOnInvalidMembershipDueToFolder.addIfNotThere.yes = Yes AddDisabledDateOnInvalidMembershipDueToFolder.addIfNotThere.no = No AddDisabledDateOnInvalidMembershipDueToFolder.folder.label = Folder name of groups to check AddDisabledDateOnInvalidMembershipDueToFolder.folder.description = Enter the folder name that contains the groups to check. Note this is the UI ID path. e.g. a:b:c AddDisabledDateOnInvalidMembershipDueToFolder.stemScope.label = Folder scope AddDisabledDateOnInvalidMembershipDueToFolder.stemScope.description = Select 'All' for everything in this folder and subfolders (most common). Otherwise, it only applies to objects directly in this folder. RemoveInvalidMembershipDueToFolderUserFriendlyText = Remove invalid membership due to folder RemoveInvalidMembershipDueToFolder.folder.label = Folder name of groups to check RemoveInvalidMembershipDueToFolder.folder.description = Enter the folder name that contains the groups to check. Note this is the UI ID path. e.g. a:b:c RemoveInvalidMembershipDueToFolder.stemScope.label = Folder scope RemoveInvalidMembershipDueToFolder.stemScope.description = Select 'All' for everything in this folder and subfolders (most common). Otherwise, it only applies to objects directly in this folder. VetoIfNewMembershipIsNotAGroupArg1Message = Entity must be a group VetoIfNotEligibleDueToFolderArg1MessagePrefix = Entity cannot be a member of group if not a member in a group in folder VetoIfNotEligibleDueToFolderArg1Message = $$VetoIfNotEligibleDueToFolderArg1MessagePrefix$$ ##targetFolder## VetoIfNotEligibleDueToGroupArg1MessagePrefix = Entity cannot be a member of group if not a member of VetoIfNotEligibleDueToGroupArg1Message = $$VetoIfNotEligibleDueToGroupArg1MessagePrefix$$ ##targetGroup## VetoIfTooManyMembersArg1Message = Group has too many members VetoInFolderIfNotEligibleDueToGroupArg1MessagePrefix = Entity cannot be a member of group if not a member of VetoInFolderIfNotEligibleDueToGroupArg1Message = $$VetoInFolderIfNotEligibleDueToGroupArg1MessagePrefix$$ ##targetGroup## RemoveInvalidMembershipDueToGroup.group.label = Group name to check RemoveInvalidMembershipDueToGroup.group.description = Enter the group name of the group to check. Note this is the UI ID path. e.g. a:b:c RemoveInvalidMembershipDueToGroupUserFriendlyText = Remove invalid membership due to group RemoveInvalidMembershipDueToGroup.checkIfRemovedFromGroup = Check if removed from group RemoveInvalidMembershipDueToGroup.checkIfAddedToGroup = Check if added to group RemoveInvalidMembershipDueToGroup.checkIfRemovedFromGroup.label = What action the rule should check for RemoveInvalidMembershipDueToGroup.checkIfRemovedFromGroup.description = If you are checking a required group like employee then check if removed from group. If you are checking a forbidden group like lock-out then check if added to group. SendEmailMembershipAddDueToFolderUserFriendlyText = Send email after membership remove SendEmailMembershipAddDueToFolder.emailTo.label = Email addresses SendEmailMembershipAddDueToFolder.emailTo.description = Comma separated list of email addresses. Sysadmins can configure the email to go to a group, e.g. a:b:c@grouper SendEmailMembershipAddDueToFolder.emailSubject.label = Email subject SendEmailMembershipAddDueToFolder.emailSubject.description = This is the subject of the email that will be sent out SendEmailMembershipAddDueToFolder.emailBody.label = Email body SendEmailMembershipAddDueToFolder.emailBody.description = This is the body of the email that will be sent out SendEmailMembershipAddDueToFolder.stemScope.label = Folder scope SendEmailMembershipAddDueToFolder.stemScope.description = Select 'All' for everything in this folder and subfolders (most common). Otherwise, it only applies to objects directly in this folder. SendEmailWhenGroupMemberInvalidDueToFolderUserFriendlyText = Send email when group membership invalid due to folder SendEmailWhenGroupMemberInvalidDueToFolder.emailTo.label = Email addresses SendEmailWhenGroupMemberInvalidDueToFolder.emailTo.description = Comma separated list of email addresses. Sysadmins can configure the email to go to a group, e.g. a:b:c@grouper SendEmailWhenGroupMemberInvalidDueToFolder.emailSubject.label = Email subject SendEmailWhenGroupMemberInvalidDueToFolder.emailSubject.description = This is the subject of the email that will be sent out SendEmailWhenGroupMemberInvalidDueToFolder.emailBody.label = Email body SendEmailWhenGroupMemberInvalidDueToFolder.emailBody.description = This is the body of the email that will be sent out SendEmailWhenGroupMemberInvalidDueToFolder.stemScope.label = Folder scope SendEmailWhenGroupMemberInvalidDueToFolder.stemScope.description = Select 'All' for everything in this folder and subfolders (most common). Otherwise, it only applies to objects directly in this folder. SendEmailWhenGroupMemberInvalidDueToFolder.folder.label = Folder name of groups to check SendEmailWhenGroupMemberInvalidDueToFolder.folder.description = Enter the folder name that contains the group to check. Note this is the UI ID path. e.g. a:b:c SendEmailAfterMembershipRemoveUserFriendlyText = Send email after membership remove SendEmailAfterMembershipRemove.emailTo.label = Email addresses SendEmailAfterMembershipRemove.emailTo.description = Comma separated list of email addresses. Sysadmins can configure the email to go to a group, e.g. a:b:c@grouper SendEmailAfterMembershipRemove.emailSubject.label = Email subject SendEmailAfterMembershipRemove.emailSubject.description = This is the subject of the email that will be sent out SendEmailAfterMembershipRemove.emailBody.label = Email body SendEmailAfterMembershipRemove.emailBody.description = This is the body of the email that will be sent out SendEmailAfterNewMembershipUserFriendlyText = Send email after new membership SendEmailAfterNewMembership.emailTo.label = Email addresses SendEmailAfterNewMembership.emailTo.description = Comma separated list of email addresses. Sysadmins can configure the email to go to a group, e.g. a:b:c@grouper SendEmailAfterNewMembership.emailSubject.label = Email subject SendEmailAfterNewMembership.emailSubject.description = This is the subject of the email that will be sent out SendEmailAfterNewMembership.emailBody.label = Email body SendEmailAfterNewMembership.emailBody.description = This is the body of the email that will be sent out SendEmailDueToDisabledDateUserFriendlyText = Send email due to disabled date SendEmailDueToDisabledDate.emailTo.label = Email addresses SendEmailDueToDisabledDate.emailTo.description = Comma separated list of email addresses. Sysadmins can configure the email to go to a group, e.g. a:b:c@grouper SendEmailDueToDisabledDate.emailSubject.label = Email subject SendEmailDueToDisabledDate.emailSubject.description = This is the subject of the email that will be sent out SendEmailDueToDisabledDate.emailBody.label = Email body SendEmailDueToDisabledDate.emailBody.description = This is the body of the email that will be sent out SendEmailDueToDisabledDate.minDays.label = Minimum days in the future SendEmailDueToDisabledDate.minDays.description = The rule will fire when a membership has a disabled date at least X days in the future. For instance, if you enter 7, then it will fire for memberships that expire after a week. SendEmailDueToDisabledDate.maxDays.label = Maximum days in the future SendEmailDueToDisabledDate.maxDays.description = The rule will fire when a membership has a disabled date at most X days in the future. For instance, if you enter 14, then it will fire for memberships that expire before two weeks from now. The 'Maximum days in the future' must be greater than 'Minimum days in the future'. VetoIfNewMembershipIsNotAGroupUserFriendlyText = Veto if new membership is not a group or in certain subject sources VetoIfNewMembershipIsNotAGroup.key.label = Externalized text key VetoIfNewMembershipIsNotAGroup.key.description = Key VetoIfNewMembershipIsNotAGroup.subjectSource.label = Subject source ids VetoIfNewMembershipIsNotAGroup.subjectSource.description = Comma separated subject source ids: ${edu.internet2.middleware.subject.provider.SourceManagerOptionValueDriver.retrieveAllSourceIdsCommaSeparatedLabel()} VetoIfNotEligibleDueToFolderUserFriendlyText = Veto if not eligible due to folder VetoIfNotEligibleDueToFolder.key.label = Externalized text key VetoIfNotEligibleDueToFolder.key.description = The key in the grouper.text.en.us.properties file that will be displayed on the UI when there is a veto VetoIfNotEligibleDueToFolder.message.label = Override text value VetoIfNotEligibleDueToFolder.message.description = If this is entered, this is the literal text that will be displayed on the UI when there is a veto. This is the most common way to configure the text. VetoIfNotEligibleDueToFolder.folder.label = Folder name of groups to check VetoIfNotEligibleDueToFolder.folder.description = Enter the folder name that contains the group to check. Note this is the UI ID path. e.g. a:b:c VetoIfNotEligibleDueToFolder.stemScope.label = Folder scope VetoIfNotEligibleDueToFolder.stemScope.description = Select 'All' for everything in this folder and subfolders (most common). Otherwise, it only applies to objects directly in this folder. VetoIfNotEligibleDueToGroupUserFriendlyText = Veto if not eligible due to group VetoIfNotEligibleDueToGroup.key.label = Externalized text key VetoIfNotEligibleDueToGroup.key.description = The key in the grouper.text.en.us.properties file that will be displayed on the UI when there is a veto VetoIfNotEligibleDueToGroup.message.label = Override text value VetoIfNotEligibleDueToGroup.message.description = If this is entered, this is the literal text that will be displayed on the UI when there is a veto. This is the most common way to configure the text. VetoIfNotEligibleDueToGroup.checkIfRemovedFromGroup = Check if removed from group VetoIfNotEligibleDueToGroup.checkIfAddedToGroup = Check if added to group VetoIfNotEligibleDueToGroup.checkIfRemovedFromGroup.label = What action the rule should check for VetoIfNotEligibleDueToGroup.checkIfRemovedFromGroup.description = If you are checking a required group like employee then check if removed from group. If you are checking a forbidden group like lock-out then check if added to group. VetoIfNotEligibleDueToGroup.group.label = Group name to check VetoIfNotEligibleDueToGroup.group.description = Enter the group name to check. Note this is the UI ID path. e.g. a:b:c VetoIfTooManyMembersUserFriendlyText = Veto if too many members VetoIfTooManyMembers.limit.label = Maximum number of members allowed VetoIfTooManyMembers.limit.description = Enter 10 if the 11th member should be vetoed. grouperRuleCheckTypeLabel = Fires when grouperRuleCheckTypeHint = The action that is being listened for (e.g. flattened membership add in a certain group) grouperRuleCheckOwnerLabel = "Fires when" owner grouperRuleCheckOwnerHint = The group / folder / etc that is checked for the "fires when" action. e.g. if the "fires when" is "Membership add (flattened) in group", then the owner is the group being checked grouperRuleCheckGroupOwnerThisGroup = This group grouperRuleCheckGroupOwnerAnotherGroup = Another group grouperRuleCheckOwnerThisStem = This folder grouperRuleCheckOwnerAnotherStem = Another folder grouperRuleOwnerStemScopeLabel = "Fires when" owner folder scope grouperRuleOwnerStemScopeDescription = When a "fires when" references a folder, this is the determination of if it applies to all objects including subfolders (most common), or if it is only object directly in the folder (and not subfolders). grouperRuleOwnerSubStemScopeLabel = All groups in this folder or subfolders grouperRuleOwnerOneStemScopeLabel = Only groups directly in this folder grouperRuleCheckIsOwnerLabel = Is there a check owner grouperRuleCheckIsOwnerHint = Select Yes if there is a check owner grouperRuleCheckOwnerTypeLabel = Check owner type grouperRuleCheckOwnerTypeHint = Select check owner type grouperRuleCheckOwnerUuidOrNameLabel = "Fires when" owner uuid or id path grouperRuleCheckOwnerUuidOrNameHint = Enter the group / folder uuid or id path for the "fires when" action. grouperRuleIfConditionOptionsLabel = Condition grouperRuleIfConditionOptionsHint = Category of check to make to see if the rule should proceed. This is optional and should not be filled in if the rule should fire every time the "fires when" happens grouperRuleIfConditionElLabel = Condition JEXL script grouperRuleIfConditionElHint = If the condition requires using JEXL expression language, this is the JEXL expression that should return a boolean for if the rule should continue firing. The variables available in JEXL depend on the condition type, and the source code should be consulted. grouperRuleIfConditionOwnerLabel = Condition owner grouperRuleIfConditionOwnerHint = The group / folder / etc that is checked for the condition. e.g. if the condition is "entity is a direct member of the group", then the owner is the group being checked grouperRuleIfConditionOwnerUuidOrNameLabel = Condition owner uuid or id path grouperRuleIfConditionOwnerUuidOrNameHint = Enter the group / folder uuid or id path for the condition. grouperRuleIfConditionOwnerStemScopeLabel = Condition folder scope grouperRuleIfConditionOwnerStemScopeHint = When a condition references a folder, this is the determination of if it applies to all objects including subfolders (most common), or if it is only object directly in the folder (and not subfolders). grouperRuleThenOptionsLabel = Result grouperRuleThenOptionsHint = Category of action to happen to see if the rule fires and the condition is true. This is optional and should not be filled in if the rule should fire every time the "fires when" happens grouperRuleThenElLabel = Result JEXL script grouperRuleThenElHint = If the result requires using JEXL expression language, this is the JEXL expression that should perform the action of the result. The variables available in JEXL depend on the result type, and the source code should be consulted. Only Grouper sysadmins can configure JEXL scripts. grouperRuleCheckIsOwnerYes = Yes grouperRuleCheckIsOwnerNo = No grouperRuleCheckOwnerStemScopeSub = SUB grouperRuleCheckOwnerStemScopeOne = ONE grouperRuleCheckOwnerTypeGroup = Group grouperRuleCheckOwnerTypeStem = Folder grouperRuleIfConditionExistsYes = Yes grouperRuleIfConditionExistsNo = No grouperRuleIfConditionTypeEnum = Enum grouperRuleIfConditionTypeEL = EL grouperRuleIfConditionIsOwnerYes = Yes grouperRuleIfConditionIsOwnerNo = No grouperRuleIfConditionTypeEnum = Enum grouperRuleIfConditionTypeEL = EL grouperRuleConfigAddEditSuccess = Rule was saved successfully grouperRuleConfigAddEditSuccessButInvalid = Rule was saved successfully but it is in invalid state grouperRuleConfigDeleteSuccess = Rule configuration was deleted successfully grouperRuleConfigAddEditInvalidFolder = Folder with uuid or name '##folderUuidOrName##' does not exist. grouperRuleConfigAddEditInvalidGroup = Group with uuid or name '##groupUuidOrName##' does not exist. grouperRuleConfigAddEditRuleSavedButNotValid = Rule was saved but it is not valid. grouperRuleConfigAddEditCannotReadGroup = You cannot read group '##groupName##' grouperRuleConfigAddEditCannotAdminStem = You don't have admin privileges on the folder '##stemName##' grouperRuleConfigAddEditInvalidSubjectOrSubjectSource = Subject with id/identifier '##subjectIdOrIdentifier##' and source '##subjectSource##' does not exist. grouperRuleConfigAddEditInvalidPrivilegeFound = Invalid privilege '##invalidPrivilege##' grouperRuleConfigAddEditPrivilegesRequired = Privileges are required. grouperRuleConfigAddEditInvalidGracePeriod = Invalid grace period '##gracePeriod##' grouperRuleConfigAddEditInvalidNumberOfDays = Invalid number of days '##numberOfDays##' grouperRuleConfigAddEditInvalidNumber = Invalid number '##number##' grouperRuleConfigAddEditFolderScopeRequired = Folder scope is required. grouperRuleConfigAddEditFolderScopeInvalid = Invalid folder scope. grouperRuleConfigAddEditErrorMessageKeyRequired = Error message key is required. grouperRuleConfigAddEditInvalidRuleConditionType = This rule condition is not applicable for this object type grouperRuleConfigAddEditInvalidRuleCheckType = This rule check is not applicable for this object type grouperRuleConfigAddEditEmailToRequired = Email to is required. grouperRuleConfigAddEditEmailSubjectRequired = Email subject is required. grouperRuleConfigAddEditEmailBodyRequired = Email body is required. grouperRuleConfigNotInEmailSenderGroup = You are not allowed to select this pattern. grouperRuleConfigAddEditKeyRequired = Key is required. grouperRuleConfigAddEditMessageRequired = Message is required. ######################################## ### 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 developers of the custom ui. 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 people who support the application. 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. Entity data fields ######################################## miscAdminDataFieldsLink = Entity data fields miscellaneousEntityDataFieldsBreadcrumb = Entity data fields miscellaneousDataFieldsBreadcrumb = Data fields miscellaneousPrivacyRealmsBreadcrumb = Privacy realms miscellaneousDataRowsBreadcrumb = Data rows miscellaneousDataProvidersBreadcrumb = Data providers miscellaneousDataProviderQueriesBreadcrumb = Data provider queries miscellaneousDataProviderChangeLogQueriesBreadcrumb = Data provider change log queries miscellaneousDataFieldsMainDescription = Data fields miscellaneousPrivacyRealmsMainDescription = Privacy realms miscellaneousDataProvidersMainDescription = Data providers miscellaneousDataProviderQueriesMainDescription = Data provider queries miscellaneousDataProviderChangeLogQueriesMainDescription = Data provider change log queries miscellaneousDataRowsMainDescription = Data rows miscellaneousDataFieldsAddBreadcrumb = Add data field miscellaneousDataRowsAddBreadcrumb = Add data row miscellaneousDataProviderAddBreadcrumb = Add data provider miscellaneousDataProviderQueryAddBreadcrumb = Add data provider query miscellaneousDataProviderChangeLogQueryAddBreadcrumb = Add data provider change log query miscellaneousPrivacyRealmAddBreadcrumb = Add privacy realm miscellaneousPrivacyRealmEditBreadcrumb = Edit privacy realm miscellaneousDataFieldEditBreadcrumb = Edit data field miscellaneousDataRowEditBreadcrumb = Edit data row miscellaneousDataProviderEditBreadcrumb = Edit data provider miscellaneousDataProviderQueryEditBreadcrumb = Edit data provider query miscellaneousDataProviderChangeLogQueryEditBreadcrumb = Edit data provider change log query miscellaneousEntityDataFieldsMainDescription = Entity data fields entityDataFieldsSummaryHeaderName = Name entityDataFieldsSummaryHeaderNumberOfConfigs = Number of configs entityDataFieldsSummaryHeaderActions = Actions entityDataFieldsRowActionsButton = Actions entityDataFieldsViewActionsOption = View entityDataFieldsEditActionsOption = Edit entityDataFieldsSummaryTablePrivacyRealms = Privacy realms entityDataFieldsSummaryTableDataFields = Data fields entityDataFieldsSummaryTableDataRows = Data rows entityDataFieldsSummaryTableDataProviders = Data providers entityDataFieldsSummaryTableDataProviderQueries = Data provider queries entityDataFieldsSummaryTableDataProviderChangeLogQueries = Data provider change log queries ariaLabelGuiMoreDataFieldsActions = Show data fields actions dataFieldsMoreActionsButton = Data field actions dataRowsMoreActionsButton = Data row actions dataFieldsMoreActionsAddButton = Add data field dataRowMoreActionsAddButton = Add data row privacyRealmMoreActionsButton = Privacy realm actions privacyRealmMoreActionsAddButton = Add privacy realm privacyRealmMoreActionsViewButton = View privacy realms dataProvidersMoreActionsButton = Data provider actions dataProviderMoreActionsAddButton = Add data provider dataProviderMoreActionsViewButton = View data providers dataProviderQueryMoreActionsButton = Data provider query actions dataProviderQueryMoreActionsAddButton = Add data provider query dataProviderQueryMoreActionsViewButton = View data provider queries dataProviderChangeLogQueryMoreActionsButton = Data provider change log query actions dataProviderChangeLogQueryMoreActionsAddButton = Add data provider change log query dataProviderChangeLogQueryMoreActionsViewButton = View data provider change log queries dataFieldsMoreActionsViewButton = View data fields dataRowMoreActionsViewButton = View data rows dataFieldConfigAddFormSubmitButton = Submit dataFieldConfigAddFormCancelButton = Cancel dataFieldRowAliasAlreadyUsedError = ##dataFieldAlias## alias is already used dataFieldConfigIdLabel = Config id dataFieldConfigIdHint = The Config id is an alphanumeric key for the data fields that will be referred to from places that use the data field. It is also used in the configuration keys. dataFieldTypeLabel = Data field configuration dataFieldTypeHint = Data field configuration privacyRealmConfigIdLabel = Config id privacyRealmConfigIdHint = The Config id is an alphanumeric key for the privacy realms that will be referred to from places that use the privacy realm. It is also used in the configuration keys. privacyRealmTypeLabel = Privacy realm configuration privacyRealmTypeHint = Privacy realm configuration dataRowConfigIdLabel = Config id dataRowConfigIdHint = The Config id is an alphanumeric key for the data rows that will be referred to from places that use the data row. It is also used in the configuration keys. dataRowTypeLabel = Data row configuration dataRowTypeHint = Data row configuration dataProviderConfigIdLabel = Config id dataProviderConfigIdHint = The Config id is an alphanumeric key for the data providers that will be referred to from places that use the data provider. It is also used in the configuration keys. dataProviderTypeLabel = Data provider configuration dataProviderTypeHint = Data provider configuration dataProviderQueryConfigIdLabel = Config id dataProviderQueryConfigIdHint = The Config id is an alphanumeric key for the data provider queries that will be referred to from places that use the data provider query. It is also used in the configuration keys. dataProviderQueryTypeLabel = Data provider query configuration dataProviderQueryTypeHint = Data provider query configuration dataProviderChangeLogQueryConfigIdLabel = Config id dataProviderChangeLogQueryConfigIdHint = The Config id is an alphanumeric key for the data provider change log queries that will be referred to from places that use the data provider change log query. It is also used in the configuration keys. dataProviderChangeLogQueryTypeLabel = Data provider change log query configuration dataProviderChangeLogQueryTypeHint = Data provider change log query configuration privacyRealmConfigsConfirmDeleteConfig = Are you sure you want to delete this privacy realm config? dataFieldConfigsConfirmDeleteConfig = Are you sure you want to delete this data field config? dataRowConfigsConfirmDeleteConfig = Are you sure you want to delete this data row config? dataProviderConfigsConfirmDeleteConfig = Are you sure you want to delete this data provider config? dataProviderQueryConfigsConfirmDeleteConfig = Are you sure you want to delete this data provider query config? dataFieldCreateErrorConfigIdRequired = Error: Config id is required privacyRealmCreateErrorConfigIdRequired = Error: Config id is required dataRowCreateErrorConfigIdRequired = Error: Config id is required dataProviderCreateErrorConfigIdRequired = Error: Config id is required dataProviderQueryCreateErrorConfigIdRequired = Error: Config id is required dataProviderChangeLogQueryCreateErrorConfigIdRequired = Error: Config id is required dataFieldConfigAddEditSuccess = Data field config was saved successfully. dataProviderConfigAddEditSuccess = Data provider config was saved successfully. dataProviderQueryConfigAddEditSuccess = Data provider query config was saved successfully. dataProviderChangeLogQueryConfigAddEditSuccess = Data provider change log query config was saved successfully. dataFieldConfigDeleteSuccess = Data field config was deleted successfully. privacyRealmConfigAddEditSuccess = Privacy realm config was saved successfully. privacyRealmConfigDeleteSuccess = Privacy realm config was deleted successfully. dataRowConfigDeleteSuccess = Data row config was deleted successfully. dataProviderConfigDeleteSuccess = Data provider config was deleted successfully. dataProviderQueryConfigDeleteSuccess = Data provider query config was deleted successfully. dataProviderChangeLogQueryConfigDeleteSuccess = Data provider change log query config was deleted successfully. dataRowConfigAddEditSuccess = Data row config was saved successfully. dataFieldsEditActionsOption = Edit dataFieldsDeleteActionsOption = Delete entityDataFieldsHeaderConfigId = Config id entityDataFieldsHeaderActions = Actions entityDataFieldRowDictionaryTableTitle = Title entityDataFieldRowDictionaryTableDescription = Description entityDataFieldRowDictionaryTableDocumentation = Documentation entityDataFieldRowDictionaryTableNoViewAccess = You are not allowed to view any data fields of this type entityDataFieldRowDictionaryTableNoData = There are no data fields for this type configured entityDataFieldRowDictionaryDataFieldIndividualsTitle = Data fields assigned to entities entityDataFieldRowDictionaryDataFieldIndividualsDescription = These data fields are assigned directly to users in the system. They can be referenced by any of the aliases. entityDataFieldRowDictionaryDataFieldIndividualsDocumentation = Use this in an ABAC scripted group, e.g. ${entity.hasAttribute('aliasName')} entityDataFieldRowDictionaryDataFieldGlobalTitle = Global data fields entityDataFieldRowDictionaryDataFieldGlobalDescription = These data fields are not assigned directly to users e.g. current term entityDataFieldRowDictionaryDataFieldGlobalDocumentation = Use this in an ABAC scripted group entityDataFieldRowDictionaryDataFieldGroupsTitle = Data fields assigned to groups entityDataFieldRowDictionaryDataFieldGroupsDescription = These data fields are assigned to groups. e.g. a course group that is associated with a certain campus. entityDataFieldRowDictionaryDataFieldGroupsDocumentation = Use this in an ABAC scripted group entityDataFieldRowDictionaryHeaderDataFieldAliases = Data field aliases entityDataFieldRowDictionaryHeaderDescription = Description entityDataFieldRowDictionaryHeaderPrivilege = Privilege entityDataFieldRowDictionaryHeaderDataType = Data type entityDataFieldRowDictionaryHeaderDataOwner = Data owner entityDataFieldRowDictionaryHeaderHowToGetAccess = How to get access entityDataFieldRowDictionaryHeaderExamples = Examples entityDataFieldRowDictionaryHeaderAboutDataField = About this data field entityDataFieldRowDictionaryValueType = Value type entityDataFieldRowDictionaryValueTypeMultivalued = Multi-valued entityDataFieldRowDictionaryDataRowLabel = Data row: config.GrouperPrivacyRealmConfiguration.attribute.privacyRealmName.label = Privacy realm name config.GrouperPrivacyRealmConfiguration.attribute.privacyRealmPublic.label = Is realm public? config.GrouperPrivacyRealmConfiguration.attribute.privacyRealmAuthenticated.label = Is realm authenticated? config.GrouperPrivacyRealmConfiguration.attribute.privacyRealmSysadminsCanView.label = Can sysadmins access? config.GrouperPrivacyRealmConfiguration.attribute.privacyRealmViewersGroupName.label = Viewers group name config.GrouperPrivacyRealmConfiguration.attribute.privacyRealmUpdatersGroupName.label = Updaters group name config.GrouperPrivacyRealmConfiguration.attribute.privacyRealmReadersGroupName.label = Readers group name config.GrouperDataFieldConfiguration.attribute.fieldAliases.label = Field aliases config.GrouperDataFieldConfiguration.attribute.fieldPrivacyRealm.label = Field privacy realm config.GrouperDataFieldConfiguration.attribute.descriptionHtml.label = Description html config.GrouperDataFieldConfiguration.attribute.dataOwnerHtml.label = Data owner html config.GrouperDataFieldConfiguration.attribute.howToGetAccessHtml.label = How to get access html config.GrouperDataFieldConfiguration.attribute.zeroToManyExamplesHtml.label = Zero to many examples config.GrouperDataFieldConfiguration.attribute.fieldMultiValued.label = Field multivalued? config.GrouperDataFieldConfiguration.attribute.fieldDataType.label = Field datatype config.GrouperDataFieldConfiguration.attribute.fieldDataStructure.label = Field data structure config.GrouperDataFieldConfiguration.attribute.fieldDataUse.label = Field data use config.GrouperDataFieldConfiguration.attribute.fieldDataCalculated.label = Field data calculated config.GrouperDataFieldConfiguration.attribute.fieldDataCalculatedScript.label = Field data calculated script config.GrouperDataFieldConfiguration.attribute.fieldDataInformationalDynamicPrivacyLevel.label = Field dynamic? config.GrouperDataFieldConfiguration.attribute.fieldDataInformationalDynamicPrivacyLevelConfigIds.label = Config id config.GrouperDataFieldConfiguration.attribute.fieldDataIdentifierRequiresName.label = Field requires name? config.GrouperDataFieldConfiguration.attribute.fieldDataSource.label = Field data source config.GrouperDataFieldConfiguration.attribute.fieldDataGroupName.label = Field data group name config.GrouperDataFieldConfiguration.attribute.fieldDataStorePit.label = Field data store in PIT config.GrouperDataFieldConfiguration.attribute.fieldDataStorePitDays.label = Days to store in PIT config.GrouperDataFieldConfiguration.attribute.fieldDataAssignableTo.label = Field data assignable to config.GrouperDataFieldConfiguration.attribute.fieldDataLov.label = Field data LOV config.GrouperDataFieldConfiguration.attribute.fieldDataLovExistingValues.label = Field data LOV existing values config.GrouperDataFieldConfiguration.attribute.fieldDataLovDatabaseConfigId.label = Field data LOV database config id config.GrouperDataFieldConfiguration.attribute.fieldDataLovDatabaseQuery.label = Field data LOV database query config.GrouperDataFieldConfiguration.attribute.fieldDataLovCacheforMinutes.label = Field data LOV cache minutes config.GrouperDataRowConfiguration.attribute.rowAliases.label = Row aliases config.GrouperDataRowConfiguration.attribute.descriptionHtml.label = Description html config.GrouperDataRowConfiguration.attribute.dataOwnerHtml.label = Data owner html config.GrouperDataRowConfiguration.attribute.howToGetAccessHtml.label = How to get access html config.GrouperDataRowConfiguration.attribute.zeroToManyExamplesHtml.label = Zero to many examples config.GrouperDataRowConfiguration.attribute.rowPrivacyRealm.label = Row privacy realm config.GrouperDataRowConfiguration.attribute.rowNumberOfDataFields.label = Row number of data fields config.GrouperDataRowConfiguration.attribute.rowDataField.i.colDataFieldConfigId.label = __i+1__ - Col data field config id config.GrouperDataRowConfiguration.attribute.rowDataField.i.rowKeyField.label = __i+1__ - Row key field config.GrouperDataRowConfiguration.attribute.rowDataField.i.rowKeyField.description = If this single valued column is the key or part of composite key to uniquely identify this row for this entity config.GrouperDataRowConfiguration.subSection.dataRowConfig.title = Data row config config.GrouperDataRowConfiguration.subSection.dataRowConfig.description = Data row config config.GrouperDataRowConfiguration.subSection.rowDataField.i.title = Row data field __i+1__ config.GrouperDataRowConfiguration.subSection.rowDataField.i.description = Configure row data field config.GrouperDataProviderConfiguration.attribute.name.label = Name config.GrouperDataProviderChangeLogQueryConfiguration.subSection.dataProviderChangeLogQueryConfig.title = Data provider change log query config config.GrouperDataProviderChangeLogQueryConfiguration.attribute.providerConfigId.label = Provider config id config.GrouperDataProviderChangeLogQueryConfiguration.attribute.providerChangeLogQueryType.label = Provider change log query type config.GrouperDataProviderChangeLogQueryConfiguration.attribute.providerChangeLogQuerySqlConfigId.label = Provider change log query sql config id config.GrouperDataProviderChangeLogQueryConfiguration.attribute.providerChangeLogQuerySqlQuery.label = Provider change log query sql query config.GrouperDataProviderChangeLogQueryConfiguration.attribute.providerChangeLogQuerySubjectIdAttribute.label = Provider change log query subject id attribute config.GrouperDataProviderChangeLogQueryConfiguration.attribute.providerChangeLogQueryPrimaryKeyAttribute.label = Provider change log query primary key attribute config.GrouperDataProviderChangeLogQueryConfiguration.attribute.providerChangeLogQueryTimestampAttribute.label = Provider change log query timestamp attribute config.GrouperDataProviderChangeLogQueryConfiguration.attribute.providerChangeLogQuerySubjectIdType.label = Provider change log query subject id type config.GrouperDataProviderChangeLogQueryConfiguration.attribute.providerChangeLogQuerySubjectSourceId.label = Provider change log query subject source id config.GrouperDataProviderQueryConfiguration.attribute.providerConfigId.label = Provider config id config.GrouperDataProviderQueryConfiguration.attribute.providerQueryType.label = Provider query type config.GrouperDataProviderQueryConfiguration.attribute.providerQuerySqlConfigId.label = Provider query sql config id config.GrouperDataProviderQueryConfiguration.attribute.providerQueryLdapConfigId.label = Provider query LDAP config id config.GrouperDataProviderQueryConfiguration.attribute.providerQuerySqlQuery.label = Provider query sql query config.GrouperDataProviderQueryConfiguration.attribute.providerQueryLdapBaseDn.label = Provider query LDAP base DN config.GrouperDataProviderQueryConfiguration.attribute.providerQueryLdapSearchScope.label = Provider query LDAP search scope config.GrouperDataProviderQueryConfiguration.attribute.providerQueryLdapFilter.label = Provider query LDAP filter config.GrouperDataProviderQueryConfiguration.attribute.providerQueryDataStructure.label = Provider query data structure config.GrouperDataProviderQueryConfiguration.attribute.providerQueryRowConfigId.label = Provider query row config id config.GrouperDataProviderQueryConfiguration.attribute.providerQuerySubjectIdAttribute.label = Provider query subject id attribute config.GrouperDataProviderQueryConfiguration.attribute.providerQuerySubjectIdType.label = Provider query subject id type config.GrouperDataProviderQueryConfiguration.attribute.providerQuerySubjectSourceId.label = Provider query subject source id config.GrouperDataProviderQueryConfiguration.attribute.providerQueryNumberOfDataFields.label = Provider query number of data fields config.GrouperDataProviderQueryConfiguration.attribute.providerQueryDataField.i.providerDataFieldConfigId.label = __i+1__ - Provider data field config id config.GrouperDataProviderQueryConfiguration.attribute.providerQueryDataField.i.providerDataFieldMappingType.label = __i+1__ - Provider mapping type config.GrouperDataProviderQueryConfiguration.attribute.providerQueryDataField.i.providerDataFieldAttribute.label = __i+1__ - Provider data field attribute config.GrouperDataProviderQueryConfiguration.subSection.dataProviderQueryConfig.title = Data provider query config config.GrouperDataProviderQueryConfiguration.subSection.providerQueryDataField.i.title = Provider query data field __i+1__ config.GrouperDataProviderQueryConfiguration.subSection.providerQueryDataField.i.description = Configure provider query data field ######################################## ## 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   *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+System
    Video - 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+System
    Video
    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+system
    Video
    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:
    1. Open the JSON file and take the private key and replace the \n with actual newlines
    2. -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. grouperConfigurationValidationLdapUrlContainsBaseDN = Error: Base DN not allowed to be configured in the ldap URL. 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. grouperDaemonDataProviderConfigurationNoDuplicateDaemonsAllowed = Error: For a data provider config, only one full and one incremental daemon is allowed. grouperDaemonGroupSyncAnotherGrouperConfigurationNoDuplicateDaemonsAllowed = Error: For a group sync config, only one daemon is allowed per config. miscellaneousGrouperExternalSystemsAddBreadcrumb = Add external system config miscellaneousGrouperExternalSystemsEditBreadcrumb = Edit external system config miscellaneousGrouperExternalSystemsViewDetailsBreadcrumb = View details grouperConfigDefaultValueHintPrefix = Default value is config.GrouperDaemonReportConfiguration.attribute.daily.report.emailTo.label = Email to config.GrouperDaemonReportConfiguration.attribute.daily.report.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.GrouperDaemonOtherJobEnabledDisabledConfiguration.attribute.queryIntervalInSeconds.label = Query interval in seconds config.GrouperDaemonOtherJobGroupSyncAnotherGrouperConfiguration.attribute.groupConfigName.label = Group config name 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 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.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.GrouperDaemonOtherJobDataProviderFullSyncConfiguration.title = Data provider full sync config.GrouperDaemonOtherJobDataProviderIncrementalSyncConfiguration.title = Data provider incremental sync config.GrouperDaemonOtherJobGroupSyncAnotherGrouperConfiguration.title = Group sync another Grouper full 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 documentation

    Group 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 documentation

    Group 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 documentation

    Grouper 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 =

    Additional settings

    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 documentation

    Group 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 in 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.dataProviderConfigId.label = Data provider config id 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:
    1. Messages are sent to the target without knowing the state of the target
    2. Provisioning userAttributes with no group link
    3. 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:
    1. Provisioning membership objects where the group reference is a target DN or UUID.
    2. 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:
    1. Messages are sent to the target without knowing the state of the target
    2. Provisioning groupAttributes with no entity link
    3. 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:
    1. Provisioning membership objects where the entity reference is a target DN or UUID.
    2. 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 &#x2c; 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.includeActiveOnGroupCreate.label = Include active on group create config.GrouperScim2Configuration.attribute.includeActiveOnGroupCreate.description = Select true if you want to set active json attribute to true when a group 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.GrouperScim2Configuration.attribute.disableGroupsInsteadOfDelete.label = Deactivate groups on delete config.GrouperScim2Configuration.attribute.disableGroupsInsteadOfDelete.description = When a group should be deleted in the target, deactivate the group with scim instead. Furthermore, when creating a group, see if the deactivated group exists and enabled it and update it. Do not map an "active" group 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? # show only errors? daemonJobsFilterShowOnlyErrors = Show only errors? # daemon jobs name placeholder daemonJobsSearchNamePlaceholder = Job name # daemon job names common placeholder daemonJobsCommonSearchNamePlaceholder = Common filters # 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 =
    1. The loader configuration is on a group
    2. For a "simple" loader, navigate to the group that should be loaded
    3. For a "list" loader, navigate to a group which is not in the folder to be loaded
    4. 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 grouperLoaderEditButtonContinue = Continue grouperLoaderEditButtonAnalyze = Analyze # 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 = Scripted group grouperLoaderSourceType__SQL = Pull the members from a SQL database grouperLoaderSourceType__LDAP = Pull the members from an LDAP server grouperLoaderSourceType__JEXL_SCRIPT = Attribute and group-based 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 grouperLoaderConstructScript = Construct script grouperLoaderConstructScriptInputScript = Input script grouperLoaderConstructScriptPattern = Pattern grouperLoaderConstructScriptDescription = Input script: you enter the JEXL script manually. Pattern: you set the values for the inputs for the ABAC template and we generate the JEXL script. grouperLoaderAbacPatterns = Patterns grouperLoaderAbacPatternsDescription = Select a pattern grouperLoaderEntityJexlScript = Entity JEXL script grouperLoaderEntityJexlScriptDescription = Enter a JEXL expression that controls the group membership.
    See if entity is in a group: entity.memberOf('full:group:id:path')
    Example of a three part intersection:
    entity.memberOf('ref:staff') && entity.memberOf('ref:payroll:fullTime') && entity.memberOf('ref:mfaEnrolled')
    Use exclamation point to negate the result. (e.g. entity is not in a group: !entity.memberOf('ref:lockout')
    Check if entity has a numeric attribute value: entity.hasAttribute('jobNumber', 123)
    Check if entity has a null attribute value: entity.hasAttribute('jobNumber', null)
    Check if entity has a string attribute value: entity.hasAttribute('org', '123')
    Check if entity has a non-null numeric attribute value set (any in list): entity.hasAttributeAny('jobNumber', [123, 234])
    Check if entity has a non-null string attribute value set (any in list): entity.hasAttribute('org', ['123', '234'])
    Check if entity has a row string attribute set: entity.hasRow('payroll', "org = 'math' ")
    Check if entity has a row null attribute set: entity.hasRow('payroll', "org = null ")
    ${textContainer.text['miscAttestationDataFieldAndRowDictionaryLink'] } 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 grouperLoaderEditJexlScriptAnalysisUserNotAllowedToViewAttribute = You are not allowed to view the attribute: grouperLoaderEditJexlScriptAnalysisUserNotAllowedToEditPolicy = You are not allowed to edit the policy for attribute: grouperLoaderEditJexlScriptRequireWheel = Currently you have to be an admin to edit JEXL scripts 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. 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. # 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 # 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 miscellaneousRulesConfigurationsBreadcrumb = Rules # 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 miscellaneousRulesConfigurationsMainDescription = Rules 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




    © 2015 - 2024 Weber Informatics LLC | Privacy Policy