Commit b413127052fec89f21dbf055ab92486e12c5a4e2

Authored by Paul Barrett
2 parents 6b44fb85 a68e959d

Merge branch 'edge' of github.com:ktgit/knowledgetree into edge

.htaccess
... ... @@ -95,6 +95,11 @@ php_value max_execution_time 0
95 95 php_value error_reporting 5
96 96 </IfModule>
97 97  
  98 +# Workaround for mod_auth when running php cgi
  99 +<IfModule mod_rewrite.c>
  100 +RewriteEngine on
  101 +RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
  102 +</IfModule>
98 103  
99 104 #<IfModule mod_rewrite.c>
100 105 #RewriteEngine On
... ...
dmsctl.sh
1   -#!/bin/sh
  1 +#!/bin/bash
2 2  
3 3 # Boot KnowledgeTree services
4 4 # chkconfig: 2345 55 25
... ... @@ -6,6 +6,8 @@
6 6 #
7 7 # processname: ktdms
8 8  
  9 +cd $(dirname $0)
  10 +
9 11 HOSTNAME=`hostname`
10 12 RETVAL=0
11 13 PID=""
... ... @@ -16,6 +18,14 @@ INSTALL_PATH=`pwd`
16 18 JAVABIN=/usr/bin/java
17 19 ZEND_DIR=/usr/local/zend
18 20  
  21 +if [ -f /etc/zce.rc ];then
  22 + . /etc/zce.rc
  23 +else
  24 + echo "/etc/zce.rc doesn't exist!"
  25 + exit 1;
  26 +fi
  27 +
  28 +
19 29 # OpenOffice
20 30 SOFFICEFILE=soffice
21 31 SOFFICE_PIDFILE=$INSTALL_PATH/var/log/soffice.bin.pid
... ... @@ -279,6 +289,24 @@ noserver() {
279 289 help
280 290 }
281 291  
  292 +firstrun() {
  293 + echo "Initializing DMS for the first time, exporting ZEND paths"
  294 + if grep --quiet LD_LIBRARAY_PATH /etc/zce.rc ; then
  295 + echo "Nothing to be done ..."
  296 + else
  297 + echo "PATH=/usr/local/zend/bin:$PATH" >> /etc/zce.rc
  298 + if [ -z $LD_LIBRARY_PATH ] ; then
  299 + echo "LD_LIBRARY_PATH=$ZEND_DIR/lib" >> /etc/zce.rc
  300 + else
  301 + echo "LD_LIBRARY_PATH=$ZEND_DIR/lib:$LD_LIBRARY_PATH" >> /etc/zce.rc
  302 + fi
  303 + fi
  304 +
  305 + touch $INSTALL_PATH/var/bin/.dmsinit.lock
  306 +
  307 + $ZEND_DIR/bin/zendctl.sh restart
  308 +}
  309 +
282 310 [ $# -lt 1 ] && help
283 311  
284 312 if [ ! -z ${2} ]; then
... ... @@ -291,6 +319,8 @@ if [ &quot;x$3&quot; != &quot;x&quot; ]; then
291 319 MYSQL_PASSWORD=$3
292 320 fi
293 321  
  322 +# Are we running for first time
  323 +[[ -e $INSTALL_PATH/var/bin/.dmsinit.lock ]] || firstrun
294 324  
295 325 case $1 in
296 326 help) help
... ... @@ -302,6 +332,7 @@ case $1 in
302 332 start_soffice
303 333 start_lucene
304 334 start_scheduler
  335 + #[[ -e $ZEND_DIR/bin/zendctl.sh ]] && $ZEND_DIR/bin/zendctl.sh restart
305 336 fi
306 337 ;;
307 338 stop) if [ "${SERVER}" != "all" ]; then
... ... @@ -327,4 +358,4 @@ case $1 in
327 358 ;;
328 359 esac
329 360  
330   -exit $ERROR
331 361 \ No newline at end of file
  362 +exit $ERROR
... ...
ktwebdav/lib/KTWebDAVServer.inc.php
... ... @@ -372,6 +372,11 @@ class KTWebDAVServer extends HTTP_WebDAV_Server
372 372 {
373 373 $this->ktwebdavLog('Entering _check_auth...', 'info', true);
374 374  
  375 + // Workaround for mod_auth when running php cgi
  376 + if(!isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['HTTP_AUTHORIZATION'])){
  377 + list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':' , base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
  378 + }
  379 +
375 380 if (method_exists($this, 'checkAuth')) {
376 381 // PEAR style method name
377 382 return $this->checkAuth(@$_SERVER['AUTH_TYPE'],
... ...
... ... @@ -5,7 +5,7 @@
5 5 * KnowledgeTree Community Edition
6 6 * Document Management Made Simple
7 7 * Copyright (C) 2008, 2009 KnowledgeTree Inc.
8   - *
  8 + *
9 9 *
10 10 * This program is free software; you can redistribute it and/or modify it under
11 11 * the terms of the GNU General Public License version 3 as published by the
... ... @@ -40,6 +40,9 @@ require_once(KT_LIB_DIR .&#39;/authentication/DBAuthenticator.inc&#39;);
40 40 require_once(KT_LIB_DIR .'/authentication/authenticationutil.inc.php');
41 41 require_once(KT_DIR. '/plugins/rssplugin/KTrss.inc.php');
42 42  
  43 +// Workaround for mod_auth when running php cgi
  44 +list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':' , base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
  45 +
43 46 // workaround to get http authentication working in cgi mode
44 47 $altinfo = KTUtil::arrayGet( $_SERVER, 'kt_auth', KTUtil::arrayGet( $_SERVER, 'REDIRECT_kt_auth'));
45 48 if ( !empty( $altinfo) && !isset( $_SERVER['PHP_AUTH_USER'])) {
... ...
templates/ktcore/ktoffice_i18n.smarty
1   -
2 1 /*
3 2 * Javascript (actual translations);
4 3 */
... ... @@ -18,15 +17,19 @@ function _(trans_string) {
18 17  
19 18 //strings for file: main.js
20 19  
21   -i18n['Upload'] = '{i18n}Upload{/i18n}';
  20 +i18n['Upload succeeded'] = '{i18n}Upload succeeded{/i18n}';
22 21  
23   -i18n['Upload cancelled'] = '{i18n}Upload cancelled{/i18n}';
  22 +i18n['Document type changed'] = '{i18n}Document type changed{/i18n}';
24 23  
25 24 i18n['Upload failed'] = '{i18n}Upload failed{/i18n}';
26 25  
27 26 i18n['Your document has not been saved.'] = '{i18n}Your document has not been saved.{/i18n}';
28 27  
29   -i18n['Upload succeeded'] = '{i18n}Upload succeeded{/i18n}';
  28 +i18n['A newer version of this document is available. Would you like to open it instead?'] = '{i18n}A newer version of this document is available. Would you like to open it instead?{/i18n}';
  29 +
  30 +i18n['Upload'] = '{i18n}Upload{/i18n}';
  31 +
  32 +i18n['Upload cancelled'] = '{i18n}Upload cancelled{/i18n}';
30 33  
31 34 i18n['Your document has been saved.'] = '{i18n}Your document has been saved.{/i18n}';
32 35  
... ... @@ -68,7 +71,7 @@ i18n[&#39;The check-out has been cancelled.&#39;] = &#39;{i18n}The check-out has been cancel
68 71  
69 72 i18n['Properties could not be saved.'] = '{i18n}Properties could not be saved.{/i18n}';
70 73  
71   -i18n['Properties has been saved.'] = '{i18n}Properties has been saved.{/i18n}';
  74 +i18n['Properties have been saved.'] = '{i18n}Properties have been saved.{/i18n}';
72 75  
73 76 i18n['Login failed'] = '{i18n}Login failed{/i18n}';
74 77  
... ... @@ -84,19 +87,19 @@ i18n[&#39;Please verify your&lt;br /&gt;Internet connection, &lt;br /&gt; and try again.&#39;] = &#39;{i
84 87  
85 88 //strings for file: classes/commentsWindow.js
86 89  
87   -i18n['Cancelling edit of document (check-in] = '{i18n}Cancelling edit of document (check-i{/i18n}n;
  90 +i18n['Cancelling edit of document (check-in)'] = '{i18n}Cancelling edit of document (check-in){/i18n}';
88 91  
89 92 i18n['Provide a reason for cancelling this edit.<br ><br >'] = '{i18n}Provide a reason for cancelling this edit.<br ><br >{/i18n}';
90 93  
91   -i18n['Continue Editing (check-out] = '{i18n}Continue Editing (check-ou{/i18n}t;
  94 +i18n['Continue Editing (check-out)'] = '{i18n}Continue Editing (check-out){/i18n}';
92 95  
93 96 i18n['Provide a reason for this edit.<br ><br >'] = '{i18n}Provide a reason for this edit.<br ><br >{/i18n}';
94 97  
95   -i18n['Editing Document (check-out] = '{i18n}Editing Document (check-ou{/i18n}t;
  98 +i18n['Editing Document (check-out)'] = '{i18n}Editing Document (check-out){/i18n}';
96 99  
97 100 i18n['Provide a reason for editing this document.<br ><br >'] = '{i18n}Provide a reason for editing this document.<br ><br >{/i18n}';
98 101  
99   -i18n['Saving Document (check-in] = '{i18n}Saving Document (check-i{/i18n}n;
  102 +i18n['Saving Document (check-in)'] = '{i18n}Saving Document (check-in){/i18n}';
100 103  
101 104 i18n['For historical purposes, describe the changes you made to this document.<br ><br >'] = '{i18n}For historical purposes, describe the changes you made to this document.<br ><br >{/i18n}';
102 105  
... ... @@ -168,12 +171,28 @@ i18n[&#39;Login&#39;] = &#39;{i18n}Login{/i18n}&#39;;
168 171  
169 172 i18n['Document already open'] = '{i18n}Document already open{/i18n}';
170 173  
  174 +i18n['Unable to delete folder'] = '{i18n}Unable to delete folder{/i18n}';
  175 +
  176 +i18n['Delete Folder'] = '{i18n}Delete Folder{/i18n}';
  177 +
  178 +i18n['This will delete this folder.<br/>Are you sure you want to continue?'] = '{i18n}This will delete this folder.<br/>Are you sure you want to continue?{/i18n}';
  179 +
  180 +i18n['Unable to Delete Folder'] = '{i18n}Unable to Delete Folder{/i18n}';
  181 +
  182 +i18n['This folder contains other documents/folders<br/>and may not be deleted.'] = '{i18n}This folder contains other documents/folders<br/>and may not be deleted.{/i18n}';
  183 +
171 184 i18n['Introduction'] = '{i18n}Introduction{/i18n}';
172 185  
173 186 i18n['The requested action has not been implemented'] = '{i18n}The requested action has not been implemented{/i18n}';
174 187  
175 188 i18n['Any unsaved changes will be lost! Are you sure you want to continue?'] = '{i18n}Any unsaved changes will be lost! Are you sure you want to continue?{/i18n}';
176 189  
  190 +i18n['Error'] = '{i18n}Error{/i18n}';
  191 +
  192 +i18n['Please close all open editors.'] = '{i18n}Please close all open editors.{/i18n}';
  193 +
  194 +i18n['Warning'] = '{i18n}Warning{/i18n}';
  195 +
177 196 i18n['Do you want to add the currently open Office document as a new version of [-doctitle-]?'] = '{i18n}Do you want to add the currently open Office document as a new version of [-doctitle-]?{/i18n}';
178 197  
179 198 i18n['Are you sure you want to cancel your edit?'] = '{i18n}Are you sure you want to cancel your edit?{/i18n}';
... ... @@ -190,6 +209,16 @@ i18n[&#39;Save&#39;] = &#39;{i18n}Save{/i18n}&#39;;
190 209  
191 210 i18n['Adds your open Office document to KnowledgeTree. You must have \'write\' permissions on the folder.'] = '{i18n}Adds your open Office document to KnowledgeTree. You must have \'write\' permissions on the folder.{/i18n}';
192 211  
  212 +i18n['Add Folder'] = '{i18n}Add Folder{/i18n}';
  213 +
  214 +i18n['Provides an interface to create a new folder under the current folder. You must have \'add\' permissions on the folder.'] = '{i18n}Provides an interface to create a new folder under the current folder. You must have \'add\' permissions on the folder.{/i18n}';
  215 +
  216 +i18n['Rename Folder'] = '{i18n}Rename Folder{/i18n}';
  217 +
  218 +i18n['Provides an interface to rename the current folder. You must have \'rename\' permissions on the folder.'] = '{i18n}Provides an interface to rename the current folder. You must have \'rename\' permissions on the folder.{/i18n}';
  219 +
  220 +i18n['Provides an interface to delete the current folder. You must have \'delete\' permissions on the folder.'] = '{i18n}Provides an interface to delete the current folder. You must have \'delete\' permissions on the folder.{/i18n}';
  221 +
193 222 i18n['New folder'] = '{i18n}New folder{/i18n}';
194 223  
195 224 i18n['Saves active document to a new folder. You must have \'write\' permissions on the folder.'] = '{i18n}Saves active document to a new folder. You must have \'write\' permissions on the folder.{/i18n}';
... ... @@ -276,10 +305,6 @@ i18n[&#39;All error reports are submitted anonymously.\r\n\r\nTo help us resolve thi
276 305  
277 306 i18n['Viewing'] = '{i18n}Viewing{/i18n}';
278 307  
279   -i18n["Click 'Save Properties' to save your changes."] = "{i18n}Click 'Save Properties' to save your changes.{/i18n}";
280   -
281   -i18n['Document type changed'] = '{i18n}Document type changed{/i18n}';
282   -
283 308 i18n['Document type could not be changed'] = '{i18n}Document type could not be changed{/i18n}';
284 309  
285 310 i18n['Document type could not be reset'] = '{i18n}Document type could not be reset{/i18n}';
... ... @@ -290,8 +315,6 @@ i18n[&#39;Double-click to Select&#39;] = &#39;{i18n}Double-click to Select{/i18n}&#39;;
290 315  
291 316 i18n['Double-click to Edit'] = '{i18n}Double-click to Edit{/i18n}';
292 317  
293   -i18n['Error'] = '{i18n}Error{/i18n}';
294   -
295 318 i18n['Please complete all required fields.'] = '{i18n}Please complete all required fields.{/i18n}';
296 319  
297 320 i18n['Editing'] = '{i18n}Editing{/i18n}';
... ... @@ -340,10 +363,10 @@ i18n[&#39;Logout&#39;] = &#39;{i18n}Logout{/i18n}&#39;;
340 363  
341 364 i18n['No Read permissions'] = '{i18n}No Read permissions{/i18n}';
342 365  
343   -i18n['You do not have the required permissions to view the root folder. Please contact your system administrator for assistance.', '', 60000] = '{i18n}You do not have the required permissions to view the root folder. Please contact your system administrator for assistance.', '', 6000{/i18n}0;
  366 +i18n['You do not have the required permissions to view the root folder. Please contact your system administrator for assistance.'] = '{i18n}You do not have the required permissions to view the root folder. Please contact your system administrator for assistance.{/i18n}';
344 367  
345 368 i18n['Search for documents'] = '{i18n}Search for documents{/i18n}';
346 369  
347   -// Total Language Strings: 143
  370 +// Total Language Strings: 155
348 371  
349   -// Unique Strings: 143
350 372 \ No newline at end of file
  373 +// Unique Strings: 155
351 374 \ No newline at end of file
... ...
webservice/classes/atompub/KT_atom_HTTPauth.inc.php
1 1 <?php
2 2 class KT_atom_HTTPauth{
3 3 public static function getCredentials(){
  4 +
  5 + // Workaround for mod_auth when running php cgi
  6 + if(!isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['HTTP_AUTHORIZATION'])){
  7 + list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':' , base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
  8 + }
  9 +
4 10 $credentials=array('user'=>'','pass'=>'','method'=>'');
5 11 if(isset($_SERVER['PHP_AUTH_USER'])){
6 12 $credentials['user']=$_SERVER['PHP_AUTH_USER'];
... ...