mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-02-06 15:14:58 +00:00
Merge branch 'seeddms-5.1.x' into seeddms-6.0.x
This commit is contained in:
commit
40ec1447d5
|
@ -45,6 +45,7 @@ class SeedDMS_Controller_RemoveDocument extends SeedDMS_Controller_Common {
|
|||
$result = $this->callHook('removeDocument', $document);
|
||||
if($result === null) {
|
||||
if (!$document->remove()) {
|
||||
$this->errormsg = "error_occured";
|
||||
return false;
|
||||
} else {
|
||||
|
||||
|
|
|
@ -59,6 +59,7 @@ class SeedDMS_Controller_RemoveFolder extends SeedDMS_Controller_Common {
|
|||
$dms->setCallback('onPreRemoveDocument', 'removeFromIndex', array($index, $indexconf));
|
||||
|
||||
if (!$folder->remove()) {
|
||||
$this->errormsg = 'error_occured';
|
||||
return false;
|
||||
} else {
|
||||
|
||||
|
|
|
@ -57,6 +57,11 @@ class SeedDMS_Extension_Mgr {
|
|||
*/
|
||||
protected $errmsgs;
|
||||
|
||||
/*
|
||||
* Name of json file containg available extension from repository
|
||||
*/
|
||||
const repos_list_file = 'repository.json';
|
||||
|
||||
/**
|
||||
* Compare two version
|
||||
*
|
||||
|
@ -132,7 +137,7 @@ class SeedDMS_Extension_Mgr {
|
|||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function isWritableExitDir() { /* {{{ */
|
||||
public function isWritableExtDir() { /* {{{ */
|
||||
return is_writable($this->extdir);
|
||||
} /* }}} */
|
||||
|
||||
|
@ -141,6 +146,8 @@ class SeedDMS_Extension_Mgr {
|
|||
*
|
||||
* This function will always create a file, even if no extensions
|
||||
* are installed.
|
||||
*
|
||||
* @return boolean true on success, false on error
|
||||
*/
|
||||
public function createExtensionConf() { /* {{{ */
|
||||
$extensions = self::getExtensions();
|
||||
|
@ -161,6 +168,11 @@ class SeedDMS_Extension_Mgr {
|
|||
}
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Get names of locally installed extensions by scanning the extension dir
|
||||
*
|
||||
* @return string[] list of extension names
|
||||
*/
|
||||
protected function getExtensions() { /* {{{ */
|
||||
$extensions = array();
|
||||
if(file_exists($this->extdir)) {
|
||||
|
@ -178,6 +190,13 @@ class SeedDMS_Extension_Mgr {
|
|||
return $extensions;
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Create zip archive of an extension
|
||||
*
|
||||
* @param string $extname name of extension
|
||||
* @param string $version version of extension (x.y.z)
|
||||
* @return string name of temporary file with archive
|
||||
*/
|
||||
public function createArchive($extname, $version) { /* {{{ */
|
||||
if(!is_dir($this->extdir ."/". $extname))
|
||||
return false;
|
||||
|
@ -219,6 +238,7 @@ class SeedDMS_Extension_Mgr {
|
|||
}
|
||||
$extname = key($EXT_CONF);
|
||||
if(!$extname || !preg_match('/[a-zA-Z_]*/', $extname)) {
|
||||
$this->errmsgs[] = "Extension has invalid or no name";
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -253,6 +273,9 @@ class SeedDMS_Extension_Mgr {
|
|||
if(!empty($extconf['class']['file']) && !file_exists($dir."/".$extconf['class']['file'])) {
|
||||
$this->errmsgs[] = "Missing class file";
|
||||
}
|
||||
if(!empty($extconf['icon']) && !file_exists($dir."/".$extconf['icon'])) {
|
||||
$this->errmsgs[] = "Missing icon file";
|
||||
}
|
||||
}
|
||||
|
||||
if(!isset($options['noconstraints']) || $options['noconstraints'] == false) {
|
||||
|
@ -323,6 +346,7 @@ class SeedDMS_Extension_Mgr {
|
|||
* @return boolean true on success, othewise false
|
||||
*/
|
||||
public function updateExtension($file) { /* {{{ */
|
||||
/* unzip the extension in a temporary directory */
|
||||
$newdir = $this->cachedir ."/ext.new";
|
||||
if(!mkdir($newdir, 0755)) {
|
||||
$this->errmsgs[] = "Cannot create temp. extension directory";
|
||||
|
@ -331,6 +355,7 @@ class SeedDMS_Extension_Mgr {
|
|||
$cmd = "cd ".$newdir."; unzip ".$file;
|
||||
exec($cmd);
|
||||
|
||||
/* Check if extension is complete and fullfills the constraints */
|
||||
if(!self::checkExtension($newdir)) {
|
||||
self::rrmdir($newdir);
|
||||
return false;
|
||||
|
@ -356,18 +381,82 @@ class SeedDMS_Extension_Mgr {
|
|||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Import list of extension from repository
|
||||
* Get list of extensions from cached repository index
|
||||
*
|
||||
* @param boolean $force force download even if file already exists
|
||||
* This function returns the whole repository index file separated in
|
||||
* single lines. Each line is either a comment if it starts with an '#'
|
||||
* or a json encoded array containing the extension configuration.
|
||||
*
|
||||
* Run SeedDMS_Extension_Mgr::updateExtensionList() to ensure the
|
||||
* currently cached extension list file is up to date.
|
||||
*
|
||||
* @return string[] list of json strings or comments
|
||||
*/
|
||||
public function getExtensionList() { /* {{{ */
|
||||
if(file_exists($this->cachedir."/repository.json")) {
|
||||
return file($this->cachedir."/repository.json");
|
||||
public function getRawExtensionList() { /* {{{ */
|
||||
if(file_exists($this->cachedir."/".self::repos_list_file)) {
|
||||
return file($this->cachedir."/".self::repos_list_file);
|
||||
} else {
|
||||
return array();
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Get list of extensions from cached repository index
|
||||
*
|
||||
* This function reads the cache respository index and returns
|
||||
* a list of extension configurations. Only the most recent version
|
||||
* of an extension will be included.
|
||||
*
|
||||
* Run SeedDMS_Extension_Mgr::updateExtensionList() to ensure the
|
||||
* currently cached extension list file is up to date.
|
||||
*
|
||||
* @return array[] list of extension configurations
|
||||
*/
|
||||
public function getExtensionList() { /* {{{ */
|
||||
$list = self::getRawExtensionList();
|
||||
$result = array();
|
||||
$vcache = array(); // keep highest version of extension
|
||||
foreach($list as $e) {
|
||||
if($e[0] != '#') {
|
||||
$re = json_decode($e, true);
|
||||
if(!isset($result[$re['name']])) {
|
||||
$result[$re['name']] = $re;
|
||||
$vcache[$re['name']] = $re['version'];
|
||||
} elseif(self::cmpVersion($re['version'], $vcache[$re['name']]) > 0) {
|
||||
$result[$re['name']] = $re;
|
||||
$vcache[$re['name']] = $re['version'];
|
||||
}
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Get list of version of an extension from cached repository index
|
||||
*
|
||||
* This function reads the cache respository index and returns
|
||||
* a list of extension configurations. Only those extensions will
|
||||
* be included which maches the given name.
|
||||
*
|
||||
* Run SeedDMS_Extension_Mgr::updateExtensionList() to ensure the
|
||||
* currently cached extension list file is up to date.
|
||||
*
|
||||
* @return array[] list of extension configurations
|
||||
*/
|
||||
public function getExtensionListByName($extname) { /* {{{ */
|
||||
$list = self::getRawExtensionList();
|
||||
$result = array();
|
||||
foreach($list as $e) {
|
||||
if($e[0] != '#') {
|
||||
$re = json_decode($e, true);
|
||||
if($re['name'] == $extname) {
|
||||
$result[$re['version']] = $re;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Import list of extension from repository
|
||||
*
|
||||
|
@ -375,7 +464,7 @@ class SeedDMS_Extension_Mgr {
|
|||
*/
|
||||
public function updateExtensionList($version='', $force=false) { /* {{{ */
|
||||
if($this->reposurl) {
|
||||
if(!file_exists($this->cachedir."/repository.json") || $force) {
|
||||
if(!file_exists($this->cachedir."/".self::repos_list_file) || $force) {
|
||||
$file = @file_get_contents($this->reposurl.($version ? '?seeddms_version='.$version : ''));
|
||||
if(is_array($http_response_header)) {
|
||||
$parts=explode(' ',$http_response_header[0]);
|
||||
|
@ -385,7 +474,7 @@ class SeedDMS_Extension_Mgr {
|
|||
return false;
|
||||
}
|
||||
}
|
||||
file_put_contents($this->cachedir."/repository.json", $file);
|
||||
file_put_contents($this->cachedir."/".self::repos_list_file, $file);
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
|
|
|
@ -499,10 +499,13 @@ URL: [url]',
|
|||
'expiry_changed_email_subject' => '[sitename]: [name] - تم تغيير تاريخ الصلاحية',
|
||||
'export' => '',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => 'ﺇﺩﺍﺭﺓ ﺍﻼﻣﺩﺍﺩﺎﺗ',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'فبراير',
|
||||
'file' => 'ملف',
|
||||
'files' => 'ملفات',
|
||||
|
@ -1438,6 +1441,8 @@ URL: [url]',
|
|||
'set_owner_error' => 'خطأ في تحديد المالك',
|
||||
'set_password' => 'تحديد كلمة السر',
|
||||
'set_workflow' => 'تحديد مسار العمل',
|
||||
'show_extension_changelog' => '',
|
||||
'show_extension_version_list' => '',
|
||||
'signed_in_as' => 'تسجيل الدخول بإسم',
|
||||
'sign_in' => 'تسجيل الدخول',
|
||||
'sign_out' => 'تسجيل الخروج',
|
||||
|
|
|
@ -448,10 +448,13 @@ $text = array(
|
|||
'expiry_changed_email_subject' => '',
|
||||
'export' => '',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => 'управление на добавките',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'Февруари',
|
||||
'file' => 'Файл',
|
||||
'files' => 'Файлове',
|
||||
|
@ -1301,6 +1304,8 @@ $text = array(
|
|||
'set_owner_error' => 'Грешка при установяване на собственика',
|
||||
'set_password' => 'Установи парола',
|
||||
'set_workflow' => 'Установи процес',
|
||||
'show_extension_changelog' => '',
|
||||
'show_extension_version_list' => '',
|
||||
'signed_in_as' => 'Вход като',
|
||||
'sign_in' => 'вход',
|
||||
'sign_out' => 'изход',
|
||||
|
|
|
@ -453,10 +453,13 @@ URL: [url]',
|
|||
'expiry_changed_email_subject' => '',
|
||||
'export' => '',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => 'Gestiona les Extensions',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'Febrer',
|
||||
'file' => 'Fitxer',
|
||||
'files' => 'Fitxers',
|
||||
|
@ -1306,6 +1309,8 @@ URL: [url]',
|
|||
'set_owner_error' => 'Error a l\'establir el propietari/a',
|
||||
'set_password' => '',
|
||||
'set_workflow' => '',
|
||||
'show_extension_changelog' => '',
|
||||
'show_extension_version_list' => '',
|
||||
'signed_in_as' => 'Connectat com',
|
||||
'sign_in' => 'sign in',
|
||||
'sign_out' => 'desconnectar',
|
||||
|
|
|
@ -506,10 +506,13 @@ URL: [url]',
|
|||
'expiry_changed_email_subject' => '[sitename]: [name] - Datum ukončení platnosti změněn',
|
||||
'export' => '',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => 'Správa rozšíření',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'Únor',
|
||||
'file' => 'Soubor',
|
||||
'files' => 'Soubory',
|
||||
|
@ -1447,6 +1450,8 @@ URL: [url]',
|
|||
'set_owner_error' => 'Chybné nastavení vlastníka',
|
||||
'set_password' => 'Nastavení hesla',
|
||||
'set_workflow' => 'Nastavení pracovního postupu',
|
||||
'show_extension_changelog' => '',
|
||||
'show_extension_version_list' => '',
|
||||
'signed_in_as' => 'Přihlášen jako',
|
||||
'sign_in' => 'Přihlásit',
|
||||
'sign_out' => 'Odhlásit',
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (2582), dgrutsch (22)
|
||||
// Translators: Admin (2588), dgrutsch (22)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '2-Faktor Authentifizierung',
|
||||
|
@ -529,10 +529,13 @@ URL: [url]',
|
|||
'expiry_changed_email_subject' => '[sitename]: [name] - Ablaufdatum geändert',
|
||||
'export' => 'Export',
|
||||
'extension_archive' => 'Erweiterung',
|
||||
'extension_changelog' => 'Versionshistorie',
|
||||
'extension_loading' => 'Lade Erweiterungen ...',
|
||||
'extension_manager' => 'Erweiterungen verwalten',
|
||||
'extension_mgr_installed' => 'Installiert',
|
||||
'extension_mgr_no_upload' => 'Der Upload neuer Erweiterungen ist nicht möglich, weil das Verzeichnis für Erweiterungen nicht beschreibbar ist.',
|
||||
'extension_mgr_repository' => 'Verfügbar',
|
||||
'extension_version_list' => 'Versionen',
|
||||
'february' => 'Februar',
|
||||
'file' => 'Datei',
|
||||
'files' => 'Dateien',
|
||||
|
@ -1527,6 +1530,8 @@ Name: [username]
|
|||
'set_owner_error' => 'Fehler beim Setzen des Besitzers',
|
||||
'set_password' => 'Passwort setzen',
|
||||
'set_workflow' => 'Workflow zuweisen',
|
||||
'show_extension_changelog' => 'Zeige Versionshistorie',
|
||||
'show_extension_version_list' => 'Zeige Liste der Versionen',
|
||||
'signed_in_as' => 'Angemeldet als',
|
||||
'sign_in' => 'Anmelden',
|
||||
'sign_out' => 'Abmelden',
|
||||
|
|
|
@ -448,10 +448,13 @@ $text = array(
|
|||
'expiry_changed_email_subject' => '',
|
||||
'export' => '',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => '',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'Φεβρουάριος',
|
||||
'file' => 'Αρχείο',
|
||||
'files' => 'Αρχεία',
|
||||
|
@ -1312,6 +1315,8 @@ URL: [url]',
|
|||
'set_owner_error' => '',
|
||||
'set_password' => '',
|
||||
'set_workflow' => '',
|
||||
'show_extension_changelog' => '',
|
||||
'show_extension_version_list' => '',
|
||||
'signed_in_as' => 'Σύνδεση σαν',
|
||||
'sign_in' => 'Σύνδεση',
|
||||
'sign_out' => 'Αποσύνδεση',
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (1696), archonwang (3), dgrutsch (9), netixw (14)
|
||||
// Translators: Admin (1701), archonwang (3), dgrutsch (9), netixw (14)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '2-factor authentication',
|
||||
|
@ -530,10 +530,13 @@ URL: [url]',
|
|||
'expiry_changed_email_subject' => '[sitename]: [name] - Expiry date changed',
|
||||
'export' => 'Export',
|
||||
'extension_archive' => 'Extension',
|
||||
'extension_changelog' => 'Changelog',
|
||||
'extension_loading' => 'Loading extensions ...',
|
||||
'extension_manager' => 'Manage extensions',
|
||||
'extension_mgr_installed' => 'Installed',
|
||||
'extension_mgr_no_upload' => 'Uploading new extensions is not possible because the extentension directory is not writable.',
|
||||
'extension_mgr_repository' => 'Available',
|
||||
'extension_version_list' => 'Versions',
|
||||
'february' => 'February',
|
||||
'file' => 'File',
|
||||
'files' => 'Files',
|
||||
|
@ -1522,6 +1525,8 @@ Name: [username]
|
|||
'set_owner_error' => 'Error setting owner',
|
||||
'set_password' => 'Set Password',
|
||||
'set_workflow' => 'Set Workflow',
|
||||
'show_extension_changelog' => 'Show Changelog',
|
||||
'show_extension_version_list' => 'Show list of versions',
|
||||
'signed_in_as' => 'Signed in as',
|
||||
'sign_in' => 'Sign in',
|
||||
'sign_out' => 'Sign out',
|
||||
|
|
|
@ -506,10 +506,13 @@ URL: [url]',
|
|||
'expiry_changed_email_subject' => '[sitename]: [name] - Fecha de caducidad modificada',
|
||||
'export' => '',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => 'Administrar extensiones',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'Febrero',
|
||||
'file' => 'Fichero',
|
||||
'files' => 'Ficheros',
|
||||
|
@ -1453,6 +1456,8 @@ URL: [url]',
|
|||
'set_owner_error' => 'Error estableciendo propietario',
|
||||
'set_password' => 'Establecer contraseña',
|
||||
'set_workflow' => 'Establecer Flujo de Trabajo',
|
||||
'show_extension_changelog' => '',
|
||||
'show_extension_version_list' => '',
|
||||
'signed_in_as' => 'Conectado como',
|
||||
'sign_in' => 'Conectar',
|
||||
'sign_out' => 'Salir',
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (1080), jeromerobert (50), lonnnew (9), Oudiceval (660)
|
||||
// Translators: Admin (1080), jeromerobert (50), lonnnew (9), Oudiceval (674)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => 'Authentification forte',
|
||||
|
@ -271,7 +271,7 @@ URL: [url]',
|
|||
'comment' => 'Commentaire',
|
||||
'comment_changed_email' => '',
|
||||
'comment_for_current_version' => 'Commentaires pour la version actuelle',
|
||||
'configure_extension' => '',
|
||||
'configure_extension' => 'Configurer l’extension',
|
||||
'confirm_clear_cache' => 'Confirmer l\'effacement du cache',
|
||||
'confirm_create_fulltext_index' => 'Oui, je souhaite recréer l\'index de recherche plein texte !',
|
||||
'confirm_move_document' => 'Veuillez confirmer le déplacement du document.',
|
||||
|
@ -350,8 +350,15 @@ URL: [url]',
|
|||
'documents_with_notification' => 'Documents avec notification',
|
||||
'document_already_checkedout' => 'Ce document est déjà débloqué',
|
||||
'document_already_locked' => 'Ce document est déjà verrouillé',
|
||||
'document_attribute_changed_email_body' => '',
|
||||
'document_attribute_changed_email_subject' => '',
|
||||
'document_attribute_changed_email_body' => 'Attribut modifié
|
||||
Document : [name]
|
||||
Attribut : [attribute_name]
|
||||
Ancienne valeur : [attribute_old_value]
|
||||
Nouvelle valeur : [attribute_new_value]
|
||||
Dossier parent : [folder_path]
|
||||
Utilisateur : [username]
|
||||
URL : [url]',
|
||||
'document_attribute_changed_email_subject' => '[sitename] : [name] - Attribut modifié',
|
||||
'document_comment_changed_email' => 'Commentaire modifié',
|
||||
'document_comment_changed_email_body' => 'Commentaire modifié
|
||||
Document: [name]
|
||||
|
@ -421,7 +428,7 @@ URL: [url]',
|
|||
'does_not_expire' => 'N\'expire jamais',
|
||||
'does_not_inherit_access_msg' => 'Accès hérité',
|
||||
'download' => 'Téléchargement',
|
||||
'download_extension' => '',
|
||||
'download_extension' => 'Télécharger l’extension en tant que fichier zip',
|
||||
'download_links' => 'Liens de téléchargement',
|
||||
'download_link_email_body' => 'Cliquez sur le lien suivant pour télécharger la version [version] du document
|
||||
« [docname] ».
|
||||
|
@ -522,11 +529,14 @@ Utilisateur : [username]
|
|||
URL : [url]',
|
||||
'expiry_changed_email_subject' => '[sitename]: [name] - Date d\'expiration modifiée',
|
||||
'export' => '',
|
||||
'extension_archive' => '',
|
||||
'extension_archive' => 'Extension',
|
||||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => 'Gestionnaire d\'extensions',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_mgr_installed' => 'Installées',
|
||||
'extension_mgr_no_upload' => 'L’ajout de nouvelles extensions n’est pas possible car le répertoire des extensions n’est pas accessible en écriture.',
|
||||
'extension_mgr_repository' => 'Disponibles',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'Février',
|
||||
'file' => 'Fichier',
|
||||
'files' => 'Fichiers',
|
||||
|
@ -540,8 +550,15 @@ URL : [url]',
|
|||
'folders' => 'Dossiers',
|
||||
'folders_and_documents_statistic' => 'Aperçu du contenu',
|
||||
'folders_with_notification' => 'Dossiers avec notification',
|
||||
'folder_attribute_changed_email_body' => '',
|
||||
'folder_attribute_changed_email_subject' => '',
|
||||
'folder_attribute_changed_email_body' => 'Attribut modifié
|
||||
Dossier : [name]
|
||||
Attribut : [attribute_name]
|
||||
Ancienne valeur : [attribute_old_value]
|
||||
Nouvelle valeur : [attribute_new_value]
|
||||
Dossier parent : [folder_path]
|
||||
Utilisateur : [username]
|
||||
URL : [url]',
|
||||
'folder_attribute_changed_email_subject' => '[sitename] : [name] - Attribut modifié',
|
||||
'folder_comment_changed_email' => 'Commentaire changé',
|
||||
'folder_comment_changed_email_body' => 'Commentaire changé
|
||||
Dossier: [name]
|
||||
|
@ -618,7 +635,7 @@ URL: [url]',
|
|||
'identical_version' => 'Nouvelle version identique à l\'actuelle.',
|
||||
'import' => 'Importer',
|
||||
'importfs' => 'Importer depuis le système de fichiers',
|
||||
'import_extension' => '',
|
||||
'import_extension' => 'Importer l’extension',
|
||||
'import_fs' => 'Importer depuis le système de fichiers',
|
||||
'import_fs_warning' => 'L’importation peut se faire à partir du dossier de dépôt personnel uniquement. Tous les sous-dossiers et fichiers seront importés. Les fichiers seront immédiatement publiés.',
|
||||
'include_content' => 'Inclure le contenu',
|
||||
|
@ -714,7 +731,7 @@ URL: [url]',
|
|||
'local_file' => 'Fichier local',
|
||||
'locked_by' => 'Verrouillé par',
|
||||
'lock_document' => 'Verrouiller',
|
||||
'lock_message' => 'Ce document a été verrouillé par [username]. Seuls les utilisateurs autorisés peuvent déverrouiller ce document (voir fin de page).',
|
||||
'lock_message' => 'Ce document a été verrouillé par [username]. Seuls les utilisateurs autorisés peuvent déverrouiller ce document.',
|
||||
'lock_status' => 'Statut',
|
||||
'login' => 'Identification',
|
||||
'login_disabled_text' => 'Votre compte est désactivé, sans doute à cause de trop nombreuses connexions qui ont échoué.',
|
||||
|
@ -1492,6 +1509,8 @@ Nom : [username]
|
|||
'set_owner_error' => 'Erreur lors de la définition du propriétaire',
|
||||
'set_password' => 'Définir mot de passe',
|
||||
'set_workflow' => 'Définir le Workflow',
|
||||
'show_extension_changelog' => '',
|
||||
'show_extension_version_list' => '',
|
||||
'signed_in_as' => 'Connecté en tant que',
|
||||
'sign_in' => 'Connexion',
|
||||
'sign_out' => 'Déconnexion',
|
||||
|
@ -1525,8 +1544,8 @@ Nom : [username]
|
|||
'splash_error_add_to_transmittal' => 'Erreur lors de l’ajout du document à la transmission',
|
||||
'splash_error_rm_download_link' => 'Erreur lors de la suppression du lien de téléchargement',
|
||||
'splash_error_send_download_link' => 'Erreur lors de l’envoi du lien de téléchargement',
|
||||
'splash_extension_import' => '',
|
||||
'splash_extension_refresh' => '',
|
||||
'splash_extension_import' => 'Extension installée',
|
||||
'splash_extension_refresh' => 'Liste des extensions actualisée',
|
||||
'splash_folder_edited' => 'Dossier modifié',
|
||||
'splash_importfs' => '[docs] documents et [folders] dossiers importés',
|
||||
'splash_inherit_access' => 'Droits d’accès hérités',
|
||||
|
|
|
@ -511,10 +511,13 @@ Internet poveznica: [url]',
|
|||
'expiry_changed_email_subject' => '[sitename]: [name] - Promijenjen datum isteka',
|
||||
'export' => 'Izvoz',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => 'Upravljanje ekstenzijama',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'Veljača',
|
||||
'file' => 'Datoteka',
|
||||
'files' => 'Datoteke',
|
||||
|
@ -1474,6 +1477,8 @@ Internet poveznica: [url]',
|
|||
'set_owner_error' => 'Greška pri postavljanju vlasnika',
|
||||
'set_password' => 'Postavi lozinku',
|
||||
'set_workflow' => 'Postavi tok rada',
|
||||
'show_extension_changelog' => '',
|
||||
'show_extension_version_list' => '',
|
||||
'signed_in_as' => 'Prijavljen kao',
|
||||
'sign_in' => 'Prijava u sustav',
|
||||
'sign_out' => 'Odjava',
|
||||
|
|
|
@ -506,10 +506,13 @@ URL: [url]',
|
|||
'expiry_changed_email_subject' => '[sitename]: [name] - Lejárati dátum módosítva',
|
||||
'export' => '',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => 'Bővítmények kezelése',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'Február',
|
||||
'file' => 'Állomány',
|
||||
'files' => 'Állományok',
|
||||
|
@ -1452,6 +1455,8 @@ URL: [url]',
|
|||
'set_owner_error' => 'Hiba a tulajdonos beállításakor',
|
||||
'set_password' => 'Jelszó beállítása',
|
||||
'set_workflow' => 'Munkafolyamat beállítása',
|
||||
'show_extension_changelog' => '',
|
||||
'show_extension_version_list' => '',
|
||||
'signed_in_as' => 'Bejelentkezve mint',
|
||||
'sign_in' => 'Bejelentkezés',
|
||||
'sign_out' => 'Kijelentkezés',
|
||||
|
|
|
@ -512,10 +512,13 @@ URL: [url]',
|
|||
'expiry_changed_email_subject' => '[sitename]: [name] - Scadenza cambiata',
|
||||
'export' => 'Esporta',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => 'Gestisci le estensioni dei files',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'Febbraio',
|
||||
'file' => 'File',
|
||||
'files' => 'Files',
|
||||
|
@ -1486,6 +1489,8 @@ URL: [url]',
|
|||
'set_owner_error' => 'Errore nell\'impostazione del proprietario',
|
||||
'set_password' => 'Imposta Password',
|
||||
'set_workflow' => 'Imposta il flusso di lavoro',
|
||||
'show_extension_changelog' => '',
|
||||
'show_extension_version_list' => '',
|
||||
'signed_in_as' => 'Utente',
|
||||
'sign_in' => 'Accesso',
|
||||
'sign_out' => 'Disconnettiti',
|
||||
|
|
|
@ -512,10 +512,13 @@ URL: [url]',
|
|||
'expiry_changed_email_subject' => '[sitename] : [name] - 유효 기간 변경',
|
||||
'export' => '내보내기',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => '확장자 관리',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => '2월',
|
||||
'file' => '파일',
|
||||
'files' => '파일',
|
||||
|
@ -1468,6 +1471,8 @@ URL : [url]',
|
|||
'set_owner_error' => '소유자 설정 오류',
|
||||
'set_password' => '비밀번호 설정',
|
||||
'set_workflow' => '워크플로우 설정',
|
||||
'show_extension_changelog' => '',
|
||||
'show_extension_version_list' => '',
|
||||
'signed_in_as' => '로그인',
|
||||
'sign_in' => '로그인',
|
||||
'sign_out' => '로그 아웃',
|
||||
|
|
|
@ -511,10 +511,13 @@ URL: [url]',
|
|||
'expiry_changed_email_subject' => '[sitename]: [name] - Vervaldatum gewijzigd',
|
||||
'export' => 'export',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => 'Beheer uitbreidingen',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'februari',
|
||||
'file' => 'Bestand',
|
||||
'files' => 'Bestanden',
|
||||
|
@ -1498,6 +1501,8 @@ Name: [username]
|
|||
'set_owner_error' => 'Fout bij instellen eigenaar',
|
||||
'set_password' => 'Stel wachtwoord in',
|
||||
'set_workflow' => 'Stel workflow in',
|
||||
'show_extension_changelog' => '',
|
||||
'show_extension_version_list' => '',
|
||||
'signed_in_as' => 'Ingelogd als:',
|
||||
'sign_in' => 'Log in',
|
||||
'sign_out' => 'Log uit',
|
||||
|
|
|
@ -499,10 +499,13 @@ URL: [url]',
|
|||
'expiry_changed_email_subject' => '[sitename]: [name] - Zmiana daty wygaśnięcia',
|
||||
'export' => '',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => 'Zarządzanie rozszerzeniami',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'Luty',
|
||||
'file' => 'Plik',
|
||||
'files' => 'Pliki',
|
||||
|
@ -1432,6 +1435,8 @@ URL: [url]',
|
|||
'set_owner_error' => 'Błąd podczas ustawiania właściciela',
|
||||
'set_password' => 'Zmień hasło',
|
||||
'set_workflow' => 'Ustaw proces',
|
||||
'show_extension_changelog' => '',
|
||||
'show_extension_version_list' => '',
|
||||
'signed_in_as' => 'Zalogowany jako',
|
||||
'sign_in' => 'Zaloguj się',
|
||||
'sign_out' => 'Wyloguj',
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (974), flaviove (627), lfcristofoli (352)
|
||||
// Translators: Admin (976), flaviove (627), lfcristofoli (352)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '',
|
||||
|
@ -291,8 +291,8 @@ URL: [url]',
|
|||
'confirm_update_transmittalitem' => '',
|
||||
'content' => 'Conteúdo',
|
||||
'continue' => 'Continue',
|
||||
'converter_new_cmd' => '',
|
||||
'converter_new_mimetype' => '',
|
||||
'converter_new_cmd' => 'Comando',
|
||||
'converter_new_mimetype' => 'Novo mimetype',
|
||||
'copied_to_checkout_as' => '',
|
||||
'create_download_link' => '',
|
||||
'create_fulltext_index' => 'Criar índice de texto completo',
|
||||
|
@ -505,10 +505,13 @@ URL: [url]',
|
|||
'expiry_changed_email_subject' => '[sitename]: [name] - Data de validade mudou',
|
||||
'export' => '',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => 'Gerenciar extensões',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'February',
|
||||
'file' => 'Arquivo',
|
||||
'files' => 'Arquivos',
|
||||
|
@ -1450,6 +1453,8 @@ URL: [url]',
|
|||
'set_owner_error' => 'Proprietário configuração de erro',
|
||||
'set_password' => 'Definir Senha',
|
||||
'set_workflow' => 'Definir fluxo de trabalho',
|
||||
'show_extension_changelog' => '',
|
||||
'show_extension_version_list' => '',
|
||||
'signed_in_as' => 'Logado como',
|
||||
'sign_in' => 'Entrar',
|
||||
'sign_out' => 'Sair',
|
||||
|
|
|
@ -511,10 +511,13 @@ URL: [url]',
|
|||
'expiry_changed_email_subject' => '[sitename]: [name] - Data de expirare schimbată',
|
||||
'export' => '',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => 'Gestionați extensiile',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'Februarie',
|
||||
'file' => 'Fișier',
|
||||
'files' => 'Fișiere',
|
||||
|
@ -1475,6 +1478,8 @@ URL: [url]',
|
|||
'set_owner_error' => 'Eroare setare proprietar',
|
||||
'set_password' => 'Setare Parolă',
|
||||
'set_workflow' => 'Setare Workflow',
|
||||
'show_extension_changelog' => '',
|
||||
'show_extension_version_list' => '',
|
||||
'signed_in_as' => 'Autentificat ca',
|
||||
'sign_in' => 'Sign in',
|
||||
'sign_out' => 'Sign out',
|
||||
|
|
|
@ -511,10 +511,13 @@ URL: [url]',
|
|||
'expiry_changed_email_subject' => '[sitename]: изменен срок действия для «[name]»',
|
||||
'export' => 'Экспорт',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => 'Управление расширениями',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'Февраль',
|
||||
'file' => 'Файл',
|
||||
'files' => 'Файлы',
|
||||
|
@ -1482,6 +1485,8 @@ URL: [url]',
|
|||
'set_owner_error' => 'Ошибка при установке владельца',
|
||||
'set_password' => 'Установить пароль',
|
||||
'set_workflow' => 'Установить процесс',
|
||||
'show_extension_changelog' => '',
|
||||
'show_extension_version_list' => '',
|
||||
'signed_in_as' => 'Пользователь',
|
||||
'sign_in' => 'Войти',
|
||||
'sign_out' => 'Выйти',
|
||||
|
|
|
@ -460,10 +460,13 @@ URL: [url]',
|
|||
'expiry_changed_email_subject' => '[sitename]: [name] - Dátum vypršania platnosti bol zmenený',
|
||||
'export' => 'Exportovať',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => 'Správa rozšírení',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'Február',
|
||||
'file' => 'Súbor',
|
||||
'files' => 'Súbory',
|
||||
|
@ -1313,6 +1316,8 @@ URL: [url]',
|
|||
'set_owner_error' => '',
|
||||
'set_password' => 'Nastaviť heslo',
|
||||
'set_workflow' => '',
|
||||
'show_extension_changelog' => '',
|
||||
'show_extension_version_list' => '',
|
||||
'signed_in_as' => 'Prihlásený ako',
|
||||
'sign_in' => 'Prihlásiť sa',
|
||||
'sign_out' => 'odhlásiť',
|
||||
|
|
|
@ -524,10 +524,13 @@ URL: [url]',
|
|||
'expiry_changed_email_subject' => '[sitename]: [name] - Utgångsdatum ändrat',
|
||||
'export' => 'Exportera',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => 'Hantera tillägg',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'februari',
|
||||
'file' => 'Fil',
|
||||
'files' => 'Filer',
|
||||
|
@ -1495,6 +1498,8 @@ Kommentar: [comment]',
|
|||
'set_owner_error' => 'Fel vid val av ägare',
|
||||
'set_password' => 'Ange lösenord',
|
||||
'set_workflow' => 'Välj arbetsflöde',
|
||||
'show_extension_changelog' => '',
|
||||
'show_extension_version_list' => '',
|
||||
'signed_in_as' => 'Inloggad som',
|
||||
'sign_in' => 'Logga in',
|
||||
'sign_out' => 'Logga ut',
|
||||
|
|
|
@ -505,10 +505,13 @@ URL: [url]',
|
|||
'expiry_changed_email_subject' => '[sitename]: [name] - Bitiş tarihi değişti',
|
||||
'export' => '',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => 'Uzantıları düzenle',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'Şubat',
|
||||
'file' => 'Dosya',
|
||||
'files' => 'Dosyalar',
|
||||
|
@ -1454,6 +1457,8 @@ URL: [url]',
|
|||
'set_owner_error' => 'Sahip belirlenirken hata oluştu',
|
||||
'set_password' => 'Parola Belirle',
|
||||
'set_workflow' => 'İş Akışı Tanımla',
|
||||
'show_extension_changelog' => '',
|
||||
'show_extension_version_list' => '',
|
||||
'signed_in_as' => 'Giriş yapan kullanıcı',
|
||||
'sign_in' => 'Giriş',
|
||||
'sign_out' => 'Çıkış',
|
||||
|
|
|
@ -511,10 +511,13 @@ URL: [url]',
|
|||
'expiry_changed_email_subject' => '[sitename]: зміна дати терміну виконання для «[name]»',
|
||||
'export' => 'Експорт',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => 'Керування розширеннями',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'Лютий',
|
||||
'file' => 'Файл',
|
||||
'files' => 'Файли',
|
||||
|
@ -1475,6 +1478,8 @@ URL: [url]',
|
|||
'set_owner_error' => 'Помилка при призначенні власника',
|
||||
'set_password' => 'Встановити пароль',
|
||||
'set_workflow' => 'Вказати процес',
|
||||
'show_extension_changelog' => '',
|
||||
'show_extension_version_list' => '',
|
||||
'signed_in_as' => 'Користувач',
|
||||
'sign_in' => 'Увійти',
|
||||
'sign_out' => 'Вийти',
|
||||
|
|
|
@ -507,10 +507,13 @@ URL: [url]',
|
|||
'expiry_changed_email_subject' => '',
|
||||
'export' => '导出',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => '扩展管理器',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => '二 月',
|
||||
'file' => '文件',
|
||||
'files' => '文件',
|
||||
|
@ -1456,6 +1459,8 @@ URL: [url]',
|
|||
'set_owner_error' => '错误 设置所有者',
|
||||
'set_password' => '设定密码',
|
||||
'set_workflow' => '',
|
||||
'show_extension_changelog' => '',
|
||||
'show_extension_version_list' => '',
|
||||
'signed_in_as' => '登录为',
|
||||
'sign_in' => '登录',
|
||||
'sign_out' => '登出',
|
||||
|
|
|
@ -452,10 +452,13 @@ URL: [url]',
|
|||
'expiry_changed_email_subject' => '',
|
||||
'export' => '',
|
||||
'extension_archive' => '',
|
||||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => '整體索引進度',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => '二 月',
|
||||
'file' => '文件',
|
||||
'files' => '文件',
|
||||
|
@ -1305,6 +1308,8 @@ URL: [url]',
|
|||
'set_owner_error' => '錯誤 設置所有者',
|
||||
'set_password' => '',
|
||||
'set_workflow' => '',
|
||||
'show_extension_changelog' => '',
|
||||
'show_extension_version_list' => '',
|
||||
'signed_in_as' => '登錄為',
|
||||
'sign_in' => '',
|
||||
'sign_out' => '登出',
|
||||
|
|
|
@ -72,7 +72,7 @@ elseif ($action == "refresh") { /* {{{ */
|
|||
header("Location:../out/out.ExtensionMgr.php?currenttab=".$currenttab);
|
||||
} /* }}} */
|
||||
elseif ($action == "upload") { /* {{{ */
|
||||
if(!$extmgr->isWritableExitDir()) {
|
||||
if(!$extmgr->isWritableExtDir()) {
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("extension_mgr_no_upload"));
|
||||
}
|
||||
if($_FILES['userfile']['error']) {
|
||||
|
|
|
@ -41,6 +41,10 @@ if(isset($_GET['currenttab']))
|
|||
$currenttab = $_GET['currenttab'];
|
||||
else
|
||||
$currenttab = 'installed';
|
||||
if(isset($_GET['extensionname']))
|
||||
$extname = $_GET['extensionname'];
|
||||
else
|
||||
$extname = '';
|
||||
|
||||
if($view) {
|
||||
$view->setParam('httproot', $settings->_httpRoot);
|
||||
|
@ -49,6 +53,7 @@ if($view) {
|
|||
$view->setParam('accessobject', $accessop);
|
||||
$view->setParam('extmgr', $extmgr);
|
||||
$view->setParam('currenttab', $currenttab);
|
||||
$view->setParam('extname', $extname);
|
||||
$view->setParam('reposurl', $reposurl);
|
||||
$view($_GET);
|
||||
exit;
|
||||
|
|
|
@ -296,6 +296,13 @@ ul.qq-upload-list li span {
|
|||
display: none;
|
||||
}
|
||||
|
||||
@media (min-width: 1200px) {
|
||||
.modal-wide {
|
||||
width: 800px;
|
||||
margin-left: -400px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
.nav-tabs > li {
|
||||
float:none;
|
||||
|
|
|
@ -63,6 +63,66 @@ class SeedDMS_View_ExtensionMgr extends SeedDMS_Bootstrap_Style {
|
|||
<?php
|
||||
} /* }}} */
|
||||
|
||||
function info() { /* {{{ */
|
||||
$dms = $this->params['dms'];
|
||||
$user = $this->params['user'];
|
||||
$extmgr = $this->params['extmgr'];
|
||||
$extname = $this->params['extname'];
|
||||
|
||||
echo "<table class=\"table _table-condensed\">\n";
|
||||
print "<thead>\n<tr>\n";
|
||||
print "<th></th>\n";
|
||||
print "<th>".getMLText('name')."</th>\n";
|
||||
print "<th>".getMLText('version')."</th>\n";
|
||||
print "<th>".getMLText('author')."</th>\n";
|
||||
print "<th></th>\n";
|
||||
print "</tr></thead><tbody>\n";
|
||||
$list = $extmgr->getExtensionListByName($extname);
|
||||
foreach($list as $re) {
|
||||
$extmgr->checkExtension($re);
|
||||
$checkmsgs = $extmgr->getErrorMsgs();
|
||||
$needsupdate = !isset($GLOBALS['EXT_CONF'][$re['name']]) || SeedDMS_Extension_Mgr::cmpVersion($re['version'], $GLOBALS['EXT_CONF'][$re['name']]['version']) > 0;
|
||||
echo "<tr";
|
||||
if(isset($GLOBALS['EXT_CONF'][$re['name']])) {
|
||||
if($needsupdate)
|
||||
echo " class=\"warning\"";
|
||||
else
|
||||
echo " class=\"success\"";
|
||||
}
|
||||
echo ">";
|
||||
echo "<td width=\"32\">".($re['icon-data'] ? '<img width="32" height="32" alt="'.$re['name'].'" title="'.$re['name'].'" src="'.$re['icon-data'].'">' : '')."</td>";
|
||||
echo "<td>".$re['title']."<br /><small>".$re['description']."</small>";
|
||||
if($checkmsgs)
|
||||
echo "<div><img src=\"".$this->getImgPath("attention.gif")."\"> ".implode('<br /><img src="'.$this->getImgPath("attention.gif").'"> ', $checkmsgs)."</div>";
|
||||
echo "</td>";
|
||||
echo "<td nowrap>".$re['version']."<br /><small>".$re['releasedate']."</small></td>";
|
||||
echo "<td nowrap>".$re['author']['name']."<br /><small>".$re['author']['company']."</small></td>";
|
||||
echo "<td nowrap>";
|
||||
echo "<div class=\"list-action\">";
|
||||
if(!$checkmsgs && $extmgr->isWritableExtDir())
|
||||
echo "<form style=\"display: inline-block; margin: 0px;\" method=\"post\" action=\"../op/op.ExtensionMgr.php\" id=\"".$re['name']."-import\">".createHiddenFieldWithKey('extensionmgr')."<input type=\"hidden\" name=\"action\" value=\"import\" /><input type=\"hidden\" name=\"currenttab\" value=\"repository\" /><input type=\"hidden\" name=\"url\" value=\"".$re['filename']."\" /><a class=\"import\" data-extname=\"".$re['name']."\" title=\"".getMLText('import_extension')."\"><i class=\"icon-download\"></i></a></form>";
|
||||
echo "</div>";
|
||||
echo "</td>";
|
||||
echo "</tr>";
|
||||
}
|
||||
echo "</tbody></table>\n";
|
||||
} /* }}} */
|
||||
|
||||
function changelog() { /* {{{ */
|
||||
$dms = $this->params['dms'];
|
||||
$user = $this->params['user'];
|
||||
$extdir = $this->params['extdir'];
|
||||
$extmgr = $this->params['extmgr'];
|
||||
$extname = $this->params['extname'];
|
||||
|
||||
if(isset($GLOBALS['EXT_CONF'][$extname])) {
|
||||
$extconf = $GLOBALS['EXT_CONF'][$extname];
|
||||
if(!empty($extconf['changelog']) && file_exists($extdir."/".$extname."/".$extconf['changelog'])) {
|
||||
echo '<div style="white-space: pre-wrap; font-family: monospace; padding: 0px;">'.file_get_contents($extdir."/".$extname."/".$extconf['changelog'])."</div>";
|
||||
}
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
function show() { /* {{{ */
|
||||
$dms = $this->params['dms'];
|
||||
$user = $this->params['user'];
|
||||
|
@ -82,7 +142,7 @@ class SeedDMS_View_ExtensionMgr extends SeedDMS_Bootstrap_Style {
|
|||
<div class="row-fluid">
|
||||
<div class="span4">
|
||||
<?php
|
||||
if($extmgr->isWritableExitDir()) {
|
||||
if($extmgr->isWritableExtDir()) {
|
||||
?>
|
||||
<form class="form-horizontal" method="post" enctype="multipart/form-data" action="../op/op.ExtensionMgr.php">
|
||||
<?= createHiddenFieldWithKey('extensionmgr') ?>
|
||||
|
@ -135,14 +195,11 @@ class SeedDMS_View_ExtensionMgr extends SeedDMS_Bootstrap_Style {
|
|||
echo "<tr class=\"success\">";
|
||||
} else
|
||||
echo "<tr class=\"warning\">";
|
||||
echo "<td>";
|
||||
echo "<td width=\"32\">";
|
||||
if($extconf['icon'])
|
||||
echo "<img src=\"".$httproot."ext/".$extname."/".$extconf['icon']."\" alt=\"".$extname."\" title=\"".$extname."\">";
|
||||
echo "<img width=\"32\" height=\"32\" src=\"".$httproot."ext/".$extname."/".$extconf['icon']."\" alt=\"".$extname."\" title=\"".$extname."\">";
|
||||
echo "</td>";
|
||||
echo "<td>".$extconf['title'];
|
||||
if(!empty($extconf['changelog']) && file_exists($extdir."/".$extname."/".$extconf['changelog'])) {
|
||||
echo $this->printPopupBox("<i class=\"icon-reorder\"></i>", '<div style="white-space: pre-wrap; font-family: monospace; padding: 0px;">'.file_get_contents($extdir."/".$extname."/".$extconf['changelog'])."</div>", true);
|
||||
}
|
||||
echo "<br /><small>".$extconf['description']."</small>";
|
||||
if($errmsgs)
|
||||
echo "<div><img src=\"".$this->getImgPath("attention.gif")."\"> ".implode('<br /><img src="'.$this->getImgPath("attention.gif").'"> ', $errmsgs)."</div>";
|
||||
|
@ -153,6 +210,9 @@ class SeedDMS_View_ExtensionMgr extends SeedDMS_Bootstrap_Style {
|
|||
echo "<td nowrap><a href=\"mailto:".$extconf['author']['email']."\">".$extconf['author']['name']."</a><br /><small>".$extconf['author']['company']."</small></td>";
|
||||
echo "<td nowrap>";
|
||||
echo "<div class=\"list-action\">";
|
||||
if(!empty($extconf['changelog']) && file_exists($extdir."/".$extname."/".$extconf['changelog'])) {
|
||||
echo "<a data-target=\"#extensionChangelog\" href=\"../out/out.ExtensionMgr.php?action=changelog&extensionname=".$extname."\" data-toggle=\"modal\" title=\"".getMLText('show_extension_changelog')."\"><i class=\"icon-reorder\"></i></a>\n";
|
||||
}
|
||||
if($extconf['config'])
|
||||
echo "<a href=\"../out/out.Settings.php?currenttab=extensions#".$extname."\" title=\"".getMLText('configure_extension')."\"><i class=\"icon-cogs\"></i></a>";
|
||||
echo "<form style=\"display: inline-block; margin: 0px;\" method=\"post\" action=\"../op/op.ExtensionMgr.php\" id=\"".$extname."-download\">".createHiddenFieldWithKey('extensionmgr')."<input type=\"hidden\" name=\"action\" value=\"download\" /><input type=\"hidden\" name=\"extname\" value=\"".$extname."\" /><a class=\"download\" data-extname=\"".$extname."\" title=\"".getMLText('download_extension')."\"><i class=\"icon-download\"></i></a></form>";
|
||||
|
@ -183,35 +243,34 @@ class SeedDMS_View_ExtensionMgr extends SeedDMS_Bootstrap_Style {
|
|||
print "<th></th>\n";
|
||||
print "</tr></thead><tbody>\n";
|
||||
$list = $extmgr->getExtensionList();
|
||||
foreach($list as $e) {
|
||||
if($e[0] != '#') {
|
||||
$re = json_decode($e, true);
|
||||
$extmgr->checkExtension($re);
|
||||
$checkmsgs = $extmgr->getErrorMsgs();
|
||||
$needsupdate = !isset($GLOBALS['EXT_CONF'][$re['name']]) || SeedDMS_Extension_Mgr::cmpVersion($re['version'], $GLOBALS['EXT_CONF'][$re['name']]['version']) > 0;
|
||||
echo "<tr";
|
||||
if(isset($GLOBALS['EXT_CONF'][$re['name']])) {
|
||||
if($needsupdate)
|
||||
echo " class=\"warning\"";
|
||||
else
|
||||
echo " class=\"success\"";
|
||||
}
|
||||
echo ">";
|
||||
echo "<td></td>";
|
||||
echo "<td>".$re['title']."<br /><small>".$re['description']."</small>";
|
||||
if($checkmsgs)
|
||||
echo "<div><img src=\"".$this->getImgPath("attention.gif")."\"> ".implode('<br /><img src="'.$this->getImgPath("attention.gif").'"> ', $checkmsgs)."</div>";
|
||||
echo "</td>";
|
||||
echo "<td nowrap>".$re['version']."<br /><small>".$re['releasedate']."</small></td>";
|
||||
echo "<td nowrap>".$re['author']['name']."<br /><small>".$re['author']['company']."</small></td>";
|
||||
echo "<td nowrap>";
|
||||
echo "<div class=\"list-action\">";
|
||||
if(!$checkmsgs && $extmgr->isWritableExitDir())
|
||||
echo "<form style=\"display: inline-block; margin: 0px;\" method=\"post\" action=\"../op/op.ExtensionMgr.php\" id=\"".$re['name']."-import\">".createHiddenFieldWithKey('extensionmgr')."<input type=\"hidden\" name=\"action\" value=\"import\" /><input type=\"hidden\" name=\"currenttab\" value=\"repository\" /><input type=\"hidden\" name=\"url\" value=\"".$re['filename']."\" /><a class=\"import\" data-extname=\"".$re['name']."\" title=\"".getMLText('import_extension')."\"><i class=\"icon-download\"></i></a></form>";
|
||||
echo "</div>";
|
||||
echo "</td>";
|
||||
echo "</tr>";
|
||||
foreach($list as $re) {
|
||||
$extmgr->checkExtension($re);
|
||||
$checkmsgs = $extmgr->getErrorMsgs();
|
||||
$needsupdate = !isset($GLOBALS['EXT_CONF'][$re['name']]) || SeedDMS_Extension_Mgr::cmpVersion($re['version'], $GLOBALS['EXT_CONF'][$re['name']]['version']) > 0;
|
||||
echo "<tr";
|
||||
if(isset($GLOBALS['EXT_CONF'][$re['name']])) {
|
||||
if($needsupdate)
|
||||
echo " class=\"warning\"";
|
||||
else
|
||||
echo " class=\"success\"";
|
||||
}
|
||||
echo ">";
|
||||
echo "<td width=\"32\">".($re['icon-data'] ? '<img width="32" height="32" alt="'.$re['name'].'" title="'.$re['name'].'" src="'.$re['icon-data'].'">' : '')."</td>";
|
||||
echo "<td>".$re['title'];
|
||||
echo "<br /><small>".$re['description']."</small>";
|
||||
if($checkmsgs)
|
||||
echo "<div><img src=\"".$this->getImgPath("attention.gif")."\"> ".implode('<br /><img src="'.$this->getImgPath("attention.gif").'"> ', $checkmsgs)."</div>";
|
||||
echo "</td>";
|
||||
echo "<td nowrap>".$re['version']."<br /><small>".$re['releasedate']."</small></td>";
|
||||
echo "<td nowrap>".$re['author']['name']."<br /><small>".$re['author']['company']."</small></td>";
|
||||
echo "<td nowrap>";
|
||||
echo "<div class=\"list-action\">";
|
||||
echo "<a data-target=\"#extensionInfo\" href=\"../out/out.ExtensionMgr.php?action=info&extensionname=".$re['name']."\" data-toggle=\"modal\" title=\"".getMLText('show_extension_version_list')."\"><i class=\"icon-list-ol\"></i></a>\n";
|
||||
if(!$checkmsgs && $extmgr->isWritableExtDir())
|
||||
echo "<form style=\"display: inline-block; margin: 0px;\" method=\"post\" action=\"../op/op.ExtensionMgr.php\" id=\"".$re['name']."-import\">".createHiddenFieldWithKey('extensionmgr')."<input type=\"hidden\" name=\"action\" value=\"import\" /><input type=\"hidden\" name=\"currenttab\" value=\"repository\" /><input type=\"hidden\" name=\"url\" value=\"".$re['filename']."\" /><a class=\"import\" data-extname=\"".$re['name']."\" title=\"".getMLText('import_extension')."\"><i class=\"icon-download\"></i></a></form>";
|
||||
echo "</div>";
|
||||
echo "</td>";
|
||||
echo "</tr>";
|
||||
}
|
||||
echo "</tbody></table>\n";
|
||||
?>
|
||||
|
@ -227,7 +286,32 @@ class SeedDMS_View_ExtensionMgr extends SeedDMS_Bootstrap_Style {
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal modal-wide hide" id="extensionInfo" tabindex="-1" role="dialog" aria-labelledby="extensionInfoLabel" aria-hidden="true">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h3 id="extensionInfoLabel"><?= getMLText("extension_version_list") ?></h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p><?php printMLText('extension_loading') ?></p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-primary" data-dismiss="modal" aria-hidden="true"><?php printMLText("close") ?></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal modal-wide hide" id="extensionChangelog" tabindex="-1" role="dialog" aria-labelledby="extensionChangelogLabel" aria-hidden="true">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h3 id="extensionChangelogLabel"><?= getMLText("extension_changelog") ?></h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p><?php printMLText('extension_loading') ?></p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-primary" data-dismiss="modal" aria-hidden="true"><?php printMLText("close") ?></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
$this->contentEnd();
|
||||
$this->htmlEndPage();
|
||||
|
|
|
@ -15,9 +15,10 @@ if($settings->_logFileEnable) {
|
|||
$logname = $settings->_contentDir."log/webdav-".$logname.".log";
|
||||
if(!file_exists($settings->_contentDir.'log'))
|
||||
@mkdir($settings->_contentDir.'log');
|
||||
if(file_exists($settings->_contentDir.'log') && is_dir($settings->_contentDir.'log'))
|
||||
if(file_exists($settings->_contentDir.'log') && is_dir($settings->_contentDir.'log')) {
|
||||
$log = Log::factory('file', $logname);
|
||||
else
|
||||
$log->setMask(Log::MAX(PEAR_LOG_INFO));
|
||||
} else
|
||||
$log = null;
|
||||
} else {
|
||||
$log = null;
|
||||
|
|
|
@ -55,18 +55,6 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
|
|||
*/
|
||||
function ServeRequest($dms = null, $logger = null) /* {{{ */
|
||||
{
|
||||
// special treatment for litmus compliance test
|
||||
// reply on its identifier header
|
||||
// not needed for the test itself but eases debugging
|
||||
if( function_exists('apache_request_headers') ) {
|
||||
foreach (apache_request_headers() as $key => $value) {
|
||||
if (stristr($key, "litmus")) {
|
||||
error_log("Litmus test $value");
|
||||
header("X-Litmus-reply: ".$value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// set root directory, defaults to webserver document root if not set
|
||||
if ($dms) {
|
||||
$this->dms = $dms;
|
||||
|
@ -77,12 +65,18 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
|
|||
// set logger
|
||||
$this->logger = $logger;
|
||||
|
||||
// establish connection to property/locking db
|
||||
/*
|
||||
mysql_connect($this->db_host, $this->db_user, $this->db_passwd) or die(mysql_error());
|
||||
mysql_select_db($this->db_name) or die(mysql_error());
|
||||
*/
|
||||
// TODO throw on connection problems
|
||||
// special treatment for litmus compliance test
|
||||
// reply on its identifier header
|
||||
// not needed for the test itself but eases debugging
|
||||
if( function_exists('apache_request_headers') ) {
|
||||
foreach (apache_request_headers() as $key => $value) {
|
||||
if (stristr($key, "litmus")) {
|
||||
if($this->logger)
|
||||
$this->logger->log('Litmus test '.$value, PEAR_LOG_DEBUG);
|
||||
header("X-Litmus-reply: ".$value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// let the base class do all the work
|
||||
parent::ServeRequest();
|
||||
|
@ -140,11 +134,17 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
|
|||
$userobj = $authobj->authenticate($user, $pass);
|
||||
} /* }}} */
|
||||
|
||||
if(!$userobj)
|
||||
if(!$userobj) {
|
||||
if($this->logger)
|
||||
$this->logger->log('check_auth: No such user', PEAR_LOG_NOTICE);
|
||||
return false;
|
||||
}
|
||||
|
||||
if(($userobj->getID() == $settings->_guestID) && (!$settings->_enableGuestLogin))
|
||||
if(($userobj->getID() == $settings->_guestID) && (!$settings->_enableGuestLogin)) {
|
||||
if($this->logger)
|
||||
$this->logger->log('check_auth: Login as guest is not allowed', PEAR_LOG_NOTICE);
|
||||
return false;
|
||||
}
|
||||
|
||||
if($userobj->isDisabled())
|
||||
return false;
|
||||
|
@ -538,6 +538,8 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
|
|||
*/
|
||||
function PUT(&$options) /* {{{ */
|
||||
{
|
||||
global $settings, $indexconf;
|
||||
|
||||
$this->log_options('PUT', $options);
|
||||
|
||||
$path = $options["path"];
|
||||
|
@ -555,6 +557,8 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
|
|||
|
||||
/* Check if user is logged in */
|
||||
if(!$this->user) {
|
||||
if($this->logger)
|
||||
$this->logger->log('PUT: access forbidden', PEAR_LOG_ERR);
|
||||
return "403 Forbidden";
|
||||
}
|
||||
|
||||
|
@ -580,47 +584,112 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
|
|||
if($lastDotIndex === false) $fileType = ".";
|
||||
else $fileType = substr($name, $lastDotIndex);
|
||||
}
|
||||
if($this->logger)
|
||||
$this->logger->log('PUT: file is of type '.$mimetype, PEAR_LOG_INFO);
|
||||
|
||||
/* First check whether there is already a file with the same name */
|
||||
if($this->useorgfilename)
|
||||
$document = $this->dms->getDocumentByOriginalFilename($name, $folder);
|
||||
else
|
||||
$document = $this->dms->getDocumentByName($name, $folder);
|
||||
if($document) {
|
||||
if($this->logger)
|
||||
$this->logger->log('PUT: replacing document id='.$document->getID(), PEAR_LOG_INFO);
|
||||
if ($document->getAccessMode($this->user) < M_READWRITE) {
|
||||
if($this->logger)
|
||||
$this->logger->log('PUT: no access on document', PEAR_LOG_ERR);
|
||||
unlink($tmpFile);
|
||||
return "403 Forbidden";
|
||||
} else{
|
||||
} else {
|
||||
/* Check if the new version iѕ identical to the current version.
|
||||
* In that case just update the modification date
|
||||
*/
|
||||
$lc = $document->getLatestContent();
|
||||
if($lc->getChecksum() == SeedDMS_Core_File::checksum($tmpFile)) {
|
||||
if($this->logger)
|
||||
$this->logger->log('PUT: identical to latest version', PEAR_LOG_INFO);
|
||||
$lc->setDate();
|
||||
} else {
|
||||
if($this->user->getID() == $lc->getUser()->getID() &&
|
||||
$name == $lc->getOriginalFileName() &&
|
||||
$fileType == $lc->getFileType() &&
|
||||
$mimetype == $lc->getMimeType()) {
|
||||
if($this->logger)
|
||||
$this->logger->log('PUT: replacing latest version', PEAR_LOG_INFO);
|
||||
if(!$document->replaceContent($lc->getVersion(), $this->user, $tmpFile, $name, $fileType, $mimetype)) {
|
||||
if($this->logger)
|
||||
$this->logger->log('PUT: error replacing latest version', PEAR_LOG_ERR);
|
||||
unlink($tmpFile);
|
||||
return "403 Forbidden";
|
||||
}
|
||||
} else {
|
||||
if($this->logger)
|
||||
$this->logger->log('PUT: adding new version', PEAR_LOG_INFO);
|
||||
if(!$document->addContent('', $this->user, $tmpFile, $name, $fileType, $mimetype, array(), array(), 0)) {
|
||||
if($this->logger)
|
||||
$this->logger->log('PUT: error adding new version', PEAR_LOG_ERR);
|
||||
unlink($tmpFile);
|
||||
return "409 Conflict";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
if($this->logger)
|
||||
$this->logger->log('PUT: adding new document', PEAR_LOG_INFO);
|
||||
if ($folder->getAccessMode($this->user) < M_READWRITE) {
|
||||
if($this->logger)
|
||||
$this->logger->log('PUT: no access on folder', PEAR_LOG_ERR);
|
||||
unlink($tmpFile);
|
||||
return "403 Forbidden";
|
||||
} elseif(!$res = $folder->addDocument($name, '', 0, $this->user, '', array(), $tmpFile, $name, $fileType, $mimetype, 0, array(), array(), 0, "")) {
|
||||
}
|
||||
if($settings->_enableFullSearch) {
|
||||
$index = $indexconf['Indexer']::open($settings->_luceneDir);
|
||||
$indexconf['Indexer']::init($settings->_stopWordsFile);
|
||||
} else {
|
||||
$index = null;
|
||||
$indexconf = null;
|
||||
}
|
||||
|
||||
$controller = Controller::factory('AddDocument');
|
||||
$controller->setParam('dms', $this->dms);
|
||||
$controller->setParam('user', $this->user);
|
||||
$controller->setParam('documentsource', 'webdav');
|
||||
$controller->setParam('folder', $folder);
|
||||
$controller->setParam('index', $index);
|
||||
$controller->setParam('indexconf', $indexconf);
|
||||
$controller->setParam('name', $name);
|
||||
$controller->setParam('comment', '');
|
||||
$controller->setParam('expires', 0);
|
||||
$controller->setParam('keywords', '');
|
||||
$controller->setParam('categories', array());
|
||||
$controller->setParam('owner', $this->user);
|
||||
$controller->setParam('userfiletmp', $tmpFile);
|
||||
$controller->setParam('userfilename', $name);
|
||||
$controller->setParam('filetype', $fileType);
|
||||
$controller->setParam('userfiletype', $mimetype);
|
||||
$minmax = $folder->getDocumentsMinMax();
|
||||
if($settings->_defaultDocPosition == 'start')
|
||||
$controller->setParam('sequence', $minmax['min'] - 1);
|
||||
else
|
||||
$controller->setParam('sequence', $minmax['max'] + 1);
|
||||
$controller->setParam('reviewers', array());
|
||||
$controller->setParam('approvers', array());
|
||||
$controller->setParam('reqversion', 0);
|
||||
$controller->setParam('versioncomment', '');
|
||||
$controller->setParam('attributes', array());
|
||||
$controller->setParam('attributesversion', array());
|
||||
$controller->setParam('workflow', null);
|
||||
$controller->setParam('notificationgroups', array());
|
||||
$controller->setParam('notificationusers', array());
|
||||
$controller->setParam('maxsizeforfulltext', $settings->_maxSizeForFullText);
|
||||
$controller->setParam('defaultaccessdocs', $settings->_defaultAccessDocs);
|
||||
if(!$document = $controller->run()) {
|
||||
// if(!$res = $folder->addDocument($name, '', 0, $this->user, '', array(), $tmpFile, $name, $fileType, $mimetype, 0, array(), array(), 0, "")) {
|
||||
unlink($tmpFile);
|
||||
return "409 Conflict";
|
||||
if($this->logger)
|
||||
$this->logger->log('PUT: error adding object: '.$controller->getErrorMsg(), PEAR_LOG_ERR);
|
||||
return "409 Conflict ".$controller->getErrorMsg();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -655,6 +724,8 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
|
|||
|
||||
/* Check if parent of new folder is a folder */
|
||||
if (get_class($folder) != $this->dms->getClassname('folder')) {
|
||||
if($this->logger)
|
||||
$this->logger->log('MKCOL: access forbidden', PEAR_LOG_ERR);
|
||||
return "403 Forbidden";
|
||||
}
|
||||
|
||||
|
@ -669,10 +740,14 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
|
|||
|
||||
/* Check if user is logged in */
|
||||
if(!$this->user) {
|
||||
if($this->logger)
|
||||
$this->logger->log('MKCOL: access forbidden', PEAR_LOG_ERR);
|
||||
return "403 Forbidden";
|
||||
}
|
||||
|
||||
if ($folder->getAccessMode($this->user) < M_READWRITE) {
|
||||
if($this->logger)
|
||||
$this->logger->log('MKCOL: access forbidden', PEAR_LOG_ERR);
|
||||
return "403 Forbidden";
|
||||
}
|
||||
|
||||
|
@ -688,7 +763,7 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
|
|||
$controller->setParam('notificationusers', array());
|
||||
if(!$subFolder = $controller->run()) {
|
||||
// if (!$folder->addSubFolder($name, '', $this->user, 0)) {
|
||||
return "403 Forbidden";
|
||||
return "409 Conflict ".$controller->getErrorMsg();
|
||||
}
|
||||
|
||||
return ("201 Created");
|
||||
|
@ -718,6 +793,8 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
|
|||
|
||||
// check for access rights
|
||||
if($obj->getAccessMode($this->user) < M_ALL) {
|
||||
if($this->logger)
|
||||
$this->logger->log('DELETE: access forbidden', PEAR_LOG_ERR);
|
||||
return "403 Forbidden";
|
||||
}
|
||||
|
||||
|
@ -731,6 +808,8 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
|
|||
|
||||
if (get_class($obj) == $this->dms->getClassname('folder')) {
|
||||
if($obj->hasDocuments() || $obj->hasSubFolders()) {
|
||||
if($this->logger)
|
||||
$this->logger->log('DELETE: cannot delete, folder has children', PEAR_LOG_ERR);
|
||||
return "409 Conflict";
|
||||
}
|
||||
$controller = Controller::factory('RemoveFolder');
|
||||
|
@ -741,7 +820,7 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
|
|||
$controller->setParam('indexconf', $indexconf);
|
||||
if(!$controller->run()) {
|
||||
// if(!$obj->remove()) {
|
||||
return "409 Conflict";
|
||||
return "409 Conflict ".$controller->getErrorMsg();
|
||||
}
|
||||
} else {
|
||||
$controller = Controller::factory('RemoveDocument');
|
||||
|
@ -752,7 +831,7 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
|
|||
$controller->setParam('indexconf', $indexconf);
|
||||
if(!$controller->run()) {
|
||||
// if(!$obj->remove()) {
|
||||
return "409 Conflict";
|
||||
return "409 Conflict ".$controller->getErrorMsg();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -802,6 +881,8 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
|
|||
* destination object
|
||||
*/
|
||||
if (($objsource->getAccessMode($this->user) < M_READWRITE) || ($objdest->getAccessMode($this->user) < M_READWRITE)) {
|
||||
if($this->logger)
|
||||
$this->logger->log('MOVE: access forbidden', PEAR_LOG_ERR);
|
||||
return "403 Forbidden";
|
||||
}
|
||||
|
||||
|
@ -901,6 +982,8 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
|
|||
* access on the destination object
|
||||
*/
|
||||
if (($objsource->getAccessMode($this->user) < M_READ) || ($objdest->getAccessMode($this->user) < M_READWRITE)) {
|
||||
if($this->logger)
|
||||
$this->logger->log('COPY: access forbidden', PEAR_LOG_ERR);
|
||||
return "403 Forbidden";
|
||||
}
|
||||
|
||||
|
@ -987,12 +1070,10 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
|
|||
$controller->setParam('notificationusers', array());
|
||||
$controller->setParam('maxsizeforfulltext', $settings->_maxSizeForFullText);
|
||||
$controller->setParam('defaultaccessdocs', $settings->_defaultAccessDocs);
|
||||
|
||||
if(!$document = $controller->run()) {
|
||||
|
||||
// if(!$newdoc = $objdest->addDocument($newdocname, '', 0, $this->user, '', array(), $fspath, $content->getOriginalFileName(), $content->getFileType(), $content->getMimeType(), 0, array(), array(), 0, "")) {
|
||||
if($this->logger)
|
||||
$this->logger->log('COPY: error copying object', PEAR_LOG_INFO);
|
||||
$this->logger->log('COPY: error copying object', PEAR_LOG_ERR);
|
||||
return "409 Conflict";
|
||||
}
|
||||
return "201 Created";
|
||||
|
@ -1090,6 +1171,8 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
|
|||
}
|
||||
|
||||
if ($obj->getAccessMode($this->user) < M_READWRITE) {
|
||||
if($this->logger)
|
||||
$this->logger->log('LOCK: access forbidden', PEAR_LOG_ERR);
|
||||
return "403 Forbidden";
|
||||
}
|
||||
|
||||
|
@ -1128,6 +1211,8 @@ class HTTP_WebDAV_Server_SeedDMS extends HTTP_WebDAV_Server
|
|||
}
|
||||
|
||||
if ($obj->getAccessMode($this->user) < M_READWRITE) {
|
||||
if($this->logger)
|
||||
$this->logger->log('UNLOCK: access forbidden', PEAR_LOG_ERR);
|
||||
return "403 Forbidden";
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user