mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-23 18:03:17 +00:00
@@ -576,32 +576,47 @@ class Users implements ControllerProviderInterface
|
|||||||
})->bind('users_display_import_file');
|
})->bind('users_display_import_file');
|
||||||
|
|
||||||
$controllers->post('/import/file/', function(Application $app, Request $request) {
|
$controllers->post('/import/file/', function(Application $app, Request $request) {
|
||||||
|
|
||||||
if ((null === $file = $request->files->get('files')) || !$file->isValid()) {
|
if ((null === $file = $request->files->get('files')) || !$file->isValid()) {
|
||||||
return $app->redirectPath('users_display_import_file', array('error' => 'file-invalid'));
|
return $app->redirectPath('users_display_import_file', array('error' => 'file-invalid'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$array = \format::csv_to_arr($file->getPathname());
|
$equivalenceToMysqlField = self::getEquivalenceToMysqlField();
|
||||||
|
$loginDefined = $pwdDefined = $mailDefined = false;
|
||||||
$equivalenceToMysqlField = Users::getEquivalenceToMysqlField();
|
|
||||||
$loginDefined = $pwdDefined = false;
|
|
||||||
$loginNew = array();
|
$loginNew = array();
|
||||||
$out = array('ignored_row' => array(), 'errors' => array());
|
$out = array(
|
||||||
|
'ignored_row' => array(),
|
||||||
|
'errors' => array()
|
||||||
|
);
|
||||||
$nbUsrToAdd = 0;
|
$nbUsrToAdd = 0;
|
||||||
|
|
||||||
for ($j = 0; $j < sizeof($array[0]); $j++) {
|
$lines = \format::csv_to_arr($file->getPathname());
|
||||||
$array[0][$j] = trim(mb_strtolower($array[0][$j]));
|
|
||||||
|
|
||||||
if (!isset($equivalenceToMysqlField[$array[0][$j]])) {
|
$roughColumns = array_shift($lines);
|
||||||
$out['ignored_row'][] = $array[0][$j];
|
|
||||||
} else {
|
|
||||||
if (($equivalenceToMysqlField[$array[0][$j]]) == 'usr_login') {
|
|
||||||
$loginDefined = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (($equivalenceToMysqlField[$array[0][$j]]) == 'usr_password') {
|
$columnsSanitized = array_map(function($columnName) {
|
||||||
$pwdDefined = true;
|
return trim(mb_strtolower($columnName));
|
||||||
}
|
}, $roughColumns);
|
||||||
|
|
||||||
|
$columns = array_filter($columnsSanitized, function ($columnName) use (&$out, $equivalenceToMysqlField) {
|
||||||
|
if (!isset($equivalenceToMysqlField[$columnName])) {
|
||||||
|
$out['ignored_row'][] = $columnName;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
foreach($columns as $columnName) {
|
||||||
|
if ($equivalenceToMysqlField[$columnName] === 'usr_login') {
|
||||||
|
$loginDefined = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (($equivalenceToMysqlField[$columnName]) === 'usr_password') {
|
||||||
|
$pwdDefined = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (($equivalenceToMysqlField[$columnName]) === 'usr_mail') {
|
||||||
|
$mailDefined = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -613,101 +628,112 @@ class Users implements ControllerProviderInterface
|
|||||||
return $app->redirectPath('users_display_import_file', array('error' => 'row-pwd'));
|
return $app->redirectPath('users_display_import_file', array('error' => 'row-pwd'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$nbLines = sizeof($array);
|
if (!$mailDefined) {
|
||||||
$nbCols = sizeof($array[0]);
|
return $app->redirectPath('users_display_import_file', array('error' => 'row-mail'));
|
||||||
|
}
|
||||||
|
|
||||||
for ($i = 1; $i < $nbLines; $i++) {
|
foreach ($lines as $nbLine => $line) {
|
||||||
$hasVerifLogin = false;
|
$loginValid = false;
|
||||||
$hasVerifPwd = false;
|
$pwdValid = false;
|
||||||
|
$mailValid = false;
|
||||||
|
|
||||||
for ($j = 0; $j < $nbCols; $j++) {
|
foreach ($columns as $nbCol => $colName) {
|
||||||
$array[$i][$j] = trim($array[$i][$j]);
|
if (!isset($equivalenceToMysqlField[$colName])) {
|
||||||
|
unset($lines[$nbCol]);
|
||||||
if (!isset($equivalenceToMysqlField[$array[0][$j]])) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($equivalenceToMysqlField[$array[0][$j]]) == 'usr_login') {
|
$sqlField = $equivalenceToMysqlField[$colName];
|
||||||
$loginToAdd = $array[$i][$j];
|
$value = $line[$nbCol];
|
||||||
|
|
||||||
if ($loginToAdd == "") {
|
if ($sqlField === 'usr_login') {
|
||||||
$out['errors'][] = sprintf(_("Login line %d is empty"), $i);
|
$loginToAdd = $value;
|
||||||
} elseif (isset($loginNew[$loginToAdd])) {
|
if ($loginToAdd === "") {
|
||||||
|
$out['errors'][] = sprintf(_("Login line %d is empty"), $nbLine + 1);
|
||||||
|
} elseif (in_array($loginToAdd, $loginNew)) {
|
||||||
$out['errors'][] = sprintf(_("Login %s is already defined in the file at line %d"), $loginToAdd, $i);
|
$out['errors'][] = sprintf(_("Login %s is already defined in the file at line %d"), $loginToAdd, $i);
|
||||||
} else {
|
} else {
|
||||||
if (\User_Adapter::get_usr_id_from_login($app, $loginToAdd)) {
|
if (\User_Adapter::get_usr_id_from_login($app, $loginToAdd)) {
|
||||||
$out['errors'][] = sprintf(_("Login %s already exists in database"), $loginToAdd);
|
$out['errors'][] = sprintf(_("Login %s already exists in database"), $loginToAdd);
|
||||||
} else {
|
} else {
|
||||||
$loginNew[$loginToAdd] = ($i + 1);
|
$loginValid = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$hasVerifLogin = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (($equivalenceToMysqlField[$array[0][$j]]) == 'usr_password') {
|
if ($loginValid && $sqlField === 'usr_mail') {
|
||||||
$passwordToVerif = $array[$i][$j];
|
$mailToAdd = $value;
|
||||||
|
|
||||||
if ($passwordToVerif == "") {
|
if ($mailToAdd === "") {
|
||||||
|
$out['errors'][] = sprintf(_("Mail line %d is empty"), $nbLine + 1);
|
||||||
|
} else if (false !== \User_Adapter::get_usr_id_from_email($app, $mailToAdd)) {
|
||||||
|
$out['errors'][] = sprintf(_("Email '%s' for login '%s' already exists in database"), $mailToAdd, $loginToAdd);
|
||||||
|
} else {
|
||||||
|
$mailValid = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($sqlField === 'usr_password') {
|
||||||
|
$passwordToVerif = $value;
|
||||||
|
|
||||||
|
if ($passwordToVerif === "") {
|
||||||
$out['errors'][] = sprintf(_("Password is empty at line %d"), $i);
|
$out['errors'][] = sprintf(_("Password is empty at line %d"), $i);
|
||||||
}
|
} else {
|
||||||
|
$pwdValid = true;
|
||||||
$hasVerifPwd = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($hasVerifLogin && $hasVerifPwd) {
|
|
||||||
$j = $nbCols;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (($j + 1) >= $nbCols) {
|
|
||||||
if (count($out['errors']) === 0) {
|
|
||||||
$nbUsrToAdd++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($loginValid && $pwdValid && $mailValid) {
|
||||||
|
$loginNew[] = $loginToAdd;
|
||||||
|
$nbUsrToAdd++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count($out['errors']) > 0) {
|
if (count($out['errors']) > 0 && $nbUsrToAdd === 0) {
|
||||||
return $app['twig']->render('admin/user/import/file.html.twig', array(
|
return $app['twig']->render('admin/user/import/file.html.twig', array(
|
||||||
'errors' => $out['errors']
|
'errors' => $out['errors']
|
||||||
));
|
));
|
||||||
} elseif ($nbUsrToAdd === 0) {
|
|
||||||
return $app->redirectPath('users_display_import_file', array('error' => 'no-user'));
|
|
||||||
} else {
|
|
||||||
for ($i = 1; $i < sizeof($array); $i++) {
|
|
||||||
for ($j = 0; $j < sizeof($array[0]); $j++) { {
|
|
||||||
if ((isset($array[$i][$j]) && trim($array[$i][$j]) == "") || (!isset($equivalenceToMysqlField[$array[0][$j]])))
|
|
||||||
unset($array[$i][$j]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$sql = "
|
|
||||||
SELECT usr.usr_id,usr.usr_login
|
|
||||||
FROM usr
|
|
||||||
INNER JOIN basusr
|
|
||||||
ON (basusr.usr_id=usr.usr_id)
|
|
||||||
WHERE usr.model_of = :usr_id
|
|
||||||
AND base_id in(" . implode(', ', array_keys($app['authentication']->getUser()->ACL()->get_granted_base(array('manage')))) . ")
|
|
||||||
AND usr_login not like '(#deleted_%)'
|
|
||||||
GROUP BY usr_id";
|
|
||||||
|
|
||||||
$stmt = $app['phraseanet.appbox']->get_connection()->prepare($sql);
|
|
||||||
$stmt->execute(array(':usr_id' => $app['authentication']->getUser()->get_id()));
|
|
||||||
$models = $stmt->fetchAll(\PDO::FETCH_ASSOC);
|
|
||||||
$stmt->closeCursor();
|
|
||||||
|
|
||||||
return $app['twig']->render('/admin/user/import/view.html.twig', array(
|
|
||||||
'nb_user_to_add' => $nbUsrToAdd,
|
|
||||||
'models' => $models,
|
|
||||||
'array_serialized' => serialize($array)
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($nbUsrToAdd === 0) {
|
||||||
|
return $app->redirectPath('users_display_import_file', array(
|
||||||
|
'error' => 'no-user'
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql = "
|
||||||
|
SELECT usr.usr_id,usr.usr_login
|
||||||
|
FROM usr
|
||||||
|
INNER JOIN basusr
|
||||||
|
ON (basusr.usr_id=usr.usr_id)
|
||||||
|
WHERE usr.model_of = :usr_id
|
||||||
|
AND base_id in(" . implode(', ', array_keys($app['authentication']->getUser()->ACL()->get_granted_base(array('manage')))) . ")
|
||||||
|
AND usr_login not like '(#deleted_%)'
|
||||||
|
GROUP BY usr_id";
|
||||||
|
|
||||||
|
$stmt = $app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||||
|
$stmt->execute(array(':usr_id' => $app['authentication']->getUser()->get_id()));
|
||||||
|
$models = $stmt->fetchAll(\PDO::FETCH_ASSOC);
|
||||||
|
$stmt->closeCursor();
|
||||||
|
|
||||||
|
return $app['twig']->render('/admin/user/import/view.html.twig', array(
|
||||||
|
'nb_user_to_add' => $nbUsrToAdd,
|
||||||
|
'models' => $models,
|
||||||
|
'lines_serialized' => serialize($lines),
|
||||||
|
'columns_serialized' => serialize($columns),
|
||||||
|
'errors' => $out['errors']
|
||||||
|
));
|
||||||
})->bind('users_submit_import_file');
|
})->bind('users_submit_import_file');
|
||||||
|
|
||||||
$controllers->post('/import/', function(Application $app, Request $request) {
|
$controllers->post('/import/', function(Application $app, Request $request) {
|
||||||
$nbCreation = 0;
|
$nbCreation = 0;
|
||||||
|
|
||||||
if ((null === $serializedArray = $request->request->get('sr')) || ('' === $serializedArray)) {
|
if ((null === $serializedColumns = $request->request->get('sr_columns')) || ('' === $serializedColumns)) {
|
||||||
|
$app->abort(400);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((null === $serializedLines = $request->request->get('sr_lines')) || ('' === $serializedLines)) {
|
||||||
$app->abort(400);
|
$app->abort(400);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -715,27 +741,30 @@ class Users implements ControllerProviderInterface
|
|||||||
$app->abort(400);
|
$app->abort(400);
|
||||||
}
|
}
|
||||||
|
|
||||||
$array = unserialize($serializedArray);
|
$lines = unserialize($serializedLines);
|
||||||
|
$columns = unserialize($serializedColumns);
|
||||||
$nbLines = sizeof($array);
|
|
||||||
$nbCols = sizeof($array[0]);
|
|
||||||
|
|
||||||
$equivalenceToMysqlField = Users::getEquivalenceToMysqlField();
|
$equivalenceToMysqlField = Users::getEquivalenceToMysqlField();
|
||||||
|
|
||||||
for ($i = 1; $i < $nbLines; $i++) {
|
foreach ($lines as $nbLine => $line) {
|
||||||
$curUser = null;
|
$curUser = array();
|
||||||
for ($j = 0; $j < $nbCols; $j++) {
|
foreach ($columns as $nbCol => $colName) {
|
||||||
if (!isset($equivalenceToMysqlField[$array[0][$j]]))
|
if (!isset($equivalenceToMysqlField[$colName]) || !isset($line[$nbCol])) {
|
||||||
continue;
|
continue;
|
||||||
if ($equivalenceToMysqlField[$array[0][$j]] == "usr_sexe" && isset($array[$i][$j])) {
|
}
|
||||||
switch ($array[$i][$j]) {
|
|
||||||
|
$sqlField = $equivalenceToMysqlField[$colName];
|
||||||
|
$value = trim($line[$nbCol]);
|
||||||
|
|
||||||
|
if ($sqlField === "usr_sexe") {
|
||||||
|
switch ($value) {
|
||||||
case "Mlle":
|
case "Mlle":
|
||||||
case "Mlle.":
|
case "Mlle.":
|
||||||
case "mlle":
|
case "mlle":
|
||||||
case "Miss":
|
case "Miss":
|
||||||
case "miss":
|
case "miss":
|
||||||
case "0":
|
case "0":
|
||||||
$curUser[$equivalenceToMysqlField[$array[0][$j]]] = 0;
|
$curUser[$sqlField] = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "Mme":
|
case "Mme":
|
||||||
@@ -743,7 +772,7 @@ class Users implements ControllerProviderInterface
|
|||||||
case "Ms":
|
case "Ms":
|
||||||
case "Ms.":
|
case "Ms.":
|
||||||
case "1":
|
case "1":
|
||||||
$curUser[$equivalenceToMysqlField[$array[0][$j]]] = 1;
|
$curUser[$sqlField] = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "M":
|
case "M":
|
||||||
@@ -753,77 +782,76 @@ class Users implements ControllerProviderInterface
|
|||||||
case "Monsieur":
|
case "Monsieur":
|
||||||
case "Mister":
|
case "Mister":
|
||||||
case "2":
|
case "2":
|
||||||
$curUser[$equivalenceToMysqlField[$array[0][$j]]] = 2;
|
$curUser[$sqlField] = 2;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (isset($array[$i][$j])) {
|
$curUser[$sqlField] = $value;
|
||||||
$curUser[$equivalenceToMysqlField[$array[0][$j]]] = trim($array[$i][$j]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($curUser['usr_login']) && trim($curUser['usr_login']) !== '' && isset($curUser['usr_password']) && trim($curUser['usr_password']) !== "") {
|
if (isset($curUser['usr_login']) && trim($curUser['usr_login']) !== ''
|
||||||
$loginNotExist = !\User_Adapter::get_usr_id_from_login($app, $curUser['usr_login']);
|
&& isset($curUser['usr_password']) && trim($curUser['usr_password']) !== ''
|
||||||
|
&& isset($curUser['usr_mail']) && trim($curUser['usr_mail']) !== '') {
|
||||||
|
if (false === \User_Adapter::get_usr_id_from_login($app, $curUser['usr_login'])
|
||||||
|
&& false === \User_Adapter::get_usr_id_from_email($app, $curUser['usr_mail'])) {
|
||||||
|
$NewUser = \User_Adapter::create($app, $curUser['usr_login'], $curUser['usr_password'], $curUser['usr_mail'], false);
|
||||||
|
|
||||||
if ($loginNotExist) {
|
if (isset($curUser['defaultftpdatasent'])) {
|
||||||
$NewUser = \User_Adapter::create($app, $curUser['usr_login'], $curUser['usr_password'], $curUser['usr_mail'], false);
|
$NewUser->set_defaultftpdatas($curUser['defaultftpdatasent']);
|
||||||
|
}
|
||||||
|
if (isset($curUser['activeFTP'])) {
|
||||||
|
$NewUser->set_activeftp((int) ($curUser['activeFTP']));
|
||||||
|
}
|
||||||
|
if (isset($curUser['addrFTP'])) {
|
||||||
|
$NewUser->set_ftp_address($curUser['addrFTP']);
|
||||||
|
}
|
||||||
|
if (isset($curUser['passifFTP'])) {
|
||||||
|
$NewUser->set_ftp_passif((int) ($curUser['passifFTP']));
|
||||||
|
}
|
||||||
|
if (isset($curUser['destFTP'])) {
|
||||||
|
$NewUser->set_ftp_dir($curUser['destFTP']);
|
||||||
|
}
|
||||||
|
if (isset($curUser['prefixFTPfolder'])) {
|
||||||
|
$NewUser->set_ftp_dir_prefix($curUser['prefixFTPfolder']);
|
||||||
|
}
|
||||||
|
if (isset($curUser['usr_prenom'])) {
|
||||||
|
$NewUser->set_firstname($curUser['usr_prenom']);
|
||||||
|
}
|
||||||
|
if (isset($curUser['usr_nom'])) {
|
||||||
|
$NewUser->set_lastname($curUser['usr_nom']);
|
||||||
|
}
|
||||||
|
if (isset($curUser['adresse'])) {
|
||||||
|
$NewUser->set_address($curUser['adresse']);
|
||||||
|
}
|
||||||
|
if (isset($curUser['cpostal'])) {
|
||||||
|
$NewUser->set_zip($curUser['cpostal']);
|
||||||
|
}
|
||||||
|
if (isset($curUser['usr_sexe'])) {
|
||||||
|
$NewUser->set_gender((int) ($curUser['usr_sexe']));
|
||||||
|
}
|
||||||
|
if (isset($curUser['tel'])) {
|
||||||
|
$NewUser->set_tel($curUser['tel']);
|
||||||
|
}
|
||||||
|
if (isset($curUser['fax'])) {
|
||||||
|
$NewUser->set_fax($curUser['fax']);
|
||||||
|
}
|
||||||
|
if (isset($curUser['activite'])) {
|
||||||
|
$NewUser->set_job($curUser['activite']);
|
||||||
|
}
|
||||||
|
if (isset($curUser['fonction'])) {
|
||||||
|
$NewUser->set_position($curUser['fonction']);
|
||||||
|
}
|
||||||
|
if (isset($curUser['societe'])) {
|
||||||
|
$NewUser->set_company($curUser['societe']);
|
||||||
|
}
|
||||||
|
|
||||||
if (isset($curUser['defaultftpdatasent'])) {
|
$NewUser->ACL()->apply_model(
|
||||||
$NewUser->set_defaultftpdatas($curUser['defaultftpdatasent']);
|
\User_Adapter::getInstance($model, $app), array_keys($app['authentication']->getUser()->ACL()->get_granted_base(array('manage')))
|
||||||
}
|
);
|
||||||
if (isset($curUser['activeFTP'])) {
|
|
||||||
$NewUser->set_activeftp((int) ($curUser['activeFTP']));
|
|
||||||
}
|
|
||||||
if (isset($curUser['addrFTP'])) {
|
|
||||||
$NewUser->set_ftp_address($curUser['addrFTP']);
|
|
||||||
}
|
|
||||||
if (isset($curUser['passifFTP'])) {
|
|
||||||
$NewUser->set_ftp_passif((int) ($curUser['passifFTP']));
|
|
||||||
}
|
|
||||||
if (isset($curUser['destFTP'])) {
|
|
||||||
$NewUser->set_ftp_dir($curUser['destFTP']);
|
|
||||||
}
|
|
||||||
if (isset($curUser['prefixFTPfolder'])) {
|
|
||||||
$NewUser->set_ftp_dir_prefix($curUser['prefixFTPfolder']);
|
|
||||||
}
|
|
||||||
if (isset($curUser['usr_prenom'])) {
|
|
||||||
$NewUser->set_firstname($curUser['usr_prenom']);
|
|
||||||
}
|
|
||||||
if (isset($curUser['usr_nom'])) {
|
|
||||||
$NewUser->set_lastname($curUser['usr_nom']);
|
|
||||||
}
|
|
||||||
if (isset($curUser['adresse'])) {
|
|
||||||
$NewUser->set_address($curUser['adresse']);
|
|
||||||
}
|
|
||||||
if (isset($curUser['cpostal'])) {
|
|
||||||
$NewUser->set_zip($curUser['cpostal']);
|
|
||||||
}
|
|
||||||
if (isset($curUser['usr_sexe'])) {
|
|
||||||
$NewUser->set_gender((int) ($curUser['usr_sexe']));
|
|
||||||
}
|
|
||||||
if (isset($curUser['tel'])) {
|
|
||||||
$NewUser->set_tel($curUser['tel']);
|
|
||||||
}
|
|
||||||
if (isset($curUser['fax'])) {
|
|
||||||
$NewUser->set_fax($curUser['fax']);
|
|
||||||
}
|
|
||||||
if (isset($curUser['activite'])) {
|
|
||||||
$NewUser->set_job($curUser['activite']);
|
|
||||||
}
|
|
||||||
if (isset($curUser['fonction'])) {
|
|
||||||
$NewUser->set_position($curUser['fonction']);
|
|
||||||
}
|
|
||||||
if (isset($curUser['societe'])) {
|
|
||||||
$NewUser->set_company($curUser['societe']);
|
|
||||||
}
|
|
||||||
|
|
||||||
$NewUser->ACL()->apply_model(
|
$nbCreation++;
|
||||||
\User_Adapter::getInstance($model, $app), array_keys($app['authentication']->getUser()->ACL()->get_granted_base(array('manage')))
|
}
|
||||||
);
|
|
||||||
|
|
||||||
$nbCreation++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,8 @@
|
|||||||
{% trans 'Row login is missing, script has stopped' %}
|
{% trans 'Row login is missing, script has stopped' %}
|
||||||
{% elseif error == 'row-pwd' %}
|
{% elseif error == 'row-pwd' %}
|
||||||
{% trans 'Row password is missing, script has stopped' %}
|
{% trans 'Row password is missing, script has stopped' %}
|
||||||
|
{% elseif error == 'row-mail' %}
|
||||||
|
{% trans 'Row mail is missing, script has stopped' %}
|
||||||
{% elseif error == 'no-user' %}
|
{% elseif error == 'no-user' %}
|
||||||
{% trans 'The file does not contains any user to add' %}
|
{% trans 'The file does not contains any user to add' %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -1,22 +1,54 @@
|
|||||||
<div class="page-header">
|
{% if nb_user_to_add > 0 and models|length > 0%}
|
||||||
<h1>{% trans 'Apply a model' %} <small>({{ nb_user_to_add }} {% trans 'Users' %})</small></h1>
|
{# Display errors #}
|
||||||
</div>
|
{% if errors|length > 0 %}
|
||||||
|
<div class="well import-errors">
|
||||||
{% if nb_user_to_add > 0 and models|length > 0 %}
|
<h4 class="alert-heading">{% trans %}The following errors have been detected{% endtrans %}</h4>
|
||||||
<form method="post" name="importform2" action="{{ path('users_submit_import') }}" ENCTYPE="multipart/form-data" >
|
<ul class="unstyled text-error">
|
||||||
<textarea style="display:none;" name="sr">{{ array_serialized }}</textarea>
|
{% for error in errors %}
|
||||||
<select name="modelToApply">
|
<li>{{ error }}</li>
|
||||||
{% for model in models %}
|
{% endfor%}
|
||||||
<option value='{{ model['usr_id'] }}'>{{ model['usr_login'] }}</option>
|
</ul>
|
||||||
{% endfor %}
|
{% trans %}Would you like to continue ?{% endtrans %}
|
||||||
</select>
|
<div>
|
||||||
<div class="form-actions">
|
<a href="#" class="no-ajax btn btn-primary accept-import">{% trans %}Yes{% endtrans %}</a>
|
||||||
<button class="btn btn-primary" type="submit">Save changes</button>
|
<a href="{{ path('users_display_import_file') }}" target="right" class="btn">{% trans %}no{% endtrans %}</a>
|
||||||
<button class="btn">Cancel</button>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
{# If the user agrees to continue despite errors, show wrapper #}
|
||||||
|
$("a.accept-import").bind("click", function(e) {
|
||||||
|
$(".import-errors").remove();
|
||||||
|
$(".wrapper").removeClass("hidden");
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
{% endif %}
|
||||||
|
{# Hide wrapper if there are errors #}
|
||||||
|
<div class="wrapper {% if errors|length > 0 %}hidden{% endif %}">
|
||||||
|
<div class="page-header">
|
||||||
|
<h1>{% trans 'Apply a model' %} <small>({{ nb_user_to_add }} {% trans 'Users' %})</small></h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<form method="post" name="importform2" action="{{ path('users_submit_import') }}" ENCTYPE="multipart/form-data" >
|
||||||
|
<textarea class="hidden" name="sr_lines">{{ lines_serialized }}</textarea>
|
||||||
|
<textarea class="hidden" name="sr_columns">{{ columns_serialized }}</textarea>
|
||||||
|
<select name="modelToApply">
|
||||||
|
{% for model in models %}
|
||||||
|
<option value='{{ model['usr_id'] }}'>{{ model['usr_login'] }}</option>
|
||||||
|
{% endfor %}
|
||||||
|
</select>
|
||||||
|
<div class="form-actions">
|
||||||
|
<button class="btn btn-primary" type="submit">{% trans %}Save changes{% endtrans %}</button>
|
||||||
|
<a href="{{ path('users_display_import_file') }}" target="right" class="btn">{% trans %}Cancel{% endtrans %}</a>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
{% elseif models|length == 0 %}
|
{% elseif models|length == 0 %}
|
||||||
<div class="alert alert-block">
|
<div class="alert alert-block">
|
||||||
{% trans 'You need define a model before importing a list of users' %}
|
{% trans 'You need define a model before importing a list of users' %}
|
||||||
</div>
|
</div>
|
||||||
|
{% elseif nb_user_to_add == 0 %}
|
||||||
|
<div class="alert alert-block">
|
||||||
|
{% trans 'There is no user to add.' %}
|
||||||
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -74,4 +74,4 @@ div[id$="_indexed_percent"] {
|
|||||||
|
|
||||||
a.btn {
|
a.btn {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user