From 6cd5c8c8c86f7478ca30f570b9b48c321e60c58a Mon Sep 17 00:00:00 2001 From: Nolan Darilek Date: Mon, 18 Apr 2016 20:50:30 -0500 Subject: [PATCH] Release V2 with better username display and a cleaner set of DokuWiki commits. --- .gitignore | 5 +- .sandstorm/Vagrantfile | 3 +- .sandstorm/appGrid.png | Bin 0 -> 22248 bytes .sandstorm/build.sh | 14 + .sandstorm/changelog.md | 13 + description.md => .sandstorm/description.md | 0 .sandstorm/grain.png | Bin 0 -> 1534 bytes .sandstorm/launcher.sh | 28 +- .sandstorm/market.png | Bin 0 -> 21249 bytes .sandstorm/pgp-keyring | Bin 0 -> 1731 bytes .sandstorm/pgp-signature | Bin 0 -> 429 bytes .sandstorm/sandstorm-files.list | 3909 ++++++++++--------- .sandstorm/sandstorm-pkgdef.capnp | 20 +- .sandstorm/setup.sh | 27 +- changelog.md | 3 - dokuwiki | 2 +- local.php | 6 +- plugin/README | 27 + plugin/auth.php | 63 + plugin/plugin.info.txt | 7 + 20 files changed, 2149 insertions(+), 1978 deletions(-) create mode 100644 .sandstorm/appGrid.png create mode 100644 .sandstorm/changelog.md rename description.md => .sandstorm/description.md (100%) create mode 100644 .sandstorm/grain.png create mode 100644 .sandstorm/market.png create mode 100644 .sandstorm/pgp-keyring create mode 100644 .sandstorm/pgp-signature delete mode 100644 changelog.md create mode 100644 plugin/README create mode 100644 plugin/auth.php create mode 100644 plugin/plugin.info.txt diff --git a/.gitignore b/.gitignore index 2feddd4..95ba282 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ .vagrant -*.spk \ No newline at end of file +*.spk +conf +plugins +tpl \ No newline at end of file diff --git a/.sandstorm/Vagrantfile b/.sandstorm/Vagrantfile index 7f0620c..101fb02 100644 --- a/.sandstorm/Vagrantfile +++ b/.sandstorm/Vagrantfile @@ -10,8 +10,7 @@ VM_NAME = File.basename(File.dirname(File.dirname(__FILE__))) + "_sandstorm_#{Ti VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| - # We base ourselves off Debian Jessie - config.vm.box = "debian/jessie64" + config.vm.box = "sandstorm/debian-jessie64" if Vagrant.has_plugin?("vagrant-vbguest") then # vagrant-vbguest is a Vagrant plugin that upgrades diff --git a/.sandstorm/appGrid.png b/.sandstorm/appGrid.png new file mode 100644 index 0000000000000000000000000000000000000000..02b271931343a76e8987321e61e3f9dcba3d7255 GIT binary patch literal 22248 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 ZO-7RQ#D)I#IW6iiEq9w+N&BoIbMDH4F7f~X literal 0 HcmV?d00001 diff --git a/.sandstorm/pgp-signature b/.sandstorm/pgp-signature new file mode 100644 index 0000000000000000000000000000000000000000..ed75fe452437a691cabb87e30bef1e3a515826b4 GIT binary patch literal 429 zcmV;e0aE^>0h_?f%)r6uzAWSF{ph(&jHfG;7{XeZpL;4K<|>qAq$(tqmSp4?DdeYt zdBKT!Da9rEMY(#J`3i{z1q$VvB^h9uwEUc${PN7abOlcrD}}rY8;#FE0atfCU*)I?K*D&wrgWYg?2^NdbL85Rac4hA+>CXfpl zxHtu1&Wg5U|L;+KPFmW1uD`}#)wieoKF#)i`+8o14tubg7Ps!7*M@o5@;^UybW&h= zdY9*1x+wR%mZ|4Ox5({DyIuL={11^2*3}%zyV&f+KW?k>?E8D6K4x#-#)bupUOsbv z@Mi5x)2^_|6L+n9=csZ}z<$m=qwsFd!wT2$eHFW6lQFZ1`R&T+FRo218U5wjlgm2l ze48^%7XJwmGhkR>dH=R##h(L_61O(4GvR~^>QU7jMfB1@{IR with the standard base-32 text format of the app's ID): @@ -99,7 +99,7 @@ const pkgdef :Spk.PackageDefinition = ( # Remove this line if you consider yourself as the author of the app. ), - pgpKeyring = embed "../pgp-keyring", + pgpKeyring = embed "pgp-keyring", # A keyring in GPG keyring format containing all public keys needed to verify PGP signatures in # this manifest (as of this writing, there is only one: `author.pgpSignature`). # @@ -109,7 +109,7 @@ const pkgdef :Spk.PackageDefinition = ( # # Where `` is a PGP key ID or email address associated with the key. - description = (defaultText = embed "../description.md"), + description = (defaultText = embed "description.md"), # The app's description description in Github-flavored Markdown format, to be displayed e.g. # in an app store. Note that the Markdown is not permitted to contain HTML nor image tags (but # you can include a list of screenshots separately). @@ -127,7 +127,7 @@ const pkgdef :Spk.PackageDefinition = ( #(width = 746, height = 795, jpeg = embed "path/to/screenshot-1.jpeg"), #(width = 640, height = 480, png = embed "path/to/screenshot-2.png"), ], - changeLog = (defaultText = embed "../changelog.md"), + changeLog = (defaultText = embed "changelog.md"), # Documents the history of changes in Github-flavored markdown format (with the same restrictions # as govern `description`). We recommend formatting this with an H1 heading for each version # followed by a bullet list of changes. diff --git a/.sandstorm/setup.sh b/.sandstorm/setup.sh index 6201223..6e1735a 100644 --- a/.sandstorm/setup.sh +++ b/.sandstorm/setup.sh @@ -17,27 +17,30 @@ server { client_max_body_size 0; server_name localhost; - root /var/www; + root /opt/app/dokuwiki; + index doku.php; + location ~ /(data/|conf/|bin/|inc/|install.php) { deny all; } + location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { + expires 31536000s; + add_header Pragma "public"; + add_header Cache-Control "max-age=31536000, public, must-revalidate, proxy-revalidate"; + log_not_found off; + } location / { - index doku.php; try_files \$uri \$uri/ @dokuwiki; } - location ^~ /lib/ { - expires 30d; - } - location ^~ /conf/ { return 403; } - location ^~ /data/ { return 403; } location @dokuwiki { rewrite ^/_media/(.*) /lib/exe/fetch.php?media=\$1 last; rewrite ^/_detail/(.*) /lib/exe/detail.php?media=\$1 last; rewrite ^/_export/([^/]+)/(.*) /doku.php?do=export_\$1&id=\$2 last; - rewrite ^/(.*) /doku.php?id=\$1 last; + rewrite ^/(.*) /doku.php?id=\$1&\$args last; } location ~ \\.php\$ { - fastcgi_pass unix:/var/run/php5-fpm.sock; - fastcgi_split_path_info ^(.+\\.php)(/.+)\$; - fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; + if (!-f \$request_filename) { return 404; } include fastcgi_params; + fastcgi_pass unix:/var/run/php5-fpm.sock; + fastcgi_param REDIRECT_STATUS 200; + fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; } } EOF @@ -83,3 +86,5 @@ sed --in-place='' \ --expression 's/^fastcgi_param *HTTPS.*$/fastcgi_param HTTPS \$fe_https if_not_empty;/' \ /etc/nginx/fastcgi_params +mkdir -p /var/lib/dokuwiki/{conf,data,lib/plugins,lib/tpl} +chown -R vagrant.vagrant /var/lib/dokuwiki diff --git a/changelog.md b/changelog.md deleted file mode 100644 index 68dec14..0000000 --- a/changelog.md +++ /dev/null @@ -1,3 +0,0 @@ -# V0 - - * Initial release \ No newline at end of file diff --git a/dokuwiki b/dokuwiki index 8bb9435..e97ab57 160000 --- a/dokuwiki +++ b/dokuwiki @@ -1 +1 @@ -Subproject commit 8bb94359b937d75319a05ffea59f725c775072e2 +Subproject commit e97ab57612804569b7df0be3901315a37ae0a43a diff --git a/local.php b/local.php index 1ee3d21..9871e89 100644 --- a/local.php +++ b/local.php @@ -8,10 +8,14 @@ * you automatically. */ +$conf['showuseras'] = 'username'; $conf['useacl'] = 1; //Use Access Control Lists to restrict access? $conf['autopasswd'] = 0; //autogenerate passwords and email them to user $conf['authtype'] = 'sandstorm'; //which authentication backend should be used $conf['superuser'] = '@admin'; //The admin can be user or @group or comma separated list user1,@group1,user2 $conf['manager'] = '@manager'; //The manager can be user or @group or comma separated list user1,@group1,user2 $conf['profileconfirm'] = 0; //Require current password to confirm changes to user profile -$conf['disableactions']='login'; \ No newline at end of file +$conf['disableactions']='login'; +$conf['userewrite'] = 1; //this makes nice URLs: 0: off 1: .htaccess 2: internal +$conf['useslash'] = 1; //use slash instead of colon? only when rewrite is on +$conf['savedir'] = '/var/lib/dokuwiki/data'; //where to store all the files diff --git a/plugin/README b/plugin/README new file mode 100644 index 0000000..d60f85a --- /dev/null +++ b/plugin/README @@ -0,0 +1,27 @@ +sandstorm Plugin for DokuWiki + +Modifications needed to run in Sandstorm + +All documentation for this plugin can be found at +https://dev.thewordnerd.info/nolan/dokuwiki-sandstorm + +If you install this plugin manually, make sure it is installed in +lib/plugins/sandstorm/ - if the folder is called different it +will not work! + +Please refer to http://www.dokuwiki.org/plugins for additional info +on how to install plugins in DokuWiki. + +---- +Copyright (C) Nolan Darilek + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 of the License + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +See the COPYING file in your DokuWiki folder for details diff --git a/plugin/auth.php b/plugin/auth.php new file mode 100644 index 0000000..efe387f --- /dev/null +++ b/plugin/auth.php @@ -0,0 +1,63 @@ + + */ + +// must be run within Dokuwiki +if(!defined('DOKU_INC')) die(); + +class auth_plugin_sandstorm extends DokuWiki_Auth_Plugin { + + + /** + * Constructor. + */ + public function __construct() { + parent::__construct(); // for compatibility + + // FIXME set capabilities accordingly + //$this->cando['addUser'] = false; // can Users be created? + //$this->cando['delUser'] = false; // can Users be deleted? + //$this->cando['modLogin'] = false; // can login names be changed? + //$this->cando['modPass'] = false; // can passwords be changed? + //$this->cando['modName'] = false; // can real names be changed? + //$this->cando['modMail'] = false; // can emails be changed? + //$this->cando['modGroups'] = false; // can groups be changed? + //$this->cando['getUsers'] = false; // can a (filtered) list of users be retrieved? + //$this->cando['getUserCount']= false; // can the number of users be retrieved? + //$this->cando['getGroups'] = false; // can a list of available groups be retrieved? + $this->cando['external'] = true; // does the module do external auth checking? + $this->cando['logout'] = false; // can the user logout again? (eg. not possible with HTTP auth) + + // FIXME intialize your auth system and set success to true, if successful + $this->success = true; + } + + /** + * Do all authentication [ OPTIONAL ] + * + * @param string $user Username + * @param string $pass Cleartext Password + * @param bool $sticky Cookie should not expire + * @return bool true on successful auth + */ + public function trustExternal($user, $pass, $sticky = true) { + global $USERINFO; + global $conf; + $sticky = true; + $USERINFO['name'] = rawurldecode($_SERVER['HTTP_X_SANDSTORM_USERNAME']); + $USERINFO['mail'] = 'user@example.com'; + $USERINFO['grps'] = str_getcsv($_SERVER['HTTP_X_SANDSTORM_PERMISSIONS']); + $_SERVER['REMOTE_USER'] = $_SERVER['HTTP_X_SANDSTORM_USER_ID']; + $_SESSION[DOKU_COOKIE]['auth']['user'] = $USERINFO['name']; + $_SESSION[DOKU_COOKIE]['auth']['pass'] = $pass; + $_SESSION[DOKU_COOKIE]['auth']['info'] = $USERINFO; + return true; + } + +} + +// vim:ts=4:sw=4:et: diff --git a/plugin/plugin.info.txt b/plugin/plugin.info.txt new file mode 100644 index 0000000..621513a --- /dev/null +++ b/plugin/plugin.info.txt @@ -0,0 +1,7 @@ +base sandstorm +author Nolan Darilek +email nolan@thewordnerd.info +date 2015-11-16 +name sandstorm plugin +desc Modifications needed to run in Sandstorm +url https://dev.thewordnerd.info/nolan/dokuwiki-sandstorm