REPO-2520: Community: SiteMembership Java API calls should tell which site resulted in errors

Changed tests asserts from (actual value, expected value) to (expected value, actual value) as recommended in the Junit Assert Javadoc.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@137771 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Alexandru Epure
2017-06-22 12:57:06 +00:00
parent 4191e3beed
commit df009a5e27
51 changed files with 962 additions and 234 deletions

View File

@@ -86,6 +86,6 @@ listconstraint.bpm_allowedPriority.2=Moyenne
listconstraint.bpm_allowedPriority.3=Basse
listconstraint.bpm_allowedStatus.Not\ Yet\ Started=Pas encore d\u00e9marr\u00e9
listconstraint.bpm_allowedStatus.In\ Progress=En cours
listconstraint.bpm_allowedStatus.On\ Hold= Suspendu
listconstraint.bpm_allowedStatus.On\ Hold=Suspendu
listconstraint.bpm_allowedStatus.Cancelled=Annul\u00e9
listconstraint.bpm_allowedStatus.Completed=Termin\u00e9

View File

@@ -86,6 +86,6 @@ listconstraint.bpm_allowedPriority.2=Media
listconstraint.bpm_allowedPriority.3=Bassa
listconstraint.bpm_allowedStatus.Not\ Yet\ Started=Non ancora avviato
listconstraint.bpm_allowedStatus.In\ Progress=In corso
listconstraint.bpm_allowedStatus.On\ Hold= In attesa
listconstraint.bpm_allowedStatus.On\ Hold=In attesa
listconstraint.bpm_allowedStatus.Cancelled=Annullato
listconstraint.bpm_allowedStatus.Completed=Completato

View File

@@ -86,6 +86,6 @@ listconstraint.bpm_allowedPriority.2=\u4e2d
listconstraint.bpm_allowedPriority.3=\u4f4e
listconstraint.bpm_allowedStatus.Not\ Yet\ Started=\u958b\u59cb\u524d
listconstraint.bpm_allowedStatus.In\ Progress=\u9032\u884c\u4e2d
listconstraint.bpm_allowedStatus.On\ Hold= \u4fdd\u7559\u4e2d
listconstraint.bpm_allowedStatus.On\ Hold=\u4fdd\u7559\u4e2d
listconstraint.bpm_allowedStatus.Cancelled=\u30ad\u30e3\u30f3\u30bb\u30eb\u6e08\u307f
listconstraint.bpm_allowedStatus.Completed=\u5b8c\u4e86\u6e08\u307f

View File

@@ -86,6 +86,6 @@ listconstraint.bpm_allowedPriority.2=Middels
listconstraint.bpm_allowedPriority.3=Lav
listconstraint.bpm_allowedStatus.Not\ Yet\ Started=Enn\u00e5 ikke startet
listconstraint.bpm_allowedStatus.In\ Progress=P\u00e5g\u00e5r
listconstraint.bpm_allowedStatus.On\ Hold= P\u00e5 vent
listconstraint.bpm_allowedStatus.On\ Hold=P\u00e5 vent
listconstraint.bpm_allowedStatus.Cancelled=Avbrutt
listconstraint.bpm_allowedStatus.Completed=Fullf\u00f8rt

View File

@@ -86,6 +86,6 @@ listconstraint.bpm_allowedPriority.2=M\u00e9dio
listconstraint.bpm_allowedPriority.3=Baixo
listconstraint.bpm_allowedStatus.Not\ Yet\ Started=Ainda n\u00e3o come\u00e7ou
listconstraint.bpm_allowedStatus.In\ Progress=Em andamento
listconstraint.bpm_allowedStatus.On\ Hold= Em espera
listconstraint.bpm_allowedStatus.On\ Hold=Em espera
listconstraint.bpm_allowedStatus.Cancelled=Cancelado
listconstraint.bpm_allowedStatus.Completed=Conclu\u00eddo

View File

@@ -86,6 +86,6 @@ listconstraint.bpm_allowedPriority.2=\u0421\u0440\u0435\u0434\u043d\u0438\u0439
listconstraint.bpm_allowedPriority.3=\u041d\u0438\u0437\u043a\u0438\u0439
listconstraint.bpm_allowedStatus.Not\ Yet\ Started=\u0415\u0449\u0435 \u043d\u0435 \u043d\u0430\u0447\u0430\u0442\u043e
listconstraint.bpm_allowedStatus.In\ Progress=\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435
listconstraint.bpm_allowedStatus.On\ Hold= \u041f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e
listconstraint.bpm_allowedStatus.On\ Hold=\u041f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e
listconstraint.bpm_allowedStatus.Cancelled=\u041e\u0442\u043c\u0435\u043d\u0435\u043d\u043e
listconstraint.bpm_allowedStatus.Completed=\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043e

View File

@@ -86,6 +86,6 @@ listconstraint.bpm_allowedPriority.2=\u4e2d
listconstraint.bpm_allowedPriority.3=\u4f4e
listconstraint.bpm_allowedStatus.Not\ Yet\ Started=\u5c1a\u672a\u5f00\u59cb
listconstraint.bpm_allowedStatus.In\ Progress=\u6b63\u5728\u8fdb\u884c
listconstraint.bpm_allowedStatus.On\ Hold= \u5df2\u6682\u505c
listconstraint.bpm_allowedStatus.On\ Hold=\u5df2\u6682\u505c
listconstraint.bpm_allowedStatus.Cancelled=\u5df2\u53d6\u6d88
listconstraint.bpm_allowedStatus.Completed=\u5df2\u5b8c\u6210

View File

@@ -1,2 +1,6 @@
# QuickShare Service
quickshare.notifier.email.subject={0} {1} hat {2} f\u00fcr Sie freigegeben
# email template
template.quickshare-email.ftl.title={0} f\u00fcr Sie freigegeben
template.quickshare-email.ftl.detail={0} {1} hat <a href="{2}">{3}</a> f\u00fcr Sie freigegeben.

View File

@@ -1,2 +1,6 @@
# QuickShare Service
quickshare.notifier.email.subject={0} {1} ha compartido {2} con usted
# email template
template.quickshare-email.ftl.title={0} compartido con usted
template.quickshare-email.ftl.detail={0} {1} ha compartido <a href="{2}">{3}</a> con usted.

View File

@@ -1,2 +1,6 @@
# QuickShare Service
quickshare.notifier.email.subject={0} {1} a partag\u00e9 {2} avec vous
# email template
template.quickshare-email.ftl.title={0} partag\u00e9 avec vous
template.quickshare-email.ftl.detail={0} {1} a partag\u00e9 <a href="{2}">{3}</a> avec vous.

View File

@@ -1,2 +1,6 @@
# QuickShare Service
quickshare.notifier.email.subject={0} {1} ha condiviso {2} con te
# email template
template.quickshare-email.ftl.title={0} condiviso con te
template.quickshare-email.ftl.detail={0} {1} ha condiviso <a href="{2}">{3}</a> con te.

View File

@@ -1,2 +1,6 @@
# QuickShare Service
quickshare.notifier.email.subject={0} {1} \u304c\u3042\u306a\u305f\u3068 {2} \u3092\u5171\u6709\u3057\u307e\u3057\u305f
# email template
template.quickshare-email.ftl.title={0} \u304c\u3042\u306a\u305f\u3068\u5171\u6709\u3055\u308c\u307e\u3057\u305f
template.quickshare-email.ftl.detail={1} {0} \u304c <a href="{2}">{3}</a> \u3092\u3042\u306a\u305f\u3068\u5171\u6709\u3057\u307e\u3057\u305f\u3002

View File

@@ -1,2 +1,6 @@
# QuickShare Service
quickshare.notifier.email.subject={0} {1} delte {2} med deg
# email template
template.quickshare-email.ftl.title={0} delt med deg
template.quickshare-email.ftl.detail={0} {1} har delt <a href="{2}">{3}</a> med deg.

View File

@@ -1,2 +1,6 @@
# QuickShare Service
quickshare.notifier.email.subject={0} {1} heeft {2} met u gedeeld
# email template
template.quickshare-email.ftl.title={0} is met u gedeeld
template.quickshare-email.ftl.detail={0} {1} heeft <a href="{2}">{3}</a> met u gedeeld.

View File

@@ -1,2 +1,6 @@
# QuickShare Service
quickshare.notifier.email.subject={0} {1} compartilhou {2} com voc\u00ea
# email template
template.quickshare-email.ftl.title={0} compartilhado com voc\u00ea
template.quickshare-email.ftl.detail={0} {1} compartilhou <a href="{2}">{3}</a> com voc\u00ea.

View File

@@ -1,2 +1,6 @@
# QuickShare Service
quickshare.notifier.email.subject={0} {1} \u043f\u043e\u0434\u0435\u043b\u0438\u043b\u0441\u044f {2} \u0441 \u0432\u0430\u043c\u0438
# email template
template.quickshare-email.ftl.title={0} \u043f\u043e\u0434\u0435\u043b\u0438\u043b\u0441\u044f \u0441 \u0432\u0430\u043c\u0438
template.quickshare-email.ftl.detail={0} {1} \u043f\u043e\u0434\u0435\u043b\u0438\u043b\u0441\u044f <a href="{2}">{3}</a> \u0441 \u0432\u0430\u043c\u0438.

View File

@@ -1,2 +1,6 @@
# QuickShare Service
quickshare.notifier.email.subject={0} {1} \u4e0e\u60a8\u5171\u4eab {2}
# email template
template.quickshare-email.ftl.title=\u4e0e\u60a8\u5171\u4eab\u7684 {0}
template.quickshare-email.ftl.detail={0} {1} \u5df2\u4e0e\u60a8\u5171\u4eab <a href="{2}">{3}</a>\u3002

View File

@@ -0,0 +1,15 @@
# Email subjects.
reset-password-request.email.subject=Passwort zur\u00fccksetzen
reset-password-confirmation.email.subject=Passwort erfolgreich zur\u00fcckgesetzt
# Request reset password email
templates.reset-password-email.ftl.title=Passwort zur\u00fccksetzen
templates.reset-password-email.ftl.detail=Sie haben k\u00fcrzlich eine \u00c4nderung des Passworts f\u00fcr Ihr Benutzerkonto angefordert.
templates.reset-password-email.ftl.ignore_message=Wenn Sie ein Zur\u00fccksetzen Ihres Passworts nicht angefordert haben oder es nicht \u00e4ndern m\u00f6chten, dann k\u00f6nnen Sie diese Nachricht ignorieren und l\u00f6schen. Ihr Benutzerkonto bleibt dabei sicher.
templates.reset-password-email.ftl.having_trouble_clicking_button=Klicken Sie entweder auf 'Passwort zur\u00fccksetzen' oder kopieren Sie die folgende Adresse in Ihren Webbrowser:
templates.reset-password-email.ftl.reset_password_button=Passwort zur\u00fccksetzen
# Reset password confirmation email
templates.reset-password-confirm-email.ftl.title=Passwort erfolgreich zur\u00fcckgesetzt
templates.reset-password-confirm-email.ftl.detail=Das Passwort f\u00fcr Ihr Alfresco-Konto wurde k\u00fcrzlich ge\u00e4ndert.
templates.reset-password-confirm-email.ftl.note=Wenn Sie ein Zur\u00fccksetzen Ihres Passworts nicht angefordert haben, wenden Sie sich bitte unverz\u00fcglich an Ihr IT-Team.

View File

@@ -0,0 +1,15 @@
# Email subjects.
reset-password-request.email.subject=Restablezca su contrase\u00f1a
reset-password-confirmation.email.subject=Restablecimiento de contrase\u00f1a correcto
# Request reset password email
templates.reset-password-email.ftl.title=Restablezca su contrase\u00f1a
templates.reset-password-email.ftl.detail=Recientemente solicit\u00f3 cambiar la contrase\u00f1a de su cuenta.
templates.reset-password-email.ftl.ignore_message=Si no solicit\u00f3 un restablecimiento de contrase\u00f1a o no desea cambiarla, puede ignorar y eliminar este mensaje. Su cuenta continuar\u00e1 siendo segura.
templates.reset-password-email.ftl.having_trouble_clicking_button=Haga clic en el bot\u00f3n Restablecer contrase\u00f1a o copie y pegue la direcci\u00f3n siguiente en su navegador web:
templates.reset-password-email.ftl.reset_password_button=Restablecer contrase\u00f1a
# Reset password confirmation email
templates.reset-password-confirm-email.ftl.title=Restablecimiento de contrase\u00f1a correcto
templates.reset-password-confirm-email.ftl.detail=La contrase\u00f1a de su cuenta Alfresco se cambi\u00f3 recientemente.
templates.reset-password-confirm-email.ftl.note=Si no solicit\u00f3 un restablecimiento de contrase\u00f1a, p\u00f3ngase en contacto con el equipo de TI inmediatamente.

View File

@@ -0,0 +1,15 @@
# Email subjects.
reset-password-request.email.subject=R\u00e9initialiser votre mot de passe
reset-password-confirmation.email.subject=R\u00e9initialisation du mot de passe r\u00e9ussie
# Request reset password email
templates.reset-password-email.ftl.title=R\u00e9initialiser votre mot de passe
templates.reset-password-email.ftl.detail=Nous avons re\u00e7u une demande de modification du mot de passe de votre compte.
templates.reset-password-email.ftl.ignore_message=Si vous n'avez pas fait de demande de r\u00e9initialisation du mot de passe ou si vous ne souhaitez pas le modifier, ignorez et supprimez ce message. Votre compte restera prot\u00e9g\u00e9.
templates.reset-password-email.ftl.having_trouble_clicking_button=Cliquez sur le bouton R\u00e9initialiser le mot de passe ou copiez-collez l'adresse suivante dans votre navigateur Web\u00a0:
templates.reset-password-email.ftl.reset_password_button=R\u00e9initialiser le mot de passe
# Reset password confirmation email
templates.reset-password-confirm-email.ftl.title=R\u00e9initialisation du mot de passe r\u00e9ussie
templates.reset-password-confirm-email.ftl.detail=Le mot de passe de votre compte Alfresco a \u00e9t\u00e9 modifi\u00e9.
templates.reset-password-confirm-email.ftl.note=Si vous n'avez pas demand\u00e9 la r\u00e9initialisation de votre mot de passe, contactez au plus vite votre service informatique.

View File

@@ -0,0 +1,15 @@
# Email subjects.
reset-password-request.email.subject=Ripristina password
reset-password-confirmation.email.subject=Ripristino password eseguito correttamente
# Request reset password email
templates.reset-password-email.ftl.title=Ripristina password
templates.reset-password-email.ftl.detail=Hai recentemente richiesto di modificare la password del tuo account.
templates.reset-password-email.ftl.ignore_message=Se non ha richiesto un ripristino della password o non desideri modificarla, puoi ignorare ed eliminare questo messaggio e il tuo account rimarr\u00e0 protetto.
templates.reset-password-email.ftl.having_trouble_clicking_button=Fai clic sul pulsante Ripristina password oppure copia e incolla l'indirizzo seguente nel tuo browser Web:
templates.reset-password-email.ftl.reset_password_button=Ripristina password
# Reset password confirmation email
templates.reset-password-confirm-email.ftl.title=Ripristino password eseguito correttamente
templates.reset-password-confirm-email.ftl.detail=La password del tuo account Alfresco \u00e8 stata recentemente modificata.
templates.reset-password-confirm-email.ftl.note=Se non ha richiesto un ripristino della password, contatta immediatamente il team IT.

View File

@@ -0,0 +1,15 @@
# Email subjects.
reset-password-request.email.subject=\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u30ea\u30bb\u30c3\u30c8
reset-password-confirmation.email.subject=\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u30ea\u30bb\u30c3\u30c8\u3055\u308c\u307e\u3057\u305f
# Request reset password email
templates.reset-password-email.ftl.title=\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u30ea\u30bb\u30c3\u30c8
templates.reset-password-email.ftl.detail=\u304a\u4f7f\u3044\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u5909\u66f4\u7533\u8acb\u3092\u53d7\u3051\u4ed8\u3051\u307e\u3057\u305f\u3002
templates.reset-password-email.ftl.ignore_message=\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u5909\u66f4\u3092\u7533\u8acb\u3057\u305f\u899a\u3048\u304c\u306a\u3044\u3001\u307e\u305f\u306f\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5909\u66f4\u3057\u305f\u304f\u306a\u3044\u5834\u5408\u306f\u3001\u3053\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u7121\u8996\u3057\u3001\u524a\u9664\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u30a2\u30ab\u30a6\u30f3\u30c8\u306f\u5909\u66f4\u3055\u308c\u307e\u305b\u3093\u3002
templates.reset-password-email.ftl.having_trouble_clicking_button=[\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u30ea\u30bb\u30c3\u30c8] \u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u304b\u3001\u6b21\u306e\u30a2\u30c9\u30ec\u30b9\u3092\u30b3\u30d4\u30fc\u3057\u3066\u304a\u4f7f\u3044\u306eWeb\u30d6\u30e9\u30a6\u30b6\u306b\u8cbc\u308a\u4ed8\u3051\u3066\u304f\u3060\u3055\u3044\u3002
templates.reset-password-email.ftl.reset_password_button=\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u30ea\u30bb\u30c3\u30c8
# Reset password confirmation email
templates.reset-password-confirm-email.ftl.title=\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u30ea\u30bb\u30c3\u30c8\u3055\u308c\u307e\u3057\u305f
templates.reset-password-confirm-email.ftl.detail=\u304a\u4f7f\u3044\u306e Alfresco \u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u6700\u8fd1\u5909\u66f4\u3055\u308c\u307e\u3057\u305f\u3002
templates.reset-password-confirm-email.ftl.note=\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u30ea\u30bb\u30c3\u30c8\u3092\u7533\u8acb\u3057\u305f\u899a\u3048\u304c\u306a\u3044\u5834\u5408\u306f\u3001\u81f3\u6025 IT \u62c5\u5f53\u8005\u306b\u9023\u7d61\u3057\u3066\u304f\u3060\u3055\u3044\u3002

View File

@@ -0,0 +1,15 @@
# Email subjects.
reset-password-request.email.subject=Tilbakestill ditt passord
reset-password-confirmation.email.subject=Passordet er n\u00e5 tilbakestilt
# Request reset password email
templates.reset-password-email.ftl.title=Tilbakestill ditt passord
templates.reset-password-email.ftl.detail=Du har nylig bedt om \u00e5 f\u00e5 passordet til din konto endret.
templates.reset-password-email.ftl.ignore_message=Hvis du ikke ba om \u00e5 f\u00e5 passordet endret og du ikke vil endre det, kan du se bort fra denne meldingen, og din konto vil fortsatt v\u00e6re trygg.
templates.reset-password-email.ftl.having_trouble_clicking_button=Enten klikk p\u00e5 knappen Tilbakestill passord, eller kopier og lim inn f\u00f8lgende adresse i nettleseren din:
templates.reset-password-email.ftl.reset_password_button=Tilbakestill passord
# Reset password confirmation email
templates.reset-password-confirm-email.ftl.title=Passordet er n\u00e5 tilbakestilt
templates.reset-password-confirm-email.ftl.detail=Passordet til din Alfresco-konto ble nylig endret.
templates.reset-password-confirm-email.ftl.note=Hvis du ikke ba om \u00e5 f\u00e5r et passord tilbakestilt. skal du kontakte ditt IT-team omg\u00e5ende.

View File

@@ -0,0 +1,15 @@
# Email subjects.
reset-password-request.email.subject=Uw wachtwoord opnieuw instellen
reset-password-confirmation.email.subject=Wachtwoord is opnieuw ingesteld
# Request reset password email
templates.reset-password-email.ftl.title=Uw wachtwoord opnieuw instellen
templates.reset-password-email.ftl.detail=U hebt onlangs een aanvraag ingediend voor het wijzigen van het wachtwoord voor uw account.
templates.reset-password-email.ftl.ignore_message=Als u geen aanvraag voor het opnieuw instellen van uw wachtwoord hebt ingediend of u wilt uw wachtwoord niet wijzigen, kunt u dit bericht negeren en verwijderen. Uw account blijft veilig.
templates.reset-password-email.ftl.having_trouble_clicking_button=Klik op de knop Wachtwoord opnieuw instellen of kopieer het volgende adres en plak het in uw webbrowser:
templates.reset-password-email.ftl.reset_password_button=Wachtwoord opnieuw instellen
# Reset password confirmation email
templates.reset-password-confirm-email.ftl.title=Wachtwoord is opnieuw ingesteld
templates.reset-password-confirm-email.ftl.detail=Het wachtwoord voor uw Alfresco-account is onlangs gewijzigd.
templates.reset-password-confirm-email.ftl.note=Neem direct contact op met uw IT-team als u geen wijziging van uw wachtwoord hebt aangevraagd.

View File

@@ -0,0 +1,15 @@
# Email subjects.
reset-password-request.email.subject=Redefinir senha
reset-password-confirmation.email.subject=Senha redefinida com sucesso
# Request reset password email
templates.reset-password-email.ftl.title=Redefinir senha
templates.reset-password-email.ftl.detail=Recentemente voc\u00ea solicitou a altera\u00e7\u00e3o da senha da sua conta.
templates.reset-password-email.ftl.ignore_message=Se voc\u00ea n\u00e3o solicitou a redefini\u00e7\u00e3o da senha ou se n\u00e3o deseja alter\u00e1-la, ignore e exclua esta mensagem. Sua conta continuar\u00e1 segura.
templates.reset-password-email.ftl.having_trouble_clicking_button=Clique no bot\u00e3o Redefinir senha ou copie e cole o endere\u00e7o a seguir no navegador da web:
templates.reset-password-email.ftl.reset_password_button=Redefinir senha
# Reset password confirmation email
templates.reset-password-confirm-email.ftl.title=Senha redefinida com sucesso
templates.reset-password-confirm-email.ftl.detail=A senha da sua conta Alfresco foi alterada recentemente.
templates.reset-password-confirm-email.ftl.note=Se voc\u00ea n\u00e3o solicitou a redefini\u00e7\u00e3o da senha, entre em contato com a Equipe de TI imediatamente.

View File

@@ -0,0 +1,15 @@
# Email subjects.
reset-password-request.email.subject=\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c
reset-password-confirmation.email.subject=\u041f\u0430\u0440\u043e\u043b\u044c \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u0431\u0440\u043e\u0448\u0435\u043d
# Request reset password email
templates.reset-password-email.ftl.title=\u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c
templates.reset-password-email.ftl.detail=\u0412\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u043e\u043b\u044f \u0441\u0432\u043e\u0435\u0439 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438.
templates.reset-password-email.ftl.ignore_message=\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u043b\u0438 \u0441\u0431\u0440\u043e\u0441 \u043f\u0430\u0440\u043e\u043b\u044f \u0438\u043b\u0438 \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u0435\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432\u0430\u0448\u0430 \u0443\u0447\u0435\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u043e\u0439.
templates.reset-password-email.ftl.having_trouble_clicking_button=\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 "\u0421\u0431\u0440\u043e\u0441 \u043f\u0430\u0440\u043e\u043b\u044f" \u0438\u043b\u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0439\u0442\u0435 \u0438 \u0432\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0430\u0434\u0440\u0435\u0441 \u0432 \u0430\u0434\u0440\u0435\u0441\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0432\u0430\u0448\u0435\u0433\u043e \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430:
templates.reset-password-email.ftl.reset_password_button=\u0421\u0431\u0440\u043e\u0441 \u043f\u0430\u0440\u043e\u043b\u044f
# Reset password confirmation email
templates.reset-password-confirm-email.ftl.title=\u041f\u0430\u0440\u043e\u043b\u044c \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u0431\u0440\u043e\u0448\u0435\u043d
templates.reset-password-confirm-email.ftl.detail=\u041f\u0430\u0440\u043e\u043b\u044c \u043a \u0432\u0430\u0448\u0435\u0439 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 Alfresco \u043d\u0430\u0434\u0432\u0430\u043d\u043e \u0431\u044b\u043b \u0438\u0437\u043c\u0435\u043d\u0435\u043d.
templates.reset-password-confirm-email.ftl.note=\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u043b\u0438 \u0441\u0431\u0440\u043e\u0441 \u043f\u0430\u0440\u043e\u043b\u044f, \u043d\u0435\u0437\u0430\u043c\u0435\u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u0432 \u0441\u0432\u043e\u044e \u0418\u0422-\u0441\u043b\u0443\u0436\u0431\u0443.

View File

@@ -0,0 +1,15 @@
# Email subjects.
reset-password-request.email.subject=\u91cd\u7f6e\u60a8\u7684\u5bc6\u7801
reset-password-confirmation.email.subject=\u5bc6\u7801\u91cd\u7f6e\u6210\u529f
# Request reset password email
templates.reset-password-email.ftl.title=\u91cd\u7f6e\u60a8\u7684\u5bc6\u7801
templates.reset-password-email.ftl.detail=\u60a8\u6700\u8fd1\u8bf7\u6c42\u66f4\u6539\u5e10\u6237\u7684\u5bc6\u7801\u3002
templates.reset-password-email.ftl.ignore_message=\u5982\u679c\u60a8\u6ca1\u6709\u8bf7\u6c42\u5bc6\u7801\u91cd\u7f6e\u6216\u4e0d\u5e0c\u671b\u66f4\u6539\u5b83\uff0c\u60a8\u53ef\u4ee5\u5ffd\u7565\u6216\u5220\u9664\u6b64\u4fe1\u606f\uff0c\u5e76\u4e14\u60a8\u7684\u5e10\u6237\u5c06\u4fdd\u6301\u5b89\u5168\u3002
templates.reset-password-email.ftl.having_trouble_clicking_button=\u5355\u51fb\u201c\u91cd\u7f6e\u5bc6\u7801\u201d\u6309\u94ae\uff0c\u6216\u590d\u5236\u7c98\u8d34\u4ee5\u4e0b\u5730\u5740\u5230\u7f51\u7edc\u6d4f\u89c8\u5668\uff1a
templates.reset-password-email.ftl.reset_password_button=\u91cd\u7f6e\u5bc6\u7801
# Reset password confirmation email
templates.reset-password-confirm-email.ftl.title=\u5bc6\u7801\u91cd\u7f6e\u6210\u529f
templates.reset-password-confirm-email.ftl.detail=\u60a8\u7684 Alfresco \u5e10\u6237\u7684\u5bc6\u7801\u6700\u8fd1\u5df2\u66f4\u6539\u3002
templates.reset-password-confirm-email.ftl.note=\u5982\u679c\u60a8\u6ca1\u6709\u8bf7\u6c42\u5bc6\u7801\u91cd\u7f6e\uff0c\u8bf7\u7acb\u5373\u8054\u7cfb\u60a8\u7684 IT \u56e2\u961f\u3002

View File

@@ -91,3 +91,9 @@ templates.invite-email-moderated.html.info={0} m\u00f6chte der Site ''{1}'' auf
templates.invite-email-moderated.html.see_pending=Siehe ausstehende Anfragen
templates.invite-email.html.salutation_generic=Hallo,
# common for most email templates
templates.generic-email.ftl.salutation=Hallo {0},
templates.generic-email.ftl.copy_right=Alle Rechte vorbehalten.
templates.generic-email.ftl.contact_us=Kontakt

View File

@@ -91,3 +91,9 @@ templates.invite-email-moderated.html.info={0} solicit\u00f3 unirse al sitio ''{
templates.invite-email-moderated.html.see_pending=Ver solicitudes pendientes
templates.invite-email.html.salutation_generic=Hola:
# common for most email templates
templates.generic-email.ftl.salutation=Hola {0},
templates.generic-email.ftl.copy_right=Todos los derechos reservados.
templates.generic-email.ftl.contact_us=P\u00f3ngase en contacto con nosotros

View File

@@ -91,3 +91,9 @@ templates.invite-email-moderated.html.info={0} a demand\u00e9 \u00e0 rejoindre l
templates.invite-email-moderated.html.see_pending=Consultez le document relatif aux requ\u00eates en attente
templates.invite-email.html.salutation_generic=Bonjour,
# common for most email templates
templates.generic-email.ftl.salutation=Cher/Ch\u00e8re {0},
templates.generic-email.ftl.copy_right=Tous droits r\u00e9serv\u00e9s.
templates.generic-email.ftl.contact_us=Contactez-nous

View File

@@ -91,3 +91,9 @@ templates.invite-email-moderated.html.info={0} ha richiesto di aderire al sito '
templates.invite-email-moderated.html.see_pending=Visualizza Richieste in sospeso
templates.invite-email.html.salutation_generic=Salve,
# common for most email templates
templates.generic-email.ftl.salutation=Salve {0},
templates.generic-email.ftl.copy_right=Tutti i diritti riservati.
templates.generic-email.ftl.contact_us=Contattaci

View File

@@ -91,3 +91,9 @@ templates.invite-email-moderated.html.info={0} \u304c {2}''\u4e0a\u306e''''{1}''
templates.invite-email-moderated.html.see_pending=\u4fdd\u7559\u4e2d\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u898b\u308b
templates.invite-email.html.salutation_generic=\u7686\u69d8\u3001
# common for most email templates
templates.generic-email.ftl.salutation={0} \u3055\u3093
templates.generic-email.ftl.copy_right=All Rights Reserved.
templates.generic-email.ftl.contact_us=\u9023\u7d61\u5148

View File

@@ -91,3 +91,9 @@ templates.invite-email-moderated.html.info={0} ba om \u00e5 bli med p\u00e5 omr\
templates.invite-email-moderated.html.see_pending=Se foresp\u00f8rsler som venter p\u00e5 svar
templates.invite-email.html.salutation_generic=Hei,
# common for most email templates
templates.generic-email.ftl.salutation=Hei {0},
templates.generic-email.ftl.copy_right=Med enerett.
templates.generic-email.ftl.contact_us=Kontakt oss

View File

@@ -91,3 +91,9 @@ templates.invite-email-moderated.html.info={0} heeft aangevraagd lid te worden v
templates.invite-email-moderated.html.see_pending=Openstaande aanvragen bekijken
templates.invite-email.html.salutation_generic=Hallo,
# common for most email templates
templates.generic-email.ftl.salutation=Beste {0},
templates.generic-email.ftl.copy_right=Alle rechten voorbehouden.
templates.generic-email.ftl.contact_us=Neem contact op

View File

@@ -91,3 +91,9 @@ templates.invite-email-moderated.html.info={0} solicitou ingresso no site ''{1}'
templates.invite-email-moderated.html.see_pending=Ver solicita\u00e7\u00f5es pendentes
templates.invite-email.html.salutation_generic=Ol\u00e1,
# common for most email templates
templates.generic-email.ftl.salutation=Oi {0},
templates.generic-email.ftl.copy_right=Todos os direitos reservados.
templates.generic-email.ftl.contact_us=Entre em contato conosco

View File

@@ -91,3 +91,9 @@ templates.invite-email-moderated.html.info={0} \u0437\u0430\u043f\u0440\u043e\u0
templates.invite-email-moderated.html.see_pending=\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u043e\u0436\u0438\u0434\u0430\u044e\u0449\u0438\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432
templates.invite-email.html.salutation_generic=\u041f\u0440\u0438\u0432\u0435\u0442,
# common for most email templates
templates.generic-email.ftl.salutation=\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, {0},
templates.generic-email.ftl.copy_right=\u0412\u0441\u0435 \u043f\u0440\u0430\u0432\u0430 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u044b.
templates.generic-email.ftl.contact_us=\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u044b

View File

@@ -91,3 +91,9 @@ templates.invite-email-moderated.html.info={0} \u8bf7\u6c42\u52a0\u5165 {2} ''{1
templates.invite-email-moderated.html.see_pending=\u53c2\u89c1\u5f85\u51b3\u8bf7\u6c42
templates.invite-email.html.salutation_generic=\u60a8\u597d\uff0c
# common for most email templates
templates.generic-email.ftl.salutation=\u60a8\u597d {0}\uff0c,
templates.generic-email.ftl.copy_right=\u4fdd\u7559\u6240\u6709\u6743\u5229\u3002
templates.generic-email.ftl.contact_us=\u8054\u7cfb\u6211\u4eec

View File

@@ -1,7 +1,7 @@
# Display labels for out-of-the-box Content-oriented Workflows
#######################
# ACTIVITI WORKFLOWS #
# ACTIVITI WORKFLOWS #
#######################
#
@@ -54,7 +54,7 @@ publishWebContent.workflow.title=Activiti Prozess zum ver\u00f6ffentlichen von W
publishWebContent.workflow.description=Ver\u00f6ffentlichen von Web Content mit der Activiti Workflow Engine
############################
# WORKFLOW MODEL LABELS #
# WORKFLOW MODEL LABELS #
############################
# Adhoc Task Definitions
@@ -92,6 +92,15 @@ wf_workflowmodel.type.wf_activitiReviewTask.description=Dokumente zwecks Genehmi
wf_workflowmodel.property.wf_reviewOutcome.title=\u00dcberpr\u00fcfungsergebnis
wf_workflowmodel.property.wf_reviewOutcome.description=Dem Inhalt genehmigen oder ablehnen
activitiReview.task.wf_submitReviewTask.title=\u00dcberpr\u00fcfung starten
activitiReview.task.wf_submitReviewTask.description=Dokumente zur \u00dcberpr\u00fcfung und Genehmigung vorlegen
activitiReview.task.wf_rejectedTask.title=Abgelehnt
activitiReview.task.wf_rejectedTask.description=Abgelehnt
activitiReview.task.wf_approvedTask.title=Genehmigt
activitiReview.task.wf_approvedTask.description=Genehmigt
activitiReview.task.wf_activitiReviewTask.title=\u00dcberpr\u00fcfen
activitiReview.task.wf_activitiReviewTask.description=Dokumente zur \u00dcberpr\u00fcfung und Zustimmung
# Parallel Review And Approve Task Definitions
wf_workflowmodel.type.wf_submitParallelReviewTask.title=Dokument(e) zur \u00dcberpr\u00fcfung senden
@@ -118,6 +127,7 @@ activitiParallelReview.task.wf_submitParallelReviewTask.description=Dokumentenge
activitiParallelReview.property.wf_requiredApprovePercent.title=Erforderlicher Prozentsatz Genehmigung
activitiParallelReview.property.wf_requiredApprovePercent.description=Prozentsatz Pr\u00fcfer, die zur Genehmigung genehmigen m\u00fcssen
activitiParallelReview.task.wf_activitiReviewTask.title=\u00dcberpr\u00fcfen
activitiParallelReview.task.wf_activitiReviewTask.description=Dokumente zur \u00dcberpr\u00fcfung und Zustimmung
activitiParallelReview.task.wf_rejectedParallelTask.title=Dokument abgelehnt
activitiParallelReview.task.wf_approvedParallelTask.title=Dokument genehmigt
activitiParallelReview.property.wf_reviewerCount.title=Anzahl Pr\u00fcfer
@@ -130,12 +140,21 @@ activitiParallelReview.property.wf_actualPercent.title=Derzeitiger Prozentsatz G
activitiParallelReview.property.wf_actualPercent.description=Derzeitiger Prozentsatz Genehmigung
activitiParallelReview.property.wf_reviewOutcome.title=\u00dcberpr\u00fcfungsergebnis
activitiParallelReview.property.wf_reviewOutcome.description=\u00dcberpr\u00fcfungsergebnis
activitiParallelGroupReview.task.wf_activitiReviewTask.title=\u00dcberpr\u00fcfen
activitiParallelGroupReview.task.wf_activitiReviewTask.description=Dokumente zur \u00dcberpr\u00fcfung und Zustimmung
# Pooled Review Task Definitions
wf_workflowmodel.type.wf_submitGroupReviewTask.title=Gruppen\u00fcberpr\u00fcfung starten
wf_workflowmodel.type.wf_submitGroupReviewTask.description=Dokumente zur \u00dcberpr\u00fcfung und Zustimmung einer Mitarbeitergruppe vorlegen
activitiReviewPooled.task.wf_activitiReviewTask.title=\u00dcberpr\u00fcfen
activitiReviewPooled.task.wf_activitiReviewTask.description=Dokumente zur \u00dcberpr\u00fcfung und Zustimmung
activitiReviewPooled.task.wf_rejectedTask.title=Dokument abgelehnt
activitiReviewPooled.task.wf_rejectedTask.description=Dokument abgelehnt
activitiReviewPooled.task.wf_approvedTask.title=Dokument genehmigt
activitiReviewPooled.task.wf_approvedTask.description=Dokument genehmigt
# List constraint display labels
listconstraint.wf_reviewOutcomeOptions.Approve=Genehmigen
listconstraint.wf_reviewOutcomeOptions.Reject=Ablehnen
@@ -146,3 +165,7 @@ workflowtask.outcome.Approve=Genehmigt
workflowtask.outcome.Reject=Abgelehnt
workflowtask.already.done.error=Diese Aufgabe wurde bereits abgeschlossen und kann nicht mehr bearbeitet werden.
# Reset password Task Definitions
resetpasswordwf_resetpassword.resetpassword.workflow.title=Zur\u00fccksetzen des Passwortes anfordern.
resetpasswordwf_resetpassword.resetpassword.workflow.description=Wird von Benutzern verwendet, um ein Zur\u00fccksetzen ihres Passwortes anzufordern.

View File

@@ -1,7 +1,7 @@
# Display labels for out-of-the-box Content-oriented Workflows
#######################
# ACTIVITI WORKFLOWS #
# ACTIVITI WORKFLOWS #
#######################
#
@@ -54,7 +54,7 @@ publishWebContent.workflow.title=Publicar contenido Web con Activiti
publishWebContent.workflow.description=Publicaci\u00f3n de contenido Web utilizando el motor de flujo de trabajo Activiti
############################
# WORKFLOW MODEL LABELS #
# WORKFLOW MODEL LABELS #
############################
# Adhoc Task Definitions
@@ -92,6 +92,15 @@ wf_workflowmodel.type.wf_activitiReviewTask.description=Revisar documentos para
wf_workflowmodel.property.wf_reviewOutcome.title=Revisar resultado
wf_workflowmodel.property.wf_reviewOutcome.description=Aprobar y rechazar el contenido
activitiReview.task.wf_submitReviewTask.title=Iniciar revisi\u00f3n
activitiReview.task.wf_submitReviewTask.description=Enviar documentos para su revisi\u00f3n y aprobaci\u00f3n
activitiReview.task.wf_rejectedTask.title=Rechazados
activitiReview.task.wf_rejectedTask.description=Rechazados
activitiReview.task.wf_approvedTask.title=Aprobadas
activitiReview.task.wf_approvedTask.description=Aprobadas
activitiReview.task.wf_activitiReviewTask.title=Revisar
activitiReview.task.wf_activitiReviewTask.description=Documentos para revisi\u00f3n y aprobaci\u00f3n
# Parallel Review And Approve Task Definitions
wf_workflowmodel.type.wf_submitParallelReviewTask.title=Enviar documentos para revisar
@@ -118,6 +127,7 @@ activitiParallelReview.task.wf_submitParallelReviewTask.description=Solicitar ap
activitiParallelReview.property.wf_requiredApprovePercent.title=Porcentaje de aprobaci\u00f3n requerido
activitiParallelReview.property.wf_requiredApprovePercent.description=Porcentaje de revisores que deben confirmar su aprobaci\u00f3n
activitiParallelReview.task.wf_activitiReviewTask.title=Revisar
activitiParallelReview.task.wf_activitiReviewTask.description=Documentos para revisi\u00f3n y aprobaci\u00f3n
activitiParallelReview.task.wf_rejectedParallelTask.title=Documento rechazado
activitiParallelReview.task.wf_approvedParallelTask.title=Documento aprobado
activitiParallelReview.property.wf_reviewerCount.title=N\u00famero de revisores
@@ -130,12 +140,21 @@ activitiParallelReview.property.wf_actualPercent.title=Porcentaje de aprobaci\u0
activitiParallelReview.property.wf_actualPercent.description=Porcentaje de aprobaci\u00f3n real
activitiParallelReview.property.wf_reviewOutcome.title=Revisar resultado
activitiParallelReview.property.wf_reviewOutcome.description=Revisar resultado
activitiParallelGroupReview.task.wf_activitiReviewTask.title=Revisar
activitiParallelGroupReview.task.wf_activitiReviewTask.description=Documentos para revisi\u00f3n y aprobaci\u00f3n
# Pooled Review Task Definitions
wf_workflowmodel.type.wf_submitGroupReviewTask.title=Iniciar revisi\u00f3n en grupo
wf_workflowmodel.type.wf_submitGroupReviewTask.description=Enviar documentos para su revisi\u00f3n y aprobaci\u00f3n a un grupo de personas
activitiReviewPooled.task.wf_activitiReviewTask.title=Revisar
activitiReviewPooled.task.wf_activitiReviewTask.description=Documentos para revisi\u00f3n y aprobaci\u00f3n
activitiReviewPooled.task.wf_rejectedTask.title=Documento rechazado
activitiReviewPooled.task.wf_rejectedTask.description=Documento rechazado
activitiReviewPooled.task.wf_approvedTask.title=Documento aprobado
activitiReviewPooled.task.wf_approvedTask.description=Documento aprobado
# List constraint display labels
listconstraint.wf_reviewOutcomeOptions.Approve=Aprobar
listconstraint.wf_reviewOutcomeOptions.Reject=Rechazar
@@ -146,3 +165,7 @@ workflowtask.outcome.Approve=Aprobada
workflowtask.outcome.Reject=Rechazada
workflowtask.already.done.error=Esta tarea ya se ha completado y no puede editarse.
# Reset password Task Definitions
resetpasswordwf_resetpassword.resetpassword.workflow.title=Solicitar restablecimiento de contrase\u00f1a.
resetpasswordwf_resetpassword.resetpassword.workflow.description=Utilizado por los usuarios para solicitar el restablecimiento de su contrase\u00f1a.

View File

@@ -1,7 +1,7 @@
# Display labels for out-of-the-box Content-oriented Workflows
#######################
# ACTIVITI WORKFLOWS #
# ACTIVITI WORKFLOWS #
#######################
#
@@ -54,7 +54,7 @@ publishWebContent.workflow.title=Processus Activiti de publication de contenu We
publishWebContent.workflow.description=Publication de contenu Web \u00e0 l'aide du moteur de workflow Activi
############################
# WORKFLOW MODEL LABELS #
# WORKFLOW MODEL LABELS #
############################
# Adhoc Task Definitions
@@ -92,6 +92,15 @@ wf_workflowmodel.type.wf_activitiReviewTask.description=R\u00e9viser des documen
wf_workflowmodel.property.wf_reviewOutcome.title=R\u00e9sultat de la r\u00e9vision
wf_workflowmodel.property.wf_reviewOutcome.description=Approuver ou rejeter le contenu
activitiReview.task.wf_submitReviewTask.title=D\u00e9marrer la r\u00e9vision
activitiReview.task.wf_submitReviewTask.description=Soumettre des documents pour r\u00e9vision et approbation
activitiReview.task.wf_rejectedTask.title=Rejet\u00e9
activitiReview.task.wf_rejectedTask.description=Rejet\u00e9
activitiReview.task.wf_approvedTask.title=Approuv\u00e9
activitiReview.task.wf_approvedTask.description=Approuv\u00e9
activitiReview.task.wf_activitiReviewTask.title=R\u00e9viser
activitiReview.task.wf_activitiReviewTask.description=Documents pour r\u00e9vision et approbation
# Parallel Review And Approve Task Definitions
wf_workflowmodel.type.wf_submitParallelReviewTask.title=Envoyer un (des) document(s) pour r\u00e9vision
@@ -118,6 +127,7 @@ activitiParallelReview.task.wf_submitParallelReviewTask.description=Demander l'a
activitiParallelReview.property.wf_requiredApprovePercent.title=Pourcentage d'approbation requis
activitiParallelReview.property.wf_requiredApprovePercent.description=Pourcentage de r\u00e9viseurs qui doivent approuver le contenu pour qu'il soit approuv\u00e9
activitiParallelReview.task.wf_activitiReviewTask.title=R\u00e9viser
activitiParallelReview.task.wf_activitiReviewTask.description=Documents pour r\u00e9vision et approbation
activitiParallelReview.task.wf_rejectedParallelTask.title=Document rejet\u00e9
activitiParallelReview.task.wf_approvedParallelTask.title=Document approuv\u00e9
activitiParallelReview.property.wf_reviewerCount.title=Nombre de r\u00e9viseurs
@@ -130,12 +140,21 @@ activitiParallelReview.property.wf_actualPercent.title=Pourcentage d'approbation
activitiParallelReview.property.wf_actualPercent.description=Pourcentage d'approbation exact
activitiParallelReview.property.wf_reviewOutcome.title=R\u00e9sultat de la r\u00e9vision
activitiParallelReview.property.wf_reviewOutcome.description=R\u00e9sultat de la r\u00e9vision
activitiParallelGroupReview.task.wf_activitiReviewTask.title=R\u00e9viser
activitiParallelGroupReview.task.wf_activitiReviewTask.description=Documents pour r\u00e9vision et approbation
# Pooled Review Task Definitions
wf_workflowmodel.type.wf_submitGroupReviewTask.title=D\u00e9marrer la r\u00e9vision de groupe
wf_workflowmodel.type.wf_submitGroupReviewTask.description=Soumettre des documents pour r\u00e9vision et approbation \u00e0 un groupe de personnes
activitiReviewPooled.task.wf_activitiReviewTask.title=R\u00e9viser
activitiReviewPooled.task.wf_activitiReviewTask.description=Documents pour r\u00e9vision et approbation
activitiReviewPooled.task.wf_rejectedTask.title=Document rejet\u00e9
activitiReviewPooled.task.wf_rejectedTask.description=Document rejet\u00e9
activitiReviewPooled.task.wf_approvedTask.title=Document approuv\u00e9
activitiReviewPooled.task.wf_approvedTask.description=Document approuv\u00e9
# List constraint display labels
listconstraint.wf_reviewOutcomeOptions.Approve=Approuver
listconstraint.wf_reviewOutcomeOptions.Reject=Rejeter
@@ -146,3 +165,7 @@ workflowtask.outcome.Approve=Approuv\u00e9
workflowtask.outcome.Reject=Rejet\u00e9
workflowtask.already.done.error=Cette t\u00e2che a d\u00e9j\u00e0 \u00e9t\u00e9 termin\u00e9e et n'est plus modifiable.
# Reset password Task Definitions
resetpasswordwf_resetpassword.resetpassword.workflow.title=Demande de r\u00e9initialisation de mot de passe.
resetpasswordwf_resetpassword.resetpassword.workflow.description=Permet aux utilisateurs de demander la r\u00e9initialisation de leur mot de passe.

View File

@@ -1,7 +1,7 @@
# Display labels for out-of-the-box Content-oriented Workflows
#######################
# ACTIVITI WORKFLOWS #
# ACTIVITI WORKFLOWS #
#######################
#
@@ -54,7 +54,7 @@ publishWebContent.workflow.title=Processo Activiti per la pubblicazione di conte
publishWebContent.workflow.description=Pubblicazione di contenuti web utilizzando il motore Activiti di workflow
############################
# WORKFLOW MODEL LABELS #
# WORKFLOW MODEL LABELS #
############################
# Adhoc Task Definitions
@@ -92,6 +92,15 @@ wf_workflowmodel.type.wf_activitiReviewTask.description=Esamina i documenti per
wf_workflowmodel.property.wf_reviewOutcome.title=Esamina risultato
wf_workflowmodel.property.wf_reviewOutcome.description=Approva o respingi il contenuto
activitiReview.task.wf_submitReviewTask.title=Avvia esame
activitiReview.task.wf_submitReviewTask.description=Invia i documenti per l'esame e l'approvazione
activitiReview.task.wf_rejectedTask.title=Respinto
activitiReview.task.wf_rejectedTask.description=Respinto
activitiReview.task.wf_approvedTask.title=Approvato
activitiReview.task.wf_approvedTask.description=Approvato
activitiReview.task.wf_activitiReviewTask.title=Esamina
activitiReview.task.wf_activitiReviewTask.description=Documenti per l'esame e l'approvazione
# Parallel Review And Approve Task Definitions
wf_workflowmodel.type.wf_submitParallelReviewTask.title=Invia documenti da esaminare
@@ -118,6 +127,7 @@ activitiParallelReview.task.wf_submitParallelReviewTask.description=Richiede l'a
activitiParallelReview.property.wf_requiredApprovePercent.title=Percentuale di approvazioni richiesta
activitiParallelReview.property.wf_requiredApprovePercent.description=Percentuale di esaminatori che devono approvare il contenuto per l'approvazione
activitiParallelReview.task.wf_activitiReviewTask.title=Esamina
activitiParallelReview.task.wf_activitiReviewTask.description=Documenti per l'esame e l'approvazione
activitiParallelReview.task.wf_rejectedParallelTask.title=Documento respinto
activitiParallelReview.task.wf_approvedParallelTask.title=Documento approvato
activitiParallelReview.property.wf_reviewerCount.title=Numero di esaminatori
@@ -130,12 +140,21 @@ activitiParallelReview.property.wf_actualPercent.title=Percentuale di approvazio
activitiParallelReview.property.wf_actualPercent.description=Percentuale di approvazioni effettiva
activitiParallelReview.property.wf_reviewOutcome.title=Esamina risultato
activitiParallelReview.property.wf_reviewOutcome.description=Esamina risultato
activitiParallelGroupReview.task.wf_activitiReviewTask.title=Esamina
activitiParallelGroupReview.task.wf_activitiReviewTask.description=Documenti per l'esame e l'approvazione
# Pooled Review Task Definitions
wf_workflowmodel.type.wf_submitGroupReviewTask.title=Avvia esame di gruppo
wf_workflowmodel.type.wf_submitGroupReviewTask.description=Invia i documenti per l'esame e l'approvazione a un gruppo di persone
activitiReviewPooled.task.wf_activitiReviewTask.title=Esamina
activitiReviewPooled.task.wf_activitiReviewTask.description=Documenti per l'esame e l'approvazione
activitiReviewPooled.task.wf_rejectedTask.title=Documento respinto
activitiReviewPooled.task.wf_rejectedTask.description=Documento respinto
activitiReviewPooled.task.wf_approvedTask.title=Documento approvato
activitiReviewPooled.task.wf_approvedTask.description=Documento approvato
# List constraint display labels
listconstraint.wf_reviewOutcomeOptions.Approve=Approva
listconstraint.wf_reviewOutcomeOptions.Reject=Respingi
@@ -146,3 +165,7 @@ workflowtask.outcome.Approve=Approvato
workflowtask.outcome.Reject=Respinto
workflowtask.already.done.error=Questo compito \u00e8 gi\u00e0 stato completato e non \u00e8 pi\u00f9 modificabile.
# Reset password Task Definitions
resetpasswordwf_resetpassword.resetpassword.workflow.title=Richiedi reset password.
resetpasswordwf_resetpassword.resetpassword.workflow.description=Utilizzato dagli utenti per richiedere il reset della password.

View File

@@ -1,7 +1,7 @@
# Display labels for out-of-the-box Content-oriented Workflows
#######################
# ACTIVITI WORKFLOWS #
# ACTIVITI WORKFLOWS #
#######################
#
@@ -54,7 +54,7 @@ publishWebContent.workflow.title=\u30a6\u30a7\u30d6\u30b3\u30f3\u30c6\u30f3\u30c
publishWebContent.workflow.description=\u30a2\u30af\u30c6\u30a3\u30d3\u30c6\u30a3\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u30a8\u30f3\u30b8\u30f3\u3092\u4f7f\u7528\u3057\u3066\u30a6\u30a7\u30d6\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u516c\u958b\u3059\u308b
############################
# WORKFLOW MODEL LABELS #
# WORKFLOW MODEL LABELS #
############################
# Adhoc Task Definitions
@@ -92,6 +92,15 @@ wf_workflowmodel.type.wf_activitiReviewTask.description=\u6587\u66f8\u3092\u30ec
wf_workflowmodel.property.wf_reviewOutcome.title=\u30ec\u30d3\u30e5\u30fc\u7d50\u679c
wf_workflowmodel.property.wf_reviewOutcome.description=\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u627f\u8a8d\u307e\u305f\u306f\u5374\u4e0b\u3059\u308b
activitiReview.task.wf_submitReviewTask.title=\u30ec\u30d3\u30e5\u30fc\u306e\u958b\u59cb
activitiReview.task.wf_submitReviewTask.description=\u30ec\u30d3\u30e5\u30fc\u3068\u627f\u8a8d\u7528\u306b\u6587\u66f8\u3092\u9001\u4fe1
activitiReview.task.wf_rejectedTask.title=\u5374\u4e0b\u6e08\u307f
activitiReview.task.wf_rejectedTask.description=\u5374\u4e0b\u6e08\u307f
activitiReview.task.wf_approvedTask.title=\u627f\u8a8d\u6e08\u307f
activitiReview.task.wf_approvedTask.description=\u627f\u8a8d\u6e08\u307f
activitiReview.task.wf_activitiReviewTask.title=\u30ec\u30d3\u30e5\u30fc
activitiReview.task.wf_activitiReviewTask.description=\u30ec\u30d3\u30e5\u30fc\u3068\u627f\u8a8d\u3092\u884c\u3046\u6587\u66f8
# Parallel Review And Approve Task Definitions
wf_workflowmodel.type.wf_submitParallelReviewTask.title=\u6587\u66f8\u3092\u30ec\u30d3\u30e5\u30fc\u7528\u306b\u9001\u4fe1
@@ -118,6 +127,7 @@ activitiParallelReview.task.wf_submitParallelReviewTask.description=1\u540d\u4ee
activitiParallelReview.property.wf_requiredApprovePercent.title=\u5fc5\u8981\u306a\u627f\u8a8d\u6bd4\u7387
activitiParallelReview.property.wf_requiredApprovePercent.description=\u627f\u8a8d\u3092\u53d7\u3051\u308b\u305f\u3081\u306b\u627f\u8a8d\u3059\u308b\u5fc5\u8981\u306e\u3042\u308b\u30ec\u30d3\u30e5\u30a2\u306e\u30d1\u30fc\u30bb\u30f3\u30c6\u30fc\u30b8
activitiParallelReview.task.wf_activitiReviewTask.title=\u30ec\u30d3\u30e5\u30fc
activitiParallelReview.task.wf_activitiReviewTask.description=\u30ec\u30d3\u30e5\u30fc\u3068\u627f\u8a8d\u3092\u884c\u3046\u6587\u66f8
activitiParallelReview.task.wf_rejectedParallelTask.title=\u6587\u66f8\u5374\u4e0b
activitiParallelReview.task.wf_approvedParallelTask.title=\u6587\u66f8\u627f\u8a8d
activitiParallelReview.property.wf_reviewerCount.title=\u30ec\u30d3\u30e5\u30a2\u306e\u6570
@@ -130,12 +140,21 @@ activitiParallelReview.property.wf_actualPercent.title=\u5b9f\u969b\u306e\u627f\
activitiParallelReview.property.wf_actualPercent.description=\u5b9f\u969b\u306e\u627f\u8a8d\u30d1\u30fc\u30bb\u30f3\u30c6\u30fc\u30b8
activitiParallelReview.property.wf_reviewOutcome.title=\u30ec\u30d3\u30e5\u30fc\u7d50\u679c
activitiParallelReview.property.wf_reviewOutcome.description=\u30ec\u30d3\u30e5\u30fc\u7d50\u679c
activitiParallelGroupReview.task.wf_activitiReviewTask.title=\u30ec\u30d3\u30e5\u30fc
activitiParallelGroupReview.task.wf_activitiReviewTask.description=\u30ec\u30d3\u30e5\u30fc\u3068\u627f\u8a8d\u3092\u884c\u3046\u6587\u66f8
# Pooled Review Task Definitions
wf_workflowmodel.type.wf_submitGroupReviewTask.title=\u30b0\u30eb\u30fc\u30d7\u30ec\u30d3\u30e5\u30fc\u306e\u958b\u59cb
wf_workflowmodel.type.wf_submitGroupReviewTask.description=\u30ec\u30d3\u30e5\u30fc\u3068\u627f\u8a8d\u7528\u306b\u6587\u66f8\u3092\u30e6\u30fc\u30b6\u30fc\u30b0\u30eb\u30fc\u30d7\u3078\u9001\u4fe1
activitiReviewPooled.task.wf_activitiReviewTask.title=\u30ec\u30d3\u30e5\u30fc
activitiReviewPooled.task.wf_activitiReviewTask.description=\u30ec\u30d3\u30e5\u30fc\u3068\u627f\u8a8d\u3092\u884c\u3046\u6587\u66f8
activitiReviewPooled.task.wf_rejectedTask.title=\u6587\u66f8\u5374\u4e0b
activitiReviewPooled.task.wf_rejectedTask.description=\u6587\u66f8\u5374\u4e0b
activitiReviewPooled.task.wf_approvedTask.title=\u6587\u66f8\u627f\u8a8d
activitiReviewPooled.task.wf_approvedTask.description=\u6587\u66f8\u627f\u8a8d
# List constraint display labels
listconstraint.wf_reviewOutcomeOptions.Approve=\u627f\u8a8d
listconstraint.wf_reviewOutcomeOptions.Reject=\u5374\u4e0b
@@ -146,3 +165,7 @@ workflowtask.outcome.Approve=\u627f\u8a8d\u6e08\u307f
workflowtask.outcome.Reject=\u5374\u4e0b\u6e08\u307f
workflowtask.already.done.error=\u3053\u306e\u30bf\u30b9\u30af\u306f\u3059\u3067\u306b\u5b8c\u4e86\u3057\u3066\u3044\u308b\u305f\u3081\u3001\u7de8\u96c6\u3067\u304d\u307e\u305b\u3093\u3002
# Reset password Task Definitions
resetpasswordwf_resetpassword.resetpassword.workflow.title=\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u30ea\u30bb\u30c3\u30c8\u7533\u8acb
resetpasswordwf_resetpassword.resetpassword.workflow.description=\u30e6\u30fc\u30b6\u30fc\u304c\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u30ea\u30bb\u30c3\u30c8\u3092\u7533\u8acb\u3059\u308b\u969b\u306b\u4f7f\u7528\u3057\u307e\u3059\u3002

View File

@@ -1,7 +1,7 @@
# Display labels for out-of-the-box Content-oriented Workflows
#######################
# ACTIVITI WORKFLOWS #
# ACTIVITI WORKFLOWS #
#######################
#
@@ -54,7 +54,7 @@ publishWebContent.workflow.title=Activit-prosess for publisering av Webinnhold
publishWebContent.workflow.description=Publisering av Webinnhold ved hjelp av Activiti-arbeidsflytmotoren
############################
# WORKFLOW MODEL LABELS #
# WORKFLOW MODEL LABELS #
############################
# Adhoc Task Definitions
@@ -92,6 +92,15 @@ wf_workflowmodel.type.wf_activitiReviewTask.description=Gjennomg\u00e5 dokumente
wf_workflowmodel.property.wf_reviewOutcome.title=Gjennomgangsresultat
wf_workflowmodel.property.wf_reviewOutcome.description=Godkjenn eller avvis innholdet
activitiReview.task.wf_submitReviewTask.title=Start gjennomgang
activitiReview.task.wf_submitReviewTask.description=Send dokumenter til gjennomgang og godkjenning
activitiReview.task.wf_rejectedTask.title=Avvist
activitiReview.task.wf_rejectedTask.description=Avvist
activitiReview.task.wf_approvedTask.title=Godkjent
activitiReview.task.wf_approvedTask.description=Godkjent
activitiReview.task.wf_activitiReviewTask.title=Gjennomg\u00e5
activitiReview.task.wf_activitiReviewTask.description=Dokumenter til gjennomgang og godkjenning
# Parallel Review And Approve Task Definitions
wf_workflowmodel.type.wf_submitParallelReviewTask.title=Send dokumenter til gjennomgang
@@ -118,6 +127,7 @@ activitiParallelReview.task.wf_submitParallelReviewTask.description=Be om dokume
activitiParallelReview.property.wf_requiredApprovePercent.title=Obligatorisk godkjenningsprosent
activitiParallelReview.property.wf_requiredApprovePercent.description=Prosent av korrekturlesere som m\u00e5 godkjenne for godkjennelse
activitiParallelReview.task.wf_activitiReviewTask.title=Gjennomg\u00e5
activitiParallelReview.task.wf_activitiReviewTask.description=Dokumenter til gjennomgang og godkjenning
activitiParallelReview.task.wf_rejectedParallelTask.title=Dokument avvist
activitiParallelReview.task.wf_approvedParallelTask.title=Dokument godkjent
activitiParallelReview.property.wf_reviewerCount.title=Antall korrekturlesere
@@ -130,12 +140,21 @@ activitiParallelReview.property.wf_actualPercent.title=Faktisk godkjenningsprose
activitiParallelReview.property.wf_actualPercent.description=Faktisk godkjenningsprosent
activitiParallelReview.property.wf_reviewOutcome.title=Gjennomgangsresultat
activitiParallelReview.property.wf_reviewOutcome.description=Gjennomgangsresultat
activitiParallelGroupReview.task.wf_activitiReviewTask.title=Gjennomg\u00e5
activitiParallelGroupReview.task.wf_activitiReviewTask.description=Dokumenter til gjennomgang og godkjenning
# Pooled Review Task Definitions
wf_workflowmodel.type.wf_submitGroupReviewTask.title=Start gruppegjennomgang
wf_workflowmodel.type.wf_submitGroupReviewTask.description=Send dokumenter til gjennomgang og godkjenning til en gruppe av personer
activitiReviewPooled.task.wf_activitiReviewTask.title=Gjennomg\u00e5
activitiReviewPooled.task.wf_activitiReviewTask.description=Dokumenter til gjennomgang og godkjenning
activitiReviewPooled.task.wf_rejectedTask.title=Dokument avvist
activitiReviewPooled.task.wf_rejectedTask.description=Dokument avvist
activitiReviewPooled.task.wf_approvedTask.title=Dokument godkjent
activitiReviewPooled.task.wf_approvedTask.description=Dokument godkjent
# List constraint display labels
listconstraint.wf_reviewOutcomeOptions.Approve=Godkjenn
listconstraint.wf_reviewOutcomeOptions.Reject=Avvis
@@ -146,3 +165,7 @@ workflowtask.outcome.Approve=Godkjent
workflowtask.outcome.Reject=Avvist
workflowtask.already.done.error=Denne oppgaven er allrerede fulf\u00f8rt og kan ikke lenger redigeres.
# Reset password Task Definitions
resetpasswordwf_resetpassword.resetpassword.workflow.title=Be om tilbakestilling av passord.
resetpasswordwf_resetpassword.resetpassword.workflow.description=Brukes av brukere for \u00e5 be om tilbakestilling av deres passord.

View File

@@ -1,7 +1,7 @@
# Display labels for out-of-the-box Content-oriented Workflows
#######################
# ACTIVITI WORKFLOWS #
# ACTIVITI WORKFLOWS #
#######################
#
@@ -54,7 +54,7 @@ publishWebContent.workflow.title=Web Content Activiti-proces publiceren
publishWebContent.workflow.description=Webcontent publiceren met de Activiti-workflowengine
############################
# WORKFLOW MODEL LABELS #
# WORKFLOW MODEL LABELS #
############################
# Adhoc Task Definitions
@@ -92,6 +92,15 @@ wf_workflowmodel.type.wf_activitiReviewTask.description=Documenten reviseren om
wf_workflowmodel.property.wf_reviewOutcome.title=Resultaat van revisie
wf_workflowmodel.property.wf_reviewOutcome.description=De content goedkeuren of afwijzen
activitiReview.task.wf_submitReviewTask.title=Revisie starten
activitiReview.task.wf_submitReviewTask.description=Documenten ter revisie en goedkeuring verzenden
activitiReview.task.wf_rejectedTask.title=Afgewezen
activitiReview.task.wf_rejectedTask.description=Afgewezen
activitiReview.task.wf_approvedTask.title=Goedgekeurd
activitiReview.task.wf_approvedTask.description=Goedgekeurd
activitiReview.task.wf_activitiReviewTask.title=Reviseren
activitiReview.task.wf_activitiReviewTask.description=Documenten voor revisie en goedkeuring
# Parallel Review And Approve Task Definitions
wf_workflowmodel.type.wf_submitParallelReviewTask.title=Document(en) ter revisie verzenden
@@ -118,6 +127,7 @@ activitiParallelReview.task.wf_submitParallelReviewTask.description=Een of meer
activitiParallelReview.property.wf_requiredApprovePercent.title=Vereist goedkeuringspercentage
activitiParallelReview.property.wf_requiredApprovePercent.description=Percentage van revisoren die hun goedkeuring moeten geven
activitiParallelReview.task.wf_activitiReviewTask.title=Reviseren
activitiParallelReview.task.wf_activitiReviewTask.description=Documenten voor revisie en goedkeuring
activitiParallelReview.task.wf_rejectedParallelTask.title=Document afgewezen
activitiParallelReview.task.wf_approvedParallelTask.title=Document goedgekeurd
activitiParallelReview.property.wf_reviewerCount.title=Aantal revisoren
@@ -130,12 +140,21 @@ activitiParallelReview.property.wf_actualPercent.title=Goedkeuringspercentage
activitiParallelReview.property.wf_actualPercent.description=Goedkeuringspercentage
activitiParallelReview.property.wf_reviewOutcome.title=Resultaat van revisie
activitiParallelReview.property.wf_reviewOutcome.description=Resultaat van revisie
activitiParallelGroupReview.task.wf_activitiReviewTask.title=Reviseren
activitiParallelGroupReview.task.wf_activitiReviewTask.description=Documenten voor revisie en goedkeuring
# Pooled Review Task Definitions
wf_workflowmodel.type.wf_submitGroupReviewTask.title=Groepsrevisie starten
wf_workflowmodel.type.wf_submitGroupReviewTask.description=Documenten ter revisie en goedkeuring verzenden naar een groep mensen
activitiReviewPooled.task.wf_activitiReviewTask.title=Reviseren
activitiReviewPooled.task.wf_activitiReviewTask.description=Documenten voor revisie en goedkeuring
activitiReviewPooled.task.wf_rejectedTask.title=Document afgewezen
activitiReviewPooled.task.wf_rejectedTask.description=Document afgewezen
activitiReviewPooled.task.wf_approvedTask.title=Document goedgekeurd
activitiReviewPooled.task.wf_approvedTask.description=Document goedgekeurd
# List constraint display labels
listconstraint.wf_reviewOutcomeOptions.Approve=Goedkeuren
listconstraint.wf_reviewOutcomeOptions.Reject=Afwijzen
@@ -146,3 +165,7 @@ workflowtask.outcome.Approve=Goedgekeurd
workflowtask.outcome.Reject=Afgewezen
workflowtask.already.done.error=Deze taak is al voltooid en kan niet langer worden bewerkt.
# Reset password Task Definitions
resetpasswordwf_resetpassword.resetpassword.workflow.title=Opnieuw instellen van wachtwoord aanvragen.
resetpasswordwf_resetpassword.resetpassword.workflow.description=Gebruikt door gebruikers om opnieuw instellen van wachtwoord aan te vragen.

View File

@@ -1,7 +1,7 @@
# Display labels for out-of-the-box Content-oriented Workflows
#######################
# ACTIVITI WORKFLOWS #
# ACTIVITI WORKFLOWS #
#######################
#
@@ -54,7 +54,7 @@ publishWebContent.workflow.title=Processo Activiti de publica\u00e7\u00e3o de co
publishWebContent.workflow.description=Publica\u00e7\u00e3o de conte\u00fado da Web usando o mecanismo de fluxo de trabalho Activiti
############################
# WORKFLOW MODEL LABELS #
# WORKFLOW MODEL LABELS #
############################
# Adhoc Task Definitions
@@ -92,6 +92,15 @@ wf_workflowmodel.type.wf_activitiReviewTask.description=Revisar documentos para
wf_workflowmodel.property.wf_reviewOutcome.title=Resultado de revis\u00e3o
wf_workflowmodel.property.wf_reviewOutcome.description=Aprovar ou rejeitar o conte\u00fado
activitiReview.task.wf_submitReviewTask.title=Iniciar revis\u00e3o
activitiReview.task.wf_submitReviewTask.description=Enviar documentos para revis\u00e3o e aprova\u00e7\u00e3o
activitiReview.task.wf_rejectedTask.title=Rejeitado
activitiReview.task.wf_rejectedTask.description=Rejeitado
activitiReview.task.wf_approvedTask.title=Aprovado
activitiReview.task.wf_approvedTask.description=Aprovado
activitiReview.task.wf_activitiReviewTask.title=Revisar
activitiReview.task.wf_activitiReviewTask.description=Documentos para revis\u00e3o e aprova\u00e7\u00e3o
# Parallel Review And Approve Task Definitions
wf_workflowmodel.type.wf_submitParallelReviewTask.title=Enviar documento(s) para revis\u00e3o
@@ -118,6 +127,7 @@ activitiParallelReview.task.wf_submitParallelReviewTask.description=Solicitar a
activitiParallelReview.property.wf_requiredApprovePercent.title=Porcentagem de aprova\u00e7\u00e3o obrigat\u00f3ria
activitiParallelReview.property.wf_requiredApprovePercent.description=Porcentagem dos revisores que devem aprovar para obter a aprova\u00e7\u00e3o
activitiParallelReview.task.wf_activitiReviewTask.title=Revisar
activitiParallelReview.task.wf_activitiReviewTask.description=Documentos para revis\u00e3o e aprova\u00e7\u00e3o
activitiParallelReview.task.wf_rejectedParallelTask.title=Documento rejeitado
activitiParallelReview.task.wf_approvedParallelTask.title=Documento aprovado
activitiParallelReview.property.wf_reviewerCount.title=N\u00famero de revisores
@@ -130,12 +140,21 @@ activitiParallelReview.property.wf_actualPercent.title=Porcentagem efetiva de ap
activitiParallelReview.property.wf_actualPercent.description=Porcentagem efetiva de aprova\u00e7\u00e3o
activitiParallelReview.property.wf_reviewOutcome.title=Resultado de revis\u00e3o
activitiParallelReview.property.wf_reviewOutcome.description=Resultado de revis\u00e3o
activitiParallelGroupReview.task.wf_activitiReviewTask.title=Revisar
activitiParallelGroupReview.task.wf_activitiReviewTask.description=Documentos para revis\u00e3o e aprova\u00e7\u00e3o
# Pooled Review Task Definitions
wf_workflowmodel.type.wf_submitGroupReviewTask.title=Iniciar revis\u00e3o em grupo
wf_workflowmodel.type.wf_submitGroupReviewTask.description=Enviar documentos a um grupo de pessoas para revis\u00e3o e aprova\u00e7\u00e3o
activitiReviewPooled.task.wf_activitiReviewTask.title=Revisar
activitiReviewPooled.task.wf_activitiReviewTask.description=Documentos para revis\u00e3o e aprova\u00e7\u00e3o
activitiReviewPooled.task.wf_rejectedTask.title=Documento rejeitado
activitiReviewPooled.task.wf_rejectedTask.description=Documento rejeitado
activitiReviewPooled.task.wf_approvedTask.title=Documento aprovado
activitiReviewPooled.task.wf_approvedTask.description=Documento aprovado
# List constraint display labels
listconstraint.wf_reviewOutcomeOptions.Approve=Aprovar
listconstraint.wf_reviewOutcomeOptions.Reject=Rejeitar
@@ -146,3 +165,7 @@ workflowtask.outcome.Approve=Aprovado
workflowtask.outcome.Reject=Rejeitado
workflowtask.already.done.error=Esta tarefa foi conclu\u00edda e n\u00e3o \u00e9 mais edit\u00e1vel.
# Reset password Task Definitions
resetpasswordwf_resetpassword.resetpassword.workflow.title=Solicitar redefini\u00e7\u00e3o de senha.
resetpasswordwf_resetpassword.resetpassword.workflow.description=Os usu\u00e1rios podem solicitar a redefini\u00e7\u00e3o da senha.

View File

@@ -1,7 +1,7 @@
# Display labels for out-of-the-box Content-oriented Workflows
#######################
# ACTIVITI WORKFLOWS #
# ACTIVITI WORKFLOWS #
#######################
#
@@ -54,7 +54,7 @@ publishWebContent.workflow.title=\u041f\u0440\u043e\u0446\u0435\u0441\u0441 Acti
publishWebContent.workflow.description=\u041f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u0432\u0435\u0431-\u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0431\u0438\u0437\u043d\u0435\u0441-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 Activiti
############################
# WORKFLOW MODEL LABELS #
# WORKFLOW MODEL LABELS #
############################
# Adhoc Task Definitions
@@ -92,6 +92,15 @@ wf_workflowmodel.type.wf_activitiReviewTask.description=\u041f\u0440\u043e\u0432
wf_workflowmodel.property.wf_reviewOutcome.title=\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442
wf_workflowmodel.property.wf_reviewOutcome.description=\u041f\u0440\u0438\u043d\u044f\u0442\u044c \u0438\u043b\u0438 \u043e\u0442\u043a\u043b\u043e\u043d\u0438\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u043d\u0442
activitiReview.task.wf_submitReviewTask.title=\u041d\u0430\u0447\u0430\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443
activitiReview.task.wf_submitReviewTask.description=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0438 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435
activitiReview.task.wf_rejectedTask.title=\u041e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u043e
activitiReview.task.wf_rejectedTask.description=\u041e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u043e
activitiReview.task.wf_approvedTask.title=\u041f\u0440\u0438\u043d\u044f\u0442\u043e
activitiReview.task.wf_approvedTask.description=\u041f\u0440\u0438\u043d\u044f\u0442\u043e
activitiReview.task.wf_activitiReviewTask.title=\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440
activitiReview.task.wf_activitiReviewTask.description=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0438 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435
# Parallel Review And Approve Task Definitions
wf_workflowmodel.type.wf_submitParallelReviewTask.title=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438
@@ -118,6 +127,7 @@ activitiParallelReview.task.wf_submitParallelReviewTask.description=\u0417\u0430
activitiParallelReview.property.wf_requiredApprovePercent.title=\u0422\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u043d\u0442 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f
activitiParallelReview.property.wf_requiredApprovePercent.description=\u041f\u0440\u043e\u0446\u0435\u043d\u0442 \u0440\u0435\u0446\u0435\u043d\u0437\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0435\u0433\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f
activitiParallelReview.task.wf_activitiReviewTask.title=\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c
activitiParallelReview.task.wf_activitiReviewTask.description=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0438 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435
activitiParallelReview.task.wf_rejectedParallelTask.title=\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d
activitiParallelReview.task.wf_approvedParallelTask.title=\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d
activitiParallelReview.property.wf_reviewerCount.title=\u0427\u0438\u0441\u043b\u043e \u0440\u0435\u0446\u0435\u043d\u0437\u0435\u043d\u0442\u043e\u0432
@@ -130,12 +140,21 @@ activitiParallelReview.property.wf_actualPercent.title=\u0424\u0430\u043a\u0442\
activitiParallelReview.property.wf_actualPercent.description=\u0424\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u043d\u0442 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f
activitiParallelReview.property.wf_reviewOutcome.title=\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442
activitiParallelReview.property.wf_reviewOutcome.description=\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442
activitiParallelGroupReview.task.wf_activitiReviewTask.title=\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440
activitiParallelGroupReview.task.wf_activitiReviewTask.description=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0438 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435
# Pooled Review Task Definitions
wf_workflowmodel.type.wf_submitGroupReviewTask.title=\u041d\u0430\u0447\u0430\u0442\u044c \u0433\u0440\u0443\u043f\u043f\u043e\u0432\u0443\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443
wf_workflowmodel.type.wf_submitGroupReviewTask.description=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0438 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u0433\u0440\u0443\u043f\u043f\u0435 \u043b\u044e\u0434\u0435\u0439
activitiReviewPooled.task.wf_activitiReviewTask.title=\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440
activitiReviewPooled.task.wf_activitiReviewTask.description=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0438 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435
activitiReviewPooled.task.wf_rejectedTask.title=\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d
activitiReviewPooled.task.wf_rejectedTask.description=\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d
activitiReviewPooled.task.wf_approvedTask.title=\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d
activitiReviewPooled.task.wf_approvedTask.description=\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d
# List constraint display labels
listconstraint.wf_reviewOutcomeOptions.Approve=\u041f\u0440\u0438\u043d\u044f\u0442\u044c
listconstraint.wf_reviewOutcomeOptions.Reject=\u041e\u0442\u043a\u043b\u043e\u043d\u0438\u0442\u044c
@@ -146,3 +165,7 @@ workflowtask.outcome.Approve=\u041f\u0440\u0438\u043d\u044f\u0442\u043e
workflowtask.outcome.Reject=\u041e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u043e
workflowtask.already.done.error=\u0417\u0430\u0434\u0430\u0447\u0430 \u0443\u0436\u0435 \u0431\u044b\u043b\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430, \u0435\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u043b\u044c\u0437\u044f \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c.
# Reset password Task Definitions
resetpasswordwf_resetpassword.resetpassword.workflow.title=\u0417\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0441\u0431\u0440\u043e\u0441 \u043f\u0430\u0440\u043e\u043b\u044f.
resetpasswordwf_resetpassword.resetpassword.workflow.description=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0430 \u0441\u0431\u0440\u043e\u0441 \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u0430\u0440\u043e\u043b\u044f.

View File

@@ -1,7 +1,7 @@
# Display labels for out-of-the-box Content-oriented Workflows
#######################
# ACTIVITI WORKFLOWS #
# ACTIVITI WORKFLOWS #
#######################
#
@@ -54,7 +54,7 @@ publishWebContent.workflow.title=\u53d1\u5e03 Web \u5185\u5bb9\u7684 Activiti \u
publishWebContent.workflow.description=\u4f7f\u7528 Activiti \u5de5\u4f5c\u6d41\u7a0b\u5f15\u64ce\u53d1\u5e03 Web \u5185\u5bb9
############################
# WORKFLOW MODEL LABELS #
# WORKFLOW MODEL LABELS #
############################
# Adhoc Task Definitions
@@ -92,6 +92,15 @@ wf_workflowmodel.type.wf_activitiReviewTask.description=\u590d\u67e5\u6587\u6863
wf_workflowmodel.property.wf_reviewOutcome.title=\u590d\u67e5\u7ed3\u679c
wf_workflowmodel.property.wf_reviewOutcome.description=\u6279\u51c6\u6216\u62d2\u7edd\u5185\u5bb9
activitiReview.task.wf_submitReviewTask.title=\u5f00\u59cb\u590d\u67e5
activitiReview.task.wf_submitReviewTask.description=\u63d0\u4ea4\u6587\u6863\u4f9b\u590d\u67e5\u548c\u6279\u51c6
activitiReview.task.wf_rejectedTask.title=\u5df2\u62d2\u7edd
activitiReview.task.wf_rejectedTask.description=\u5df2\u62d2\u7edd
activitiReview.task.wf_approvedTask.title=\u5df2\u6279\u51c6
activitiReview.task.wf_approvedTask.description=\u5df2\u6279\u51c6
activitiReview.task.wf_activitiReviewTask.title=\u590d\u67e5
activitiReview.task.wf_activitiReviewTask.description=\u4f9b\u590d\u67e5\u548c\u6279\u51c6\u7684\u6587\u6863
# Parallel Review And Approve Task Definitions
wf_workflowmodel.type.wf_submitParallelReviewTask.title=\u53d1\u9001\u6587\u6863\u4f9b\u590d\u67e5
@@ -118,6 +127,7 @@ activitiParallelReview.task.wf_submitParallelReviewTask.description=\u4e00\u4f4d
activitiParallelReview.property.wf_requiredApprovePercent.title=\u6240\u9700\u6279\u51c6\u767e\u5206\u6bd4
activitiParallelReview.property.wf_requiredApprovePercent.description=\u8fbe\u5230\u6279\u51c6\u6761\u4ef6\u6240\u9700\u6279\u51c6\u590d\u67e5\u8005\u6240\u5360\u767e\u5206\u6bd4
activitiParallelReview.task.wf_activitiReviewTask.title=\u590d\u67e5
activitiParallelReview.task.wf_activitiReviewTask.description=\u4f9b\u590d\u67e5\u548c\u6279\u51c6\u7684\u6587\u6863
activitiParallelReview.task.wf_rejectedParallelTask.title=\u6587\u6863\u88ab\u62d2\u7edd
activitiParallelReview.task.wf_approvedParallelTask.title=\u5df2\u6279\u51c6\u6587\u6863
activitiParallelReview.property.wf_reviewerCount.title=\u590d\u67e5\u8005\u6570
@@ -130,12 +140,21 @@ activitiParallelReview.property.wf_actualPercent.title=\u5b9e\u9645\u6279\u51c6\
activitiParallelReview.property.wf_actualPercent.description=\u5b9e\u9645\u6279\u51c6\u767e\u5206\u6bd4
activitiParallelReview.property.wf_reviewOutcome.title=\u590d\u67e5\u7ed3\u679c
activitiParallelReview.property.wf_reviewOutcome.description=\u590d\u67e5\u7ed3\u679c
activitiParallelGroupReview.task.wf_activitiReviewTask.title=\u590d\u67e5
activitiParallelGroupReview.task.wf_activitiReviewTask.description=\u4f9b\u590d\u67e5\u548c\u6279\u51c6\u7684\u6587\u6863
# Pooled Review Task Definitions
wf_workflowmodel.type.wf_submitGroupReviewTask.title=\u5f00\u59cb\u7ec4\u590d\u67e5
wf_workflowmodel.type.wf_submitGroupReviewTask.description=\u5411\u4e00\u7ec4\u4eba\u5458\u63d0\u4ea4\u6587\u6863\u4f9b\u590d\u67e5\u548c\u6279\u51c6
activitiReviewPooled.task.wf_activitiReviewTask.title=\u590d\u67e5
activitiReviewPooled.task.wf_activitiReviewTask.description=\u4f9b\u590d\u67e5\u548c\u6279\u51c6\u7684\u6587\u6863
activitiReviewPooled.task.wf_rejectedTask.title=\u6587\u6863\u88ab\u62d2\u7edd
activitiReviewPooled.task.wf_rejectedTask.description=\u6587\u6863\u88ab\u62d2\u7edd
activitiReviewPooled.task.wf_approvedTask.title=\u5df2\u6279\u51c6\u6587\u6863
activitiReviewPooled.task.wf_approvedTask.description=\u5df2\u6279\u51c6\u6587\u6863
# List constraint display labels
listconstraint.wf_reviewOutcomeOptions.Approve=\u6279\u51c6
listconstraint.wf_reviewOutcomeOptions.Reject=\u62d2\u7edd
@@ -146,3 +165,7 @@ workflowtask.outcome.Approve=\u5df2\u6279\u51c6
workflowtask.outcome.Reject=\u5df2\u62d2\u7edd
workflowtask.already.done.error=\u6b64\u4efb\u52a1\u5df2\u5b8c\u6210\uff0c\u65e0\u6cd5\u518d\u7f16\u8f91\u3002
# Reset password Task Definitions
resetpasswordwf_resetpassword.resetpassword.workflow.title=\u8bf7\u6c42\u5bc6\u7801\u91cd\u7f6e\u3002
resetpasswordwf_resetpassword.resetpassword.workflow.description=\u7531\u7528\u6237\u4f7f\u7528\u4ee5\u8bf7\u6c42\u91cd\u7f6e\u5176\u5bc6\u7801\u3002

View File

@@ -613,17 +613,18 @@ public class CommentServiceImpl extends AbstractLifecycleBean implements Comment
NodeRef discussableNodeRef = getDiscussableAncestor(commentNodeRef);
if (discussableNodeRef.equals(discussableNode))
{
if (!isWorkingCopyOrLocked(discussableNode))
if (!isWorkingCopyOrLocked(discussableNode)
|| isLockOwner(discussableNode))
{
canEdit = canEditPermission(commentNodeRef);
canDelete = canDeletePermission(commentNodeRef);
}
}
Map<String, Boolean> map = new HashMap<>(2);
map.put(CommentService.CAN_EDIT, canEdit);
map.put(CommentService.CAN_DELETE, canDelete);
return map;
}
@@ -637,12 +638,17 @@ public class CommentServiceImpl extends AbstractLifecycleBean implements Comment
boolean isCoordinator = permissionService.hasPermission(commentNodeRef, PermissionService.COORDINATOR) == (AccessStatus.ALLOWED);
return (isSiteManager || isCoordinator || currentUser.equals(creator) || currentUser.equals(owner));
}
private boolean canDeletePermission(NodeRef commentNodeRef)
{
return permissionService.hasPermission(commentNodeRef, PermissionService.DELETE) == AccessStatus.ALLOWED;
}
private boolean isLockOwner(NodeRef nodeRef)
{
return lockService.getLockStatus(nodeRef) == LockStatus.LOCK_OWNER;
}
private boolean isWorkingCopyOrLocked(NodeRef nodeRef)
{
boolean isWorkingCopy = false;
@@ -667,7 +673,7 @@ public class CommentServiceImpl extends AbstractLifecycleBean implements Comment
}
return (isWorkingCopy || isLocked);
}
@Override
public void onUpdateProperties(NodeRef commentNodeRef, Map<QName, Serializable> before, Map<QName, Serializable> after)
{
@@ -675,10 +681,11 @@ public class CommentServiceImpl extends AbstractLifecycleBean implements Comment
if (discussableNodeRef != null)
{
if (behaviourFilter.isEnabled(ContentModel.ASPECT_LOCKABLE)
&& isWorkingCopyOrLocked(discussableNodeRef))
&& isWorkingCopyOrLocked(discussableNodeRef)
&& !isLockOwner(discussableNodeRef))
{
List<QName> changedProperties = getChangedProperties(before, after);
// check if comment updated (rather than some other change, eg. addition of lockable aspect only)
boolean commentUpdated = false;
for (QName changedProperty : changedProperties)
@@ -693,7 +700,7 @@ public class CommentServiceImpl extends AbstractLifecycleBean implements Comment
}
}
}
if (commentUpdated)
{
throw new NodeLockedException(discussableNodeRef);
@@ -741,20 +748,22 @@ public class CommentServiceImpl extends AbstractLifecycleBean implements Comment
return results;
}
@Override
public void beforeDeleteNode(final NodeRef commentNodeRef)
{
NodeRef discussableNodeRef = getDiscussableAncestor(commentNodeRef);
if (discussableNodeRef != null)
{
boolean canDelete = canDeletePermission(commentNodeRef);
if (behaviourFilter.isEnabled(ContentModel.ASPECT_LOCKABLE) // eg. delete site (MNT-14671)
&& isWorkingCopyOrLocked(discussableNodeRef))
&& isWorkingCopyOrLocked(discussableNodeRef)
&& !isLockOwner(discussableNodeRef)
&& !canDelete)
{
throw new NodeLockedException(discussableNodeRef);
}
boolean canDelete = canDeletePermission(commentNodeRef);
if (! canDelete)
{
throw new AccessDeniedException("Cannot delete comment");

View File

@@ -34,134 +34,142 @@ import org.alfresco.service.cmr.site.SiteRole;
* @author steveglover
*
*/
public class SiteMembership
{
private SiteInfo siteInfo;
private String personId;
private String firstName;
private String lastName;
private String role;
public SiteMembership(SiteInfo siteInfo, String personId, String firstName, String lastName, String role)
{
super();
if(siteInfo == null)
{
throw new java.lang.IllegalArgumentException();
}
if(personId == null)
{
throw new java.lang.IllegalArgumentException();
}
if(firstName == null)
{
throw new java.lang.IllegalArgumentException();
}
if(lastName == null)
{
throw new java.lang.IllegalArgumentException();
}
if(role == null)
{
throw new java.lang.IllegalArgumentException();
}
this.siteInfo = siteInfo;
this.personId = personId;
this.firstName = firstName;
this.lastName = lastName;
this.role = role;
}
public SiteMembership(SiteInfo siteInfo, String personId, String role)
{
super();
if(siteInfo == null)
{
throw new java.lang.IllegalArgumentException();
}
if(personId == null)
{
throw new java.lang.IllegalArgumentException();
}
if(role == null)
{
throw new java.lang.IllegalArgumentException();
}
this.siteInfo = siteInfo;
this.personId = personId;
this.role = role;
}
public SiteInfo getSiteInfo()
{
return siteInfo;
}
public String getPersonId()
{
return personId;
}
public String getFirstName()
{
return firstName;
}
public String getLastName()
{
return lastName;
}
public String getRole()
{
return role;
}
@Override
public int hashCode()
{
final int prime = 31;
int result = 1;
result = prime * result
+ ((personId == null) ? 0 : personId.hashCode());
result = prime * result + ((role == null) ? 0 : role.hashCode());
result = prime * result
+ ((getSiteInfo() == null) ? 0 : getSiteInfo().hashCode());
return result;
}
@Override
public boolean equals(Object obj)
{
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
SiteMembership other = (SiteMembership) obj;
if (personId == null) {
if (other.personId != null)
return false;
} else if (!personId.equals(other.personId))
return false;
if (role != other.role)
return false;
if (getSiteInfo() == null) {
if (other.getSiteInfo() != null)
return false;
} else if (!getSiteInfo().equals(other.getSiteInfo()))
return false;
return true;
}
@Override
public String toString()
{
return "SiteMembership [siteInfo=" + getSiteInfo()
+ ", personId=" + personId + ", firstName=" + firstName
+ ", lastName=" + lastName + ", role=" + role + "]";
}
}
public class SiteMembership
{
private SiteInfo siteInfo;
private String personId;
private String firstName;
private String lastName;
private String role;
public SiteMembership(SiteInfo siteInfo, String personId, String firstName, String lastName,
String role)
{
super();
if (siteInfo == null)
{
throw new java.lang.IllegalArgumentException();
}
if (personId == null)
{
throw new java.lang.IllegalArgumentException(
"Person required building site membership of " + siteInfo.getShortName());
}
if (firstName == null)
{
throw new java.lang.IllegalArgumentException(
"FirstName required building site membership of " + siteInfo.getShortName());
}
if (lastName == null)
{
throw new java.lang.IllegalArgumentException(
"LastName required building site membership of " + siteInfo.getShortName());
}
if (role == null)
{
throw new java.lang.IllegalArgumentException(
"Role required building site membership of " + siteInfo.getShortName());
}
this.siteInfo = siteInfo;
this.personId = personId;
this.firstName = firstName;
this.lastName = lastName;
this.role = role;
}
public SiteMembership(SiteInfo siteInfo, String personId, String role)
{
super();
if (siteInfo == null)
{
throw new java.lang.IllegalArgumentException();
}
if (personId == null)
{
throw new java.lang.IllegalArgumentException(
"Person required building site membership of " + siteInfo.getShortName());
}
if (role == null)
{
throw new java.lang.IllegalArgumentException(
"Role required building site membership of " + siteInfo.getShortName());
}
this.siteInfo = siteInfo;
this.personId = personId;
this.role = role;
}
public SiteInfo getSiteInfo()
{
return siteInfo;
}
public String getPersonId()
{
return personId;
}
public String getFirstName()
{
return firstName;
}
public String getLastName()
{
return lastName;
}
public String getRole()
{
return role;
}
@Override
public int hashCode()
{
final int prime = 31;
int result = 1;
result = prime * result + ((personId == null) ? 0 : personId.hashCode());
result = prime * result + ((role == null) ? 0 : role.hashCode());
result = prime * result + ((getSiteInfo() == null) ? 0 : getSiteInfo().hashCode());
return result;
}
@Override
public boolean equals(Object obj)
{
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
SiteMembership other = (SiteMembership) obj;
if (personId == null)
{
if (other.personId != null)
return false;
}
else if (!personId.equals(other.personId))
return false;
if (role != other.role)
return false;
if (getSiteInfo() == null)
{
if (other.getSiteInfo() != null)
return false;
}
else if (!getSiteInfo().equals(other.getSiteInfo()))
return false;
return true;
}
@Override
public String toString()
{
return "SiteMembership [siteInfo=" + getSiteInfo() + ", personId=" + personId
+ ", firstName=" + firstName + ", lastName=" + lastName + ", role=" + role + "]";
}
}

View File

@@ -1,34 +1,35 @@
/*
* #%L
* Alfresco Repository
* %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
/*
* #%L
* Alfresco Repository
* %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.repo.forum;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.io.Serializable;
import java.util.ArrayList;
@@ -41,6 +42,7 @@ import org.alfresco.model.ForumModel;
import org.alfresco.repo.content.MimetypeMap;
import org.alfresco.repo.domain.activities.ActivityPostDAO;
import org.alfresco.repo.domain.activities.ActivityPostEntity;
import org.alfresco.repo.lock.mem.Lifetime;
import org.alfresco.repo.model.Repository;
import org.alfresco.repo.policy.BehaviourFilter;
import org.alfresco.repo.security.authentication.AuthenticationComponent;
@@ -50,6 +52,9 @@ import org.alfresco.repo.security.permissions.impl.ModelDAO;
import org.alfresco.repo.security.permissions.impl.PermissionServiceImpl;
import org.alfresco.repo.site.SiteModel;
import org.alfresco.repo.transaction.RetryingTransactionHelper;
import org.alfresco.service.cmr.lock.LockService;
import org.alfresco.service.cmr.lock.LockType;
import org.alfresco.service.cmr.lock.NodeLockedException;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.ContentData;
import org.alfresco.service.cmr.repository.ContentService;
@@ -65,6 +70,7 @@ import org.alfresco.service.cmr.site.SiteService;
import org.alfresco.service.cmr.site.SiteVisibility;
import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.GUID;
import org.alfresco.util.PropertyMap;
import org.alfresco.util.test.junitrules.AlfrescoPerson;
import org.alfresco.util.test.junitrules.ApplicationContextInit;
@@ -83,33 +89,35 @@ import org.junit.rules.RuleChain;
* Test class for some {@link ForumModel forum model}-related functionality, specifically comments.
* There is no (fully-featured) "CommentService" or "DiscussionService" and the REST API simply creates the appropriate
* content structure as required by the forum model.
*
*
* @author Neil McErlean
* @since 4.0
*/
public class CommentsTest
{
private static final ApplicationContextInit APP_CONTEXT_INIT = new ApplicationContextInit();
public static final String USER_ONE_NAME = "userone";
public static final String USER_TWO_NAME = "usertwo";
public static final String USER_THREE_NAME = "userthree";
public static final AlfrescoPerson TEST_USER1 = new AlfrescoPerson(APP_CONTEXT_INIT, USER_ONE_NAME);
// Tie them together in a static Rule Chain
@ClassRule public static RuleChain STATIC_RULE_CHAIN = RuleChain.outerRule(APP_CONTEXT_INIT)
.around(TEST_USER1);
// A JUnit Rule to run all tests as user1
public RunAsFullyAuthenticatedRule runAsRule = new RunAsFullyAuthenticatedRule(TEST_USER1);
// A JUnit Rule to manage test nodes use in each test method
public TemporaryNodes testNodes = new TemporaryNodes(APP_CONTEXT_INIT);
public TemporarySites testSites = new TemporarySites(APP_CONTEXT_INIT);
// Tie them together in a non-static rule chain.
@Rule public RuleChain ruleChain = RuleChain.outerRule(runAsRule)
.around(testSites)
.around(testNodes);
// Services
private static BehaviourFilter behaviourFilter;
private static ContentService contentService;
@@ -124,13 +132,14 @@ public class CommentsTest
private static ActivityPostDAO postDAO;
private static PermissionServiceImpl permissionServiceImpl;
private static ModelDAO permissionModelDAO;
private static LockService lockService;
// These NodeRefs are used by the test methods.
private static NodeRef COMPANY_HOME;
private SiteInfo testSite;
private NodeRef testFolder;
private List<NodeRef> testDocs;
@BeforeClass public static void initBasicServices() throws Exception
{
behaviourFilter = (BehaviourFilter)APP_CONTEXT_INIT.getApplicationContext().getBean("policyBehaviourFilter");
@@ -139,7 +148,7 @@ public class CommentsTest
repositoryHelper = (Repository)APP_CONTEXT_INIT.getApplicationContext().getBean("repositoryHelper");
siteService = (SiteService)APP_CONTEXT_INIT.getApplicationContext().getBean("SiteService");
transactionHelper = (RetryingTransactionHelper)APP_CONTEXT_INIT.getApplicationContext().getBean("retryingTransactionHelper");
authenticationComponent = (AuthenticationComponent)APP_CONTEXT_INIT.getApplicationContext().getBean("authenticationComponent");
commentService = (CommentService)APP_CONTEXT_INIT.getApplicationContext().getBean("commentService");
authenticationService = (MutableAuthenticationService)APP_CONTEXT_INIT.getApplicationContext().getBean("AuthenticationService");
@@ -147,10 +156,11 @@ public class CommentsTest
postDAO = (ActivityPostDAO)APP_CONTEXT_INIT.getApplicationContext().getBean("postDAO");
permissionServiceImpl = (PermissionServiceImpl)APP_CONTEXT_INIT.getApplicationContext().getBean("permissionServiceImpl");
permissionModelDAO = (ModelDAO)APP_CONTEXT_INIT.getApplicationContext().getBean("permissionsModelDAO");
lockService = (LockService)APP_CONTEXT_INIT.getApplicationContext().getBean("lockService");
COMPANY_HOME = repositoryHelper.getCompanyHome();
}
@Before public void createSomeContentForCommentingOn() throws Exception
{
// Create some content which we will comment on.
@@ -160,16 +170,14 @@ public class CommentsTest
testDocs = new ArrayList<NodeRef>(3);
for (int i = 0; i < 3; i++)
{
NodeRef testNode = testNodes.createQuickFile(MimetypeMap.MIMETYPE_TEXT_PLAIN, COMPANY_HOME, "testDocInFolder" + i, TEST_USER1.getUsername());
NodeRef testNode = testNodes.createQuickFile(MimetypeMap.MIMETYPE_TEXT_PLAIN, testFolder, "testDocInFolder_" + GUID.generate() + "_" + i, TEST_USER1.getUsername());
testDocs.add(testNode);
}
}
// MNT-11667 "createComment" method creates activity for users who are not supposed to see the file
@Test public void testMNT11667() throws Exception
{
final String userTwo = "usertwo";
try
{
transactionHelper.doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback<Void>()
@@ -179,17 +187,17 @@ public class CommentsTest
{
authenticationComponent.setCurrentUser(AuthenticationUtil.getAdminUserName());
createUser(userTwo);
createUser(USER_TWO_NAME);
assertTrue(siteService.hasSite(testSite.getShortName()));
authenticationComponent.setCurrentUser(USER_ONE_NAME);
// invite user to a site with 'Collaborator' role
siteService.setMembership(testSite.getShortName(), userTwo, SiteModel.SITE_COLLABORATOR);
siteService.setMembership(testSite.getShortName(), USER_TWO_NAME, SiteModel.SITE_COLLABORATOR);
assertEquals(SiteModel.SITE_MANAGER, siteService.getMembersRole(testSite.getShortName(), USER_ONE_NAME));
assertEquals(SiteModel.SITE_COLLABORATOR, siteService.getMembersRole(testSite.getShortName(), userTwo));
assertEquals(SiteModel.SITE_COLLABORATOR, siteService.getMembersRole(testSite.getShortName(), USER_TWO_NAME));
// get container of site
NodeRef doclib = siteService.getContainer(testSite.getShortName(), SiteService.DOCUMENT_LIBRARY);
@@ -233,7 +241,7 @@ public class CommentsTest
assertTrue(permissionServiceImpl.hasPermission(nodeRef, getPermission(PermissionService.WRITE)) == AccessStatus.ALLOWED);
assertTrue(permissionServiceImpl.hasPermission(nodeRef, getPermission(PermissionService.DELETE)) == AccessStatus.ALLOWED);
authenticationComponent.setCurrentUser(userTwo);
authenticationComponent.setCurrentUser(USER_TWO_NAME);
assertTrue(permissionServiceImpl.hasPermission(nodeRef, getPermission(PermissionService.READ)) == AccessStatus.DENIED);
assertTrue(permissionServiceImpl.hasPermission(nodeRef, getPermission(PermissionService.WRITE)) == AccessStatus.DENIED);
@@ -248,24 +256,24 @@ public class CommentsTest
{
authenticationComponent.setCurrentUser(AuthenticationUtil.getAdminUserName());
if (personService.personExists(userTwo))
if (personService.personExists(USER_TWO_NAME))
{
personService.deletePerson(userTwo);
personService.deletePerson(USER_TWO_NAME);
}
if (authenticationService.authenticationExists(userTwo))
if (authenticationService.authenticationExists(USER_TWO_NAME))
{
authenticationService.deleteAuthentication(userTwo);
authenticationService.deleteAuthentication(USER_TWO_NAME);
}
}
}
private PermissionReference getPermission(String permission)
{
return permissionModelDAO.getPermissionReference(null, permission);
}
private void createUser(String userName)
{
// if user with given user name doesn't already exist then create user
@@ -273,7 +281,7 @@ public class CommentsTest
{
// create user
authenticationService.createAuthentication(userName, "password".toCharArray());
// create person properties
PropertyMap personProps = new PropertyMap();
personProps.put(ContentModel.PROP_USERNAME, userName);
@@ -282,12 +290,12 @@ public class CommentsTest
personProps.put(ContentModel.PROP_EMAIL, "FirstName123.LastName123@email.com");
personProps.put(ContentModel.PROP_JOBTITLE, "JobTitle123");
personProps.put(ContentModel.PROP_JOBTITLE, "Organisation123");
// create person node for user
personService.createPerson(personProps);
}
}
/**
* This test method comments on some nodes asserting that the commentCount rollup property
* responds correctly to the changing number of comments.
@@ -304,28 +312,28 @@ public class CommentsTest
{
assertCommentCountIs(nr, 0);
}
// Comment on each node twice
Map<NodeRef, List<NodeRef>> mapDiscussableToComments = new HashMap<NodeRef, List<NodeRef>>();
for (NodeRef nr : testDocs)
{
final ArrayList<NodeRef> comments = new ArrayList<NodeRef>();
mapDiscussableToComments.put(nr, comments);
comments.add(applyComment(nr, "Test comment 1 " + System.currentTimeMillis()));
Thread.sleep(50); // 50 ms sleep so comments aren't simultaneous.
comments.add(applyComment(nr, "Test comment 2 " + System.currentTimeMillis()));
Thread.sleep(50);
}
// Check that the rollup comment counts are accurate.
for (NodeRef nr : testDocs)
{
assertCommentCountIs(nr, 2);
}
// Remove comments
for (Map.Entry<NodeRef, List<NodeRef>> entry : mapDiscussableToComments.entrySet())
{
@@ -363,39 +371,126 @@ public class CommentsTest
assertTrue("Not enough test docs for this test case", testDocs.size() >= 2);
NodeRef node1 = testDocs.get(0);
NodeRef node2 = testDocs.get(1);
// We will simulate pre-Swift commenting by temporarily disabling the behaviours that add the aspect & do the rollups.
behaviourFilter.disableBehaviour(ForumModel.TYPE_POST);
for (NodeRef nr : new NodeRef[]{node1, node2})
{
// All test nodes initially do not have the commentsRollup aspect.
assertFalse("Test node had comments rollup aspect.", nodeService.hasAspect(nr, ForumModel.ASPECT_COMMENTS_ROLLUP));
}
// Comment on each node - we need to save one comment noderef in order to delete it later.
NodeRef commentOnNode1 = applyComment(node1, "Hello", true);
applyComment(node1, "Bonjour", true);
applyComment(node2, "Hola", true);
applyComment(node2, "Bout ye?", true);
// Check that the rollup comment counts are still not present. And re-enable the behaviours after we check.
for (NodeRef nr : new NodeRef[]{node1, node2})
{
assertFalse("Test node had comments rollup aspect.", nodeService.hasAspect(nr, ForumModel.ASPECT_COMMENTS_ROLLUP));
}
behaviourFilter.enableBehaviour(ForumModel.TYPE_POST);
// Now the addition or deletion of a comment, should trigger a recalculation of the comment rollup from scratch.
applyComment(node2, "hello again");
nodeService.deleteNode(commentOnNode1);
assertCommentCountIs(node2, 3);
assertCommentCountIs(node1, 1);
return null;
}
});
}
/**
* REPO-2557, ALF-21907
*/
@Test public void testAddingCommentOnLockedNode()
{
// create user 2 and 3
transactionHelper.doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback<Void>()
{
@Override
public Void execute() throws Throwable
{
authenticationComponent.setCurrentUser(AuthenticationUtil.getAdminUserName());
createUser(USER_TWO_NAME);
createUser(USER_THREE_NAME);
siteService.setMembership(testSite.getShortName(), USER_TWO_NAME, SiteModel.SITE_MANAGER);
siteService.setMembership(testSite.getShortName(), USER_THREE_NAME, SiteModel.SITE_MANAGER);
return null;
}
});
// switch to user 1
authenticationComponent.setCurrentUser(USER_ONE_NAME);
// create some comments
final NodeRef testDoc = testDocs.get(0);
transactionHelper.doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback<Void>()
{
@Override
public Void execute() throws Throwable
{
applyComment(testDoc, "Hello 1");
applyComment(testDoc, "Hello 2");
return null;
}
});
authenticationComponent.setCurrentUser(USER_TWO_NAME);
// lock node
transactionHelper.doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback<Void>()
{
@Override
public Void execute() throws Throwable
{
lockService.lock(testDoc, LockType.WRITE_LOCK, (int) 3600, Lifetime.PERSISTENT, "someInfo");
return null;
}
});
authenticationComponent.setCurrentUser(USER_THREE_NAME);
try
{
transactionHelper.doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback<Void>()
{
@Override
public Void execute() throws Throwable
{
applyComment(testDoc, "Hello 3");
return null;
}
});
fail("NodeLockedException not thrown");
}
catch(NodeLockedException e)
{
// Fails because is not the lock owner
}
// change to lock owner
authenticationComponent.setCurrentUser(USER_TWO_NAME);
transactionHelper.doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback<Void>()
{
@Override
public Void execute() throws Throwable
{
applyComment(testDoc, "Hello 3");
return null;
}
});
assertCommentCountIs(testDoc, 3);
authenticationComponent.setCurrentUser(AuthenticationUtil.getAdminUserName());
}
/**
* This test method tests that nodes whose commentCount is set to -1 have their commentCounts recalculated.

View File

@@ -0,0 +1,136 @@
/*
* #%L
* Alfresco Repository
* %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.repo.site;
import static org.junit.Assert.assertEquals;
import java.util.UUID;
import org.alfresco.service.cmr.site.SiteInfo;
import org.alfresco.service.cmr.site.SiteVisibility;
import org.junit.Before;
import org.junit.Test;
/**
* Test Membership constructor logs. Based on REPO-2520
*
* @author Alexandru Epure
*/
public class SiteMembershipTest
{
SiteInfo siteInfo;
SiteMembership siteMember;
String personId = UUID.randomUUID().toString();
String firstName = UUID.randomUUID().toString();
String lastName = UUID.randomUUID().toString();
String role = "Consumer";
String personErrorMessage = "Person required building site membership of ";
String firstNameErrorMessage = "FirstName required building site membership of ";
String lastNameErrorMessage = "LastName required building site membership of ";
String roleErrorMessage = "Role required building site membership of ";
@Before
public void createSite()
{
String sitePreset = "testSiteMembershipPreset";
String shortName = "testSiteMembershipShortName";
String title = "testSiteMembershipTile";
String description = "testSiteMembershipDescription";
siteInfo = new SiteInfoImpl(sitePreset, shortName, title, description,
SiteVisibility.PUBLIC, null);
}
@Test
public void testNullpersonInfo() throws Exception
{
try
{
siteMember = new SiteMembership(siteInfo, null, firstName, lastName, role);
}
catch (IllegalArgumentException e)
{
assertEquals(personErrorMessage + siteInfo.getShortName(), e.getMessage());
}
try
{
siteMember = new SiteMembership(siteInfo, null, role);
}
catch (IllegalArgumentException e)
{
assertEquals(personErrorMessage + siteInfo.getShortName(), e.getMessage());
}
}
@Test
public void testNullRole() throws Exception
{
try
{
siteMember = new SiteMembership(siteInfo, personId, firstName, lastName, null);
}
catch (IllegalArgumentException e)
{
assertEquals(roleErrorMessage + siteInfo.getShortName(), e.getMessage());
}
try
{
siteMember = new SiteMembership(siteInfo, personId, null);
}
catch (IllegalArgumentException e)
{
assertEquals(roleErrorMessage + siteInfo.getShortName(), e.getMessage());
}
}
@Test
public void testNullFirstName() throws Exception
{
try
{
siteMember = new SiteMembership(siteInfo, personId, null, lastName, role);
}
catch (IllegalArgumentException e)
{
assertEquals(firstNameErrorMessage + siteInfo.getShortName(), e.getMessage());
}
}
@Test
public void testNullLastNale() throws Exception
{
try
{
siteMember = new SiteMembership(siteInfo, personId, firstName, null, role);
}
catch (IllegalArgumentException e)
{
assertEquals(lastNameErrorMessage + siteInfo.getShortName(), e.getMessage());
}
}
}