mirror of
				https://git.code.sf.net/p/seeddms/code
				synced 2025-10-30 20:51:22 +00:00 
			
		
		
		
	Merge branch 'seeddms-5.1.x' into seeddms-6.0.x
This commit is contained in:
		
						commit
						6fbfe15baf
					
				|  | @ -201,6 +201,12 @@ | |||
| - add document list which can be exported as an archive | ||||
| - search results can be exported | ||||
| 
 | ||||
| -------------------------------------------------------------------------------- | ||||
|                      Changes in version 5.1.24 | ||||
| -------------------------------------------------------------------------------- | ||||
| - fix sending of some notification mails to groups | ||||
| - check view access for FolderAccess and DocumentAccess | ||||
| 
 | ||||
| -------------------------------------------------------------------------------- | ||||
|                      Changes in version 5.1.23 | ||||
| -------------------------------------------------------------------------------- | ||||
|  |  | |||
|  | @ -8,13 +8,13 @@ SeedDMS is a web-based application written in PHP. It uses MySQL, | |||
| sqlite3 or postgresql to manage the documents that were uploaded into | ||||
| the application. Be aware that postgresql is not very well tested. | ||||
| 
 | ||||
| Make sure you have PHP 7.x and MySQL 5 or higher installed. SeedDMS | ||||
| Make sure you have PHP >= 7.2 and MySQL 5 or higher installed. SeedDMS | ||||
| will work with PHP running in CGI-mode as well as running as a module under | ||||
| apache. | ||||
| 
 | ||||
| Here is a detailed list of requirements: | ||||
| 
 | ||||
| 1. A web server with at least php 7.0 | ||||
| 1. A web server with at least php 7.2 | ||||
| 2. A mysql database, unless you use sqlite | ||||
| 3. The php installation must have support for `pdo_mysql`, `pdo_pgsql` or `pdo_sqlite`, | ||||
|    `php_gd2`, `php_mbstring`, `php_xml` | ||||
|  | @ -30,23 +30,24 @@ Here is a detailed list of requirements: | |||
| It is highly recommended to use the quickstart archive | ||||
| (seeddms-quickstart-x.y.z.tar.gz) because it includes all software packages | ||||
| (excluding those listing above in item 1. to 6.) for running SeedDMS. Hence, | ||||
| you still need a working web server with PHP and a mysql or postgres database | ||||
| unless you intend to use sqlite. | ||||
| you still need a working web server with PHP and in addition a mysql or postgres database unless you intend to use sqlite. | ||||
| 
 | ||||
| QUICKSTART | ||||
| =========== | ||||
| 
 | ||||
| The fastes way to get SeedDMS running is by unpacking the archive | ||||
| `seeddms-quickstart-x.y.z.tar.gz` on your webserver. | ||||
| Let's assume you use seeddms-quickstart-5.1.10.tar.gz. | ||||
| Let's assume you use seeddms-quickstart-5.1.x.tar.gz. | ||||
| It will create a new directory `seeddms51x` containing everything you | ||||
| need to run SeedDMS with sqlite3. | ||||
| need to run SeedDMS with sqlite3. Even if you intend to use mysql in the | ||||
| long run it is advisable to first set up SeedDMS with sqlite3 and than | ||||
| just switch the database. | ||||
| 
 | ||||
| Setting up the web server | ||||
| -------------------------- | ||||
| 
 | ||||
| First you will need to set up your web server. Here, we will only focus | ||||
| on apache. | ||||
| First of all you will need to set up your web server. Here, we will only focus | ||||
| on apache running on Debian/GNU Linux. | ||||
| Either let the document root of your web server point to the directory `www` | ||||
| below `seeddms51x` | ||||
| 
 | ||||
|  | @ -95,7 +96,7 @@ http://your-domain/ or http://your-domain/seeddms51x. | |||
| SECURITY CONSIDERATIONS | ||||
| ======================= | ||||
| 
 | ||||
| First of all you should always access your SeedDMS installation through | ||||
| You should always access your SeedDMS installation through | ||||
| a secured https connection, unless you know precisly what are you doing. | ||||
| SeedDMS ships an .htaccess file which already has some common security | ||||
| http headers set. In order for them to apply you need to activate the | ||||
|  | @ -110,13 +111,15 @@ Protect directories with data or configuration | |||
| 
 | ||||
| A crucial point when setting up SeedDMS is the propper placement of the | ||||
| data directory. Do not place it below your document root as | ||||
| configured in your web server! If you do so, there is good change that | ||||
| attackers can easily access your documents with a regular browser. | ||||
| If you can't place the data directory outside of document root, that either | ||||
| configured in your web server! If you do so, there is a good change that | ||||
| attackers can easily access your documents with a regular web browser. | ||||
| If you cannot place the data directory outside of document root, than either | ||||
| restrict access to it with an appropriate .htaccess file or/and change | ||||
| the `contentOffsetDir` in `settings.xml` to something random, but ensure it | ||||
| is still a valid directory name. If you change contentOffsetDir then | ||||
| do not forget to move `data/1048576` to `data/<your random name>`. | ||||
| Also turn off directory listings in your apache configuration for the | ||||
| `data` directory. | ||||
| 
 | ||||
| Example for .htaccess file in data directory | ||||
| ---------------------------------------------- | ||||
|  | @ -146,7 +149,8 @@ can be crucial for those configuration options where external commands are | |||
| being configured, e.g. for the full text engine or creating preview images. | ||||
| As a hoster you may not want this configuration options being set by a SeedDMS | ||||
| administrator. For now you need to make the configuration file `settings.xml` | ||||
| unwritable for the web server. | ||||
| unwritable for the web server. In that case the SeedDMS administrator can | ||||
| still see the configuration but will not be able to change it. | ||||
| 
 | ||||
| Setting a new encryption key | ||||
| ------------------------------ | ||||
|  | @ -564,16 +568,4 @@ LICENSING | |||
| 
 | ||||
| SeedDMS is licensed unter GPLv2 | ||||
| 
 | ||||
| Jumploader is licensed as stated by the author on th web site | ||||
| <http://jumploader.com/> | ||||
| 
 | ||||
| -- Taken from web site of jumploader  --- | ||||
| You may use this software for free, however, you should not: | ||||
| 
 | ||||
| - Decompile binaries. | ||||
| - Alter or replace class and/or resource files. | ||||
| - Redistribute this software under different name or authority. | ||||
| 
 | ||||
| If you would like a customized version, I can do this for a fee. Don't hesitate to contact me with questions or comments. | ||||
| 
 | ||||
| Uwe Steinmann <info@seeddms.org> | ||||
|  |  | |||
|  | @ -725,7 +725,7 @@ class SeedDMS_NotificationService { | |||
| 			} | ||||
| 			$this->toList($user, $notifyList["users"], $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); | ||||
| 			foreach ($notifyList["groups"] as $grp) { | ||||
| 				$notifier->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); | ||||
| 				$this->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); | ||||
| 			} | ||||
| 		} | ||||
| 	} /* }}} */ | ||||
|  | @ -881,7 +881,7 @@ class SeedDMS_NotificationService { | |||
| 		if($obj->isType('user')) | ||||
| 			$this->toIndividual($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); | ||||
| 		elseif($obj->isType('group')) | ||||
| 			$notifier->toGroup($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); | ||||
| 			$this->toGroup($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); | ||||
| 	} /* }}} */ | ||||
| 
 | ||||
| 	public function sendNewFolderNotifyMail($folder, $user, $obj) { /* {{{ */ | ||||
|  | @ -898,7 +898,7 @@ class SeedDMS_NotificationService { | |||
| 		if($obj->isType('user')) | ||||
| 			$this->toIndividual($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); | ||||
| 		elseif($obj->isType('group')) | ||||
| 			$notifier->toGroup($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); | ||||
| 			$this->toGroup($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); | ||||
| 	} /* }}} */ | ||||
| 
 | ||||
| 	public function sendDeleteDocumentNotifyMail($document, $user, $obj) { /* {{{ */ | ||||
|  | @ -916,7 +916,7 @@ class SeedDMS_NotificationService { | |||
| 		if($obj->isType('user')) | ||||
| 			$this->toIndividual($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); | ||||
| 		elseif($obj->isType('group')) | ||||
| 			$notifier->toGroup($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); | ||||
| 			$this->toGroup($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); | ||||
| 	} /* }}} */ | ||||
| 
 | ||||
| 	public function sendDeleteFolderNotifyMail($folder, $user, $obj) { /* {{{ */ | ||||
|  | @ -933,7 +933,7 @@ class SeedDMS_NotificationService { | |||
| 		if($obj->isType('user')) | ||||
| 			$this->toIndividual($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); | ||||
| 		elseif($obj->isType('group')) | ||||
| 			$notifier->toGroup($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); | ||||
| 			$this->toGroup($user, $obj, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); | ||||
| 	} /* }}} */ | ||||
| 
 | ||||
| 	public function sendSubmittedReviewMail($content, $user, $reviewlog) { /* {{{ */ | ||||
|  | @ -978,7 +978,7 @@ class SeedDMS_NotificationService { | |||
| 
 | ||||
| 		$this->toList($user, $nl["users"], $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); | ||||
| 		foreach ($nl["groups"] as $grp) | ||||
| 			$notifier->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); | ||||
| 			$this->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION); | ||||
| //		$this->toIndividual($user, $content->getUser(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER);
 | ||||
| 
 | ||||
| 	} /* }}} */ | ||||
|  |  | |||
|  | @ -2620,12 +2620,15 @@ $(function() { | |||
| 	} /* }}} */ | ||||
| 
 | ||||
| 	function printAccessButton($object, $return=false) { /* {{{ */ | ||||
| 		$accessobject = $this->params['accessobject']; | ||||
| 		$content = ''; | ||||
| 		$objid = $object->getId(); | ||||
| 		if($object->isType('document')) { | ||||
| 			$content .= '<a class="access-document-btn" href="'.$this->params['settings']->_httpRoot.'out/out.DocumentAccess.php?documentid='.$objid.'" title="'.getMLText('edit_document_access').'"><i class="fa fa-bolt"></i></a>'; | ||||
| 			if($accessobject->check_view_access('DocumentAccess')) | ||||
| 				$content .= '<a class="access-document-btn" href="'.$this->params['settings']->_httpRoot.'out/out.DocumentAccess.php?documentid='.$objid.'" title="'.getMLText('edit_document_access').'"><i class="fa fa-bolt"></i></a>'; | ||||
| 		} elseif($object->isType('folder')) { | ||||
| 			$content .= '<a class="access-folder-btn" href="'.$this->params['settings']->_httpRoot.'out/out.FolderAccess.php?folderid='.$objid.'" title="'.getMLText('edit_folder_access').'"><i class="fa fa-bolt"></i></a>'; | ||||
| 			if($accessobject->check_view_access('FolderAccess')) | ||||
| 				$content .= '<a class="access-folder-btn" href="'.$this->params['settings']->_httpRoot.'out/out.FolderAccess.php?folderid='.$objid.'" title="'.getMLText('edit_folder_access').'"><i class="fa fa-bolt"></i></a>'; | ||||
| 		} | ||||
| 		if($return) | ||||
| 			return $content; | ||||
|  |  | |||
|  | @ -2594,12 +2594,15 @@ $(function() { | |||
| 	} /* }}} */ | ||||
| 
 | ||||
| 	function printAccessButton($object, $return=false) { /* {{{ */ | ||||
| 		$accessobject = $this->params['accessobject']; | ||||
| 		$content = ''; | ||||
| 		$objid = $object->getId(); | ||||
| 		if($object->isType('document')) { | ||||
| 			$content .= '<a class="access-document-btn" href="'.$this->params['settings']->_httpRoot.'out/out.DocumentAccess.php?documentid='.$objid.'" title="'.getMLText('edit_document_access').'"><i class="fa fa-bolt"></i></a>'; | ||||
| 			if($accessobject->check_view_access('DocumentAccess')) | ||||
| 				$content .= '<a class="access-document-btn" href="'.$this->params['settings']->_httpRoot.'out/out.DocumentAccess.php?documentid='.$objid.'" title="'.getMLText('edit_document_access').'"><i class="fa fa-bolt"></i></a>'; | ||||
| 		} elseif($object->isType('folder')) { | ||||
| 			$content .= '<a class="access-folder-btn" href="'.$this->params['settings']->_httpRoot.'out/out.FolderAccess.php?folderid='.$objid.'" title="'.getMLText('edit_folder_access').'"><i class="fa fa-bolt"></i></a>'; | ||||
| 			if($accessobject->check_view_access('FolderAccess')) | ||||
| 				$content .= '<a class="access-folder-btn" href="'.$this->params['settings']->_httpRoot.'out/out.FolderAccess.php?folderid='.$objid.'" title="'.getMLText('edit_folder_access').'"><i class="fa fa-bolt"></i></a>'; | ||||
| 		} | ||||
| 		if($return) | ||||
| 			return $content; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Uwe Steinmann
						Uwe Steinmann