/kloxo/httpdocs/lib/domain/web/driver/davuser__lighttpdlib.php

https://bitbucket.org/Nemcio/kloxo-mr · PHP · 90 lines · 72 code · 17 blank · 1 comment · 0 complexity · dbec6f822faeb2e86f967cb51142be4e MD5 · raw file

  1. <?php
  2. class davuser__lighttpd extends Lxdriverclass {
  3. function dbactionAdd()
  4. {
  5. $this->createDiruserfile();
  6. }
  7. function createDiruserfile()
  8. {
  9. global $gbl, $sgbl, $login, $ghtml;
  10. $result = $this->main->__var_davuser;
  11. $res = null;
  12. foreach($result as $r) {
  13. $cr = crypt($r['realpass']);
  14. //$cr = $r['realpass'];
  15. $res .= "{$r['username']}:$cr\n";
  16. }
  17. lxfile_mkdir("__path_httpd_root/{$this->main->getParentName()}/__davuser");
  18. lfile_put_contents("__path_httpd_root/{$this->main->getParentName()}/__davuser/davuser", $res);
  19. $this->createDavSuexec();
  20. $string = $this->createVirtualHost();
  21. lfile_put_contents("/home/kloxo/httpd/webdisk/virtualhost.conf", $string);
  22. createRestartFile("webdisk");
  23. }
  24. function createVirtualHost()
  25. {
  26. $string = null;
  27. foreach($this->main->__var_domlist as $v) {
  28. $string .= "\$HTTP[\"host\"] =~ \"^$v\" {\n";
  29. $string .= "server.document-root = \"/usr/local/lxlabs/kloxo/httpdocs/webdisk/\"\n";
  30. $string .= "cgi.assign = ( \".php\" => \"/home/httpd/$v/davsuexec.sh\" )\n";
  31. $string .= $this->getDirprotectCore($v);
  32. $string .= "}\n\n\n";
  33. lxfile_mkdir("__path_httpd_root/$v/__davuser/");
  34. lxfile_touch("__path_httpd_root/$v/__davuser/davuser");
  35. }
  36. return $string;
  37. }
  38. function getDirprotectCore($domain)
  39. {
  40. global $gbl, $sgbl, $login, $ghtml;
  41. $string = null;
  42. $string .= "\$HTTP[\"url\"] =~ \"/\" {\n";
  43. $string .= "auth.backend = \"htpasswd\"\n";
  44. $string .= "auth.debug = 2\n";
  45. $string .= "auth.backend.htpasswd.userfile = \"$sgbl->__path_httpd_root/$domain/__davuser/davuser\"\n";
  46. $string .= "auth.require = ( \"/\" => (\n";
  47. $string .= "\"method\" => \"basic\",\n";
  48. $string .= "\"realm\" => \"$domain\",\n";
  49. $string .= "\"require\" => \"valid-user\"\n";
  50. $string .= "))\n}\n";
  51. return $string;
  52. }
  53. function createDavSuexec()
  54. {
  55. $string = null;
  56. $uid = os_get_uid_from_user($this->main->__var_system_username);
  57. $gid = os_get_gid_from_user($this->main->__var_system_username);
  58. $string .= "#!/bin/sh\n";
  59. $string .= "export MUID=$uid\n";
  60. $string .= "export GID=$gid\n";
  61. $string .= " export PHPRC=/usr/local/lxlabs/ext/php/etc/php.ini\n";
  62. $string .= "export TARGET=<%program%>\n";
  63. $string .= "export NON_RESIDENT=1\n";
  64. $string .= "exec lxsuexec $*\n";
  65. $st = str_replace("<%program%>", "/usr/local/lxlabs/ext/php/bin/php_cgi", $string);
  66. lfile_put_contents("__path_httpd_root/{$this->main->getParentName()}/davsuexec.sh", $st);
  67. lxfile_unix_chmod("__path_httpd_root/{$this->main->getParentName()}/davsuexec.sh", "0755");
  68. }
  69. function dbactionUpdate($subaction)
  70. {
  71. $this->createDiruserfile();
  72. }
  73. }