Commit 321c60fe authored by Alexandre Morin's avatar Alexandre Morin

Merge branch 'hotfix/2.1.1' into 'master'

Hotfix/2.1.1

See merge request !37
parents 1225885d 7c0533b4
......@@ -116,10 +116,10 @@ securityPolicy = "{
'loginAttempts' : 3,
'passwordValidity' : 0,
'newPasswordValidity' : 1,
'passwordMinLength' : 0,
'passwordRequiresSpecialChars' : 0,
'passwordRequiresDigits' : 0,
'passwordRequiresMixedCase' : 0,
'passwordMinLength' : 8,
'passwordRequiresSpecialChars' : 1,
'passwordRequiresDigits' : 1,
'passwordRequiresMixedCase' : 1,
'sessionTimeout' : 3600,
'lockDelay' : 30
}"
......
......@@ -281,7 +281,7 @@ class Document extends \dependency\xml\Document
$this->addScript("/public/js/gritter_1.7.4/gritter.js");
//typeahead
$this->addScript("/public/js/typeahead_0.10.2/typeahead.js");
$this->addScript("/public/js/typeahead_0.11.1/typeahead.js");
//$this->addScript("/public/js/bootstrap-daterangepicker/moment.min.js");
//$this->addScript("/public/js/bootstrap-daterangepicker/daterangepicker.js");
......
......@@ -212,6 +212,8 @@ class logger
\laabs::callService(
'audit/event/create', $this->servicePath->getName(), $this->servicePath->variables, $input, $output, true
);
$this->servicePath = null;
}
/**
......
......@@ -41,35 +41,41 @@ trait ForgotAccountTrait
*/
public function forgotAccount($username, $email)
{
if (!$this->sdoFactory->exists("auth/account", array("accountName" => $username))) {
throw \laabs::newException('auth/authenticationException', 'Invalid username or email.', 401);
}
$result = null;
$userAccount = $this->sdoFactory->read("auth/account", array("accountName" => $username));
try {
if (!$this->sdoFactory->exists("auth/account", array("accountName" => $username))) {
throw \laabs::newException('auth/authenticationException', 'Invalid username or email.', 401);
}
if ($userAccount->enabled != true) {
throw \laabs::newException('auth/authenticationException', 'User %1$s is disabled', 403, null, array($username));
}
$userAccount = $this->sdoFactory->read("auth/account", array("accountName" => $username));
if ($email != $userAccount->emailAddress) {
throw \laabs::newException('auth/authenticationException', 'Invalid username or email.', 401);
}
if ($userAccount->enabled != true) {
throw \laabs::newException('auth/authenticationException', 'User %1$s is disabled', 403, null, array($username));
}
$data = new \stdClass();
$data->accountId = $userAccount->accountId;
$data->tokenDate = \laabs::newTimestamp();
if ($email != $userAccount->emailAddress) {
throw \laabs::newException('auth/authenticationException', 'Invalid username or email.', 401);
}
$userAccount->tokenDate = $data->tokenDate;
$this->sdoFactory->update($userAccount, "auth/account");
$data = new \stdClass();
$data->accountId = $userAccount->accountId;
$data->tokenDate = \laabs::newTimestamp();
$token = $this->generateEncodedToken($data);
$userAccount->tokenDate = $data->tokenDate;
$this->sdoFactory->update($userAccount, "auth/account");
$message = $this->getForgotAccountMessage($token);
$token = $this->generateEncodedToken($data);
$notificationDependency = \laabs::newService("dependency/notification/Notification");
$message = $this->getForgotAccountMessage($token);
$title = "Maarch RM - user information";
$result = $notificationDependency->send($title, $message, array($userAccount->emailAddress));
$notificationDependency = \laabs::newService("dependency/notification/Notification");
$title = "Maarch RM - user information";
$result = $notificationDependency->send($title, $message, array($userAccount->emailAddress));
} catch (\bundle\auth\Exception\authenticationException $e) {
\laabs::notify(LAABS_BUSINESS_EXCEPTION, $e);
}
return $result;
}
......
......@@ -31,7 +31,7 @@ class newUserAccount
{
/**
* @var string
* @pattern #^[A-Za-z][A-Za-z0-9_.@-]*[A-Za-z]$#
* @pattern #^[A-Za-z][A-Za-z0-9_.@-]*$#
* @notempty
*/
public $accountName;
......
......@@ -39,7 +39,7 @@ class userAccountUpdate
/**
* @var string
* @pattern #^[A-Za-z][A-Za-z0-9_.@-]*[A-Za-z]$#
* @pattern #^[A-Za-z][A-Za-z0-9_.@-]*$#
* @notempty
*/
public $accountName;
......
......@@ -181,17 +181,22 @@ class scheduling
$this->changeStatus($schedulingId, "running");
try {
$pathRouter = new \core\Route\PathRouter($task->route);
\core\Observer\Dispatcher::notify(LAABS_SERVICE_PATH,$pathRouter->path);
if (!empty($scheduling->parameters)) {
$info = \laabs::callServiceArgs($task->route, (array) $scheduling->parameters);
} else {
$info = \laabs::callService($task->route);
}
} catch (\Exception $e) {
\laabs::notify(LAABS_SERVICE_RETURN, $info);
} catch (\Exception $info) {
$this->changeStatus($schedulingId, "error");
$status = false;
$info = $e;
}
\laabs::notify(LAABS_BUSINESS_EXCEPTION, $info);
}
if ($status) {
$scheduling->lastExecution = \laabs::newDateTime(null, 'UTC');
......@@ -305,7 +310,7 @@ class scheduling
if(!empty($frequency[1])) {
$frequency[1] -= $H_Offset;
}
if(!empty($frequency[8])) {
if(!empty($frequency[8] && $frequency[8] != "00")) {
$frequency[8] -= $H_Offset;
}
......@@ -314,7 +319,7 @@ class scheduling
$timeAdd = strtoupper("PT".$frequency[5].$frequency[6]);
$currentDate->add(new \DateInterval($timeAdd));
if ($frequency[7] != "" && $frequency[8] != "") {
if (($frequency[7] != "" && $frequency[8] != "") && ($frequency[7] != "00" && $frequency[8] != "00")) {
$endDate->setTime($frequency[8], $frequency[7], "0");
} else {
$endDate->add(new \DateInterval("P1D"));
......@@ -336,7 +341,7 @@ class scheduling
$daysWeek = explode(",", $frequency[2]);
$timeAdd = strtoupper("PT".$frequency[5].$frequency[6]);
$currentDate->add(new \DateInterval($timeAdd));
if ($frequency[7] != "" && $frequency[8] != "") {
if ($frequency[7] != "" && $frequency[8] != "" && ($frequency[7] != "00" && $frequency[8] != "00")) {
$endDate->setTime($frequency[8], $frequency[7], "0");
} else {
$endDate->add(new \DateInterval("P1D"));
......@@ -362,7 +367,7 @@ class scheduling
$timeAdd = strtoupper("PT".$frequency[5].$frequency[6]);
$currentDate->add(new \DateInterval($timeAdd));
if ($frequency[7] != "" && $frequency[8] != "") {
if ($frequency[7] != "" && $frequency[8] != "" && ($frequency[7] != "00" && $frequency[8] != "00")) {
$endDate->setTime($frequency[8], $frequency[7], "0");
} else {
$endDate->add(new \DateInterval("P1M"));
......
......@@ -98,4 +98,15 @@ class orgContact
return true;
}
public function loadCountriesCodes()
{
$filename = 'organization'.LAABS_URI_SEPARATOR. 'countries-codes.json';
$router = new \core\Route\ResourceRouter($filename);
$file = file_get_contents($router->getResource()->getRealPath());
$countriesCodes = json_decode($file);
return $countriesCodes;
}
}
This diff is collapsed.
......@@ -56,4 +56,11 @@ interface orgContactInterface
* @action organization/orgContact/create
*/
public function deleteOrgcontact($orgContact);
/**
* Get countries codes
*
* @action organization/orgContact/loadCountriesCodes
*/
public function readCountriesCodes();
}
......@@ -610,7 +610,7 @@ class archive
$currentOrganization = \laabs::getToken("ORGANIZATION");
$userOrgList = [];
//$userOrgList = [];
$positionController = null;
if (!$currentOrganization) {
......@@ -621,15 +621,15 @@ class archive
return true;
}
if ($account->accountType == "user") {
/*if ($account->accountType == "user") {
$positionController = $this->userPositionController;
} else {
$positionController = $this->servicePositionController;
}
$userOrgList = $positionController->listMyServices();
$userOrgList = $positionController->listMyServices();*/
if (!(in_array($archive->originatorOrgRegNumber, $userOrgList) || in_array($archive->archiverOrgRegNumber, $userOrgList))) {
if (($archive->originatorOrgRegNumber != $currentOrganization->registrationNumber) || ($archive->archiverOrgRegNumber == $currentOrganization->registrationNumber)) {
throw \laabs::newException('recordsManagement/accessDeniedException', "Permission denied");
}
......
......@@ -191,7 +191,7 @@ trait archiveAccessTrait
*
* @return string Query
*/
public function getArchiveAssert($args)
public function getArchiveAssert($args,&$queryParams)
{
// Args on archive
$currentDate = \laabs::newDate();
......@@ -202,37 +202,47 @@ trait archiveAccessTrait
$queryParts[] = "archiveName='*".$args['archiveName']."*'";
}
if (!empty($args['profileReference'])) {
$queryParts[] = "archivalProfileReference='".$args['profileReference']."'";
$queryParts['archivalProfileReference'] = "archivalProfileReference = :archivalProfileReference";
$queryParams['archivalProfileReference']=$args['profileReference'];
}
if (!empty($args['agreementReference'])) {
$queryParts[] = "archivalAgreementReference='".$args['agreementReference']."'";
$queryParts['archivalAgreementReference'] = "archivalAgreementReference=:archivalAgreementReference";
$queryParts['archivalAgreementReference'] = $args['agreementReference'];
}
if (!empty($args['archiveId'])) {
$queryParts[] = "archiveId='".$args['archiveId']."'";
$queryParts['archiveId'] = "archiveId=:archiveId";
$queryParams['archiveId'] = $args['archiveId'];
}
if (!empty($args['status'])) {
$queryParts[] = "status='".$args['status']."'";
$queryParts['status'] = "status=:status";
$queryParams['status'] = $args['status'];
}
if (!empty($args['retentionRuleCode'])) {
$queryParts[] = "retentionRuleCode='".$args['retentionRuleCode']."'";
$queryParts[] = "retentionRuleCode=:retentionRuleCode";
$queryParams['retentionRuleCode'] = $args['retentionRuleCode'];
}
if (!empty($args['archiveExpired']) && $args['archiveExpired'] == "true") {
$queryParts[] = "disposalDate<='".$currentDateString."'";
$queryParts['disposalDate'] = "disposalDate<= :disposalDate";
$queryParams['disposalDate'] = $currentDateString;
}
if (!empty($args['archiveExpired']) && $args['archiveExpired'] == "false") {
$queryParts[] = "disposalDate>='".$currentDateString."'";
$queryParts['disposalDate'] = "disposalDate>= :disposalDate";
$queryParams['disposalDate'] = $currentDateString;
}
if (!empty($args['partialRetentionRule']) && $args['partialRetentionRule'] == "true") {
$queryParts[] = "(retentionDuration=NULL OR retentionStartDate=NULL OR retentionRuleCode=NULL)";
$queryParts['partialRetentionRule'] = "(retentionDuration=NULL OR retentionStartDate=NULL OR retentionRuleCode=NULL)";
}
if (!empty($args['finalDisposition'])) {
$queryParts[] = "finalDisposition='".$args['finalDisposition']."'";
$queryParts['finalDisposition'] = "finalDisposition= :finalDisposition";
$queryParams['finalDisposition'] =$args['finalDisposition'];
}
if (!empty($args['originatorOrgRegNumber'])) {
$queryParts[] = "originatorOrgRegNumber='".$args['originatorOrgRegNumber']."'";
$queryParts[] = "originatorOrgRegNumber= :originatorOrgRegNumber";
$queryParams['originatorOrgRegNumber'] = $args['originatorOrgRegNumber'];
}
if (!empty($args['originatorArchiveId'])) {
$queryParts[] = "originatorArchiveId='".$args['originatorArchiveId']."'";
$queryParts['originatorArchiveId'] = "originatorArchiveId= :originatorArchiveId";
$queryParams['originatorArchiveId'] = $args['originatorArchiveId'];
}
if (!empty($args['originatingDate'])) {
if (!empty($args['originatingDate'][0]) && is_string($args['originatingDate'][0])) {
......@@ -244,11 +254,13 @@ trait archiveAccessTrait
if (!empty($args['originatingDate'][0])) { // originatingStartDate
$args['originatingDate'][0] = $args['originatingDate'][0]->format('Y-m-d');
$queryParts[] = "originatingDate>='".$args['originatingDate'][0]."'";
$queryParts['originatingDate'] = "originatingDate>= :originatingDate";
$queryParams['originatingDate'] =$args['originatingDate'][0];
}
if (!empty($args['originatingDate'][1])) { // originatingEndDate
if (!empty($args['originatingDate'][1])) { // originatingEndDate;
$args['originatingDate'][1] = $args['originatingDate'][1]->format('Y-m-d');
$queryParts[] = "originatingDate<='".$args['originatingDate'][1]."'";
$queryParts['originatingDate'] = "originatingDate<= :originatingDate";
$queryParams['originatingDate'] = $args['originatingDate'][1];
}
}
......@@ -262,30 +274,38 @@ trait archiveAccessTrait
if (!empty($args['depositStartDate']) && !empty($args['depositEndDate'])) {
$args['depositStartDate'] = $args['depositStartDate']->format('Y-m-d').'T00:00:00';
$args['depositEndDate'] = $args['depositEndDate']->format('Y-m-d').'T23:59:59';
$queryParts[] = "depositDate <= '".$args['depositEndDate']."' AND depositDate >= '".$args['depositStartDate']."'";
$queryParts['depositDate'] = "depositDate <= :depositEndDate AND depositDate >= :depositStartDate";
$queryParams['depositEndDate'] = $args['depositEndDate'];
$queryParams['depositStartDate'] = $args['depositStartDate'];
} elseif (!empty($args['depositStartDate'])) {
$args['depositStartDate'] = $args['depositStartDate']->format('Y-m-d').'T00:00:00';
$queryParts[] = "depositDate >= '".$args['depositStartDate']."'";
$queryParts['depositDate'] = "depositDate >= :depositStartDate";
$queryParams['depositStartDate'] = $args['depositStartDate'];
} elseif (!empty($args['depositEndDate'])) {
$args['depositEndDate'] = $args['depositEndDate']->format('Y-m-d').'T23:59:59';
$queryParts[] = "depositDate <= '".$args['depositEndDate']."'";
$queryParts['depositDate'] = "depositDate <= :depositEndDate";
$queryParams['depositEndDate'] = $args['depositEndDate'];
}
if (!empty($args['depositorOrgRegNumber'])) {
$queryParts[] = "depositorOrgRegNumber='".$args['depositorOrgRegNumber']."'";
$queryParts['depositorOrgRegNumber'] = "depositorOrgRegNumber= :depositorOrgRegNumber";
$queryParams['depositorOrgRegNumber'] = $args['depositorOrgRegNumber'];
}
if (!empty($args['filePlanPosition'])) {
$queryParts[] = "filePlanPosition='".$args['filePlanPosition']."'";
$queryParts['filePlanPosition'] = "filePlanPosition= :filePlanPosition";
$queryParams['filePlanPosition'] = $args['filePlanPosition'];
}
if ($args['hasParent'] == true) {
$queryParts[] = "parentArchiveId!=null";
$queryParts['parentArchiveId'] = "parentArchiveId!=null";
}
if ($args['hasParent'] === false) {
$queryParts[] = "parentArchiveId=null";
$queryParts['hasParent'] = "parentArchiveId=null";
}
$accessRuleAssert = $this->getAccessRuleAssert($currentDateString);
if ($accessRuleAssert) {
$queryParts[] = $accessRuleAssert;
}
......
......@@ -98,10 +98,15 @@ trait archiveCommunicationTrait
'depositEndDate' => $depositEndDate,
'originatingDate' => [$originatingStartDate, $originatingEndDate], // [0] startDate, [1] endDate
];
$queryParts = array();
$queryParams = array();
if (!empty($description) || !empty($text)) {
$searchClasses = [];
if (!$profileReference) {
$searchClasses['recordsManagement/description'] = $this->useDescriptionController('recordsManagement/description');
$searchClasses['recordsManagement/description'] = $this->useDescriptionController('recordsManagement/description');
$descriptionClassController = \laabs::newController('recordsManagement/descriptionClass');
......@@ -119,29 +124,98 @@ trait archiveCommunicationTrait
foreach ($searchClasses as $descriptionClass => $descriptionController) {
$archives = array_merge($archives, $descriptionController->search($description, $text, $archiveArgs));
}
} else {
$queryString = $this->getArchiveAssert($archiveArgs);
if ($archiveId){
$queryParts['archiveId'] = "archiveId = :archiveId";
$queryParams['archiveId'] = $archiveId;
} else {
if ($profileReference){
$queryParts['archivalProfileReference'] = "archivalProfileReference = :archivalProfileReference";
$queryParams['archivalProfileReference'] = $profileReference;
}
$originators = array();
foreach ((array) $this->organizationController->getOrgsByRole('originator') as $originator) {
$originators[$originator->registrationNumber] = $originator;
}
if ($status){
$queryParts['status'] = "status = :status";
$queryParams['status'] = $status;
}
if ($retentionRuleCode){
$queryParts['retentionRuleCode'] = "retentionRuleCode = :retentionRuleCode";
$queryParams['retentionRuleCode'] = $retentionRuleCode;
}
$archives = $this->sdoFactory->find('recordsManagement/archive', $queryString, null, false, false, 100);
foreach ($archives as $archive) {
if (!empty($archive->disposalDate) && $archive->disposalDate <= \laabs::newDate()) {
$archive->disposable = true;
if ($originatorOrgRegNumber){
$queryParts['originatorOrgRegNumber'] = "originatorOrgRegNumber = :originatorOrgRegNumber";
$queryParams['originatorOrgRegNumber'] = $originatorOrgRegNumber;
}
if (isset($originators[$archive->originatorOrgRegNumber])) {
$archive->originator = $originators[$archive->originatorOrgRegNumber];
if ($finalDisposition){
$queryParts['finalDisposition'] = "finalDisposition = :finalDisposition";
$queryParams['finalDisposition'] = $finalDisposition;
}
if ($originatingStartDate && $originatingEndDate) {
$queryParams['originatingStartDate'] = $originatingStartDate;
$queryParams['originatingEndDate'] = $originatingEndDate;
$queryParts['depositDate'] = "originatingDate >= :originatingStartDate AND originatingDate <= :originatingEndDate";
} elseif ($originatingStartDate) {
$queryParams['originatingStartDate'] = $originatingStartDate;
$queryParts['depositDate'] = "originatingDate >= :depositStartDate";
} elseif ($originatingEndDate) {
$queryParams['originatingEndDate'] = $originatingEndDate;
$queryParts['date'] = "originatingDate <= :originatingEndDate";
}
if ($depositStartDate && $depositEndDate) {
$queryParams['depositStartDate'] = $depositStartDate;
$queryParams['depositEndDate'] = $depositEndDate;
$queryParts['depositDate'] = "depositDate >= :depositStartDate AND depositDate <= :depositEndDate";
} elseif ($depositStartDate) {
$queryParams['depositStartDate'] = $depositStartDate;
$queryParts['depositDate'] = "depositDate >= :depositStartDate";
} elseif ($depositEndDate) {
$queryParams['depositEndDate'] = $depositEndDate;
$queryParts['date'] = "depositDate <= :depositEndDate";
}
if($archiveExpired){
$currentDate = \laabs::newDate();
$currentDateString = $currentDate->format('Y-m-d');
if ($archiveExpired == "true") {
$queryParams['disposalDate'] = $currentDateString;
$queryParts['disposalDate'] = "disposalDate <= :disposalDate";
}else if($archiveExpired == "false"){
$queryParams['disposalDate'] = $currentDateString;
$queryParts['disposalDate'] = "disposalDate >= :disposalDate";
}
}
if($partialRetentionRule){
$queryParts['partialRetentionRule'] = "(retentionDuration=NULL OR retentionStartDate=NULL OR retentionRuleCode=NULL)";
}
}
$queryString = \laabs\implode(' AND ', $queryParts);
$archives = $this->sdoFactory->find('recordsManagement/archive', $queryString, $queryParams, false, false, 100);
}
foreach ($archives as $archive) {
if (!empty($archive->disposalDate) && $archive->disposalDate <= \laabs::newDate()) {
$archive->disposable = true;
}
if (isset($originators[$archive->originatorOrgRegNumber])) {
$archive->originator = $originators[$archive->originatorOrgRegNumber];
}
}
return $archives;
}
/**
* Restitute an archive
* @param string $archiveId The idetifier of the archive
......
......@@ -136,7 +136,7 @@ class description implements \bundle\recordsManagement\Controller\archiveDescrip
$queryParams = [];
$queryParts = ['description!=null and text!=null'];
$queryParts[] = \laabs::newController('recordsManagement/archive')->getArchiveAssert($archiveArgs);
$queryParts[] = \laabs::newController('recordsManagement/archive')->getArchiveAssert($archiveArgs,$queryParams);
// Json
if (!empty($description)) {
......@@ -170,7 +170,7 @@ class description implements \bundle\recordsManagement\Controller\archiveDescrip
$queryString = \laabs\implode(' and ', $queryParts);
$archiveUnits = $this->sdoFactory->find('recordsManagement/archiveUnit', $queryString);
$archiveUnits = $this->sdoFactory->find('recordsManagement/archiveUnit', $queryString,$queryParams);
foreach ($archiveUnits as $archiveUnit) {
$archiveUnit->descriptionObject = json_decode($archiveUnit->description);
......
......@@ -38,7 +38,7 @@ class archivalProfile
* The reference
*
* @var string
* @pattern #^[A-Za-z][A-Za-z0-9_.@-]*[A-Za-z]$#
* @pattern #^[A-Za-z][A-Za-z0-9_.@-]*$#
* @notempty
*/
public $reference;
......
......@@ -94,21 +94,26 @@ class Exception
if (isset($exception->errors)) {
$errors = [];
foreach ($exception->errors as $error) {
$error->setMessage($this->translator->getText($error->getFormat()));
if (is_string($error)) {
$error = new \core\Error($error);
}
if (is_object($error) && $error instanceof \core\Error) {
$error->setMessage($this->translator->getText($error->getFormat()));
$variables = [];
$variables = [];
$errorVariables = $error->getVariables();
if (is_array($errorVariables)) {
foreach ($errorVariables as $name => $value) {
$name = $this->translator->getText($name);
$value = $this->translator->getText($value);
$variables[$name] = $value;
$errorVariables = $error->getVariables();
if (is_array($errorVariables)) {
foreach ($errorVariables as $name => $value) {
$name = $this->translator->getText($name);
$value = $this->translator->getText($value);
$variables[$name] = $value;
}
}
$error->setVariables($variables);
$errors[] = $error;
}
$error->setVariables($variables);
$errors[] = $error;
}
$this->json->errors = $errors;
}
......
......@@ -306,7 +306,7 @@ class user
public function forgotAccount()
{
$json = $this->json;
$json->message = "A reset email has been send";
$json->message = "If the account exists, a reset email has been send";
$json->message = $this->translator->getText($json->message);
return $json->save();
......
......@@ -71,6 +71,7 @@ class orgTree
{
$this->view->addContentFile("organization/organizationIndex.html");
$communicationMeans = \laabs::callService("contact/communicationMean/readIndex");
$countriesCodes = \laabs::callService("organization/orgContact/readCountriesCodes");
$archivalProfile = \laabs::callService('recordsManagement/archivalProfile/readIndex');
$serviceLevel = \laabs::callService('recordsManagement/serviceLevel/readIndex');
......@@ -79,6 +80,12 @@ class orgTree
return strcmp($a->reference, $b->reference);
});
if(\laabs::getToken("ORGANIZATION")){
$addOrganizationRight = in_array('owner',\laabs::getToken("ORGANIZATION")->orgRoleCodes);
} else {
$addOrganizationRight = true;
}
$adminOrg = \laabs::callService('auth/userAccount/readHasprivilege', "adminFunc/adminOrganization");
$adminUser = \laabs::callService('auth/userAccount/readHasprivilege', "adminFunc/adminOrgUser");
$adminContact = \laabs::callService('auth/userAccount/readHasprivilege', "adminFunc/adminOrgContact");
......@@ -90,8 +97,10 @@ class orgTree
$this->view->setSource("orgType", $orgType);
$this->view->setSource("orgRole", $orgRole);
$this->view->setSource("communicationMeans", $communicationMeans);
$this->view->setSource("countriesCodes", $countriesCodes);
$this->view->setSource("archivalProfile", $archivalProfile);
$this->view->setSource("serviceLevel", $serviceLevel);
$this->view->setSource("addOrganizationRight", $addOrganizationRight);
$this->view->merge();
$this->view->translate();
......
......@@ -15,7 +15,7 @@ msgstr "Contact"
msgctxt "interface"
msgid "event"
msgstr "Événement"
msgstr "Évènement"
msgctxt "interface"
msgid "orgTree"
......
......@@ -146,6 +146,15 @@ msgstr "Terme"
msgid "Term"
msgstr "Terme"
msgid "User"
msgstr "Utilisateur"
msgid "Service"
msgstr "Compte de service"
msgid "No account found"
msgstr "Aucun compte trouvé"
msgid "recordsManagement/accessRule/readIndex"
msgstr "Lecture des règles de communicabilité"
......
......@@ -476,7 +476,7 @@ msgid "Service account created"
msgstr "Compte de service créé"
msgid "Service already exist"
msgstr "Le service existe déjà."
msgstr "Le compte existe déjà."
msgid "Last login date"
msgstr "Date de la dernière connexion"
......@@ -577,8 +577,8 @@ msgstr "Confirmer le mot de passe"
msgid "Username and / or password invalid"
msgstr "Nom d'utilisateur et / ou mot de passe invalide"
msgid "A reset email has been send"