# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

# --------------------------------------------------
# Classes Section
#
# General - These are localizations that are used by multiple classes.
#           If you can't find the text under each class, you can find it here.
# --------------------------------------------------
username.required=User Name is required.
username.has.spaces=User Name can not have spaces.
password.confimation.failed=Password confirmation failed.  Passwords do not match.
password.provided.does.not.match.existing=Password provided does not match existing.
old.password.required=Current password is required.
user.admin.password.required=User admin password is required when updating a user account. Please provide your password to validate identification.
user.admin.password.does.not.match.existing=The password you provided does not match your existing password.
user.does.not.exist=User ''{0}'' does not exist.
user.not.found.exception=There was an error looking for the user ''{0}'': {1}
save.role.success=Successfully Saved Role ''{0}''
cannot.get.role=Unable to get Role ''{0}'': {1}
invalid.user.credentials=Invalid user credentials.
user.already.exists=User ''{0}'' already exists.
cannot.edit.user.null.username=Unable to edit user with null username.
cannot.edit.user.empty.username=Unable to edit user with empty username.
cannot.get.user=Unable to get User ''{0}'': {1}
cannot.edit.user.null.credentials=Unable to edit user with null user credentials.
cannot.operate.on.null.user=Unable to operate on null user.
user.not.found=User not found.

# --------------------------------------------------
# AbstractUserCredentialsAction
# --------------------------------------------------
fullName.required=Full Name is required.
email.required=Email Address is required.
email.invalid=Email Address is invalid.
password.required=Password is required.
passwords.does.not.match=Passwords do not match.
username.invalid.characters=Invalid characters found in Username.
fullName.invalid.characters=Invalid characters found in Full Name.

# --------------------------------------------------
# AccountAction
# --------------------------------------------------
cannot.show.account.login.required=Unable to show your account. Not logged in.

# --------------------------------------------------
# LoginAction
# --------------------------------------------------
reset.password.missing=Reset Password key missing.
cannot.find.key=Unable to find the key.
cannot.find.key.at.the.moment=Unable to process key at this time.  Please try again later.
cannot.find.user=Unable to find user.
validation.failure.key.missing=Validation failure key missing.
incorrect.username.password=You have entered an incorrect username and/or password.
account.validation.required=You have entered an incorrect username and/or password.
authentication.failed=Authentication failed.
authentication.exception=There was an error in the authentication process: {0}
account.locked=Your Account is Locked.
login.already.logged.in=You are already logged in.

# --------------------------------------------------
# PasswordAction
# --------------------------------------------------
newPassword.cannot.be.empty=New Password cannot be empty.
cannot.update.user.not.found=Unable to update user ''{0}'' not found.
admin.deleted.account=Likely occurs because an Administrator deleted your account.

# --------------------------------------------------
# PasswordResetAction
# --------------------------------------------------
username.cannot.be.empty=Username cannot be empty.
password.reset.success=If the user was found, a message has been sent.
password.reset.failure=If the user was found, a message has been sent.
password.reset.email.generation.failure=Internal system error prevented generation of Password reset email.
password.previous.empty=Previous password cannot be empty.
password.empty=Password cannot be empty.
password.confirmation.empty=Password confirmation cannot be empty.
password.confirmation.same="password and password confirmation must be the same.

# --------------------------------------------------
# RegisterAction
# --------------------------------------------------
assign.role.failure=Unable to assign core register user role to new user.
cannot.register.user=Unable to process new user registration request.

# --------------------------------------------------
# AddAdminUserAction
# --------------------------------------------------
invalid.admin.credentials=Invalid admin credentials, try again.
admin.user.already.exists=Admin User exists in database (someone else probably created the user before you).
cannot.assign.admin.role=Unable to assign system administrator role.
admin.wrongUsername=The username for the primary administrator must be 'admin'.

# --------------------------------------------------
# AssignmentsAction
# --------------------------------------------------
rbac.edit.user.empty.principal=Cannot use AssignmentsAction for RBAC Edit User with an empty principal.
error.adding.selected.roles=Error adding the selected roles: {0}
error.removing.selected.roles=Error removing the selected roles: {0}

# --------------------------------------------------
# EditRoleAction
# --------------------------------------------------
cannot.edit.null.role=Unable to edit null role name.
cannot.edit.empty.role=Unable to edit empty role name.
cannot.operate.null.role=Unable to operate on null role.

# --------------------------------------------------
# OperationsAction
# --------------------------------------------------
cannot.list.all.operations=Unable to list all operations: {0}
cannot.save.operation=Unable to save operation: {0}.
cannot.remove.operation=Unable to remove operation ''{0}''.

# --------------------------------------------------
# PermissionsAction
# --------------------------------------------------
cannot.list.all.permissions=Unable to list all permissions: {0}
cannot.edit.null.permission=Unable to edit null permission name.
cannot.edit.empty.permission=Unable to edit empty permission name.
cannot.operate.null.permission=Unable to operate on null permission.
cannot.get.permission=Unable to get Permission ''{0}'': {1}
save.permission.success=Successfully Saved Permission ''{0}''

# --------------------------------------------------
# ReportAction
# --------------------------------------------------
cannot.get.report=Unable to find report: {0}
cannot.generate.report=Unable to generate report.

# --------------------------------------------------
# ResourcesAction
# --------------------------------------------------
cannot.list.all.resources=Unable to list all resources: {0}
cannot.save.resource=Unable to save resource: {0}
cannot.remove.resource=Unable to locate resource to remove ''{0}''

# --------------------------------------------------
# RoleCreateAction
# --------------------------------------------------
cannot.add.null.permission=Unable to add null permission.
cannot.add.empty.role=Unable to create role with empty name.
roleName.invalid.characters=Invalid characters found in role name.

# --------------------------------------------------
# RolesAction
# --------------------------------------------------
cannot.list.all.roles=Unable to list all roles: {0}

# --------------------------------------------------
# UserDeleteAction
# --------------------------------------------------
cannot.remove.user.null.username=Unable to delete user based on null username.
cannot.remove.user.empty.username=Unable to delete user based on empty username.
cannot.remove.user.not.found=Unable to locate user {0} to delete.
cannot.remove.user.role=Unable to remove user role assignments for ''{0}'' because {1}
cannot.remove.user.non.existent=Unable to delete non-existent user ''{0}''

# --------------------------------------------------
# JSP Section
#
# General - These are localizations that are used by multiple JSPs.
#           If you can't find the text under each JSP, you can find it here.
# --------------------------------------------------
username=Username
full.name=Full Name
email=Email
email.address=Email Address
password=Password
current.password=Current Password
new.password=New Password
confirm.password=Confirm Password
user.admin.password=Password
register=Register
login=Login
logout=Logout
submit=Submit
remove=Remove
delete=Delete
update=Update
search=Search
cancel=Cancel
goback=Go Back
edit=Edit
save=Save
name=Name
description=Description
role.name=Role Name
role.description=Role Description
remove.selected.roles=Remove Selected Roles
role=Role
roles=Roles
effective.roles=Effective Roles
permissions=Permissions
operations=Operations
resources=Resources

# --------------------------------------------------
# accessDenied
# --------------------------------------------------
access.denied.page.title=Security Alert - Access Denied
access.denied.section.title=Security Alert - Access Denied
access.denied.message=The action you attempted requires permissions that you do not have.<br>Please contact your administrator to be granted the appropriate permissions.

# --------------------------------------------------
# invalid token (for CSRF)
# --------------------------------------------------
invalid.token.page.title=Security Alert - Invalid Token Found
invalid.token.section.title=Security Alert - Invalid Token Found
invalid.token.message=Possible CSRF attack detected! Invalid token found in the request.    

# --------------------------------------------------
# account
# --------------------------------------------------
account.details.page.title=Account Details
account.details.section.title=Account Details

# --------------------------------------------------
# alert
# --------------------------------------------------
alert.page.title=Security Alert Page
alert.message=You are not authorized for this activity.

# --------------------------------------------------
# generalError
# --------------------------------------------------
general.error.page.title=Error Occurred
general.error.section.title=Error Occurred

# --------------------------------------------------
# login
# --------------------------------------------------
login.page.title=Login Page
login.section.title=Login
login.remember.me=Remember Me
login.need.an.account=Need an Account?
login.register=Register!
login.forgot.your.password=Forgot your Password?
login.request.password.reset=Request a password reset.

# --------------------------------------------------
# password
# --------------------------------------------------
password.page.title=Change Password
password.section.title=Change Password
password.existing=Existing Password
password.new=New Password
password.new.confirm=Confirm New Password
password.change=Change Password

# --------------------------------------------------
# passwordResetNotification
# --------------------------------------------------
password.reset.page.title=Password Reset
password.reset.message=Password Reset Successful.
password.reset.go.to=Go to 

# --------------------------------------------------
# register
# --------------------------------------------------
register.page.title=Registration Page
register.section.title=Register for an Account

# --------------------------------------------------
# requestPasswordReset
# --------------------------------------------------
request.password.reset.page.title=Request Password Reset
request.password.reset.section.title=Request Password Reset
request.password.reset=Request Reset

# --------------------------------------------------
# requiresAuthentication
# --------------------------------------------------
requires.authentication.page.title=Security Alert - Action Requires Authentication
requires.authentication.section.title=Security Alert - Action Requires Authentication
requires.authentication.message=The action you attempted requires that you authenticate yourself.
requires.authentication.go.ahead=Go Ahead  

# --------------------------------------------------
# validationNotification
# --------------------------------------------------
validation.notification.page.title=Validation Notification Page
validation.notification.section.title=Validation Reminder
validation.notification.message.1=A validation email has been sent to the email address you provided ({0}). Please check for the email validation link sent to you.
validation.notification.message.2=This account ({0}) will remain locked until it is validated.

# --------------------------------------------------
# grantRoles
# --------------------------------------------------
grant=Grant

# --------------------------------------------------
# securityLinks
# --------------------------------------------------
current.user=Current User: 
unknown.user=Unknown User 
edit.details=Edit Details
notify.password.expiration=Password will expire on

# --------------------------------------------------
# userCredentials
# --------------------------------------------------
account.creation=Account Creation
last.login=Last Login
last.password.change=Last Password Change

# --------------------------------------------------
# assignments
# --------------------------------------------------
assignments.page.title=[Admin] User Edit
assignments.section.title=[Admin] User Roles
assignments.no.roles=No Roles Assigned (yet)
assignments.available.roles=Available Roles:
assignments.assigned.roles=Assigned Roles:
assignments.resource.roles=Resource Roles:
assignments.submit=Submit
assignments.reset=Reset
assignments.add.roles=Add Selected Roles
assignments.remove.roles=Remove Selected Roles
assignments.no.roles.to.grant=No Roles Available to Grant

# --------------------------------------------------
# createAdmin
# --------------------------------------------------
create.admin.page.title=Create Admin User
create.admin.page.link=Create Admin User
create.admin.section.title=Create Admin User
create.admin=Create Admin

# --------------------------------------------------
# operationList
# --------------------------------------------------
operation.list.page.title=[Admin] Operation List
operation.list.section.title=[Admin] Operation List
operation.list.no.operations.available=No Operations Available

# --------------------------------------------------
# permissionList
# --------------------------------------------------
permission.list.page.title=[Admin] Permission List
permission.list.section.title=[Admin] Permission List
permission.list.no.permissions.available=No Permissions Available

# --------------------------------------------------
# resourceList
# --------------------------------------------------
resource.list.page.title=[Admin] Resource List
resource.list.section.title=[Admin] Resource List
resource.list.no.resources.available=No Resources Available

# --------------------------------------------------
# role
# --------------------------------------------------
role.page.title=[Admin] Role Viewer
role.section.title=Role Modification Page
role.assignable=Assignable?
role.currently.assigned.permissions=Currently Assigned Permissions:
role.add.new.permission=Add New Permission
role.currently.assigned.roles=Currently Assigned Roles:
role.add.sub.role=Add Sub Role
role.operation=Operation
role.resource=Resource

# --------------------------------------------------
# roleEdit
# --------------------------------------------------
role.edit.no.parent.defined=No Parent Roles Defined for this Role
role.edit.no.childrole.defined=No Child Roles Defined for this Role
role.edit.users.defined.in.current.role=Users defined with the current role
role.edit.users.defined.in.parent.roles=Users defined with parent roles
role.edit.section.users=List of Users
role.edit.no.user.defined=No Users Defined for this Role
cannot.assign.role=Unable to update user ''{0}'' : {1}

# --------------------------------------------------
# roleCreate
# --------------------------------------------------
role.create.page.title=[Admin] Create Role
role.create.section.title=[Admin] Create Role
role.create.operation=Operation
role.create.resource=Resource
role.create.no.permissions.defined=No Permissions Defined for this Role
role.create.add.permission=Add Permission

# --------------------------------------------------
# roleList
# --------------------------------------------------
role.list.page.title=[Admin] Role List
role.list.section.title=[Admin] Role List
role.list.no.roles.available=No Roles Available

# --------------------------------------------------
# roleModel
# --------------------------------------------------
role.model.page.title=[Admin] Role Model
role.model.section.title=[Admin] Role Model
role.model.message=These are the resources, operations, roles and role templates that are known by the role manager. They are not the current content of the RBAC store as those contain the resource, operations, and roles declared below _and_ any dynamic data created from creating new roles from the templates below.
role.model.id=Id
role.model.name=Name
role.model.name.prefix=Name Prefix
role.model.permanent=Permanent
role.model.assignable=Assignable
role.model.delimeter=Delimeter
role.model.operation.id=Operation Id
role.model.resource.id=Resource Id
role.model.role.id=Role Id
role.model.parent.roles=Parent Roles
role.model.child.roles=Child Roles
role.model.templates=Templates
role.model.template.id=Template Id
role.model.parent.templates=Parent Templates
role.model.child.templates=Child Templates

# --------------------------------------------------
# roleSummary
# --------------------------------------------------
role.summary.page.title=[Admin] Role Summary
role.summary.section.title=[Admin] Role Summary

# --------------------------------------------------
# systemInformation
# --------------------------------------------------
system.info.page.title=[Admin] System Information
system.info.section.title=Security System Information

# --------------------------------------------------
# userCreate
# --------------------------------------------------
user.create.page.title=[Admin] User Create
user.create.section.title=[Admin] User Create
user.create=Create User

# --------------------------------------------------
# userDelete
# --------------------------------------------------
user.delete.page.title=[Admin] User Delete
user.delete.section.title=[Admin] User Delete
user.delete.message=The following user will be deleted
user.delete=Delete User

# --------------------------------------------------
# userEdit
# --------------------------------------------------
user.edit.page.title=[Admin] User Edit
user.edit.confirm.page.title=[Admin] User Edit - Confirm Administrator Password
user.edit.section.title=[Admin] User Edit
user.edit.confirm.section.title=[Admin] User Edit - Confirm Administrator Password
user.edit.locked.user=Locked User
user.edit.force.user.change.password=Force User to Change Password
user.edit.roles=Edit Roles
has.hidden.roles=Some roles above your permission level have been omitted

# --------------------------------------------------
# userFind
# --------------------------------------------------
user.find=Find a user

# --------------------------------------------------
# userList
# --------------------------------------------------
user.list.page.title=[Admin] User List
user.list.section.title=[Admin] List of Users in Role: {0}
user.list.permanent=Permanent
user.list.validated=Validated
user.list.locked=Locked
user.list.tasks=Tasks
user.list.tools=Tools
user.list.reports=Reports
user.list.message=The following tools are available for administrators to manipulate the user list.
user.list.create.new.user=Create New User
user.list.show.users.in.role=Show Users In Role
user.list.types=Types

# --------------------------------------------------
# backupRestore
# --------------------------------------------------
backupRestore.page.title=Backup and Restore
backupRestore.section.backup.title=Backup
backupRestore.section.restore.title=Restore
backupRestore.section.recent.backup=Recent Backups
backupRestore.backup.error = Backup File Not Found
backupRestore.backup.empty.error = Backup directory is required 

# --------------------------------------------------
# Logging Section
#
# General - These are localizations that are used by multiple classes.
#           If you can't find the text under each class, you can find it here.
# --------------------------------------------------
log.password.reset.request=Password Reset Request for user '{}'
log.password.change=Password Changed for user '{}'
log.account.validation=Account Validated for user '{}'
log.account.create=User Created: '{}'
log.account.edit=User Modified: '{}'
log.account.delete=User Deleted: '{}'
log.login.success=Successful Login for user '{}'
log.logout.success=Logged Out user '{}'
log.login.fail=Login Failure for user '{}'
log.login.fail.locked=Login Failure for user '{}' (account locked)
log.assign.role=Role Assigned to user '{}': '{}'
log.revoke.role=Role Revoked from user '{}': '{}'
log.role.create=Role Created: '{}'
log.role.edit=Role Modified: '{}'

# --------------------------------------------------
# changePasswordSuccess
# --------------------------------------------------
change.password.page.title=Change Password
change.password.success.section.title=Password successfully changed