Browse Source

调整代码结构 支持大文件下载

docker-svn
witersen 3 years ago
parent
commit
152d23807f
  1. 22
      01.web/src/views/advance/index.vue
  2. 6
      01.web/src/views/index/index.vue
  3. 2
      01.web/src/views/layout/basicLayout/index.vue
  4. 4
      01.web/src/views/login/index.vue
  5. 8
      01.web/src/views/personal/index.vue
  6. 20
      01.web/src/views/repositoryGroup/index.vue
  7. 138
      01.web/src/views/repositoryInfo/index.vue
  8. 14
      01.web/src/views/repositoryUser/index.vue
  9. 4
      01.web/src/views/systemLog/index.vue
  10. 6
      01.web/webpack.dev.config.js
  11. 92
      02.php/api.php
  12. 60
      02.php/app/controller/Common.php
  13. 47
      02.php/app/controller/Logs.php
  14. 56
      02.php/app/controller/Mail.php
  15. 56
      02.php/app/controller/Personal.php
  16. 29
      02.php/app/controller/Safe.php
  17. 70
      02.php/app/controller/Statistics.php
  18. 140
      02.php/app/controller/Svn.php
  19. 128
      02.php/app/controller/Svngroup.php
  20. 264
      02.php/app/controller/Svnrep.php
  21. 105
      02.php/app/controller/Svnuser.php
  22. 56
      02.php/app/controller/Update.php
  23. 88
      02.php/app/controller/base/Base.php
  24. 4
      02.php/app/function/array.php
  25. 0
      02.php/app/function/color.php
  26. 2
      02.php/app/function/curl.php
  27. 2
      02.php/app/function/file.php
  28. 54
      02.php/app/function/ipc.php
  29. 0
      02.php/app/function/json.php
  30. 42
      02.php/app/function/message.php
  31. 0
      02.php/app/function/string.php
  32. 0
      02.php/app/function/update.php
  33. 46
      02.php/app/service/Common.php
  34. 30
      02.php/app/service/Logs.php
  35. 24
      02.php/app/service/Mail.php
  36. 21
      02.php/app/service/Personal.php
  37. 19
      02.php/app/service/Safe.php
  38. 48
      02.php/app/service/Statistics.php
  39. 162
      02.php/app/service/Svn.php
  40. 73
      02.php/app/service/Svngroup.php
  41. 179
      02.php/app/service/Svnrep.php
  42. 78
      02.php/app/service/Svnuser.php
  43. 44
      02.php/app/service/Update.php
  44. 280
      02.php/app/service/base/Base.php
  45. 18
      02.php/app/util/Check.php
  46. 45
      02.php/app/util/Config.php
  47. 6
      02.php/app/util/SVNAdmin/Core.php
  48. 8
      02.php/app/util/SVNAdmin/Group.php
  49. 80
      02.php/app/util/SVNAdmin/Rep.php
  50. 4
      02.php/app/util/SVNAdmin/User.php
  51. 60
      02.php/config/daemon.php
  52. 43
      02.php/config/database.php
  53. 0
      02.php/config/reg.php
  54. 43
      02.php/config/router.php
  55. 0
      02.php/config/sign.php
  56. 5
      02.php/config/svn.php
  57. 6
      02.php/config/update.php
  58. 0
      02.php/config/version.php
  59. 1852
      02.php/extension/Medoo-1.7.10/src/Medoo.php
  60. 26
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-af.php
  61. 27
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-ar.php
  62. 27
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-az.php
  63. 27
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-ba.php
  64. 27
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-be.php
  65. 27
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-bg.php
  66. 27
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-ca.php
  67. 27
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-ch.php
  68. 28
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-cs.php
  69. 29
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-da.php
  70. 28
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-de.php
  71. 26
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-el.php
  72. 26
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-eo.php
  73. 27
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-es.php
  74. 28
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-et.php
  75. 28
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-fa.php
  76. 28
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-fi.php
  77. 27
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-fo.php
  78. 38
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-fr.php
  79. 27
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-gl.php
  80. 27
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-he.php
  81. 27
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-hi.php
  82. 27
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-hr.php
  83. 27
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-hu.php
  84. 27
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-hy.php
  85. 31
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-id.php
  86. 28
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-it.php
  87. 29
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-ja.php
  88. 27
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-ka.php
  89. 27
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-ko.php
  90. 27
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-lt.php
  91. 27
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-lv.php
  92. 27
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-mg.php
  93. 27
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-ms.php
  94. 26
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-nb.php
  95. 34
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-nl.php
  96. 27
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-pl.php
  97. 27
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-pt.php
  98. 38
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-pt_br.php
  99. 33
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-ro.php
  100. 28
      02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-ru.php
  101. Some files were not shown because too many files have changed in this diff Show More

22
01.web/src/views/advance/index.vue

@ -553,7 +553,7 @@ export default { @@ -553,7 +553,7 @@ export default {
var that = this;
var data = {};
that.$axios
.post("/api/Svn/GetDetail?t=web", data)
.post("/api.php?c=Svn&a=GetDetail&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {
@ -612,7 +612,7 @@ export default { @@ -612,7 +612,7 @@ export default {
var that = this;
var data = {};
that.$axios
.post("/api/Mail/GetEmail?t=web", data)
.post("/api.php?c=Mail&a=GetEmail&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {
@ -657,7 +657,7 @@ export default { @@ -657,7 +657,7 @@ export default {
status: that.formMailSmtp.status,
};
that.$axios
.post("/api/Mail/EditEmail?t=web", data)
.post("/api.php?c=Mail&a=EditEmail&t=web", data)
.then(function (response) {
that.loadingEditEmail = false;
var result = response.data;
@ -692,7 +692,7 @@ export default { @@ -692,7 +692,7 @@ export default {
from: that.formMailSmtp.from,
};
that.$axios
.post("/api/Mail/SendTest?t=web", data)
.post("/api.php?c=Mail&a=SendTest&t=web", data)
.then(function (response) {
that.loadingSendTest = false;
var result = response.data;
@ -715,7 +715,7 @@ export default { @@ -715,7 +715,7 @@ export default {
var that = this;
var data = {};
that.$axios
.post("/api/Svn/GetConfig?t=web", data)
.post("/api.php?c=Svn&a=GetConfig&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {
@ -749,7 +749,7 @@ export default { @@ -749,7 +749,7 @@ export default {
that.loadingSvnserveStart = true;
var data = {};
that.$axios
.post("/api/Svn/Start?t=web", data)
.post("/api.php?c=Svn&a=Start&t=web", data)
.then(function (response) {
that.loadingSvnserveStart = false;
var result = response.data;
@ -780,7 +780,7 @@ export default { @@ -780,7 +780,7 @@ export default {
that.loadingSvnserveStop = true;
var data = {};
that.$axios
.post("/api/Svn/Stop?t=web", data)
.post("/api.php?c=Svn&a=Stop&t=web", data)
.then(function (response) {
that.loadingSvnserveStop = false;
var result = response.data;
@ -814,7 +814,7 @@ export default { @@ -814,7 +814,7 @@ export default {
bindPort: that.tempBindPort,
};
that.$axios
.post("/api/Svn/EditPort?t=web", data)
.post("/api.php?c=Svn&a=EditPort&t=web", data)
.then(function (response) {
that.loadingEditPort = false;
var result = response.data;
@ -849,7 +849,7 @@ export default { @@ -849,7 +849,7 @@ export default {
bindHost: that.tempBindHost,
};
that.$axios
.post("/api/Svn/EditHost?t=web", data)
.post("/api.php?c=Svn&a=EditHost&t=web", data)
.then(function (response) {
that.loadingEditHost = false;
var result = response.data;
@ -884,7 +884,7 @@ export default { @@ -884,7 +884,7 @@ export default {
manageHost: that.tempManageHost,
};
that.$axios
.post("/api/Svn/EditManageHost?t=web", data)
.post("/api.php?c=Svn&a=EditManageHost&t=web", data)
.then(function (response) {
that.loadingEditManageHost = false;
var result = response.data;
@ -913,7 +913,7 @@ export default { @@ -913,7 +913,7 @@ export default {
enable: value,
};
that.$axios
.post("/api/Svn/EditEnable?t=web", data)
.post("/api.php?c=Svn&a=EditEnable&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {

6
01.web/src/views/index/index.vue

@ -235,7 +235,7 @@ export default { @@ -235,7 +235,7 @@ export default {
var that = this;
var data = {};
that.$axios
.post("/api/Statistics/GetDisk?t=web", data)
.post("/api.php?c=Statistics&a=GetDisk&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {
@ -257,7 +257,7 @@ export default { @@ -257,7 +257,7 @@ export default {
var that = this;
var data = {};
that.$axios
.post("/api/Statistics/GetSystemStatus?t=web", data)
.post("/api.php?c=Statistics&a=GetSystemStatus&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {
@ -279,7 +279,7 @@ export default { @@ -279,7 +279,7 @@ export default {
var that = this;
var data = {};
that.$axios
.post("/api/Statistics/GetSystemAnalysis?t=web", data)
.post("/api.php?c=Statistics&a=GetSystemAnalysis&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {

2
01.web/src/views/layout/basicLayout/index.vue

@ -140,7 +140,7 @@ export default { @@ -140,7 +140,7 @@ export default {
var that = this;
var data = {};
that.$axios
.post("/api/Unimportant/Logout?t=web", data)
.post("/api.php?c=Common&a=Logout&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {

4
01.web/src/views/login/index.vue

@ -153,7 +153,7 @@ export default { @@ -153,7 +153,7 @@ export default {
that.loadingGetVeryfyCode = "loading......";
var data = {};
that.$axios
.post("/api/Unimportant/GetVeryfyCode?t=web", data)
.post("/api.php?c=Common&a=GetVeryfyCode&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {
@ -180,7 +180,7 @@ export default { @@ -180,7 +180,7 @@ export default {
code: that.formUserLogin.code,
};
that.$axios
.post("/api/Unimportant/Login?t=web", data)
.post("/api.php?c=Common&a=Login&t=web", data)
.then(function (response) {
that.loadingLogin = false;
var result = response.data;

8
01.web/src/views/personal/index.vue

@ -182,7 +182,7 @@ export default { @@ -182,7 +182,7 @@ export default {
confirm: that.formEditAdminUserName.confirm,
};
that.$axios
.post("/api/Personal/EditAdminUserName?t=web", data)
.post("/api.php?c=Personal&a=EditAdminUserName&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {
@ -215,7 +215,7 @@ export default { @@ -215,7 +215,7 @@ export default {
confirm: that.formEditAdminUserPass.confirm,
};
that.$axios
.post("/api/Personal/EditAdminUserPass?t=web", data)
.post("/api.php?c=Personal&a=EditAdminUserPass&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {
@ -247,7 +247,7 @@ export default { @@ -247,7 +247,7 @@ export default {
confirm: that.formEditSvnUserPass.confirm,
};
that.$axios
.post("/api/Personal/EditSvnUserPass?t=web", data)
.post("/api.php?c=Personal&a=EditSvnUserPass&t=web", data)
.then(function (response) {
that.loadingEditSvnUserPass = false;
var result = response.data;
@ -272,7 +272,7 @@ export default { @@ -272,7 +272,7 @@ export default {
var that = this;
var data = {};
that.$axios
.post("/api/Unimportant/Logout?t=web", data)
.post("/api.php?c=Common&a=Logout&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {

20
01.web/src/views/repositoryGroup/index.vue

@ -381,7 +381,7 @@ export default { @@ -381,7 +381,7 @@ export default {
sortType: that.sortType,
};
that.$axios
.post("/api/Svngroup/GetGroupList?t=web", data)
.post("/api.php?c=Svngroup&a=GetGroupList&t=web", data)
.then(function (response) {
that.loadingGroup = false;
var result = response.data;
@ -409,7 +409,7 @@ export default { @@ -409,7 +409,7 @@ export default {
svn_group_note: that.tableGroupData[index].svn_group_note,
};
that.$axios
.post("/api/Svngroup/EditGroupNote?t=web", data)
.post("/api.php?c=Svngroup&a=EditGroupNote&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {
@ -436,7 +436,7 @@ export default { @@ -436,7 +436,7 @@ export default {
svn_group_name: that.formCreateGroup.svn_group_name,
};
that.$axios
.post("/api/Svngroup/CreateGroup?t=web", data)
.post("/api.php?c=Svngroup&a=CreateGroup&t=web", data)
.then(function (response) {
that.loadingCreateGroup = false;
var result = response.data;
@ -475,7 +475,7 @@ export default { @@ -475,7 +475,7 @@ export default {
groupNameNew: that.formEditGroupName.groupNameNew,
};
that.$axios
.post("/api/Svngroup/EditGroupName?t=web", data)
.post("/api.php?c=Svngroup&a=EditGroupName&t=web", data)
.then(function (response) {
that.loadingEditGroupName = false;
var result = response.data;
@ -506,7 +506,7 @@ export default { @@ -506,7 +506,7 @@ export default {
svn_group_name: svn_group_name,
};
that.$axios
.post("/api/Svngroup/DelGroup?t=web", data)
.post("/api.php?c=Svngroup&a=DelGroup&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {
@ -549,7 +549,7 @@ export default { @@ -549,7 +549,7 @@ export default {
svn_group_name: that.currentSelectGroupName,
};
that.$axios
.post("/api/Svngroup/GetGroupMember?t=web", data)
.post("/api.php?c=Svngroup&a=GetGroupMember&t=web", data)
.then(function (response) {
that.loadingRepAllUser = false;
that.loadingRepAllGroup = false;
@ -598,7 +598,7 @@ export default { @@ -598,7 +598,7 @@ export default {
svn_user_name: userName,
};
that.$axios
.post("/api/Svngroup/GroupAddUser?t=web", data)
.post("/api.php?c=Svngroup&a=GroupAddUser&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {
@ -624,7 +624,7 @@ export default { @@ -624,7 +624,7 @@ export default {
svn_user_name: userName,
};
that.$axios
.post("/api/Svngroup/GroupRemoveUser?t=web", data)
.post("/api.php?c=Svngroup&a=GroupRemoveUser&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {
@ -650,7 +650,7 @@ export default { @@ -650,7 +650,7 @@ export default {
svn_group_name_add: groupName,
};
that.$axios
.post("/api/Svngroup/GroupAddGroup?t=web", data)
.post("/api.php?c=Svngroup&a=GroupAddGroup&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {
@ -676,7 +676,7 @@ export default { @@ -676,7 +676,7 @@ export default {
svn_group_name_del: groupName,
};
that.$axios
.post("/api/Svngroup/GroupRemoveGroup?t=web", data)
.post("/api.php?c=Svngroup&a=GroupRemoveGroup&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {

138
01.web/src/views/repositoryInfo/index.vue

@ -462,7 +462,7 @@ @@ -462,7 +462,7 @@
multiple
:on-success="UploadSuccess"
:before-upload="BeforeUpload"
action="/api/Svnrep/UploadBackup?t=web"
action="/api.php?c=Svnrep&a=UploadBackup&t=web"
name="file"
:headers="{ token: token }"
>
@ -1089,7 +1089,7 @@ export default { @@ -1089,7 +1089,7 @@ export default {
var that = this;
var data = {};
that.$axios
.post("/api/Svn/GetStatus?t=web", data)
.post("/api.php?c=Svn&a=GetStatus&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {
@ -1119,7 +1119,7 @@ export default { @@ -1119,7 +1119,7 @@ export default {
rep_type: that.formRepAdd.rep_type,
};
that.$axios
.post("/api/Svnrep/CreateRep?t=web", data)
.post("/api.php?c=Svnrep&a=CreateRep&t=web", data)
.then(function (response) {
that.loadingCreateRep = false;
that.modalCreateRep = false;
@ -1161,7 +1161,7 @@ export default { @@ -1161,7 +1161,7 @@ export default {
sortType: that.sortType,
};
that.$axios
.post("/api/Svnrep/GetRepList?t=web", data)
.post("/api.php?c=Svnrep&a=GetRepList&t=web", data)
.then(function (response) {
that.loadingRep = false;
var result = response.data;
@ -1221,7 +1221,7 @@ export default { @@ -1221,7 +1221,7 @@ export default {
sortType: that.sortType,
};
that.$axios
.post("/api/Svnrep/GetSvnUserRepList?t=web", data)
.post("/api.php?c=Svnrep&a=GetSvnUserRepList&t=web", data)
.then(function (response) {
that.loadingUserRep = false;
var result = response.data;
@ -1276,7 +1276,7 @@ export default { @@ -1276,7 +1276,7 @@ export default {
rep_note: that.tableDataRep[index].rep_note,
};
that.$axios
.post("/api/Svnrep/EditRepNote?t=web", data)
.post("/api.php?c=Svnrep&a=EditRepNote&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {
@ -1361,7 +1361,7 @@ export default { @@ -1361,7 +1361,7 @@ export default {
var data = {};
return new Promise(function (resolve, reject) {
that.$axios
.post("/api/Svn/GetCheckout?t=web", data)
.post("/api.php?c=Svn&a=GetCheckout&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {
@ -1390,7 +1390,7 @@ export default { @@ -1390,7 +1390,7 @@ export default {
path: that.currentRepTreePath,
};
that.$axios
.post("/api/Svnrep/GetRepCon?t=web", data)
.post("/api.php?c=Svnrep&a=GetRepCon&t=web", data)
.then(function (response) {
that.loadingRepCon = false;
var result = response.data;
@ -1425,7 +1425,7 @@ export default { @@ -1425,7 +1425,7 @@ export default {
path: that.currentRepTreePath,
};
that.$axios
.post("/api/Svnrep/GetUserRepCon?t=web", data)
.post("/api.php?c=Svnrep&a=GetUserRepCon&t=web", data)
.then(function (response) {
that.loadingRepCon = false;
var result = response.data;
@ -1510,7 +1510,7 @@ export default { @@ -1510,7 +1510,7 @@ export default {
that.tableDataBackup = [];
var data = {};
that.$axios
.post("/api/Svnrep/GetBackupList?t=web", data)
.post("/api.php?c=Svnrep&a=GetBackupList&t=web", data)
.then(function (response) {
that.loadingRepBackupList = false;
var result = response.data;
@ -1533,7 +1533,7 @@ export default { @@ -1533,7 +1533,7 @@ export default {
rep_name: that.currentRepName,
};
that.$axios
.post("/api/Svnrep/RepDump?t=web", data)
.post("/api.php?c=Svnrep&a=RepDump&t=web", data)
.then(function (response) {
that.loadingRepDump = false;
var result = response.data;
@ -1556,7 +1556,7 @@ export default { @@ -1556,7 +1556,7 @@ export default {
DownloadRepBackup(fileName) {
var that = this;
const streamSaver = require("../../libs/streamsaver/StreamSaver");
fetch("/api/Svnrep/DownloadRepBackup?t=web", {
fetch("/api.php?c=Svnrep&a=DownloadRepBackup&t=web", {
headers: {
"Content-Type": "application/json",
token: that.token,
@ -1575,7 +1575,9 @@ export default { @@ -1575,7 +1575,9 @@ export default {
window.WritableStream = WritableStream;
}
const fileStream = streamSaver.createWriteStream(fileName);
const fileStream = streamSaver.createWriteStream(fileName, {
size: response.headers.get("content-length"),
});
const readableStream = response.body;
// More optimized
@ -1596,6 +1598,80 @@ export default { @@ -1596,6 +1598,80 @@ export default {
pump();
});
},
DownloadRepBackup2(fileName) {
var that = this;
const streamSaver = require("../../libs/streamsaver/StreamSaver");
fetch("https://download.witersen.com/test/examples/api.php", {
headers: {
"Content-Type": "application/json",
},
method: "POST",
body: JSON.stringify({
fileName: fileName,
}),
}).then((response) => {
// These code section is adapted from an example of the StreamSaver.js
// https://jimmywarting.github.io/StreamSaver.js/examples/fetch.html
// If the WritableStream is not available (Firefox, Safari), take it from the ponyfill
if (!window.WritableStream) {
streamSaver.WritableStream = WritableStream;
window.WritableStream = WritableStream;
}
const fileStream = streamSaver.createWriteStream(fileName, {
size: response.headers.get("content-length"),
});
const readableStream = response.body;
// More optimized
if (readableStream.pipeTo) {
return readableStream.pipeTo(fileStream);
}
window.writer = fileStream.getWriter();
const reader = response.body.getReader();
const pump = () =>
reader
.read()
.then((res) =>
res.done ? writer.close() : writer.write(res.value).then(pump)
);
pump();
});
},
DownloadRepBackup3(fileName) {
var that = this;
var data = {
fileName: fileName,
};
that.$axios.setAttribute;
that.$axios
.post("/api.php?c=Svnrep&a=DownloadRepBackup&t=web", data, {
responseType: "blob",
})
.then(function (response) {
let url = window.URL.createObjectURL(
new Blob([response.data], { type: "application/octet-stream" })
);
let link = document.createElement("a");
link.style.display = "none";
link.href = url;
link.setAttribute("download", fileName);
document.body.appendChild(link);
link.click();
//url
window.URL.revokeObjectURL(url);
//
document.body.removeChild(link);
})
.catch(function (error) {
console.log(error);
that.$Message.error("出错了 请联系管理员!");
});
},
/**
* 删除备份文件
*/
@ -1609,7 +1685,7 @@ export default { @@ -1609,7 +1685,7 @@ export default {
fileName: fileName,
};
that.$axios
.post("/api/Svnrep/DelRepBackup?t=web", data)
.post("/api.php?c=Svnrep&a=DelRepBackup&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {
@ -1670,7 +1746,7 @@ export default { @@ -1670,7 +1746,7 @@ export default {
};
return new Promise(function (resolve, reject) {
that.$axios
.post("/api/Svnrep/GetRepTree?t=web", data)
.post("/api.php?c=Svnrep&a=GetRepTree&t=web", data)
.then(function (response) {
resolve(response);
})
@ -1760,7 +1836,7 @@ export default { @@ -1760,7 +1836,7 @@ export default {
path: that.currentRepTreePriPath,
};
that.$axios
.post("/api/Svnrep/GetRepPathUserPri?t=web", data)
.post("/api.php?c=Svnrep&a=GetRepPathUserPri&t=web", data)
.then(function (response) {
that.loadingRepPathUserPri = false;
var result = response.data;
@ -1818,7 +1894,7 @@ export default { @@ -1818,7 +1894,7 @@ export default {
user: that.currentRepPriUser,
};
that.$axios
.post("/api/Svnrep/DelRepPathUserPri?t=web", data)
.post("/api.php?c=Svnrep&a=DelRepPathUserPri&t=web", data)
.then(function (response) {
that.loadingDelRepPathUserPri = false;
var result = response.data;
@ -1853,7 +1929,7 @@ export default { @@ -1853,7 +1929,7 @@ export default {
.userName,
};
that.$axios
.post("/api/Svnrep/EditRepPathUserPri?t=web", data)
.post("/api.php?c=Svnrep&a=EditRepPathUserPri&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {
@ -1880,7 +1956,7 @@ export default { @@ -1880,7 +1956,7 @@ export default {
user: that.currentRepPriAddUser,
};
that.$axios
.post("/api/Svnrep/AddRepPathUserPri?t=web", data)
.post("/api.php?c=Svnrep&a=AddRepPathUserPri&t=web", data)
.then(function (response) {
that.modalRepAllUser = false;
var result = response.data;
@ -1916,7 +1992,7 @@ export default { @@ -1916,7 +1992,7 @@ export default {
that.loadingAllUserList = true;
var data = {};
that.$axios
.post("/api/Svnuser/GetAllUserList?t=web", data)
.post("/api.php?c=Svnuser&a=GetAllUserList&t=web", data)
.then(function (response) {
that.loadingAllUserList = false;
var result = response.data;
@ -1956,7 +2032,7 @@ export default { @@ -1956,7 +2032,7 @@ export default {
path: that.currentRepTreePriPath,
};
that.$axios
.post("/api/Svnrep/GetRepPathGroupPri?t=web", data)
.post("/api.php?c=Svnrep&a=GetRepPathGroupPri&t=web", data)
.then(function (response) {
that.loadingRepPathGroupPri = false;
var result = response.data;
@ -2018,7 +2094,7 @@ export default { @@ -2018,7 +2094,7 @@ export default {
group: that.currentRepPriGroup,
};
that.$axios
.post("/api/Svnrep/DelRepPathGroupPri?t=web", data)
.post("/api.php?c=Svnrep&a=DelRepPathGroupPri&t=web", data)
.then(function (response) {
that.loadingDelRepPathGroupPri = false;
var result = response.data;
@ -2054,7 +2130,7 @@ export default { @@ -2054,7 +2130,7 @@ export default {
that.tableDataRepPathGroupPri[that.currentRepPriGroupIndex].groupName,
};
that.$axios
.post("/api/Svnrep/EditRepPathGroupPri?t=web", data)
.post("/api.php?c=Svnrep&a=EditRepPathGroupPri&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {
@ -2081,7 +2157,7 @@ export default { @@ -2081,7 +2157,7 @@ export default {
group: that.currentRepPriAddGroup,
};
that.$axios
.post("/api/Svnrep/AddRepPathGroupPri?t=web", data)
.post("/api.php?c=Svnrep&a=AddRepPathGroupPri&t=web", data)
.then(function (response) {
that.modalRepAllGroup = false;
var result = response.data;
@ -2117,7 +2193,7 @@ export default { @@ -2117,7 +2193,7 @@ export default {
that.loadingAllGroupList = true;
var data = {};
that.$axios
.post("/api/Svngroup/GetAllGroupList?t=web", data)
.post("/api.php?c=Svngroup&a=GetAllGroupList&t=web", data)
.then(function (response) {
that.loadingAllGroupList = false;
var result = response.data;
@ -2162,7 +2238,7 @@ export default { @@ -2162,7 +2238,7 @@ export default {
rep_name: that.currentRepName,
};
that.$axios
.post("/api/Svnrep/GetRepHooks?t=web", data)
.post("/api.php?c=Svnrep&a=GetRepHooks&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {
@ -2187,7 +2263,7 @@ export default { @@ -2187,7 +2263,7 @@ export default {
content: that.formRepHooks.type[that.formRepHooks.select].shell,
};
that.$axios
.post("/api/Svnrep/EditRepHook?t=web", data)
.post("/api.php?c=Svnrep&a=EditRepHook&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {
@ -2230,7 +2306,7 @@ export default { @@ -2230,7 +2306,7 @@ export default {
rep_name: that.currentRepName,
};
that.$axios
.post("/api/Svnrep/GetRepDetail?t=web", data)
.post("/api.php?c=Svnrep&a=GetRepDetail&t=web", data)
.then(function (response) {
that.loadingRepDetail = false;
var result = response.data;
@ -2307,7 +2383,7 @@ export default { @@ -2307,7 +2383,7 @@ export default {
fileName: that.formUploadBackup.fileName,
};
that.$axios
.post("/api/Svnrep/ImportRep?t=web", data)
.post("/api.php?c=Svnrep&a=ImportRep&t=web", data)
.then(function (response) {
that.loadingImportBackup = false;
var result = response.data;
@ -2347,7 +2423,7 @@ export default { @@ -2347,7 +2423,7 @@ export default {
new_rep_name: that.formRepEdit.new_rep_name,
};
that.$axios
.post("/api/Svnrep/EditRepName?t=web", data)
.post("/api.php?c=Svnrep&a=EditRepName&t=web", data)
.then(function (response) {
that.loadingEditRepName = false;
var result = response.data;
@ -2380,7 +2456,7 @@ export default { @@ -2380,7 +2456,7 @@ export default {
rep_name: rep_name,
};
that.$axios
.post("/api/Svnrep/DelRep?t=web", data)
.post("/api.php?c=Svnrep&a=DelRep&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {

14
01.web/src/views/repositoryUser/index.vue

@ -292,7 +292,7 @@ export default { @@ -292,7 +292,7 @@ export default {
sortType: that.sortType,
};
that.$axios
.post("/api/Svnuser/GetUserList?t=web", data)
.post("/api.php?c=Svnuser&a=GetUserList&t=web", data)
.then(function (response) {
that.loadingUser = false;
var result = response.data;
@ -329,7 +329,7 @@ export default { @@ -329,7 +329,7 @@ export default {
svn_user_name: svn_user_name,
};
that.$axios
.post("/api/Svnuser/EnableUser?t=web", data)
.post("/api.php?c=Svnuser&a=EnableUser&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {
@ -352,7 +352,7 @@ export default { @@ -352,7 +352,7 @@ export default {
svn_user_name: svn_user_name,
};
that.$axios
.post("/api/Svnuser/DisableUser?t=web", data)
.post("/api.php?c=Svnuser&a=DisableUser&t=web", data)
.then(function (response) {
that.loadingUser = false;
var result = response.data;
@ -377,7 +377,7 @@ export default { @@ -377,7 +377,7 @@ export default {
svn_user_note: that.tableDataUser[index].svn_user_note,
};
that.$axios
.post("/api/Svnuser/EditUserNote?t=web", data)
.post("/api.php?c=Svnuser&a=EditUserNote&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {
@ -415,7 +415,7 @@ export default { @@ -415,7 +415,7 @@ export default {
svn_user_pass: that.formCreateUser.svn_user_pass,
};
that.$axios
.post("/api/Svnuser/CreateUser?t=web", data)
.post("/api.php?c=Svnuser&a=CreateUser&t=web", data)
.then(function (response) {
that.loadingCreateUser = false;
var result = response.data;
@ -458,7 +458,7 @@ export default { @@ -458,7 +458,7 @@ export default {
that.tableDataUser[that.formEditUser.index].svn_user_status,
};
that.$axios
.post("/api/Svnuser/EditUserPass?t=web", data)
.post("/api.php?c=Svnuser&a=EditUserPass&t=web", data)
.then(function (response) {
that.loadingEditUserPass = false;
var result = response.data;
@ -491,7 +491,7 @@ export default { @@ -491,7 +491,7 @@ export default {
svn_user_status: that.tableDataUser[index].svn_user_status,
};
that.$axios
.post("/api/Svnuser/DelUser?t=web", data)
.post("/api.php?c=Svnuser&a=DelUser&t=web", data)
.then(function (response) {
var result = response.data;
if (result.status == 1) {

4
01.web/src/views/systemLog/index.vue

@ -163,7 +163,7 @@ export default { @@ -163,7 +163,7 @@ export default {
searchKeyword: that.searchKeywordLog,
};
that.$axios
.post("/api/Logs/GetLogList?t=web", data)
.post("/api.php?c=Logs&a=GetLogList&t=web", data)
.then(function (response) {
that.loadingGetLogList = false;
var result = response.data;
@ -193,7 +193,7 @@ export default { @@ -193,7 +193,7 @@ export default {
that.loadingClearLogs = true;
var data = {};
that.$axios
.post("/api/Logs/ClearLogs?t=web", data)
.post("/api.php?c=Logs&a=ClearLogs&t=web", data)
.then(function (response) {
that.loadingClearLogs = false;
var result = response.data;

6
01.web/webpack.dev.config.js

@ -45,10 +45,10 @@ module.exports = merge(webpackBaseConfig, { @@ -45,10 +45,10 @@ module.exports = merge(webpackBaseConfig, {
hotOnly: false,
disableHostCheck: true,
proxy: {
'/api': {
target: 'http://workman.witersen.com:8787',
'/api.php': {
target: 'http://workman.witersen.com/api.php',
changeOrigin: true,
pathRewrite: { '^/api': '' }
// pathRewrite: { '^/api': '' }
}
}
}

92
02.php/api.php

@ -0,0 +1,92 @@ @@ -0,0 +1,92 @@
<?php
/*
* @Author: witersen
* @Date: 2022-04-24 23:37:06
* @LastEditors: witersen
* @LastEditTime: 2022-05-07 11:17:34
* @Description: QQ:1801168257
*/
/**
* 开启错误信息 如需要调试 可取消注释
*/
ini_set('display_errors', '1');
error_reporting(E_ALL);
define('BASE_PATH', __DIR__);
date_default_timezone_set('PRC');
require_once BASE_PATH . '/app/controller/base/Base.php';
Config::load(BASE_PATH . '/config/');
/**
* token
*/
$token = empty($_SERVER['HTTP_TOKEN']) ? '' : $_SERVER['HTTP_TOKEN'];
/**
* 控制器
*/
$controller_perifx = empty($_GET['c']) ? '' : $_GET['c'];
$controller = "\app\controller\\$controller_perifx";
$controller_path = BASE_PATH . '/app/controller/' . $controller_perifx . '.php';
/**
* 方法
*/
$action = empty($_GET['a']) ? '' : $_GET['a'];
/**
* 接口类型
* 小程序还是web系统
*/
$type = empty($_GET['t']) ? '' : $_GET['t'];
/**
* 请求参数即Request Payload
* Content-Type: application/json
*/
$payload = file_get_contents("php://input");
$payload = !empty($payload) ? json_decode($payload, true) : [];
/**
* 获取文件信息
* 适用请求方式 fordata
* Content-Type: multipart/form-data;
*
* 示例数据
* 其中 file 为前端请求的自定义字段 使用时候要自行判断是否存在该键值
* {
* "file": {
* "name": "tmp_bda9c778201ffb47ebfea61617a16d1c564ca6d0b8ad52b8.jpg",
* "type": "image\/jpeg",
* "tmp_name": "\/tmp\/phpwxfAaU",
* "error": 0,
* "size": 166881
* }
* }
*/
//检测守护进程状态
$state = FunDetectState();
if ($state == 0) {
json1(401, 0, '守护进程响应超时');
} else if ($state == 2) {
json1(401, 0, '守护进程未启动');
}
/**
* 检查控制器和方法是否存在并实例化
*/
if (file_exists($controller_path)) {
$obj = new $controller();
if (is_callable(array($obj, $action))) {
$obj->$action();
} else {
json1(401, 0, '无效的方法名');
}
} else {
json1(401, 0, '无效的控制器名');
}

60
02.php/app/controller/Common.php

@ -0,0 +1,60 @@ @@ -0,0 +1,60 @@
<?php
/*
* @Author: witersen
* @Date: 2022-04-24 23:37:05
* @LastEditors: witersen
* @LastEditTime: 2022-05-07 13:37:33
* @Description: QQ:1801168257
*/
namespace app\controller;
use app\service\Common as ServiceCommon;
class Common extends Base
{
/**
* 服务层对象
*
* @var object
*/
private $ServiceCommon;
function __construct()
{
parent::__construct();
$this->ServiceCommon = new ServiceCommon();
}
/**
* 登录
*/
public function Login()
{
$result = $this->ServiceCommon->Login();
json2($result);
}
/**
* 注销
*
* 注销操作为将用户尚未过期的token加入所谓黑名单
* 每次注销触发主动扫描黑名单 将名单中过期的token删除
* 目的:实现用户注销后尚未过期的token无法继续使用
*/
public function Logout()
{
$this->ServiceCommon->Logout();
json2();
}
/**
* 获取验证码
*/
public function GetVeryfyCode()
{
$result = $this->ServiceCommon->GetVeryfyCode();
json2($result);
}
}

47
02.php/app/controller/Logs.php

@ -0,0 +1,47 @@ @@ -0,0 +1,47 @@
<?php
/*
* @Author: witersen
* @Date: 2022-04-24 23:37:05
* @LastEditors: witersen
* @LastEditTime: 2022-05-07 14:09:40
* @Description: QQ:1801168257
*/
namespace app\controller;
use app\service\Logs as ServiceLogs;
class Logs extends Base
{
/**
* 服务层对象
*
* @var object
*/
private $ServiceLogs;
function __construct()
{
parent::__construct();
$this->ServiceLogs = new ServiceLogs();
}
/**
* 获取日志列表
*/
public function GetLogList()
{
$result = $this->ServiceLogs->GetLogList();
json2($result);
}
/**
* 清空日志
*/
public function ClearLogs()
{
$result = $this->ServiceLogs->ClearLogs();
json2($result);
}
}

56
02.php/app/controller/Mail.php

@ -0,0 +1,56 @@ @@ -0,0 +1,56 @@
<?php
/*
* @Author: witersen
* @Date: 2022-04-24 23:37:05
* @LastEditors: witersen
* @LastEditTime: 2022-05-07 13:58:27
* @Description: QQ:1801168257
*/
namespace app\controller;
use app\service\Mail as ServiceMail;
class Mail extends Base
{
/**
* 服务层对象
*
* @var object
*/
private $ServiceMail;
function __construct()
{
parent::__construct();
$this->ServiceMail = new ServiceMail();
}
/**
* 获取邮件配置信息
*/
public function GetEmail()
{
$result = $this->ServiceMail->GetEmail();
json2($result);
}
/**
* 修改邮件配置信息
*/
public function EditEmail()
{
$this->ServiceMail->EditEmail();
json2();
}
/**
* 发送测试邮件
*/
public function SendTest()
{
$result = $this->ServiceMail->SendTest();
json2($result);
}
}

56
02.php/app/controller/Personal.php

@ -0,0 +1,56 @@ @@ -0,0 +1,56 @@
<?php
/*
* @Author: witersen
* @Date: 2022-04-24 23:37:05
* @LastEditors: witersen
* @LastEditTime: 2022-05-07 13:59:41
* @Description: QQ:1801168257
*/
namespace app\controller;
use app\service\Personal as ServicePersonal;
class Personal extends Base
{
/**
* 服务层对象
*
* @var object
*/
private $ServicePersonal;
function __construct()
{
parent::__construct();
$this->ServicePersonal = new ServicePersonal();
}
/**
* 管理人员修改自己的账号
*/
public function EditAdminUserName()
{
$result = $this->ServicePersonal->EditAdminUserName();
json2($result);
}
/**
* 管理人员修改自己的密码
*/
public function EditAdminUserPass()
{
$result = $this->ServicePersonal->EditAdminUserPass();
json2($result);
}
/**
* SVN用户修改自己的密码
*/
public function EditSvnUserPass()
{
$result = $this->ServicePersonal->EditSvnUserPass();
json2($result);
}
}

29
02.php/app/controller/Safe.php

@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
<?php
/*
* @Author: witersen
* @Date: 2022-04-24 23:37:05
* @LastEditors: witersen
* @LastEditTime: 2022-05-06 21:37:21
* @Description: QQ:1801168257
*/
namespace app\controller;
use app\service\Safe as ServiceSafe;
class Safe extends Base
{
/**
* 服务层对象
*
* @var object
*/
private $ServiceSafe;
function __construct()
{
parent::__construct();
$this->ServiceSafe = new ServiceSafe();
}
}

70
02.php/app/controller/Statistics.php

@ -0,0 +1,70 @@ @@ -0,0 +1,70 @@
<?php
/*
* @Author: witersen
* @Date: 2022-04-24 23:37:05
* @LastEditors: witersen
* @LastEditTime: 2022-05-07 14:00:06
* @Description: QQ:1801168257
*/
namespace app\controller;
use app\service\Statistics as ServiceStatistics;
class Statistics extends Base
{
/**
* 服务层对象
*
* @var object
*/
private $ServiceStatistics;
function __construct()
{
parent::__construct();
$this->ServiceStatistics = new ServiceStatistics();
}
/**
* 获取状态
*
* 负载状态
* CPU使用率
* 内存使用率
*/
public function GetSystemStatus()
{
$result = $this->ServiceStatistics->GetSystemStatus();
json2($result);
}
/**
* 获取硬盘
*
* 获取硬盘数量和每个硬盘的详细信息
*/
public function GetDisk()
{
$result = $this->ServiceStatistics->GetDisk();
json2($result);
}
/**
* 获取统计
*
* 操作系统类型
* 仓库占用体积
* SVN仓库数量
* SVN用户数量
* SVN分组数量
* 计划任务数量
* 运行日志数量
*/
public function GetSystemAnalysis()
{
$result = $this->ServiceStatistics->GetSystemAnalysis();
json2($result);
}
}

140
02.php/app/controller/Svn.php

@ -0,0 +1,140 @@ @@ -0,0 +1,140 @@
<?php
/*
* @Author: witersen
* @Date: 2022-04-24 23:37:05
* @LastEditors: witersen
* @LastEditTime: 2022-05-07 14:02:42
* @Description: QQ:1801168257
*/
namespace app\controller;
use app\service\Svn as ServiceSvn;
class Svn extends Base
{
/**
* 服务层对象
*
* @var object
*/
private $ServiceSvn;
function __construct()
{
parent::__construct();
$this->ServiceSvn = new ServiceSvn();
}
/**
* 获取Subversion运行状态 用于页头提醒
*/
public function GetStatus()
{
$result = $this->ServiceSvn->GetStatus();
json2($result);
}
/**
* 获取Subversion的检出地址前缀
*
* 先从Subversion配置文件获取绑定端口和主机
* 然后与listen.json配置文件中的端口和主机进行对比和同步
*/
public function GetCheckout()
{
$result = $this->ServiceSvn->GetCheckout();
json2($result);
}
/**
* 获取Subversion的详细信息
*/
public function GetDetail()
{
$result = $this->ServiceSvn->GetDetail();
json2($result);
}
/**
* 安装SVN
*/
public function Install()
{
$result = $this->ServiceSvn->Install();
json2($result);
}
/**
* 卸载SVN
*/
public function UnInstall()
{
$result = $this->ServiceSvn->UnInstall();
json2($result);
}
/**
* 启动SVN
*/
public function Start()
{
$result = $this->ServiceSvn->Start();
json2($result);
}
/**
* 停止SVN
*/
public function Stop()
{
$result = $this->ServiceSvn->Stop();
json2($result);
}
/**
* 修改svnserve的绑定端口
*/
public function EditPort()
{
$result = $this->ServiceSvn->EditPort();
json2($result);
}
/**
* 修改svnserve的绑定主机
*/
public function EditHost()
{
$result = $this->ServiceSvn->EditHost();
json2($result);
}
/**
* 修改管理系统主机名
*/
public function EditManageHost()
{
$result = $this->ServiceSvn->EditManageHost();
json2($result);
}
/**
* 修改检出地址
*/
public function EditEnable()
{
$result = $this->ServiceSvn->EditEnable();
json2($result);
}
/**
* 获取配置文件列表
*/
public function GetConfig()
{
$result = $this->ServiceSvn->GetConfig();
json2($result);
}
}

128
02.php/app/controller/Svngroup.php

@ -0,0 +1,128 @@ @@ -0,0 +1,128 @@
<?php
/*
* @Author: witersen
* @Date: 2022-04-24 23:37:05
* @LastEditors: witersen
* @LastEditTime: 2022-05-07 14:04:33
* @Description: QQ:1801168257
*/
namespace app\controller;
use app\service\Svngroup as ServiceSvngroup;
class Svngroup extends Base
{
/**
* 服务层对象
*
* @var object
*/
private $ServiceSvngroup;
function __construct()
{
parent::__construct();
$this->ServiceSvngroup = new ServiceSvngroup();
}
/**
* 获取所有的分组列表
*/
public function GetAllGroupList()
{
$result = $this->ServiceSvngroup->GetAllGroupList();
json2($result);
}
/**
* 获取带有分页的分组列表
*/
public function GetGroupList()
{
$result = $this->ServiceSvngroup->GetGroupList();
json2($result);
}
/**
* 编辑分组备注信息
*/
public function EditGroupNote()
{
$result = $this->ServiceSvngroup->EditGroupNote();
json2($result);
}
/**
* 新建SVN分组
*/
public function CreateGroup()
{
$result = $this->ServiceSvngroup->CreateGroup();
json2($result);
}
/**
* 删除SVN分组
*/
public function DelGroup()
{
$result = $this->ServiceSvngroup->DelGroup();
json2($result);
}
/**
* 修改SVN分组的名称
*/
public function EditGroupName()
{
$result = $this->ServiceSvngroup->EditGroupName();
json2($result);
}
/**
* 获取SVN分组的用户成员和分组成员
*/
public function GetGroupMember()
{
$result = $this->ServiceSvngroup->GetGroupMember();
json2($result);
}
/**
* 将用户添加为SVN分组的成员
*/
public function GroupAddUser()
{
$result = $this->ServiceSvngroup->GroupAddUser();
json2($result);
}
/**
* 将用户从SVN分组的成员移除
*/
public function GroupRemoveUser()
{
$result = $this->ServiceSvngroup->GroupRemoveUser();
json2($result);
}
/**
* 将分组添加为SVN分组的成员
*/
public function GroupAddGroup()
{
$result = $this->ServiceSvngroup->GroupAddGroup();
json2($result);
}
/**
* 将分组从SVN分组的成员移除
*/
public function GroupRemoveGroup()
{
$result = $this->ServiceSvngroup->GroupRemoveGroup();
json2($result);
}
}

264
02.php/app/controller/Svnrep.php

@ -0,0 +1,264 @@ @@ -0,0 +1,264 @@
<?php
/*
* @Author: witersen
* @Date: 2022-04-24 23:37:05
* @LastEditors: witersen
* @LastEditTime: 2022-05-07 14:29:39
* @Description: QQ:1801168257
*/
namespace app\controller;
use app\service\Svnrep as ServiceSvnrep;
class Svnrep extends Base
{
/**
* 服务层对象
*
* @var object
*/
private $ServiceSvnrep;
function __construct()
{
parent::__construct();
$this->ServiceSvnrep = new ServiceSvnrep();
}
/**
* 新建仓库
*/
public function CreateRep()
{
$result = $this->ServiceSvnrep->CreateRep();
json2($result);
}
/**
* 获取仓库列表
*/
public function GetRepList()
{
$result = $this->ServiceSvnrep->GetRepList();
json2($result);
}
/**
* SVN用户获取自己有权限的仓库列表
*/
public function GetSvnUserRepList()
{
$result = $this->ServiceSvnrep->GetSvnUserRepList();
json2($result);
}
/**
* 修改仓库的备注信息
*/
public function EditRepNote()
{
$result = $this->ServiceSvnrep->EditRepNote();
json2($result);
}
/**
* SVN用户根据目录名称获取该目录下的文件和文件夹列表
*/
public function GetUserRepCon()
{
$result = $this->ServiceSvnrep->GetUserRepCon();
json2($result);
}
/**
* 管理人员根据目录名称获取该目录下的文件和文件夹列表
*/
public function GetRepCon()
{
$result = $this->ServiceSvnrep->GetRepCon();
json2($result);
}
/**
* 根据目录名称获取该目录下的目录树
*
* 管理员配置目录授权用
*/
public function GetRepTree()
{
$result = $this->ServiceSvnrep->GetRepTree();
json2($result);
}
/**
* 获取某个仓库路径的用户权限列表
*/
public function GetRepPathUserPri()
{
$result = $this->ServiceSvnrep->GetRepPathUserPri();
json2($result);
}
/**
* 获取某个仓库路径的分组权限列表
*/
public function GetRepPathGroupPri()
{
$result = $this->ServiceSvnrep->GetRepPathGroupPri();
json2($result);
}
/**
* 增加某个仓库路径的用户权限
*/
public function AddRepPathUserPri()
{
$result = $this->ServiceSvnrep->AddRepPathUserPri();
json2($result);
}
/**
* 删除某个仓库路径的用户权限
*/
public function DelRepPathUserPri()
{
$result = $this->ServiceSvnrep->DelRepPathUserPri();
json2($result);
}
/**
* 修改某个仓库路径的用户权限
*/
public function EditRepPathUserPri()
{
$result = $this->ServiceSvnrep->EditRepPathUserPri();
json2($result);
}
/**
* 增加某个仓库路径的分组权限
*/
public function AddRepPathGroupPri()
{
$result = $this->ServiceSvnrep->AddRepPathGroupPri();
json2($result);
}
/**
* 删除某个仓库路径的分组权限
*/
public function DelRepPathGroupPri()
{
$result = $this->ServiceSvnrep->DelRepPathGroupPri();
json2($result);
}
/**
* 修改某个仓库路径的分组权限
*/
public function EditRepPathGroupPri()
{
$result = $this->ServiceSvnrep->EditRepPathGroupPri();
json2($result);
}
/**
* 修改仓库名称
*/
public function EditRepName()
{
$result = $this->ServiceSvnrep->EditRepName();
json2($result);
}
/**
* 删除仓库
*/
public function DelRep()
{
$result = $this->ServiceSvnrep->DelRep();
json2($result);
}
/**
* 获取仓库的属性内容(key-value的形式)
*/
public function GetRepDetail()
{
$result = $this->ServiceSvnrep->GetRepDetail();
json2($result);
}
/**
* 获取备份文件夹下的文件列表
*/
public function GetBackupList()
{
$result = $this->ServiceSvnrep->GetBackupList();
json2($result);
}
/**
* 立即备份当前仓库
*/
public function RepDump()
{
$result = $this->ServiceSvnrep->RepDump();
json2($result);
}
/**
* 删除备份文件
*/
public function DelRepBackup()
{
$result = $this->ServiceSvnrep->DelRepBackup();
json2($result);
}
/**
* 下载备份文件
*/
public function DownloadRepBackup()
{
$this->ServiceSvnrep->DownloadRepBackup();
}
/**
* 上传文件到备份文件夹
*/
public function UploadBackup()
{
$result = $this->ServiceSvnrep->UploadBackup();
json2($result);
}
/**
* 从本地备份文件导入仓库
*/
public function ImportRep()
{
$result = $this->ServiceSvnrep->ImportRep();
json2($result);
}
/**
* 获取仓库的钩子和对应的内容列表
*/
public function GetRepHooks()
{
$result = $this->ServiceSvnrep->GetRepHooks();
json2($result);
}
/**
* 修改仓库的钩子内容(针对单个钩子)
*/
public function EditRepHook()
{
$result = $this->ServiceSvnrep->EditRepHook();
json2($result);
}
}

105
02.php/app/controller/Svnuser.php

@ -0,0 +1,105 @@ @@ -0,0 +1,105 @@
<?php
/*
* @Author: witersen
* @Date: 2022-04-24 23:37:05
* @LastEditors: witersen
* @LastEditTime: 2022-05-07 14:08:17
* @Description: QQ:1801168257
*/
namespace app\controller;
use app\service\Svnuser as ServiceSvnuser;
class Svnuser extends Base
{
/**
* 服务层对象
*
* @var object
*/
private $ServiceSvnuser;
function __construct()
{
parent::__construct();
$this->ServiceSvnuser = new ServiceSvnuser();
}
/**
* 获取全部的SVN用户
*
* 只包含用户名和启用状态
*/
public function GetAllUserList()
{
$result = $this->ServiceSvnuser->GetAllUserList();
json2($result);
}
/**
* 获取带有分页的SVN用户
*
* 只包含用户名和启用状态
*/
public function GetUserList()
{
$result = $this->ServiceSvnuser->GetUserList();
json2($result);
}
/**
* 启用SVN用户
*/
public function EnableUser()
{
$result = $this->ServiceSvnuser->EnableUser();
json2($result);
}
/**
* 禁用SVN用户
*/
public function DisableUser()
{
$result = $this->ServiceSvnuser->DisableUser();
json2($result);
}
/**
* 修改SVN用户的备注信息
*/
public function EditUserNote()
{
$result = $this->ServiceSvnuser->EditUserNote();
json2($result);
}
/**
* 新建SVN用户
*/
public function CreateUser()
{
$result = $this->ServiceSvnuser->CreateUser();
json2($result);
}
/**
* 修改SVN用户的密码
*/
public function EditUserPass()
{
$result = $this->ServiceSvnuser->EditUserPass();
json2($result);
}
/**
* 删除SVN用户
*/
public function DelUser()
{
$result = $this->ServiceSvnuser->DelUser();
json2($result);
}
}

56
02.php/app/controller/Update.php

@ -0,0 +1,56 @@ @@ -0,0 +1,56 @@
<?php
/*
* @Author: witersen
* @Date: 2022-04-24 23:37:05
* @LastEditors: witersen
* @LastEditTime: 2022-05-07 14:08:55
* @Description: QQ:1801168257
*/
namespace app\controller;
use app\service\Update as ServiceUpdate;
class Update extends Base
{
/**
* 服务层对象
*
* @var object
*/
private $ServiceUpdate;
function __construct()
{
parent::__construct();
$this->ServiceUpdate = new ServiceUpdate();
}
/**
* 获取当前版本信息
*/
public function GetVersion()
{
$result = $this->ServiceUpdate->GetVersion();
json2($result);
}
/**
* 检测新版本
*/
public function CheckUpdate()
{
$result = $this->ServiceUpdate->CheckUpdate();
json2($result);
}
/**
* 确认更新
*/
public function StartUpdate()
{
$result = $this->ServiceUpdate->StartUpdate();
json2($result);
}
}

88
02.php/app/controller/base/Base.php

@ -0,0 +1,88 @@ @@ -0,0 +1,88 @@
<?php
/*
* @Author: witersen
* @Date: 2022-05-06 18:41:32
* @LastEditors: witersen
* @LastEditTime: 2022-05-07 12:11:40
* @Description: QQ:1801168257
*/
namespace app\controller;
//require config
require_once BASE_PATH . '/config/daemon.php';
require_once BASE_PATH . '/config/database.php';
require_once BASE_PATH . '/config/reg.php';
require_once BASE_PATH . '/config/router.php';
require_once BASE_PATH . '/config/sign.php';
require_once BASE_PATH . '/config/svn.php';
require_once BASE_PATH . '/config/update.php';
require_once BASE_PATH . '/config/version.php';
//require model
//require function
require_once BASE_PATH . '/app/function/array.php';
require_once BASE_PATH . '/app/function/color.php';
require_once BASE_PATH . '/app/function/curl.php';
require_once BASE_PATH . '/app/function/file.php';
require_once BASE_PATH . '/app/function/ipc.php';
require_once BASE_PATH . '/app/function/json.php';
require_once BASE_PATH . '/app/function/message.php';
require_once BASE_PATH . '/app/function/string.php';
require_once BASE_PATH . '/app/function/update.php';
//require util
require_once BASE_PATH . '/app/util/SVNAdmin/Core.php';
require_once BASE_PATH . '/app/util/SVNAdmin/Group.php';
require_once BASE_PATH . '/app/util/SVNAdmin/Rep.php';
require_once BASE_PATH . '/app/util/SVNAdmin/User.php';
require_once BASE_PATH . '/app/util/Check.php';
require_once BASE_PATH . '/app/util/Config.php';
//require controller
require_once BASE_PATH . '/app/controller/Common.php';
require_once BASE_PATH . '/app/controller/Logs.php';
require_once BASE_PATH . '/app/controller/Mail.php';
require_once BASE_PATH . '/app/controller/Personal.php';
require_once BASE_PATH . '/app/controller/Safe.php';
require_once BASE_PATH . '/app/controller/Statistics.php';
require_once BASE_PATH . '/app/controller/Svn.php';
require_once BASE_PATH . '/app/controller/Svngroup.php';
require_once BASE_PATH . '/app/controller/Svnrep.php';
require_once BASE_PATH . '/app/controller/Svnuser.php';
require_once BASE_PATH . '/app/controller/Update.php';
//require service
require_once BASE_PATH . '/app/service/base/Base.php';
require_once BASE_PATH . '/app/service/Common.php';
require_once BASE_PATH . '/app/service/Logs.php';
require_once BASE_PATH . '/app/service/Mail.php';
require_once BASE_PATH . '/app/service/Personal.php';
require_once BASE_PATH . '/app/service/Safe.php';
require_once BASE_PATH . '/app/service/Statistics.php';
require_once BASE_PATH . '/app/service/Svn.php';
require_once BASE_PATH . '/app/service/Svngroup.php';
require_once BASE_PATH . '/app/service/Svnrep.php';
require_once BASE_PATH . '/app/service/Svnuser.php';
require_once BASE_PATH . '/app/service/Update.php';
//require extension
require_once BASE_PATH . '/extension/Transfer/Transfer.php';
require_once BASE_PATH . '/extension/Medoo-1.7.10/src/Medoo.php';
require_once BASE_PATH . '/extension/PHPMailer-6.6.0/src/Exception.php';
require_once BASE_PATH . '/extension/PHPMailer-6.6.0/src/PHPMailer.php';
require_once BASE_PATH . '/extension/PHPMailer-6.6.0/src/SMTP.php';
require_once BASE_PATH . '/extension/PHPMailer-6.6.0/language/phpmailer.lang-zh_cn.php';
require_once BASE_PATH . '/extension/Verifycode/Verifycode.php';
class Base
{
function __construct()
{
}
}

4
02.php/webman/app/function/array.function.php → 02.php/app/function/array.php

@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
* @Author: witersen
* @Date: 2022-04-24 23:37:05
* @LastEditors: witersen
* @LastEditTime: 2022-05-04 00:24:13
* @LastEditTime: 2022-05-06 21:28:38
* @Description: QQ:1801168257
*/
@ -54,7 +54,7 @@ function FunArrayIsStrFolder($string) @@ -54,7 +54,7 @@ function FunArrayIsStrFolder($string)
function FunArrayValueEnabled(&$value, $key)
{
$REG_SVN_USER_DISABLED = '#disabled#';
if (substr($value, 0, strlen($REG_SVN_USER_DISABLED)) == $REG_SVN_USER_DISABLED) {
$value = substr($value, strlen($REG_SVN_USER_DISABLED));
}

0
02.php/webman/app/function/color.function.php → 02.php/app/function/color.php

2
02.php/webman/app/function/curl.function.php → 02.php/app/function/curl.php

@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
* @Author: witersen
* @Date: 2022-04-24 23:37:05
* @LastEditors: witersen
* @LastEditTime: 2022-05-03 16:00:16
* @LastEditTime: 2022-05-06 15:37:53
* @Description: QQ:1801168257
*/

2
02.php/webman/app/function/file.function.php → 02.php/app/function/file.php

@ -62,7 +62,7 @@ function FunFormatSize($size) @@ -62,7 +62,7 @@ function FunFormatSize($size)
function FunGetDirSizeDu($path)
{
$cmd = sprintf("du -s '%s' | awk '{print $1}'", $path);
$result = shellPassthru($cmd);
$result = FunShellExec($cmd);
$result = $result['result'];
$result = (int)trim($result) * 1024;
return $result;

54
02.php/app/function/ipc.php

@ -0,0 +1,54 @@ @@ -0,0 +1,54 @@
<?php
/*
* @Author: witersen
* @Date: 2022-05-07 01:00:10
* @LastEditors: witersen
* @LastEditTime: 2022-05-07 14:19:50
* @Description: QQ:1801168257
*/
/**
* 与守护进程通信
*/
function FunShellExec($shell)
{
$config_daemon = Config::get('daemon');
//检测信息长度
if (strlen($shell) >= $config_daemon['SOCKET_READ_LENGTH']) {
json1(200, 0, '数据长度超过' . $config_daemon['SOCKET_READ_LENGTH'] . ' 请向上调整参数:SOCKET_READ_LENGTH');
}
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("error:" . socket_strerror(socket_last_error()));
$server = socket_connect($socket, $config_daemon['IPC_ADDRESS'], (int)$config_daemon['IPC_PORT']);
socket_write($socket, $shell);
$reply = socket_read($socket, (int)$config_daemon['SOCKET_READ_LENGTH']);
socket_close($socket);
return unserialize($reply);
}
/**
* 守护进程状态探测
* 0 超时
* 1 打开
* 2 关闭
*/
function FunDetectState()
{
$config_daemon = Config::get('daemon');
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
@socket_connect($sock, $config_daemon['IPC_ADDRESS'], (int)$config_daemon['IPC_PORT']);
socket_set_nonblock($sock);
socket_set_block($sock);
$v = array($sock);
$state = @socket_select($r = $v, $w = $v, $f = $v, 5);
socket_close($sock);
return $state;
}

0
02.php/webman/app/function/json.function.php → 02.php/app/function/json.php

42
02.php/app/function/message.php

@ -0,0 +1,42 @@ @@ -0,0 +1,42 @@
<?php
/*
* @Author: witersen
* @Date: 2022-05-06 19:38:16
* @LastEditors: witersen
* @LastEditTime: 2022-05-07 13:37:21
* @Description: QQ:1801168257
*/
function message($code = 200, $status = 1, $message = '成功', $data = [])
{
return [
'code' => $code,
'status' => $status,
'message' => $message,
'data' => $data
];
}
function json1($code = 200, $status = 1, $message = '成功', $data = [])
{
header('Content-Type:application/json; charset=utf-8');
// http_response_code($code);
exit(json_encode([
'code' => $code,
'status' => $status,
'message' => $message,
'data' => $data
]));
}
function json2($message = ['code' => 200, 'status' => 1, 'message' => '成功', 'data' => []])
{
header('Content-Type:application/json; charset=utf-8');
// http_response_code($code);
exit(json_encode([
'code' => $message['code'],
'status' => $message['status'],
'message' => $message['message'],
'data' => $message['data']
]));
}

0
02.php/webman/app/function/string.function.php → 02.php/app/function/string.php

0
02.php/webman/app/function/update.function.php → 02.php/app/function/update.php

46
02.php/webman/app/controller/Unimportant.php → 02.php/app/service/Common.php

@ -3,24 +3,36 @@ @@ -3,24 +3,36 @@
* @Author: witersen
* @Date: 2022-04-24 23:37:05
* @LastEditors: witersen
* @LastEditTime: 2022-05-04 19:25:42
* @LastEditTime: 2022-05-07 12:11:45
* @Description: QQ:1801168257
*/
namespace app\controller;
namespace app\service;
use ServiceVerifycode;
use support\Request;
use Verifycode;
/**
* 登录注销等公共类
*/
class Unimportant extends Core
class Common extends Base
{
/**
* 其它服务层对象
*
* @var object
*/
private $Svnuser;
private $Logs;
function __construct()
{
parent::__construct();
$this->Svnuser = new Svnuser();
$this->Logs = new Logs();
}
/**
* 登录
*/
public function Login(Request $request)
public function Login()
{
$codeResult = $this->database->get('verification_code', [
'end_time'
@ -59,7 +71,7 @@ class Unimportant extends Core @@ -59,7 +71,7 @@ class Unimportant extends Core
}
} else if ($this->payload['user_role'] == 2) {
//进行用户数据同步
$syncResult = parent::SyncUserToDb();
$syncResult = $this->Svnuser->SyncUserToDb();
if ($syncResult['status'] != 1) {
return message($syncResult['code'], $syncResult['status'], $syncResult['message'], $syncResult['data']);
}
@ -81,11 +93,11 @@ class Unimportant extends Core @@ -81,11 +93,11 @@ class Unimportant extends Core
}
}
parent::InsertLog(
$this->Logs->InsertLog(
'用户登录',
'登陆成功 '
. '账号:' . $this->payload['user_name'] . ' '
. 'IP地址:' . $request->getRealIp(true),
. 'IP地址:' . $_SERVER["REMOTE_ADDR"],
$this->payload['user_name']
);
@ -104,7 +116,7 @@ class Unimportant extends Core @@ -104,7 +116,7 @@ class Unimportant extends Core
* 每次注销触发主动扫描黑名单 将名单中过期的token删除
* 目的:实现用户注销后尚未过期的token无法继续使用
*/
public function Logout(Request $request)
public function Logout()
{
//清理过期token
$this->CleanBlack();
@ -112,9 +124,9 @@ class Unimportant extends Core @@ -112,9 +124,9 @@ class Unimportant extends Core
//加入本token
$this->AddBlack();
parent::InsertLog(
$this->Logs->InsertLog(
'用户注销',
'账号:' . $this->userName . 'IP地址:' . $request->getRealIp(true),
'账号:' . $this->userName . 'IP地址:' . $_SERVER["REMOTE_ADDR"],
$this->userName
);
@ -135,7 +147,7 @@ class Unimportant extends Core @@ -135,7 +147,7 @@ class Unimportant extends Core
/**
* 获取验证码
*/
public function GetVeryfyCode(Request $request)
public function GetVeryfyCode()
{
//清除过期验证码
$this->Clean();
@ -164,7 +176,7 @@ class Unimportant extends Core @@ -164,7 +176,7 @@ class Unimportant extends Core
'insert_time' => date('Y-m-d H:i:s')
]);
$varification = new ServiceVerifycode(134, 32, $code);
$varification = new Verifycode(134, 32, $code);
$imageString = $varification->CreateVerifacationImage();

30
02.php/webman/app/controller/Logs.php → 02.php/app/service/Logs.php

@ -3,20 +3,23 @@ @@ -3,20 +3,23 @@
* @Author: witersen
* @Date: 2022-04-24 23:37:05
* @LastEditors: witersen
* @LastEditTime: 2022-05-04 14:35:35
* @LastEditTime: 2022-05-06 21:37:57
* @Description: QQ:1801168257
*/
namespace app\controller;
namespace app\service;
use support\Request;
class Logs extends Core
class Logs extends Base
{
function __construct()
{
parent::__construct();
}
/**
* 获取日志列表
*/
public function GetLogList(Request $request)
public function GetLogList()
{
$pageSize = $this->payload['pageSize'];
$currentPage = $this->payload['currentPage'];
@ -65,7 +68,7 @@ class Logs extends Core @@ -65,7 +68,7 @@ class Logs extends Core
/**
* 清空日志
*/
public function ClearLogs(Request $request)
public function ClearLogs()
{
$this->database->delete('logs', [
'log_id[>]' => 0
@ -73,4 +76,17 @@ class Logs extends Core @@ -73,4 +76,17 @@ class Logs extends Core
return message();
}
/**
* 写入日志
*/
public function InsertLog($log_type_name = '', $log_content = '', $log_add_user_name = '')
{
$this->database->insert('logs', [
'log_type_name' => $log_type_name,
'log_content' => $log_content,
'log_add_user_name' => $log_add_user_name,
'log_add_time' => date('Y-m-d H:i:s')
]);
}
}

24
02.php/webman/app/controller/Mail.php → 02.php/app/service/Mail.php

@ -3,20 +3,28 @@ @@ -3,20 +3,28 @@
* @Author: witersen
* @Date: 2022-04-24 23:37:05
* @LastEditors: witersen
* @LastEditTime: 2022-05-04 18:54:21
* @LastEditTime: 2022-05-06 22:53:10
* @Description: QQ:1801168257
*/
namespace app\controller;
use support\Request;
namespace app\service;
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
class Mail extends Core
class Mail extends Base
{
private $mail;
function __construct()
{
parent::__construct();
$this->mail = new PHPMailer(true);
$this->mail->setLanguage('zh_cn', BASE_PATH . '/extension/PHPMailer-6.6.0/language/'); //加载错误消息翻译包
}
/**
* 发送邮件的模板函数
*
@ -128,7 +136,7 @@ class Mail extends Core @@ -128,7 +136,7 @@ class Mail extends Core
/**
* 获取邮件配置信息
*/
public function GetEmail(Request $request)
public function GetEmail()
{
$mail_smtp = $this->database->get('options', [
'option_value'
@ -188,7 +196,7 @@ class Mail extends Core @@ -188,7 +196,7 @@ class Mail extends Core
/**
* 修改邮件配置信息
*/
public function EditEmail(Request $request)
public function EditEmail()
{
$this->database->update('options', [
'option_value' => serialize([
@ -211,7 +219,7 @@ class Mail extends Core @@ -211,7 +219,7 @@ class Mail extends Core
/**
* 发送测试邮件
*/
public function SendTest(Request $request)
public function SendTest()
{
$host = $this->payload['host'];
$auth = $this->payload['auth'];

21
02.php/webman/app/controller/Personal.php → 02.php/app/service/Personal.php

@ -3,20 +3,23 @@ @@ -3,20 +3,23 @@
* @Author: witersen
* @Date: 2022-04-24 23:37:05
* @LastEditors: witersen
* @LastEditTime: 2022-05-04 19:47:46
* @LastEditTime: 2022-05-06 21:38:02
* @Description: QQ:1801168257
*/
namespace app\controller;
namespace app\service;
use support\Request;
class Personal extends Core
class Personal extends Base
{
function __construct()
{
parent::__construct();
}
/**
* 管理人员修改自己的账号
*/
public function EditAdminUserName(Request $request)
public function EditAdminUserName()
{
if ($this->payload['userName'] != $this->payload['confirm']) {
return message(200, 0, '输入不一致');
@ -47,7 +50,7 @@ class Personal extends Core @@ -47,7 +50,7 @@ class Personal extends Core
/**
* 管理人员修改自己的密码
*/
public function EditAdminUserPass(Request $request)
public function EditAdminUserPass()
{
if ($this->payload['password'] != $this->payload['confirm']) {
return message(200, 0, '输入不一致');
@ -69,7 +72,7 @@ class Personal extends Core @@ -69,7 +72,7 @@ class Personal extends Core
/**
* SVN用户修改自己的密码
*/
public function EditSvnUserPass(Request $request)
public function EditSvnUserPass()
{
if ($this->payload['newPassword'] != $this->payload['confirm']) {
return message(200, 0, '输入不一致');
@ -101,7 +104,7 @@ class Personal extends Core @@ -101,7 +104,7 @@ class Personal extends Core
return message(200, 0, '用户不存在');
}
passthru('echo \'' . $result . '\' > ' . $this->config_svnadmin_svn['svn_passwd_file']);
FunShellExec('echo \'' . $result . '\' > ' . $this->config_svn['svn_passwd_file']);
$this->database->update('svn_users', [
'svn_user_pass' => $this->payload['newPassword']

19
02.php/app/service/Safe.php

@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
<?php
/*
* @Author: witersen
* @Date: 2022-04-24 23:37:05
* @LastEditors: witersen
* @LastEditTime: 2022-05-06 21:38:05
* @Description: QQ:1801168257
*/
namespace app\service;
class Safe extends Base
{
function __construct()
{
parent::__construct();
}
}

48
02.php/webman/app/controller/Statistics.php → 02.php/app/service/Statistics.php

@ -3,19 +3,19 @@ @@ -3,19 +3,19 @@
* @Author: witersen
* @Date: 2022-04-24 23:37:05
* @LastEditors: witersen
* @LastEditTime: 2022-05-04 17:33:22
* @LastEditTime: 2022-05-07 01:45:39
* @Description: QQ:1801168257
*/
namespace app\controller;
namespace app\service;
use support\Request;
/**
* 信息统计类
*/
class Statistics extends Core
class Statistics extends Base
{
function __construct()
{
parent::__construct();
}
/**
* 获取状态
*
@ -23,12 +23,12 @@ class Statistics extends Core @@ -23,12 +23,12 @@ class Statistics extends Core
* CPU使用率
* 内存使用率
*/
public function GetSystemStatus(Request $request)
public function GetSystemStatus()
{
/**
* ----------负载计算开始----------
*/
$laodavg = shellPassthru("cat /proc/loadavg | awk '{print $1,$2,$3}'");
$laodavg = FunShellExec("cat /proc/loadavg | awk '{print $1,$2,$3}'");
$laodavg = $laodavg['result'];
$laodavgArray = explode(' ', $laodavg);
@ -42,7 +42,7 @@ class Statistics extends Core @@ -42,7 +42,7 @@ class Statistics extends Core
$cpuLoad1Min = (float)trim($laodavgArray[0]);
//获取cpu总核数
$cpuCount = shellPassthru('grep -c "model name" /proc/cpuinfo');
$cpuCount = FunShellExec('grep -c "model name" /proc/cpuinfo');
$cpuCount = $cpuCount['result'];
$cpuCount = (int)trim($cpuCount);
@ -81,14 +81,14 @@ class Statistics extends Core @@ -81,14 +81,14 @@ class Statistics extends Core
* si software 软件中断
* st steal 实时
*/
$topResult = shellPassthru('top -b -n 1 | grep Cpu');
$topResult = FunShellExec('top -b -n 1 | grep Cpu');
$topResult = $topResult['result'];
preg_match('/ni,(.*?)id/', $topResult, $matches);
$id = 100 - (float)trim($matches[1]);
//cpu型号
$cpuModelArray = [];
$cpuModelName = shellPassthru("cat /proc/cpuinfo | grep 'model name' | uniq");
$cpuModelName = FunShellExec("cat /proc/cpuinfo | grep 'model name' | uniq");
$cpuModelName = $cpuModelName['result'];
$explodeArray = explode("\n", trim($cpuModelName));
foreach ($explodeArray as $value) {
@ -99,12 +99,12 @@ class Statistics extends Core @@ -99,12 +99,12 @@ class Statistics extends Core
}
//物理cpu个数
$cpuPhysical = shellPassthru("cat /proc/cpuinfo | grep 'physical id' | sort -u | wc -l");
$cpuPhysical = FunShellExec("cat /proc/cpuinfo | grep 'physical id' | sort -u | wc -l");
$cpuPhysical = $cpuPhysical['result'];
$cpuPhysical = (int)trim($cpuPhysical);
//每个物理cpu的物理核心数
$cpuPhysicalCore = shellPassthru("cat /proc/cpuinfo | grep 'cpu cores' | wc -l");
$cpuPhysicalCore = FunShellExec("cat /proc/cpuinfo | grep 'cpu cores' | wc -l");
$cpuPhysicalCore = $cpuPhysicalCore['result'];
$cpuPhysicalCore = (int)trim($cpuPhysicalCore);
@ -112,7 +112,7 @@ class Statistics extends Core @@ -112,7 +112,7 @@ class Statistics extends Core
$cpuCore = $cpuPhysical * $cpuPhysicalCore;
//逻辑核心总数(线程总数)
$cpuProcessor = shellPassthru("cat /proc/cpuinfo | grep 'processor' | wc -l");
$cpuProcessor = FunShellExec("cat /proc/cpuinfo | grep 'processor' | wc -l");
$cpuProcessor = $cpuProcessor['result'];
$cpuProcessor = (int)trim($cpuProcessor);
@ -138,12 +138,12 @@ class Statistics extends Core @@ -138,12 +138,12 @@ class Statistics extends Core
* MemAvailable 可用内存(MemFree + 可回收的内存),系统中有些内存虽然已被使用但是可以回收,比如cache、buffer、slab都有一部分可以回收
*/
//物理内存总量
$memTotal = shellPassthru("cat /proc/meminfo | grep 'MemTotal' | awk '{print $2}'");
$memTotal = FunShellExec("cat /proc/meminfo | grep 'MemTotal' | awk '{print $2}'");
$memTotal = $memTotal['result'];
$memTotal = (int)trim($memTotal);
//操作系统可用内存总量(没有使用空闲内存)
$memFree = shellPassthru("cat /proc/meminfo | grep 'MemAvailable' | awk '{print $2}'");
$memFree = FunShellExec("cat /proc/meminfo | grep 'MemAvailable' | awk '{print $2}'");
$memFree = $memFree['result'];
$memFree = (int)trim($memFree);
@ -172,9 +172,9 @@ class Statistics extends Core @@ -172,9 +172,9 @@ class Statistics extends Core
*
* 获取硬盘数量和每个硬盘的详细信息
*/
public function GetDisk(Request $request)
public function GetDisk()
{
$rs = shellPassthru('df -lh | grep -E "^(/)"');
$rs = FunShellExec('df -lh | grep -E "^(/)"');
$rs = $rs['result'];
//将多个连续的空格换为一个
@ -215,17 +215,17 @@ class Statistics extends Core @@ -215,17 +215,17 @@ class Statistics extends Core
* 计划任务数量
* 运行日志数量
*/
public function GetSystemAnalysis(Request $request)
public function GetSystemAnalysis()
{
//操作系统类型和版本
$os = shellPassthru("cat /etc/redhat-release");
$os = FunShellExec("cat /etc/redhat-release");
$os = $os['result'];
//仓库占用体积
$repSize = FunFormatSize(FunGetDirSizeDu($this->config_svnadmin_svn['rep_base_path']));
$repSize = FunFormatSize(FunGetDirSizeDu($this->config_svn['rep_base_path']));
//备份占用体积
$backupSize = FunFormatSize(FunGetDirSizeDu($this->config_svnadmin_svn['backup_base_path']));
$backupSize = FunFormatSize(FunGetDirSizeDu($this->config_svn['backup_base_path']));
//SVN仓库数量
$repCount = count($this->SVNAdminRep->GetSimpleRepList());

162
02.php/webman/app/controller/Svn.php → 02.php/app/service/Svn.php

@ -3,22 +3,25 @@ @@ -3,22 +3,25 @@
* @Author: witersen
* @Date: 2022-04-24 23:37:05
* @LastEditors: witersen
* @LastEditTime: 2022-05-04 17:17:23
* @LastEditTime: 2022-05-06 21:38:12
* @Description: QQ:1801168257
*/
namespace app\controller;
namespace app\service;
use support\Request;
class Svn extends Base
{
function __construct()
{
parent::__construct();
}
class Svn extends Core
{
/**
* 获取Subversion运行状态 用于页头提醒
*/
public function GetStatus(Request $request)
public function GetStatus()
{
$result = shellPassthru("ps auxf | grep -v 'grep' | grep svnserve");
$result = FunShellExec("ps auxf | grep -v 'grep' | grep svnserve");
$result = $result['result'];
if ($result == '') {
@ -34,9 +37,9 @@ class Svn extends Core @@ -34,9 +37,9 @@ class Svn extends Core
* 先从Subversion配置文件获取绑定端口和主机
* 然后与listen.json配置文件中的端口和主机进行对比和同步
*/
public function GetCheckout(Request $request)
public function GetCheckout()
{
$result = parent::GetSvnserveListen();
$result = $this->GetSvnserveListen();
$checkoutHost = $result[$result['enable']];
if ($result['bindPort'] != 3690) {
$checkoutHost .= ':' . $result['bindPort'];
@ -50,13 +53,13 @@ class Svn extends Core @@ -50,13 +53,13 @@ class Svn extends Core
/**
* 获取Subversion的详细信息
*/
public function GetDetail(Request $request)
public function GetDetail()
{
//获取绑定主机、端口等信息
$bindInfo = parent::GetSvnserveListen();
$bindInfo = $this->GetSvnserveListen();
//检测运行信息
$runInfo = shellPassthru('ps auxf|grep -v "grep"|grep svnserve');
$runInfo = FunShellExec('ps auxf|grep -v "grep"|grep svnserve');
$runInfo = $runInfo['result'];
//检测安装信息
@ -79,9 +82,9 @@ class Svn extends Core @@ -79,9 +82,9 @@ class Svn extends Core
//检测subversion版本
$version = '-';
if ($installed != 0) {
$versionInfo = shellPassthru('svnserve --version');
$versionInfo = FunShellExec('svnserve --version');
$versionInfo = $versionInfo['result'];
preg_match_all($this->config_svnadmin_reg['REG_SUBVERSION_VERSION'], $versionInfo, $versionInfoPreg);
preg_match_all($this->config_reg['REG_SUBVERSION_VERSION'], $versionInfo, $versionInfoPreg);
if (array_key_exists(0, $versionInfoPreg[0])) {
$version = trim($versionInfoPreg[1][0]);
} else {
@ -96,67 +99,138 @@ class Svn extends Core @@ -96,67 +99,138 @@ class Svn extends Core
'bindHost' => $bindInfo['bindHost'],
'manageHost' => $bindInfo['manageHost'],
'enable' => $bindInfo['enable'],
'svnserveLog' => $this->config_svnadmin_svn['svnserve_log_file']
'svnserveLog' => $this->config_svn['svnserve_log_file']
]);
}
/**
* 获取svnserve端口和主机情况
*
* 先从svnserve配置文件获取绑定端口和主机
* 然后向数据库同步
*
* 绑定端口
* 绑定地址
* 管理地址
* 检出地址的启用地址
*/
public function GetSvnserveListen()
{
$bindPort = '';
$bindHost = '';
$svnserveContent = FunShellExec(sprintf("cat '%s'", $this->config_svn['svnserve_env_file']));
$svnserveContent = $svnserveContent['result'];
//匹配端口
if (preg_match('/--listen-port[\s]+([0-9]+)/', $svnserveContent, $portMatchs) != 0) {
$bindPort = trim($portMatchs[1]);
}
//匹配地址
if (preg_match('/--listen-host[\s]+([\S]+)\b/', $svnserveContent, $hostMatchs) != 0) {
$bindHost = trim($hostMatchs[1]);
}
$svnserve_listen = $this->database->get('options', [
'option_value'
], [
'option_name' => 'svnserve_listen'
]);
$insert = [
"bindPort" => $bindPort == '' ? 3690 : $bindPort,
"bindHost" => $bindHost == '' ? '0.0.0.0' : $bindHost,
"manageHost" => "127.0.0.1",
"enable" => "manageHost"
];
if ($svnserve_listen == null) {
//插入
$this->database->insert('options', [
'option_name' => 'svnserve_listen',
'option_value' => serialize($insert),
'option_description' => ''
]);
} else if ($svnserve_listen['option_value'] == '') {
//更新
$this->database->update('options', [
'option_value' => serialize($insert),
], [
'option_name' => 'svnserve_listen',
]);
} else {
//更新
$svnserve_listen = unserialize($svnserve_listen['option_value']);
$insert['manageHost'] = $svnserve_listen['manageHost'] == '' ? '127.0.0.1' : $svnserve_listen['manageHost'];
$insert['enable'] = $svnserve_listen['enable'] == '' ? 'manageHost' : $svnserve_listen['enable'];
$this->database->update('options', [
'option_value' => serialize($insert),
], [
'option_name' => 'svnserve_listen',
]);
}
return $insert;
}
/**
* 安装SVN
*/
public function Install(Request $request)
public function Install()
{
}
/**
* 卸载SVN
*/
public function UnInstall(Request $request)
public function UnInstall()
{
}
/**
* 启动SVN
*/
public function Start(Request $request)
public function Start()
{
passthru("systemctl start svnserve");
FunShellExec("systemctl start svnserve");
return message();
}
/**
* 停止SVN
*/
public function Stop(Request $request)
public function Stop()
{
passthru("systemctl stop svnserve");
FunShellExec("systemctl stop svnserve");
return message();
}
/**
* 修改svnserve的绑定端口
*/
public function EditPort(Request $request)
public function EditPort()
{
//port不能为空
//获取现在的端口与要修改的端口对比检查是否相同
$result = parent::GetSvnserveListen();
$result = $this->GetSvnserveListen();
if ($this->payload['bindPort'] == $result['bindPort']) {
return message(200, 0, '无需更换,端口相同');
}
//停止svnserve
passthru('systemctl stop svnserve');
FunShellExec('systemctl stop svnserve');
//重新构建配置文件内容
$config = sprintf("OPTIONS=\"-r '%s' --config-file '%s' --log-file '%s' --listen-port %s --listen-host %s\"", $this->config_svnadmin_svn['rep_base_path'], $this->config_svnadmin_svn['svn_conf_file'], $this->config_svnadmin_svn['svnserve_log_file'], $this->payload['bindPort'], $result['bindHost']);
$config = sprintf("OPTIONS=\"-r '%s' --config-file '%s' --log-file '%s' --listen-port %s --listen-host %s\"", $this->config_svn['rep_base_path'], $this->config_svn['svn_conf_file'], $this->config_svn['svnserve_log_file'], $this->payload['bindPort'], $result['bindHost']);
//写入配置文件
passthru('echo \'' . $config . '\' > ' . $this->config_svnadmin_svn['svnserve_env_file']);
FunShellExec('echo \'' . $config . '\' > ' . $this->config_svn['svnserve_env_file']);
//启动svnserve
$result = shellPassthru('systemctl start svnserve');
$result = FunShellExec('systemctl start svnserve');
if ($result['resultCode'] != 0) {
return message(200, 0, '启动异常' . $result['error']);
@ -168,29 +242,29 @@ class Svn extends Core @@ -168,29 +242,29 @@ class Svn extends Core
/**
* 修改svnserve的绑定主机
*/
public function EditHost(Request $request)
public function EditHost()
{
//host不能为空
//不能带前缀如http或者https
//获取现在的绑定主机与要修改的主机对比检查是否相同
$result = parent::GetSvnserveListen();
$result = $this->GetSvnserveListen();
if ($this->payload['bindHost'] == $result['bindHost']) {
return message(200, 0, '无需更换,地址相同');
}
//停止svnserve
passthru('systemctl stop svnserve');
FunShellExec('systemctl stop svnserve');
//重新构建配置文件内容
$config = sprintf("OPTIONS=\"-r '%s' --config-file '%s' --log-file '%s' --listen-port %s --listen-host %s\"", $this->config_svnadmin_svn['rep_base_path'], $this->config_svnadmin_svn['svn_conf_file'], $this->config_svnadmin_svn['svnserve_log_file'], $result['bindPort'], $this->payload['bindHost']);
$config = sprintf("OPTIONS=\"-r '%s' --config-file '%s' --log-file '%s' --listen-port %s --listen-host %s\"", $this->config_svn['rep_base_path'], $this->config_svn['svn_conf_file'], $this->config_svn['svnserve_log_file'], $result['bindPort'], $this->payload['bindHost']);
//写入配置文件
passthru('echo \'' . $config . '\' > ' . $this->config_svnadmin_svn['svnserve_env_file']);
FunShellExec('echo \'' . $config . '\' > ' . $this->config_svn['svnserve_env_file']);
//启动svnserve
$result = shellPassthru('systemctl start svnserve');
$result = FunShellExec('systemctl start svnserve');
if ($result['resultCode'] != 0) {
return message(200, 0, '启动异常' . $result['error']);
@ -202,12 +276,12 @@ class Svn extends Core @@ -202,12 +276,12 @@ class Svn extends Core
/**
* 修改管理系统主机名
*/
public function EditManageHost(Request $request)
public function EditManageHost()
{
//不能为空
//不能带前缀如http或者https
$result = parent::GetSvnserveListen();
$result = $this->GetSvnserveListen();
if ($this->payload['manageHost'] == $result['manageHost']) {
return message(200, 0, '无需更换,地址相同');
@ -227,9 +301,9 @@ class Svn extends Core @@ -227,9 +301,9 @@ class Svn extends Core
/**
* 修改检出地址
*/
public function EditEnable(Request $request)
public function EditEnable()
{
$result = parent::GetSvnserveListen();
$result = $this->GetSvnserveListen();
//enable的值可为 manageHost、bindHost
@ -247,32 +321,32 @@ class Svn extends Core @@ -247,32 +321,32 @@ class Svn extends Core
/**
* 获取配置文件列表
*/
public function GetConfig(Request $request)
public function GetConfig()
{
return message(200, 1, '成功', [
[
'key' => '仓库父目录',
'value' => $this->config_svnadmin_svn['rep_base_path']
'value' => $this->config_svn['rep_base_path']
],
[
'key' => '仓库配置文件',
'value' => $this->config_svnadmin_svn['svn_conf_file']
'value' => $this->config_svn['svn_conf_file']
],
[
'key' => '仓库权限文件',
'value' => $this->config_svnadmin_svn['svn_authz_file']
'value' => $this->config_svn['svn_authz_file']
],
[
'key' => '用户账号文件',
'value' => $this->config_svnadmin_svn['svn_passwd_file']
'value' => $this->config_svn['svn_passwd_file']
],
[
'key' => '备份目录',
'value' => $this->config_svnadmin_svn['backup_base_path']
'value' => $this->config_svn['backup_base_path']
],
[
'key' => 'svnserve环境变量文件',
'value' => $this->config_svnadmin_svn['svnserve_env_file']
'value' => $this->config_svn['svnserve_env_file']
],
]);
}

73
02.php/webman/app/controller/Svngroup.php → 02.php/app/service/Svngroup.php

@ -3,16 +3,19 @@ @@ -3,16 +3,19 @@
* @Author: witersen
* @Date: 2022-04-24 23:37:05
* @LastEditors: witersen
* @LastEditTime: 2022-05-05 14:38:32
* @LastEditTime: 2022-05-07 14:19:26
* @Description: QQ:1801168257
*/
namespace app\controller;
namespace app\service;
use support\Request;
class Svngroup extends Core
class Svngroup extends Base
{
function __construct()
{
parent::__construct();
}
/**
* 将SVN分组数据同步到数据库
*
@ -38,8 +41,6 @@ class Svngroup extends Core @@ -38,8 +41,6 @@ class Svngroup extends Core
$combinArray = array_combine(FunArrayColumn($svnAndGroupList, 'groupName'), FunArrayColumn($svnAndGroupList, 'include'));
// return message(200,0,'调试',$combinArray);
foreach ($dbGroupPassList as $key => $value) {
if (!in_array($value['svn_group_name'], $svnGroupList)) {
$this->database->delete('svn_groups', [
@ -173,7 +174,7 @@ class Svngroup extends Core @@ -173,7 +174,7 @@ class Svngroup extends Core
}
//写入配置文件
passthru('echo \'' . $result . '\' > ' . $this->config_svnadmin_svn['svn_authz_file']);
FunShellExec('echo \'' . $result . '\' > ' . $this->config_svn['svn_authz_file']);
//写入数据库
$this->database->insert('svn_groups', [
@ -201,7 +202,7 @@ class Svngroup extends Core @@ -201,7 +202,7 @@ class Svngroup extends Core
return message(200, 0, '分组不存在');
}
passthru('echo \'' . $result . '\' > ' . $this->config_svnadmin_svn['svn_authz_file']);
FunShellExec('echo \'' . $result . '\' > ' . $this->config_svn['svn_authz_file']);
//从数据库删除
$this->database->delete('svn_groups', [
@ -239,7 +240,7 @@ class Svngroup extends Core @@ -239,7 +240,7 @@ class Svngroup extends Core
return message(200, 0, '文件格式错误(不存在[groups]标识)');
}
passthru('echo \'' . $result . '\' > ' . $this->config_svnadmin_svn['svn_authz_file']);
FunShellExec('echo \'' . $result . '\' > ' . $this->config_svn['svn_authz_file']);
return message();
}
@ -324,7 +325,7 @@ class Svngroup extends Core @@ -324,7 +325,7 @@ class Svngroup extends Core
return message(200, 0, '要添加的用户已存在该分组');
}
passthru('echo \'' . $result . '\' > ' . $this->config_svnadmin_svn['svn_authz_file']);
FunShellExec('echo \'' . $result . '\' > ' . $this->config_svn['svn_authz_file']);
return message();
}
@ -345,7 +346,7 @@ class Svngroup extends Core @@ -345,7 +346,7 @@ class Svngroup extends Core
return message(200, 0, '要删除的用户不在该分组');
}
passthru('echo \'' . $result . '\' > ' . $this->config_svnadmin_svn['svn_authz_file']);
FunShellExec('echo \'' . $result . '\' > ' . $this->config_svn['svn_authz_file']);
return message();
}
@ -377,7 +378,7 @@ class Svngroup extends Core @@ -377,7 +378,7 @@ class Svngroup extends Core
return message(200, 0, '存在分组循环嵌套的情况');
}
passthru('echo \'' . $result . '\' > ' . $this->config_svnadmin_svn['svn_authz_file']);
FunShellExec('echo \'' . $result . '\' > ' . $this->config_svn['svn_authz_file']);
return message();
}
@ -398,11 +399,55 @@ class Svngroup extends Core @@ -398,11 +399,55 @@ class Svngroup extends Core
return message(200, 0, '要删除的分组不在该分组');
}
passthru('echo \'' . $result . '\' > ' . $this->config_svnadmin_svn['svn_authz_file']);
FunShellExec('echo \'' . $result . '\' > ' . $this->config_svn['svn_authz_file']);
return message();
}
/**
* 获取用户所在的所有分组
*
* 包括直接包含关系 如
* group1=user1
*
* 和间接包含关系 如
* group1=user1
* group2=@group1
* group3=@group2
* group4=@group3
*/
public function GetSvnUserAllGroupList($userName)
{
$authzContent = $this->authzContent;
//所有的分组列表
$allGroupList = $this->SVNAdminGroup->GetSvnGroupList($authzContent);
//用户所在的分组列表
$userGroupList = $this->SVNAdminUser->GetSvnUserGroupList($authzContent, $userName);
//剩余的分组列表
$leftGroupList = array_diff($allGroupList, $userGroupList);
//循环匹配 直到匹配到与该用户相关的有权限的用户组为止
loop:
$userGroupListBack = $userGroupList;
foreach ($userGroupList as $group1) {
$newList = $this->SVNAdminGroup->GetSvnGroupGroupList($authzContent, $group1);
foreach ($leftGroupList as $key2 => $group2) {
if (in_array($group2, $newList)) {
array_push($userGroupList, $group2);
unset($leftGroupList[$key2]);
}
}
}
if ($userGroupList != $userGroupListBack) {
goto loop;
}
return $userGroupList;
}
/**
* 获取分组所在的所有分组
*

179
02.php/webman/app/controller/Svnrep.php → 02.php/app/service/Svnrep.php

@ -3,17 +3,31 @@ @@ -3,17 +3,31 @@
* @Author: witersen
* @Date: 2022-04-24 23:37:05
* @LastEditors: witersen
* @LastEditTime: 2022-05-05 15:49:48
* @LastEditTime: 2022-05-07 14:21:35
* @Description: QQ:1801168257
*/
namespace app\controller;
namespace app\service;
use ServiceTransfer;
use support\Request;
use Transfer;
class Svnrep extends Core
class Svnrep extends Base
{
/**
* 服务层对象
*
* @var object
*/
private $Svngroup;
function __construct()
{
parent::__construct();
$this->Svngroup = new Svngroup();
$this->Svn = new Svn();
}
/**
* 新建仓库
*/
@ -43,11 +57,11 @@ class Svnrep extends Core @@ -43,11 +57,11 @@ class Svnrep extends Core
//创建空仓库
//解决创建中文仓库乱码问题
passthru('export LC_CTYPE=en_US.UTF-8 && svnadmin create ' . $this->config_svnadmin_svn['rep_base_path'] . $this->payload['rep_name']);
FunShellExec('export LC_CTYPE=en_US.UTF-8 && svnadmin create ' . $this->config_svn['rep_base_path'] . $this->payload['rep_name']);
if ($this->payload['rep_type'] == '2') {
//以指定的目录结构初始化仓库
$this->SVNAdminRep->InitRepStruct($this->config_svnadmin_svn['templete_init_struct'], $this->config_svnadmin_svn['rep_base_path'] . $this->payload['rep_name']);
$this->SVNAdminRep->InitRepStruct($this->config_svn['templete_init_struct'], $this->config_svn['rep_base_path'] . $this->payload['rep_name']);
}
//检查是否创建成功
@ -59,7 +73,7 @@ class Svnrep extends Core @@ -59,7 +73,7 @@ class Svnrep extends Core
//向authz写入仓库信息
$status = $this->SVNAdminRep->SetRepAuthz($this->authzContent, $this->payload['rep_name'], '/');
if ($status != '1') {
passthru('echo \'' . $status . '\' > ' . $this->config_svnadmin_svn['svn_authz_file']);
FunShellExec('echo \'' . $status . '\' > ' . $this->config_svn['svn_authz_file']);
}
//写入数据库
@ -96,7 +110,7 @@ class Svnrep extends Core @@ -96,7 +110,7 @@ class Svnrep extends Core
} else {
//更新
$this->database->update('svn_reps', [
'rep_size' => FunGetDirSizeDu($this->config_svnadmin_svn['rep_base_path'] . $value['rep_name']),
'rep_size' => FunGetDirSizeDu($this->config_svn['rep_base_path'] . $value['rep_name']),
'rep_rev' => $this->SVNAdminRep->GetRepRev($value['rep_name'])
], [
'rep_name' => $value['rep_name']
@ -108,7 +122,7 @@ class Svnrep extends Core @@ -108,7 +122,7 @@ class Svnrep extends Core
if (!in_array($value, FunArrayColumn($dbRepList, 'rep_name'))) {
$this->database->insert('svn_reps', [
'rep_name' => $value,
'rep_size' => FunGetDirSizeDu($this->config_svnadmin_svn['rep_base_path'] . $value),
'rep_size' => FunGetDirSizeDu($this->config_svn['rep_base_path'] . $value),
'rep_note' => '',
'rep_rev' => $this->SVNAdminRep->GetRepRev($value),
'rep_uuid' => ''
@ -150,7 +164,7 @@ class Svnrep extends Core @@ -150,7 +164,7 @@ class Svnrep extends Core
}
if ($authzContet != $this->authzContent) {
passthru('echo \'' . $authzContet . '\' > ' . $this->config_svnadmin_svn['svn_authz_file']);
FunShellExec('echo \'' . $authzContet . '\' > ' . $this->config_svn['svn_authz_file']);
}
}
@ -172,7 +186,7 @@ class Svnrep extends Core @@ -172,7 +186,7 @@ class Svnrep extends Core
$userRepList = array_merge($userRepList, $this->SVNAdminUser->GetUserPriRepListWithPriAndPath($this->authzContent, $this->userName));
//获取用户所在的所有分组
$userGroupList = parent::GetSvnUserAllGroupList($this->userName);
$userGroupList = $this->Svngroup->GetSvnUserAllGroupList($this->userName);
//获取分组有权限的仓库路径列表
foreach ($userGroupList as $value) {
@ -195,8 +209,8 @@ class Svnrep extends Core @@ -195,8 +209,8 @@ class Svnrep extends Core
$authzContent = $this->authzContent;
foreach ($userRepList as $key => $value) {
$cmd = sprintf("svnlook tree '%s' --full-paths --non-recursive '%s'", $this->config_svnadmin_svn['rep_base_path'] . $value['repName'], $value['priPath']);
$result = shellPassthru($cmd);
$cmd = sprintf("svnlook tree '%s' --full-paths --non-recursive '%s'", $this->config_svn['rep_base_path'] . $value['repName'], $value['priPath']);
$result = FunShellExec($cmd);
if (strstr($result['error'], 'svnlook: E160013:')) {
//路径在仓库不存在
@ -210,7 +224,7 @@ class Svnrep extends Core @@ -210,7 +224,7 @@ class Svnrep extends Core
//写入配置文件
if ($authzContent != $this->authzContent) {
passthru('echo \'' . $authzContent . '\' > ' . $this->config_svnadmin_svn['svn_authz_file']);
FunShellExec('echo \'' . $authzContent . '\' > ' . $this->config_svn['svn_authz_file']);
}
}
@ -229,7 +243,7 @@ class Svnrep extends Core @@ -229,7 +243,7 @@ class Svnrep extends Core
$userRepList = array_merge($userRepList, $this->SVNAdminUser->GetUserPriRepListWithPriAndPath($this->authzContent, $this->userName));
//获取用户所在的所有分组
$userGroupList = parent::GetSvnUserAllGroupList($this->userName);
$userGroupList = $this->Svngroup->GetSvnUserAllGroupList($this->userName);
//获取分组有权限的仓库路径列表
foreach ($userGroupList as $value) {
@ -275,7 +289,7 @@ class Svnrep extends Core @@ -275,7 +289,7 @@ class Svnrep extends Core
/**
* 获取仓库列表
*/
public function GetRepList(Request $request)
public function GetRepList()
{
/**
* 物理仓库 => authz文件
@ -449,7 +463,7 @@ class Svnrep extends Core @@ -449,7 +463,7 @@ class Svnrep extends Core
*
* 目的为使用当前SVN用户的身份来进行被授权过的路径的内容浏览
*/
$bindInfo = parent::GetSvnserveListen();
$bindInfo = $this->Svn->GetSvnserveListen();
$checkoutHost = 'svn://' . $bindInfo['bindHost'];
if ($bindInfo['bindPort'] != '3690') {
$checkoutHost = 'svn://' . $bindInfo['bindHost'] . ':' . $bindInfo['bindPort'];
@ -644,8 +658,8 @@ class Svnrep extends Core @@ -644,8 +658,8 @@ class Svnrep extends Core
$path = $this->payload['path'];
//获取全路径的一层目录树
$cmdSvnlookTree = sprintf("svnlook tree '%s' --full-paths --non-recursive '%s'", $this->config_svnadmin_svn['rep_base_path'] . $this->payload['rep_name'], $path);
$result = shellPassthru($cmdSvnlookTree);
$cmdSvnlookTree = sprintf("svnlook tree '%s' --full-paths --non-recursive '%s'", $this->config_svn['rep_base_path'] . $this->payload['rep_name'], $path);
$result = FunShellExec($cmdSvnlookTree);
$result = $result['result'];
$resultArray = explode("\n", trim($result));
unset($resultArray[0]);
@ -741,8 +755,8 @@ class Svnrep extends Core @@ -741,8 +755,8 @@ class Svnrep extends Core
$path = $this->payload['path'];
//获取全路径的一层目录树
$cmdSvnlookTree = sprintf("svnlook tree '%s' --full-paths --non-recursive '%s'", $this->config_svnadmin_svn['rep_base_path'] . $this->payload['rep_name'], $path);
$result = shellPassthru($cmdSvnlookTree);
$cmdSvnlookTree = sprintf("svnlook tree '%s' --full-paths --non-recursive '%s'", $this->config_svn['rep_base_path'] . $this->payload['rep_name'], $path);
$result = FunShellExec($cmdSvnlookTree);
$result = $result['result'];
$resultArray = explode("\n", trim($result));
unset($resultArray[0]);
@ -889,7 +903,7 @@ class Svnrep extends Core @@ -889,7 +903,7 @@ class Svnrep extends Core
}
//写入
passthru('echo \'' . $result . '\' > ' . $this->config_svnadmin_svn['svn_authz_file']);
FunShellExec('echo \'' . $result . '\' > ' . $this->config_svn['svn_authz_file']);
//返回
return message();
@ -912,7 +926,7 @@ class Svnrep extends Core @@ -912,7 +926,7 @@ class Svnrep extends Core
return message(200, 0, '已被删除');
} else {
//写入
passthru('echo \'' . $result . '\' > ' . $this->config_svnadmin_svn['svn_authz_file']);
FunShellExec('echo \'' . $result . '\' > ' . $this->config_svn['svn_authz_file']);
//返回
return message();
@ -941,7 +955,7 @@ class Svnrep extends Core @@ -941,7 +955,7 @@ class Svnrep extends Core
}
//写入
passthru('echo \'' . $result . '\' > ' . $this->config_svnadmin_svn['svn_authz_file']);
FunShellExec('echo \'' . $result . '\' > ' . $this->config_svn['svn_authz_file']);
//返回
return message();
@ -994,7 +1008,7 @@ class Svnrep extends Core @@ -994,7 +1008,7 @@ class Svnrep extends Core
}
//写入
passthru('echo \'' . $result . '\' > ' . $this->config_svnadmin_svn['svn_authz_file']);
FunShellExec('echo \'' . $result . '\' > ' . $this->config_svn['svn_authz_file']);
//返回
return message();
@ -1017,7 +1031,7 @@ class Svnrep extends Core @@ -1017,7 +1031,7 @@ class Svnrep extends Core
return message(200, 0, '已被删除');
} else {
//写入
passthru('echo \'' . $result . '\' > ' . $this->config_svnadmin_svn['svn_authz_file']);
FunShellExec('echo \'' . $result . '\' > ' . $this->config_svn['svn_authz_file']);
//返回
return message();
@ -1048,7 +1062,7 @@ class Svnrep extends Core @@ -1048,7 +1062,7 @@ class Svnrep extends Core
}
//写入
passthru('echo \'' . $result . '\' > ' . $this->config_svnadmin_svn['svn_authz_file']);
FunShellExec('echo \'' . $result . '\' > ' . $this->config_svn['svn_authz_file']);
//返回
return message();
@ -1078,7 +1092,7 @@ class Svnrep extends Core @@ -1078,7 +1092,7 @@ class Svnrep extends Core
}
//从仓库目录修改仓库名称
passthru('mv ' . $this->config_svnadmin_svn['rep_base_path'] . $this->payload['old_rep_name'] . ' ' . $this->config_svnadmin_svn['rep_base_path'] . $this->payload['new_rep_name']);
FunShellExec('mv ' . $this->config_svn['rep_base_path'] . $this->payload['old_rep_name'] . ' ' . $this->config_svn['rep_base_path'] . $this->payload['new_rep_name']);
//检查修改过的仓库名称是否存在
$checkResult = $this->SVNAdminRep->CheckRepCreate($this->payload['new_rep_name'], '修改仓库名称失败');
@ -1107,7 +1121,7 @@ class Svnrep extends Core @@ -1107,7 +1121,7 @@ class Svnrep extends Core
//从配置文件删除指定仓库的所有路径
$result = $this->SVNAdminRep->DelRepAuthz($this->authzContent, $this->payload['rep_name']);
if ($result != '1') {
passthru('echo \'' . $result . '\' > ' . $this->config_svnadmin_svn['svn_authz_file']);
FunShellExec('echo \'' . $result . '\' > ' . $this->config_svn['svn_authz_file']);
}
//从数据库中删除
@ -1116,7 +1130,7 @@ class Svnrep extends Core @@ -1116,7 +1130,7 @@ class Svnrep extends Core
]);
//从仓库目录删除仓库文件夹
passthru('cd ' . $this->config_svnadmin_svn['rep_base_path'] . ' && rm -rf ./' . $this->payload['rep_name']);
FunShellExec('cd ' . $this->config_svn['rep_base_path'] . ' && rm -rf ./' . $this->payload['rep_name']);
$checkResult = $this->SVNAdminRep->CheckRepDelete($this->payload['rep_name']);
if ($checkResult['status'] != 1) {
return message($checkResult['code'], $checkResult['status'], $checkResult['message'], $checkResult['data']);
@ -1154,7 +1168,7 @@ class Svnrep extends Core @@ -1154,7 +1168,7 @@ class Svnrep extends Core
*/
public function GetBackupList()
{
$result = FunGetDirFileList($this->config_svnadmin_svn['backup_base_path']);
$result = FunGetDirFileList($this->config_svn['backup_base_path']);
return message(200, 1, '成功', $result);
}
@ -1182,21 +1196,17 @@ class Svnrep extends Core @@ -1182,21 +1196,17 @@ class Svnrep extends Core
/**
* 下载备份文件
*/
public function DownloadRepBackup(Request $request)
public function DownloadRepBackup()
{
$filePath = $this->config_svnadmin_svn['backup_base_path'] . $this->payload['fileName'];
return response()->download($filePath);
$filePath = $this->config_svn['backup_base_path'] . $this->payload['fileName'];
$this->DownloadRepBackup1($filePath, $this->payload['fileName']);
}
/**
* 下载备份文件
*/
private function DownloadRepBackup1()
private function DownloadRepBackup1($filePath, $fileName)
{
$filePath = $this->config_svnadmin_svn['backup_base_path'] . $this->payload['fileName'];
$fileName = $this->payload['fileName'];
//以只读和二进制模式打开文件
$fp = @fopen($filePath, 'rb');
if ($fp) {
@ -1252,10 +1262,8 @@ class Svnrep extends Core @@ -1252,10 +1262,8 @@ class Svnrep extends Core
/**
* 下载备份文件
*/
private function DownloadRepBackup2()
private function DownloadRepBackup2($filePath, $fileName)
{
$filePath = $this->config_svnadmin_svn['backup_base_path'] . $this->payload['fileName'];
//文件类型
$mimeType = 'application/octet-stream';
@ -1264,72 +1272,35 @@ class Svnrep extends Core @@ -1264,72 +1272,35 @@ class Svnrep extends Core
set_time_limit(0);
$transfer = new ServiceTransfer($filePath, $mimeType, $range);
$transfer = new Transfer($filePath, $mimeType, $range);
$transfer->send();
}
/**
* 下载大文件
* 上传文件到备份文件夹
*/
function send_file($connection, $file_name)
public function UploadBackup()
{
if (!is_file($file_name)) {
$connection->send("HTTP/1.0 404 File Not Found\r\nContent-Length: 18\r\n\r\n404 File Not Found", true);
return;
}
if (array_key_exists('file', $_FILES)) {
//扩展名
$fileType = substr(strrchr($_FILES['file']['name'], '.'), 1);
// ======发送http头======
$file_size = filesize($file_name);
$header = "HTTP/1.1 200 OK\r\n";
// 这里写的Content-Type是pdf,如果不是pdf文件请修改Content-Type的值
// mime对应关系参见 https://github.com/walkor/Workerman/blob/master/Protocols/Http/mime.types#L30
$header .= "Content-Type: application/pdf\r\n";
$header .= "Connection: keep-alive\r\n";
$header .= "Content-Length: $file_size\r\n\r\n";
$connection->send($header, true);
// ======分段发送文件内容=======
$connection->fileHandler = fopen($file_name, 'r');
$do_write = function () use ($connection) {
// 对应客户端的连接发送缓冲区未满时
while (empty($connection->bufferFull)) {
// 从磁盘读取文件
$buffer = fread($connection->fileHandler, 8192);
// 读不到数据说明文件读到末尾了
if ($buffer === '' || $buffer === false) {
return;
}
$connection->send($buffer, true);
}
};
// 发生连接发送缓冲区满事件时设置一个标记bufferFull
$connection->onBufferFull = function ($connection) {
// 赋值一个bufferFull临时变量给链接对象,标记发送缓冲区满,暂停do_write发送
$connection->bufferFull = true;
};
// 当发送缓冲区数据发送完毕时触发
$connection->onBufferDrain = function ($connection) use ($do_write) {
$connection->bufferFull = false;
$do_write();
};
// 执行发送
$do_write();
}
//文件名
$fileName = $_FILES['file']['name'];
//备份文件夹
$localFilePath = $this->config_svn['backup_base_path'] . $fileName;
//保存
$cmd = sprintf("mv '%s' '%s'", $_FILES['file']['tmp_name'], $localFilePath);
FunShellExec($cmd);
// move_uploaded_file($_FILES['file']['tmp_name'], $localFilePath);
/**
* 上传文件到备份文件夹
*/
public function UploadBackup(Request $request)
{
$file = $request->file('file');
if ($file && $file->isValid()) {
$localFilePath = $this->config_svnadmin_svn['backup_base_path'] . $file->getUploadName();
$file->move($localFilePath);
return message();
} else {
return message(200, 0, '参数不完整');
}
return message(200, 0, '上传失败');
}
/**
@ -1338,7 +1309,7 @@ class Svnrep extends Core @@ -1338,7 +1309,7 @@ class Svnrep extends Core
public function ImportRep()
{
//检查备份文件是否存在
if (!file_exists($this->config_svnadmin_svn['backup_base_path'] . $this->payload['fileName'])) {
if (!file_exists($this->config_svn['backup_base_path'] . $this->payload['fileName'])) {
return message(200, 0, '备份文件不存在');
}
@ -1370,7 +1341,7 @@ class Svnrep extends Core @@ -1370,7 +1341,7 @@ class Svnrep extends Core
}
clearstatcache();
if (!is_dir($this->config_svnadmin_svn['rep_base_path'] . $this->payload['rep_name'] . '/' . 'hooks')) {
if (!is_dir($this->config_svn['rep_base_path'] . $this->payload['rep_name'] . '/' . 'hooks')) {
return message(200, 0, '仓库不存在或文件损坏');
}
@ -1434,12 +1405,12 @@ class Svnrep extends Core @@ -1434,12 +1405,12 @@ class Svnrep extends Core
'post-revprop-change'
];
$file_arr = scandir($this->config_svnadmin_svn['rep_base_path'] . $this->payload['rep_name'] . '/' . 'hooks');
$file_arr = scandir($this->config_svn['rep_base_path'] . $this->payload['rep_name'] . '/' . 'hooks');
foreach ($file_arr as $file_item) {
if ($file_item != '.' && $file_item != '..') {
if (in_array($file_item, $hooks_file_list)) {
$temp = shellPassthru(sprintf("cat '%s'", $this->config_svnadmin_svn['rep_base_path'] . $this->payload['rep_name'] . '/' . 'hooks' . '/' . $file_item));
$temp = FunShellExec(sprintf("cat '%s'", $this->config_svn['rep_base_path'] . $this->payload['rep_name'] . '/' . 'hooks' . '/' . $file_item));
$hooks_type_list[$file_item]['shell'] = $temp['result'];
$hooks_type_list[$file_item]['shell'] = trim($hooks_type_list[$file_item]['shell']);
}
@ -1454,9 +1425,9 @@ class Svnrep extends Core @@ -1454,9 +1425,9 @@ class Svnrep extends Core
*/
public function EditRepHook()
{
$cmd = sprintf("echo '%s' > '%s'", trim($this->payload['content']), $this->config_svnadmin_svn['rep_base_path'] . $this->payload['rep_name'] . '/hooks/' . $this->payload['type']);
$cmd = sprintf("echo '%s' > '%s'", trim($this->payload['content']), $this->config_svn['rep_base_path'] . $this->payload['rep_name'] . '/hooks/' . $this->payload['type']);
passthru($cmd);
FunShellExec($cmd);
return message();
}

78
02.php/webman/app/controller/Svnuser.php → 02.php/app/service/Svnuser.php

@ -3,16 +3,70 @@ @@ -3,16 +3,70 @@
* @Author: witersen
* @Date: 2022-04-24 23:37:05
* @LastEditors: witersen
* @LastEditTime: 2022-05-05 14:37:56
* @LastEditTime: 2022-05-07 14:23:38
* @Description: QQ:1801168257
*/
namespace app\controller;
namespace app\service;
use support\Request;
class Svnuser extends Core
class Svnuser extends Base
{
function __construct()
{
parent::__construct();
}
/**
* 将SVN用户数据同步到数据库
*
* 目的为维护用户启用状态和自定义备注信息
*/
public function SyncUserToDb()
{
$svnUserPassList = $this->SVNAdminUser->GetSvnUserPassList($this->passwdContent);
if ($svnUserPassList == 0) {
return message(200, 0, '文件格式错误(不存在[users]标识)');
}
$dbUserPassList = $this->database->select('svn_users', [
'svn_user_id',
'svn_user_name',
'svn_user_pass',
'svn_user_status',
'svn_user_note'
]);
$combinArray1 = array_combine(FunArrayColumn($svnUserPassList, 'userName'), FunArrayColumn($svnUserPassList, 'disabled'));
$combinArray2 = array_combine(FunArrayColumn($svnUserPassList, 'userName'), FunArrayColumn($svnUserPassList, 'userPass'));
foreach ($dbUserPassList as $value) {
if (!in_array($value['svn_user_name'], FunArrayColumn($svnUserPassList, 'userName'))) {
$this->database->delete('svn_users', [
'svn_user_name' => $value['svn_user_name']
]);
} else {
//更新启用状态和密码
$this->database->update('svn_users', [
'svn_user_pass' => $combinArray2[$value['svn_user_name']],
'svn_user_status' => !$combinArray1[$value['svn_user_name']]
], [
'svn_user_name' => $value['svn_user_name']
]);
}
}
foreach ($svnUserPassList as $value) {
if (!in_array($value['userName'], FunArrayColumn($dbUserPassList, 'svn_user_name'))) {
$this->database->insert('svn_users', [
'svn_user_name' => $value['userName'],
'svn_user_pass' => $value['userPass'],
'svn_user_status' => !$value['disabled'],
'svn_user_note' => ''
]);
}
}
return message();
}
/**
* 获取全部的SVN用户
*
@ -36,7 +90,7 @@ class Svnuser extends Core @@ -36,7 +90,7 @@ class Svnuser extends Core
public function GetUserList()
{
//将SVN用户数据同步到数据库
$syncResult = parent::SyncUserToDb();
$syncResult = $this->SyncUserToDb();
if ($syncResult['status'] != 1) {
return message($syncResult['code'], $syncResult['status'], $syncResult['message'], $syncResult['data']);
}
@ -103,7 +157,7 @@ class Svnuser extends Core @@ -103,7 +157,7 @@ class Svnuser extends Core
return message(200, 0, '要启用的用户不存在');
}
passthru('echo \'' . $result . '\' > ' . $this->config_svnadmin_svn['svn_passwd_file']);
FunShellExec('echo \'' . $result . '\' > ' . $this->config_svn['svn_passwd_file']);
return message();
}
@ -121,7 +175,7 @@ class Svnuser extends Core @@ -121,7 +175,7 @@ class Svnuser extends Core
return message(200, 0, '要禁用的用户不存在');
}
passthru('echo \'' . $result . '\' > ' . $this->config_svnadmin_svn['svn_passwd_file']);
FunShellExec('echo \'' . $result . '\' > ' . $this->config_svn['svn_passwd_file']);
return message();
}
@ -166,7 +220,7 @@ class Svnuser extends Core @@ -166,7 +220,7 @@ class Svnuser extends Core
}
//写入配置文件
passthru('echo \'' . $result . '\' > ' . $this->config_svnadmin_svn['svn_passwd_file']);
FunShellExec('echo \'' . $result . '\' > ' . $this->config_svn['svn_passwd_file']);
//写入数据库
$this->database->insert('svn_users', [
@ -199,7 +253,7 @@ class Svnuser extends Core @@ -199,7 +253,7 @@ class Svnuser extends Core
}
//写入配置文件
passthru('echo \'' . $result . '\' > ' . $this->config_svnadmin_svn['svn_passwd_file']);
FunShellExec('echo \'' . $result . '\' > ' . $this->config_svn['svn_passwd_file']);
//写入数据库
$this->database->update('svn_users', [
@ -238,9 +292,9 @@ class Svnuser extends Core @@ -238,9 +292,9 @@ class Svnuser extends Core
'svn_user_name' => $this->payload['svn_user_name']
]);
passthru('echo \'' . $resultAuthz . '\' > ' . $this->config_svnadmin_svn['svn_authz_file']);
FunShellExec('echo \'' . $resultAuthz . '\' > ' . $this->config_svn['svn_authz_file']);
passthru('echo \'' . $resultPasswd . '\' > ' . $this->config_svnadmin_svn['svn_passwd_file']);
FunShellExec('echo \'' . $resultPasswd . '\' > ' . $this->config_svn['svn_passwd_file']);
return message();
}

44
02.php/webman/app/controller/Update.php → 02.php/app/service/Update.php

@ -3,23 +3,26 @@ @@ -3,23 +3,26 @@
* @Author: witersen
* @Date: 2022-04-24 23:37:05
* @LastEditors: witersen
* @LastEditTime: 2022-05-04 17:32:56
* @LastEditTime: 2022-05-07 14:25:15
* @Description: QQ:1801168257
*/
namespace app\controller;
namespace app\service;
use support\Request;
class Update extends Base
{
function __construct()
{
parent::__construct();
}
class Update extends Core
{
/**
* 获取当前版本信息
*/
public function GetVersion()
{
return message(200, 1, '成功', [
'current_verson' => $this->config_svnadmin_version['version'],
'current_verson' => $this->config_version['version'],
'github' => 'https://github.com/witersen/svnAdminV2.0',
'gitee' => 'https://gitee.com/witersen/SvnAdminV2.0',
'author' => 'https://www.witersen.com'
@ -31,38 +34,27 @@ class Update extends Core @@ -31,38 +34,27 @@ class Update extends Core
*/
public function CheckUpdate($payload)
{
foreach ($this->config_svnadmin_update['update_server'] as $key => $value) {
foreach ($this->config_update['update_server'] as $key => $value) {
$versionInfo = FunCurlRequest($value);
if ($versionInfo != null) {
$versionInfo = json_decode($versionInfo, true);
$latestVersion = $versionInfo['latestVersion'];
if ($latestVersion == $this->config_svnadmin_version['version']) {
$data['status'] = 1;
$data['message'] = '当前版本为最新版';
$data['data'] = null;
return $data;
} else if ($latestVersion > $this->config_svnadmin_version['version']) {
$data['status'] = 1;
$data['message'] = '有更新';
$data['data'] = array(
if ($latestVersion == $this->config_version['version']) {
return message(200, 1, '当前版本为最新版');
} else if ($latestVersion > $this->config_version['version']) {
return message(200, 1, '有更新', [
'latestVersion' => $versionInfo['latestVersion'],
'fixedContent' => implode('<br>', $versionInfo['fixedContent']) == '' ? '暂无内容' : implode('<br>', $versionInfo['fixedContent']),
'newContent' => implode('<br>', $versionInfo['newContent']) == '' ? '暂无内容' : implode('<br>', $versionInfo['newContent']),
'updateType' => $versionInfo['updateType'],
'updateStep' => $versionInfo['updateStep']
);
return $data;
} else if ($latestVersion < $this->config_svnadmin_version['version']) {
$data['status'] = 0;
$data['message'] = '系统版本错误';
$data['data'] = null;
return $data;
]);
} else if ($latestVersion < $this->config_version['version']) {
return message(200, 0, '系统版本错误');
}
}
}
$data['status'] = 0;
$data['message'] = '检测更新超时';
return $data;
return message(200, 0, '检测更新超时');
}
/**

280
02.php/app/service/base/Base.php

@ -0,0 +1,280 @@ @@ -0,0 +1,280 @@
<?php
/*
* @Author: witersen
* @Date: 2022-05-06 18:42:00
* @LastEditors: witersen
* @LastEditTime: 2022-05-07 12:11:18
* @Description: QQ:1801168257
*/
namespace app\service;
use Check;
use Config;
use Medoo\Medoo;
use SVNAdmin\SVN\Group;
use SVNAdmin\SVN\Rep;
use SVNAdmin\SVN\User;
class Base
{
//权限token
public $token;
//根据token得到的用户信息
public $userName;
public $userRoleId;
//svn配置文件
public $authzContent;
public $passwdContent;
//medoo
public $database;
//配置信息
private $config_routers;
private $config_database;
public $config_version;
public $config_update;
public $config_svn;
public $config_reg;
public $config_sign;
//payload
public $payload;
//SVNAdmin
public $SVNAdminGroup;
public $SVNAdminInfo;
public $SVNAdminRep;
public $SVNAdminUser;
//检查
public $checkService;
function __construct()
{
global $token;
global $type;
global $controller_perifx;
global $action;
global $payload;
//配置信息
$this->config_routers = Config::get('router'); //路由
$this->config_database = Config::get('database'); //数据库配置
$this->config_version = Config::get('version'); //版本
$this->config_update = Config::get('update'); //升级检测
$this->config_svn = Config::get('svn'); //仓库
$this->config_reg = Config::get('reg'); //正则
$this->config_sign = Config::get('sign'); //密钥
//token
$this->token = $token;
/**
* 2、检查接口类型
*/
if (!in_array($type, array_keys($this->config_routers['public']))) {
json1(401, 0, '无效的接口类型');
}
/**
* 3、检查白名单路由
*/
if (!in_array("$controller_perifx/$action", $this->config_routers['public'][$type])) {
//如果请求不在对应类型的白名单中 则需要进行token校验
$result = $this->CheckToken();
if ($result['status'] != 1) {
//token校验不通过则返回
json1($result['code'], $result['status'], $result['message']);
}
}
/**
* 4、用户信息获取
*/
$this->GetUserInfo();
/**
* 5、检查特定角色权限路由
*/
if ($this->userRoleId == 2) {
if (!in_array("$controller_perifx/$action", array_merge($this->config_routers['svn_user_routers'], $this->config_routers['public'][$type]))) {
json1(401, 0, '无权限');
}
}
/**
* 6、获取数据库连接
*/
if (array_key_exists('database_file', $this->config_database)) {
$this->config_database['database_file'] = sprintf($this->config_database['database_file'], $this->config_svn['home_path']);
}
$this->database = new Medoo($this->config_database);
/**
* 7、检查token是否已注销
*/
$black = $this->database->get('black_token', ['token_id'], ['token' => $this->token]);
if ($black != null) {
json1(401, 0, 'token已注销');
}
/**
* 8、获取authz和passwd的配置文件信息
*/
$this->GetAuthz();
$this->GetPasswd();
/**
* 9、获取payload
*/
$this->payload = $payload;
/**
* 10、svnadmin对象
*/
$this->SVNAdminGroup = new Group($this->authzContent, $this->passwdContent, $this->config_svn);
$this->SVNAdminRep = new Rep($this->authzContent, $this->passwdContent, $this->config_svn);
$this->SVNAdminUser = new User($this->authzContent, $this->passwdContent, $this->config_svn);
/**
* 11、检查对象
*/
$this->checkService = new Check($this->config_reg);
}
/**
* 根据token获取用户信息
*/
private function GetUserInfo()
{
if ($this->token == null || $this->token == '') {
$this->userRoleId = 0;
$this->userName = '';
return;
}
$array = explode('.', $this->token);
$this->userRoleId = $array[0];
$this->userName = $array[1];
}
/**
* 生成token
*
* @param int $userRoleId
* @param string $userName
* @return string
*/
public function CreateToken($userRoleId, $userName)
{
$nowTime = time();
$startTime = $nowTime;
//配置登录凭证过期时间为6个小时
$endTime = $nowTime + 60 * 60 * 6;
$part1 = $userRoleId . '.' . $userName . '.' . $startTime . '.' . $endTime;
$part2 = hash_hmac('md5', $part1, $this->config_sign['signature']);
return $part1 . '.' . $part2;
}
/**
* 校验token
*
* @return void
*/
private function CheckToken()
{
//判断是否为空
if ($this->token == null || $this->token == '') {
return [
'code' => 401,
'status' => 0,
'message' => '非法请求',
'data' => []
];
}
//校验token格式
if (substr_count($this->token, '.') != 4) {
return [
'code' => 401,
'status' => 0,
'message' => '非法请求',
'data' => []
];
}
$arr = explode('.', $this->token);
//校验token格式
foreach ($arr as $value) {
if (trim($value) == '') {
return [
'code' => 401,
'status' => 0,
'message' => '非法请求',
'data' => []
];
}
}
//检验token内容
$part1 = hash_hmac('md5', $arr[0] . '.' . $arr[1] . '.' . $arr[2] . '.' . $arr[3], $this->config_sign['signature']);
$part2 = $arr[4];
if ($part1 != $part2) {
return [
'code' => 401,
'status' => 0,
'message' => '非法请求',
'data' => []
];
}
//校验是否过期
if (time() > $arr[3]) {
return [
'code' => 401,
'status' => 0,
'message' => '登陆过期',
'data' => []
];
}
return [
'code' => 200,
'status' => 1,
'message' => '校验通过',
'data' => []
];
}
/**
* 从authz文件中读取内容
*
* 由于有些操作会更改authz文件内容且其它操作依赖这一实时结果 因此需要及时更新
*/
public function GetAuthz()
{
$this->authzContent = file_exists($this->config_svn['svn_authz_file']) ? file_get_contents($this->config_svn['svn_authz_file']) : '';
}
/**
* 从passwd文件中读取内容
*/
public function GetPasswd()
{
$this->passwdContent = file_exists($this->config_svn['svn_passwd_file']) ? file_get_contents($this->config_svn['svn_passwd_file']) : '';
}
}

18
02.php/webman/app/service/check.service.php → 02.php/app/util/Check.php

@ -3,17 +3,17 @@ @@ -3,17 +3,17 @@
* @Author: witersen
* @Date: 2022-05-03 21:06:50
* @LastEditors: witersen
* @LastEditTime: 2022-05-04 19:41:44
* @LastEditTime: 2022-05-07 00:51:06
* @Description: QQ:1801168257
*/
class CheckService
class Check
{
public $config_svnadmin_reg;
private $config_reg;
function __construct()
function __construct($config_reg)
{
$this->config_svnadmin_reg = config('svnadmin_reg');
$this->config_reg = $config_reg;
}
/**
@ -21,7 +21,7 @@ class CheckService @@ -21,7 +21,7 @@ class CheckService
*/
public function CheckRepName($repName, $message = 'SVN仓库名称只能包含字母、数字、破折号、下划线、点,不能以点开头或结尾')
{
if (preg_match($this->config_svnadmin_reg['REG_SVN_REP_NAME'], $repName) != 1) {
if (preg_match($this->config_reg['REG_SVN_REP_NAME'], $repName) != 1) {
return ['code' => 200, 'status' => 0, 'message' => $message, 'data' => []];
}
return ['code' => 200, 'status' => 1, 'message' => '', 'data' => []];
@ -32,7 +32,7 @@ class CheckService @@ -32,7 +32,7 @@ class CheckService
*/
public function CheckRepUser($repUserName)
{
if (preg_match($this->config_svnadmin_reg['REG_SVN_USER_NAME'], $repUserName) != 1) {
if (preg_match($this->config_reg['REG_SVN_USER_NAME'], $repUserName) != 1) {
return ['code' => 200, 'status' => 0, 'message' => 'SVN用户名只能包含字母、数字、破折号、下划线、点', 'data' => []];
}
return ['code' => 200, 'status' => 1, 'message' => '', 'data' => []];
@ -43,7 +43,7 @@ class CheckService @@ -43,7 +43,7 @@ class CheckService
*/
public function CheckRepGroup($repGroupName)
{
if (preg_match($this->config_svnadmin_reg['REG_SVN_GROUP_NAME'], $repGroupName) != 1) {
if (preg_match($this->config_reg['REG_SVN_GROUP_NAME'], $repGroupName) != 1) {
return ['code' => 200, 'status' => 0, 'message' => 'SVN分组名只能包含字母、数字、破折号、下划线、点', 'data' => []];
}
return ['code' => 200, 'status' => 1, 'message' => '', 'data' => []];
@ -54,7 +54,7 @@ class CheckService @@ -54,7 +54,7 @@ class CheckService
*/
public function CheckMail($mail)
{
if (preg_match_all($this->config_svnadmin_reg['REG_MAIL'], $mail) == 1) {
if (preg_match_all($this->config_reg['REG_MAIL'], $mail) == 1) {
return ['code' => 200, 'status' => 0, 'message' => '邮箱错误', 'data' => []];
}
return ['code' => 200, 'status' => 1, 'message' => '', 'data' => []];

45
02.php/app/util/Config.php

@ -0,0 +1,45 @@ @@ -0,0 +1,45 @@
<?php
/*
* @Author: witersen
* @Date: 2022-05-06 15:34:14
* @LastEditors: witersen
* @LastEditTime: 2022-05-07 11:55:55
* @Description: QQ:1801168257
*/
class Config
{
/**
* 配置文件目录
*
* @var string
*/
public static $_configPath = '';
/**
* 自动include
*
* @param string $configPath
* @return void
*/
public static function load($configPath)
{
self::$_configPath = $configPath;
}
/**
* 获取配置信息value
*
* @param string $section
* @param array $default
* @return array
*/
public static function get($section = null, $default = [])
{
if (is_file(self::$_configPath . $section . '.php')) {
$config = include self::$_configPath . $section . '.php';
return $config;
}
return $default;
}
}

6
02.php/webman/app/service/SVNAdmin/src/core/Core.class.php → 02.php/app/util/SVNAdmin/Core.php

@ -203,13 +203,13 @@ class Core @@ -203,13 +203,13 @@ class Core
*/
protected $REG_REP_INFO = "/(.*):[\S]*(.*)/m";
protected $config_svnadmin_svn;
protected $config_svn;
function __construct($authzFileContent, $passwdFileContent, $config_svnadmin_svn)
function __construct($authzFileContent, $passwdFileContent, $config_svn)
{
$this->authzFileContent = $authzFileContent;
$this->passwdFileContent = $passwdFileContent;
$this->config_svnadmin_svn = $config_svnadmin_svn;
$this->config_svn = $config_svn;
}
}

8
02.php/webman/app/service/SVNAdmin/src/class/Group.class.php → 02.php/app/util/SVNAdmin/Group.php

@ -3,18 +3,18 @@ @@ -3,18 +3,18 @@
* @Author: witersen
* @Date: 2022-04-27 15:55:52
* @LastEditors: witersen
* @LastEditTime: 2022-05-04 17:14:35
* @LastEditTime: 2022-05-06 20:13:50
* @Description: QQ:1801168257
* @copyright: https://github.com/witersen/
*/
namespace SVNAdmin\SVN;
class Group extends \SVNAdmin\SVN\Core
class Group extends Core
{
function __construct($authzFileContent, $passwdFileContent, $config_svnadmin_svn)
function __construct($authzFileContent, $passwdFileContent, $config_svn)
{
parent::__construct($authzFileContent, $passwdFileContent, $config_svnadmin_svn);
parent::__construct($authzFileContent, $passwdFileContent, $config_svn);
}
/**

80
02.php/webman/app/service/SVNAdmin/src/class/Rep.class.php → 02.php/app/util/SVNAdmin/Rep.php

@ -12,9 +12,9 @@ namespace SVNAdmin\SVN; @@ -12,9 +12,9 @@ namespace SVNAdmin\SVN;
class Rep extends Core
{
function __construct($authzFileContent, $passwdFileContent, $config_svnadmin_svn)
function __construct($authzFileContent, $passwdFileContent, $config_svn)
{
parent::__construct($authzFileContent, $passwdFileContent, $config_svnadmin_svn);
parent::__construct($authzFileContent, $passwdFileContent, $config_svn);
}
/**
@ -802,17 +802,17 @@ class Rep extends Core @@ -802,17 +802,17 @@ class Rep extends Core
function GetRepList()
{
$repArray = [];
$file_arr = scandir($this->config_svnadmin_svn['rep_base_path']);
$file_arr = scandir($this->config_svn['rep_base_path']);
foreach ($file_arr as $file_item) {
if ($file_item != '.' && $file_item != '..') {
if (is_dir($this->config_svnadmin_svn['rep_base_path'] . $file_item)) {
$file_arr2 = scandir($this->config_svnadmin_svn['rep_base_path'] . $file_item);
if (is_dir($this->config_svn['rep_base_path'] . $file_item)) {
$file_arr2 = scandir($this->config_svn['rep_base_path'] . $file_item);
foreach ($file_arr2 as $file_item2) {
if (($file_item2 == 'conf' || $file_item2 == 'db' || $file_item2 == 'hooks' || $file_item2 == 'locks')) {
array_push($repArray, array(
'repName' => $file_item,
'repUrl' => $this->config_svnadmin_svn['rep_base_path'] . $file_item,
'repSize' => round(FunGetDirSize($this->config_svnadmin_svn['rep_base_path'] . $file_item) / (1024 * 1024), 2),
'repUrl' => $this->config_svn['rep_base_path'] . $file_item,
'repSize' => round(FunGetDirSize($this->config_svn['rep_base_path'] . $file_item) / (1024 * 1024), 2),
'repCheckoutUrl' => 'svn://' . 'SERVER_DOMAIN' . '/' . $file_item,
));
break;
@ -830,11 +830,11 @@ class Rep extends Core @@ -830,11 +830,11 @@ class Rep extends Core
function GetSimpleRepList()
{
$repArray = [];
$file_arr = scandir($this->config_svnadmin_svn['rep_base_path']);
$file_arr = scandir($this->config_svn['rep_base_path']);
foreach ($file_arr as $file_item) {
if ($file_item != '.' && $file_item != '..') {
if (is_dir($this->config_svnadmin_svn['rep_base_path'] . $file_item)) {
$file_arr2 = scandir($this->config_svnadmin_svn['rep_base_path'] . $file_item);
if (is_dir($this->config_svn['rep_base_path'] . $file_item)) {
$file_arr2 = scandir($this->config_svn['rep_base_path'] . $file_item);
foreach ($file_arr2 as $file_item2) {
if (($file_item2 == 'conf' || $file_item2 == 'db' || $file_item2 == 'hooks' || $file_item2 == 'locks')) {
array_push($repArray, $file_item);
@ -853,7 +853,7 @@ class Rep extends Core @@ -853,7 +853,7 @@ class Rep extends Core
function InitRepStruct($templetePath, $repPath, $initUser = 'SVNAdmin', $initPass = 'SVNAdmin', $message = 'Initial structure')
{
$cmd = sprintf("svn import '%s' 'file:///%s' --quiet --username '%s' --password '%s' --message '%s'", $templetePath, $repPath, $initUser, $initPass, $message);
passthru($cmd);
FunShellExec($cmd);
}
/**
@ -872,11 +872,11 @@ class Rep extends Core @@ -872,11 +872,11 @@ class Rep extends Core
*/
function GetRepInfo($repName)
{
$repPath = $this->config_svnadmin_svn['rep_base_path'] . $repName;
$repPath = $this->config_svn['rep_base_path'] . $repName;
$svnadminInfoCmd = sprintf("svnadmin info '%s'", $repPath);
$cmdResult = shellPassthru($svnadminInfoCmd);
$cmdResult = FunShellExec($svnadminInfoCmd);
$cmdResult = $cmdResult['result'];
preg_match_all($this->REG_REP_INFO, $cmdResult, $svnadminInfoPreg);
@ -893,11 +893,11 @@ class Rep extends Core @@ -893,11 +893,11 @@ class Rep extends Core
*/
function GetRepTree($repName)
{
$repPath = $this->config_svnadmin_svn['rep_base_path'] . $repName;
$repPath = $this->config_svn['rep_base_path'] . $repName;
$svnadminInfoCmd = sprintf("svnlook tree '%s'", $repPath);
$cmdResult = shellPassthru($svnadminInfoCmd);
$cmdResult = FunShellExec($svnadminInfoCmd);
$cmdResult = $cmdResult['result'];
// $cmdResult = passthru($svnadminInfoCmd);
// $cmdResult = FunShellExec($svnadminInfoCmd);
$treeArray = explode("\n", $cmdResult);
//去除数组中的空字符串键值 通常为最后一项
$treeArray = array_filter($treeArray, 'FunArrayValueFilter');
@ -1166,7 +1166,7 @@ class Rep extends Core @@ -1166,7 +1166,7 @@ class Rep extends Core
function CheckRepExist($repName, $message = '仓库已经存在')
{
clearstatcache();
if (is_dir($this->config_svnadmin_svn['rep_base_path'] . $repName)) {
if (is_dir($this->config_svn['rep_base_path'] . $repName)) {
return ['code' => 200, 'status' => 0, 'message' => $message, 'data' => []];
}
return ['code' => 200, 'status' => 1, 'message' => '', 'data' => []];
@ -1178,7 +1178,7 @@ class Rep extends Core @@ -1178,7 +1178,7 @@ class Rep extends Core
function CheckRepCreate($repName, $message = '仓库创建失败')
{
clearstatcache();
if (!is_dir($this->config_svnadmin_svn['rep_base_path'] . $repName)) {
if (!is_dir($this->config_svn['rep_base_path'] . $repName)) {
return ['code' => 200, 'status' => 0, 'message' => $message, 'data' => []];
}
return ['code' => 200, 'status' => 1, 'message' => '', 'data' => []];
@ -1190,7 +1190,7 @@ class Rep extends Core @@ -1190,7 +1190,7 @@ class Rep extends Core
function CheckRepDelete($repName, $message = '仓库删除失败')
{
clearstatcache();
if (is_dir($this->config_svnadmin_svn['rep_base_path'] . $repName)) {
if (is_dir($this->config_svn['rep_base_path'] . $repName)) {
return ['code' => 200, 'status' => 0, 'message' => $message, 'data' => []];
}
return ['code' => 200, 'status' => 1, 'message' => '', 'data' => []];
@ -1201,8 +1201,8 @@ class Rep extends Core @@ -1201,8 +1201,8 @@ class Rep extends Core
*/
function GetRepRev($repName)
{
$cmd = sprintf("svnadmin info '%s' | grep 'Revisions' | awk '{print $2}'", $this->config_svnadmin_svn['rep_base_path'] . $repName);
$result = shellPassthru($cmd);
$cmd = sprintf("svnadmin info '%s' | grep 'Revisions' | awk '{print $2}'", $this->config_svn['rep_base_path'] . $repName);
$result = FunShellExec($cmd);
return (int)$result['result'];
}
@ -1211,8 +1211,8 @@ class Rep extends Core @@ -1211,8 +1211,8 @@ class Rep extends Core
*/
function GetRepDetail($repName)
{
$cmd = sprintf("svnadmin info '%s'", $this->config_svnadmin_svn['rep_base_path'] . $repName);
$result = shellPassthru($cmd);
$cmd = sprintf("svnadmin info '%s'", $this->config_svn['rep_base_path'] . $repName);
$result = FunShellExec($cmd);
return $result['result'];
}
@ -1225,8 +1225,8 @@ class Rep extends Core @@ -1225,8 +1225,8 @@ class Rep extends Core
*/
function GetRepRevFileSize($repName, $filePath)
{
$cmd = sprintf("svnlook filesize '%s' '%s'", $this->config_svnadmin_svn['rep_base_path'] . $repName, $filePath);
$result = shellPassthru($cmd);
$cmd = sprintf("svnlook filesize '%s' '%s'", $this->config_svn['rep_base_path'] . $repName, $filePath);
$result = FunShellExec($cmd);
$size = (int)$result['result'];
return FunFormatSize($size);
}
@ -1236,8 +1236,8 @@ class Rep extends Core @@ -1236,8 +1236,8 @@ class Rep extends Core
*/
function GetRepFileRev($repName, $filePath)
{
$cmd = sprintf("svnlook history --limit 1 '%s' '%s'", $this->config_svnadmin_svn['rep_base_path'] . $repName, $filePath);
$result = shellPassthru($cmd);
$cmd = sprintf("svnlook history --limit 1 '%s' '%s'", $this->config_svn['rep_base_path'] . $repName, $filePath);
$result = FunShellExec($cmd);
$result = $result['result'];
$resultArray = explode("\n", $result);
$content = preg_replace("/\s{2,}/", ' ', $resultArray[2]);
@ -1250,8 +1250,8 @@ class Rep extends Core @@ -1250,8 +1250,8 @@ class Rep extends Core
*/
function GetRepFileAuthor($repName, $rev)
{
$cmd = sprintf("svnlook author -r %s '%s'", $rev, $this->config_svnadmin_svn['rep_base_path'] . $repName);
$result = shellPassthru($cmd);
$cmd = sprintf("svnlook author -r %s '%s'", $rev, $this->config_svn['rep_base_path'] . $repName);
$result = FunShellExec($cmd);
return $result['result'];
}
@ -1260,8 +1260,8 @@ class Rep extends Core @@ -1260,8 +1260,8 @@ class Rep extends Core
*/
function GetRepFileDate($repName, $rev)
{
$cmd = sprintf("svnlook date -r %s '%s'", $rev, $this->config_svnadmin_svn['rep_base_path'] . $repName);
$result = shellPassthru($cmd);
$cmd = sprintf("svnlook date -r %s '%s'", $rev, $this->config_svn['rep_base_path'] . $repName);
$result = FunShellExec($cmd);
return $result['result'];
}
@ -1270,8 +1270,8 @@ class Rep extends Core @@ -1270,8 +1270,8 @@ class Rep extends Core
*/
function GetRepFileLog($repName, $rev)
{
$cmd = sprintf("svnlook log -r %s '%s'", $rev, $this->config_svnadmin_svn['rep_base_path'] . $repName);
$result = shellPassthru($cmd);
$cmd = sprintf("svnlook log -r %s '%s'", $rev, $this->config_svn['rep_base_path'] . $repName);
$result = FunShellExec($cmd);
return $result['result'];
}
@ -1282,8 +1282,8 @@ class Rep extends Core @@ -1282,8 +1282,8 @@ class Rep extends Core
*/
function RepDump($repName, $backupName)
{
$cmd = sprintf('svnadmin dump %s --quiet > %s', $this->config_svnadmin_svn['rep_base_path'] . $repName, $this->config_svnadmin_svn['backup_base_path'] . $backupName);
passthru($cmd);
$cmd = sprintf('svnadmin dump %s --quiet > %s', $this->config_svn['rep_base_path'] . $repName, $this->config_svn['backup_base_path'] . $backupName);
FunShellExec($cmd);
}
/**
@ -1291,8 +1291,8 @@ class Rep extends Core @@ -1291,8 +1291,8 @@ class Rep extends Core
*/
function DelRepBackup($fileName)
{
$cmd = sprintf("cd '%s' && rm -f './%s'", $this->config_svnadmin_svn['backup_base_path'], $fileName);
passthru($cmd);
$cmd = sprintf("cd '%s' && rm -f './%s'", $this->config_svn['backup_base_path'], $fileName);
FunShellExec($cmd);
}
/**
@ -1300,8 +1300,8 @@ class Rep extends Core @@ -1300,8 +1300,8 @@ class Rep extends Core
*/
function RepLoad($repName, $fileName)
{
$cmd = sprintf("svnadmin load --quiet '%s' < '%s'", $this->config_svnadmin_svn['rep_base_path'] . $repName, $this->config_svnadmin_svn['backup_base_path'] . $fileName);
$result = shellPassthru($cmd);
$cmd = sprintf("svnadmin load --quiet '%s' < '%s'", $this->config_svn['rep_base_path'] . $repName, $this->config_svn['backup_base_path'] . $fileName);
$result = FunShellExec($cmd);
return $result;
}
@ -1311,7 +1311,7 @@ class Rep extends Core @@ -1311,7 +1311,7 @@ class Rep extends Core
function CheckSvnUserPathAutzh($checkoutHost, $repName, $repPath, $svnUserName, $svnUserPass)
{
$cmd = sprintf("svn list '%s' --username '%s' --password '%s' --no-auth-cache --non-interactive --trust-server-cert", $checkoutHost . '/' . $repName . $repPath, $svnUserName, $svnUserPass);
$result = shellPassthru($cmd);
$result = FunShellExec($cmd);
if ($result['resultCode'] != 0) {
//: Authentication error from server: Password incorrect

4
02.php/webman/app/service/SVNAdmin/src/class/User.class.php → 02.php/app/util/SVNAdmin/User.php

@ -12,9 +12,9 @@ namespace SVNAdmin\SVN; @@ -12,9 +12,9 @@ namespace SVNAdmin\SVN;
class User extends Core
{
function __construct($authzFileContent, $passwdFileContent, $config_svnadmin_svn)
function __construct($authzFileContent, $passwdFileContent, $config_svn)
{
parent::__construct($authzFileContent, $passwdFileContent, $config_svnadmin_svn);
parent::__construct($authzFileContent, $passwdFileContent, $config_svn);
}
/**

60
02.php/config/daemon.php

@ -0,0 +1,60 @@ @@ -0,0 +1,60 @@
<?php
/*
* @Author: witersen
* @Date: 2022-04-24 23:37:06
* @LastEditors: witersen
* @LastEditTime: 2022-05-07 00:44:27
* @Description: QQ:1801168257
*/
/**
* 修改该配置文件后需要重启守护进程程序(svnadmind.php)
*/
return [
/**
* 程序与守护进程通信的本地地址
* 不要修改
*/
'IPC_ADDRESS' => '127.0.0.1',
/**
* 程序与守护进程通信的本地端口
* 如与现有业务端口冲突 请自行修改
*/
'IPC_PORT' => 6666,
/**
* socket_read 和 socket_write 的最大传输字节
* 如果没有需要 8192 字节已经极大的满足需求
*/
'SOCKET_READ_LENGTH' => 8192,
'SOCKET_WRITE_LENGTH' => 8192,
/**
* socket 处理并发的最大队列长度
*/
'SOCKET_LISTEN_BACKLOG' => 2000,
/**
* 当前程序支持的最低PHP版本
*/
'Required_PHP_VERSION' => '5.5',
/**
* CLI程序需要解除禁止的函数
*/
'CLI_NEEDED_FUNCTION' => [
'pcntl_fork',
'pcntl_signal',
'pcntl_wait',
'shell_exec'
],
/**
* FPM模式需要解除禁止的函数
*/
'FPM_NEEDED_FUNCTION' => [],
];

43
02.php/config/database.php

@ -0,0 +1,43 @@ @@ -0,0 +1,43 @@
<?php
/*
* @Author: witersen
* @Date: 2022-05-07 00:38:48
* @LastEditors: witersen
* @LastEditTime: 2022-05-07 14:46:35
* @Description: QQ:1801168257
*/
/**
* for MySQL
* config from Medoo 1.7.10
*/
return [
'database_type' => 'mysql',
'server' => 'test.demo.com',
'database_name' => 'svnadmin',
'username' => 'useranme',
'password' => 'password',
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_general_ci',
'port' => 3306,
'prefix' => '',
'logging' => false,
'option' => [
PDO::ATTR_CASE => PDO::CASE_NATURAL
],
'command' => [
'SET SQL_MODE=ANSI_QUOTES'
]
];
/**
* for SQLite
* config from Medoo 1.7.10
*
* %s 为占位符 无需修改
*/
// return [
// 'database_type' => 'sqlite',
// 'database_file' => '%ssvnadmin.db'
// ];

0
02.php/webman/config/svnadmin_reg.php → 02.php/config/reg.php

43
02.php/config/router.php

@ -0,0 +1,43 @@ @@ -0,0 +1,43 @@
<?php
/*
* @Author: witersen
* @Date: 2022-04-26 00:24:31
* @LastEditors: witersen
* @LastEditTime: 2022-05-07 01:31:13
* @Description: QQ:1801168257
*/
/**
* 自定义全局权限路由表
*
* 路由规则:控制器/方法
* 白名单路由:即无需鉴权的请求
*/
return [
/**
* 管理系统白名单路由
*/
"public" => [
'web' => [
'Common/Login',
'Common/GetVeryfyCode'
],
'mini' => []
],
/**
* SVN用户有权限路由
*/
'svn_user_routers' => [
'Svnrep/GetSvnUserRepList',
'Svnrep/GetUserRepCon',
'Common/Logout',
'Svn/GetCheckout',
'Svn/GetStatus',
'Personal/EditSvnUserPass',
],
];

0
02.php/webman/config/svnadmin_sign.php → 02.php/config/sign.php

5
02.php/webman/config/svnadmin_svn.php → 02.php/config/svn.php

@ -3,13 +3,12 @@ @@ -3,13 +3,12 @@
* @Author: witersen
* @Date: 2022-04-24 23:37:06
* @LastEditors: witersen
* @LastEditTime: 2022-05-03 22:19:27
* @LastEditTime: 2022-05-07 01:25:25
* @Description: QQ:1801168257
*/
/**
* 如果要修改
* 需要在安装软件之前修改该值 安装过程中会自动读取并操作
* 如果要修改安装路径 ,请在安装本程序前修改$home_path的值,安装程序后不支持修改
*/
$home_path = '/home/svnadmin/';

6
02.php/webman/config/svnadmin_update.php → 02.php/config/update.php

@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
* @Author: witersen
* @Date: 2022-04-24 23:37:06
* @LastEditors: witersen
* @LastEditTime: 2022-05-03 16:22:03
* @LastEditTime: 2022-05-07 01:13:58
* @Description: QQ:1801168257
*/
@ -16,7 +16,3 @@ return [ @@ -16,7 +16,3 @@ return [
'https://raw.githubusercontent.com/witersen/update/master/SvnAdmin/update.json'
]
];
// define('UPDATE_SERVER', serialize([
// 'https://gitee.com/witersen/update/raw/master/SvnAdmin/update.json',
// 'https://raw.githubusercontent.com/witersen/update/master/SvnAdmin/update.json'
// ]));

0
02.php/webman/config/svnadmin_version.php → 02.php/config/version.php

1852
02.php/extension/Medoo-1.7.10/src/Medoo.php

File diff suppressed because it is too large Load Diff

26
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-af.php

@ -0,0 +1,26 @@ @@ -0,0 +1,26 @@
<?php
/**
* Afrikaans PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
*/
$PHPMAILER_LANG['authenticate'] = 'SMTP-fout: kon nie geverifieer word nie.';
$PHPMAILER_LANG['connect_host'] = 'SMTP-fout: kon nie aan SMTP-verbind nie.';
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP-fout: data nie aanvaar nie.';
$PHPMAILER_LANG['empty_message'] = 'Boodskapliggaam leeg.';
$PHPMAILER_LANG['encoding'] = 'Onbekende kodering: ';
$PHPMAILER_LANG['execute'] = 'Kon nie uitvoer nie: ';
$PHPMAILER_LANG['file_access'] = 'Kon nie lêer oopmaak nie: ';
$PHPMAILER_LANG['file_open'] = 'Lêerfout: Kon nie lêer oopmaak nie: ';
$PHPMAILER_LANG['from_failed'] = 'Die volgende Van adres misluk: ';
$PHPMAILER_LANG['instantiate'] = 'Kon nie posfunksie instansieer nie.';
$PHPMAILER_LANG['invalid_address'] = 'Ongeldige adres: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer word nie ondersteun nie.';
$PHPMAILER_LANG['provide_address'] = 'U moet ten minste een ontvanger e-pos adres verskaf.';
$PHPMAILER_LANG['recipients_failed'] = 'SMTP-fout: Die volgende ontvangers het misluk: ';
$PHPMAILER_LANG['signing'] = 'Ondertekening Fout: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP-verbinding () misluk.';
$PHPMAILER_LANG['smtp_error'] = 'SMTP-bediener fout: ';
$PHPMAILER_LANG['variable_set'] = 'Kan nie veranderlike instel of herstel nie: ';
$PHPMAILER_LANG['extension_missing'] = 'Uitbreiding ontbreek: ';

27
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-ar.php

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
<?php
/**
* Arabic PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author bahjat al mostafa <bahjat983@hotmail.com>
*/
$PHPMAILER_LANG['authenticate'] = 'خطأ SMTP : لا يمكن تأكيد الهوية.';
$PHPMAILER_LANG['connect_host'] = 'خطأ SMTP: لا يمكن الاتصال بالخادم SMTP.';
$PHPMAILER_LANG['data_not_accepted'] = 'خطأ SMTP: لم يتم قبول المعلومات .';
$PHPMAILER_LANG['empty_message'] = 'نص الرسالة فارغ';
$PHPMAILER_LANG['encoding'] = 'ترميز غير معروف: ';
$PHPMAILER_LANG['execute'] = 'لا يمكن تنفيذ : ';
$PHPMAILER_LANG['file_access'] = 'لا يمكن الوصول للملف: ';
$PHPMAILER_LANG['file_open'] = 'خطأ في الملف: لا يمكن فتحه: ';
$PHPMAILER_LANG['from_failed'] = 'خطأ على مستوى عنوان المرسل : ';
$PHPMAILER_LANG['instantiate'] = 'لا يمكن توفير خدمة البريد.';
$PHPMAILER_LANG['invalid_address'] = 'الإرسال غير ممكن لأن عنوان البريد الإلكتروني غير صالح: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' برنامج الإرسال غير مدعوم.';
$PHPMAILER_LANG['provide_address'] = 'يجب توفير عنوان البريد الإلكتروني لمستلم واحد على الأقل.';
$PHPMAILER_LANG['recipients_failed'] = 'خطأ SMTP: الأخطاء التالية فشل في الارسال لكل من : ';
$PHPMAILER_LANG['signing'] = 'خطأ في التوقيع: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() غير ممكن.';
$PHPMAILER_LANG['smtp_error'] = 'خطأ على مستوى الخادم SMTP: ';
$PHPMAILER_LANG['variable_set'] = 'لا يمكن تعيين أو إعادة تعيين متغير: ';
$PHPMAILER_LANG['extension_missing'] = 'الإضافة غير موجودة: ';

27
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-az.php

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
<?php
/**
* Azerbaijani PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author @mirjalal
*/
$PHPMAILER_LANG['authenticate'] = 'SMTP xətası: Giriş uğursuz oldu.';
$PHPMAILER_LANG['connect_host'] = 'SMTP xətası: SMTP serverinə qoşulma uğursuz oldu.';
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP xətası: Verilənlər qəbul edilməyib.';
$PHPMAILER_LANG['empty_message'] = 'Boş mesaj göndərilə bilməz.';
$PHPMAILER_LANG['encoding'] = 'Qeyri-müəyyən kodlaşdırma: ';
$PHPMAILER_LANG['execute'] = 'Əmr yerinə yetirilmədi: ';
$PHPMAILER_LANG['file_access'] = 'Fayla giriş yoxdur: ';
$PHPMAILER_LANG['file_open'] = 'Fayl xətası: Fayl açıla bilmədi: ';
$PHPMAILER_LANG['from_failed'] = 'Göstərilən poçtlara göndərmə uğursuz oldu: ';
$PHPMAILER_LANG['instantiate'] = 'Mail funksiyası işə salına bilmədi.';
$PHPMAILER_LANG['invalid_address'] = 'Düzgün olmayan e-mail adresi: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' - e-mail kitabxanası dəstəklənmir.';
$PHPMAILER_LANG['provide_address'] = 'Ən azı bir e-mail adresi daxil edilməlidir.';
$PHPMAILER_LANG['recipients_failed'] = 'SMTP xətası: Aşağıdakı ünvanlar üzrə alıcılara göndərmə uğursuzdur: ';
$PHPMAILER_LANG['signing'] = 'İmzalama xətası: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP serverinə qoşulma uğursuz oldu.';
$PHPMAILER_LANG['smtp_error'] = 'SMTP serveri xətası: ';
$PHPMAILER_LANG['variable_set'] = 'Dəyişənin quraşdırılması uğursuz oldu: ';
//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: ';

27
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-ba.php

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
<?php
/**
* Bosnian PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author Ermin Islamagić <ermin@islamagic.com>
*/
$PHPMAILER_LANG['authenticate'] = 'SMTP Greška: Neuspjela prijava.';
$PHPMAILER_LANG['connect_host'] = 'SMTP Greška: Nije moguće spojiti se sa SMTP serverom.';
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Greška: Podatci nisu prihvaćeni.';
$PHPMAILER_LANG['empty_message'] = 'Sadržaj poruke je prazan.';
$PHPMAILER_LANG['encoding'] = 'Nepoznata kriptografija: ';
$PHPMAILER_LANG['execute'] = 'Nije moguće izvršiti naredbu: ';
$PHPMAILER_LANG['file_access'] = 'Nije moguće pristupiti datoteci: ';
$PHPMAILER_LANG['file_open'] = 'Nije moguće otvoriti datoteku: ';
$PHPMAILER_LANG['from_failed'] = 'SMTP Greška: Slanje sa navedenih e-mail adresa nije uspjelo: ';
$PHPMAILER_LANG['recipients_failed'] = 'SMTP Greška: Slanje na navedene e-mail adrese nije uspjelo: ';
$PHPMAILER_LANG['instantiate'] = 'Ne mogu pokrenuti mail funkcionalnost.';
$PHPMAILER_LANG['invalid_address'] = 'E-mail nije poslan. Neispravna e-mail adresa: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer nije podržan.';
$PHPMAILER_LANG['provide_address'] = 'Definišite barem jednu adresu primaoca.';
$PHPMAILER_LANG['signing'] = 'Greška prilikom prijave: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'Spajanje na SMTP server nije uspjelo.';
$PHPMAILER_LANG['smtp_error'] = 'SMTP greška: ';
$PHPMAILER_LANG['variable_set'] = 'Nije moguće postaviti varijablu ili je vratiti nazad: ';
$PHPMAILER_LANG['extension_missing'] = 'Nedostaje ekstenzija: ';

27
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-be.php

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
<?php
/**
* Belarusian PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author Aleksander Maksymiuk <info@setpro.pl>
*/
$PHPMAILER_LANG['authenticate'] = 'Памылка SMTP: памылка ідэнтыфікацыі.';
$PHPMAILER_LANG['connect_host'] = 'Памылка SMTP: нельга ўстанавіць сувязь з SMTP-серверам.';
$PHPMAILER_LANG['data_not_accepted'] = 'Памылка SMTP: звесткі непрынятыя.';
$PHPMAILER_LANG['empty_message'] = 'Пустое паведамленне.';
$PHPMAILER_LANG['encoding'] = 'Невядомая кадыроўка тэксту: ';
$PHPMAILER_LANG['execute'] = 'Нельга выканаць каманду: ';
$PHPMAILER_LANG['file_access'] = 'Няма доступу да файла: ';
$PHPMAILER_LANG['file_open'] = 'Нельга адкрыць файл: ';
$PHPMAILER_LANG['from_failed'] = 'Няправільны адрас адпраўніка: ';
$PHPMAILER_LANG['instantiate'] = 'Нельга прымяніць функцыю mail().';
$PHPMAILER_LANG['invalid_address'] = 'Нельга даслаць паведамленне, няправільны email атрымальніка: ';
$PHPMAILER_LANG['provide_address'] = 'Запоўніце, калі ласка, правільны email атрымальніка.';
$PHPMAILER_LANG['mailer_not_supported'] = ' - паштовы сервер не падтрымліваецца.';
$PHPMAILER_LANG['recipients_failed'] = 'Памылка SMTP: няправільныя атрымальнікі: ';
$PHPMAILER_LANG['signing'] = 'Памылка подпісу паведамлення: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'Памылка сувязі з SMTP-серверам.';
$PHPMAILER_LANG['smtp_error'] = 'Памылка SMTP: ';
$PHPMAILER_LANG['variable_set'] = 'Нельга ўстанавіць або перамяніць значэнне пераменнай: ';
//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: ';

27
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-bg.php

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
<?php
/**
* Bulgarian PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author Mikhail Kyosev <mialygk@gmail.com>
*/
$PHPMAILER_LANG['authenticate'] = 'SMTP грешка: Не може да се удостовери пред сървъра.';
$PHPMAILER_LANG['connect_host'] = 'SMTP грешка: Не може да се свърже с SMTP хоста.';
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP грешка: данните не са приети.';
$PHPMAILER_LANG['empty_message'] = 'Съдържанието на съобщението е празно';
$PHPMAILER_LANG['encoding'] = 'Неизвестно кодиране: ';
$PHPMAILER_LANG['execute'] = 'Не може да се изпълни: ';
$PHPMAILER_LANG['file_access'] = 'Няма достъп до файл: ';
$PHPMAILER_LANG['file_open'] = 'Файлова грешка: Не може да се отвори файл: ';
$PHPMAILER_LANG['from_failed'] = 'Следните адреси за подател са невалидни: ';
$PHPMAILER_LANG['instantiate'] = 'Не може да се инстанцира функцията mail.';
$PHPMAILER_LANG['invalid_address'] = 'Невалиден адрес: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' - пощенски сървър не се поддържа.';
$PHPMAILER_LANG['provide_address'] = 'Трябва да предоставите поне един email адрес за получател.';
$PHPMAILER_LANG['recipients_failed'] = 'SMTP грешка: Следните адреси за Получател са невалидни: ';
$PHPMAILER_LANG['signing'] = 'Грешка при подписване: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP провален connect().';
$PHPMAILER_LANG['smtp_error'] = 'SMTP сървърна грешка: ';
$PHPMAILER_LANG['variable_set'] = 'Не може да се установи или възстанови променлива: ';
$PHPMAILER_LANG['extension_missing'] = 'Липсва разширение: ';

27
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-ca.php

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
<?php
/**
* Catalan PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author Ivan <web AT microstudi DOT com>
*/
$PHPMAILER_LANG['authenticate'] = 'Error SMTP: No s’ha pogut autenticar.';
$PHPMAILER_LANG['connect_host'] = 'Error SMTP: No es pot connectar al servidor SMTP.';
$PHPMAILER_LANG['data_not_accepted'] = 'Error SMTP: Dades no acceptades.';
$PHPMAILER_LANG['empty_message'] = 'El cos del missatge està buit.';
$PHPMAILER_LANG['encoding'] = 'Codificació desconeguda: ';
$PHPMAILER_LANG['execute'] = 'No es pot executar: ';
$PHPMAILER_LANG['file_access'] = 'No es pot accedir a l’arxiu: ';
$PHPMAILER_LANG['file_open'] = 'Error d’Arxiu: No es pot obrir l’arxiu: ';
$PHPMAILER_LANG['from_failed'] = 'La(s) següent(s) adreces de remitent han fallat: ';
$PHPMAILER_LANG['instantiate'] = 'No s’ha pogut crear una instància de la funció Mail.';
$PHPMAILER_LANG['invalid_address'] = 'Adreça d’email invalida: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer no està suportat';
$PHPMAILER_LANG['provide_address'] = 'S’ha de proveir almenys una adreça d’email com a destinatari.';
$PHPMAILER_LANG['recipients_failed'] = 'Error SMTP: Els següents destinataris han fallat: ';
$PHPMAILER_LANG['signing'] = 'Error al signar: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'Ha fallat el SMTP Connect().';
$PHPMAILER_LANG['smtp_error'] = 'Error del servidor SMTP: ';
$PHPMAILER_LANG['variable_set'] = 'No s’ha pogut establir o restablir la variable: ';
//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: ';

27
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-ch.php

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
<?php
/**
* Chinese PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author LiuXin <http://www.80x86.cn/blog/>
*/
$PHPMAILER_LANG['authenticate'] = 'SMTP 错误:身份验证失败。';
$PHPMAILER_LANG['connect_host'] = 'SMTP 错误: 不能连接SMTP主机。';
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 错误: 数据不可接受。';
//$PHPMAILER_LANG['empty_message'] = 'Message body empty';
$PHPMAILER_LANG['encoding'] = '未知编码:';
$PHPMAILER_LANG['execute'] = '不能执行: ';
$PHPMAILER_LANG['file_access'] = '不能访问文件:';
$PHPMAILER_LANG['file_open'] = '文件错误:不能打开文件:';
$PHPMAILER_LANG['from_failed'] = '下面的发送地址邮件发送失败了: ';
$PHPMAILER_LANG['instantiate'] = '不能实现mail方法。';
//$PHPMAILER_LANG['invalid_address'] = 'Invalid address: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' 您所选择的发送邮件的方法并不支持。';
$PHPMAILER_LANG['provide_address'] = '您必须提供至少一个 收信人的email地址。';
$PHPMAILER_LANG['recipients_failed'] = 'SMTP 错误: 下面的 收件人失败了: ';
//$PHPMAILER_LANG['signing'] = 'Signing Error: ';
//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.';
//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: ';
//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: ';
//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: ';

28
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-cs.php

@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
<?php
/**
* Czech PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
*/
$PHPMAILER_LANG['authenticate'] = 'Chyba SMTP: Autentizace selhala.';
$PHPMAILER_LANG['connect_host'] = 'Chyba SMTP: Nelze navázat spojení se SMTP serverem.';
$PHPMAILER_LANG['data_not_accepted'] = 'Chyba SMTP: Data nebyla přijata.';
$PHPMAILER_LANG['empty_message'] = 'Prázdné tělo zprávy';
$PHPMAILER_LANG['encoding'] = 'Neznámé kódování: ';
$PHPMAILER_LANG['execute'] = 'Nelze provést: ';
$PHPMAILER_LANG['file_access'] = 'Nelze získat přístup k souboru: ';
$PHPMAILER_LANG['file_open'] = 'Chyba souboru: Nelze otevřít soubor pro čtení: ';
$PHPMAILER_LANG['from_failed'] = 'Následující adresa odesílatele je nesprávná: ';
$PHPMAILER_LANG['instantiate'] = 'Nelze vytvořit instanci emailové funkce.';
$PHPMAILER_LANG['invalid_address'] = 'Neplatná adresa: ';
$PHPMAILER_LANG['invalid_hostentry'] = 'Záznam hostitele je nesprávný: ';
$PHPMAILER_LANG['invalid_host'] = 'Hostitel je nesprávný: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer není podporován.';
$PHPMAILER_LANG['provide_address'] = 'Musíte zadat alespoň jednu emailovou adresu příjemce.';
$PHPMAILER_LANG['recipients_failed'] = 'Chyba SMTP: Následující adresy příjemců nejsou správně: ';
$PHPMAILER_LANG['signing'] = 'Chyba přihlašování: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() selhal.';
$PHPMAILER_LANG['smtp_error'] = 'Chyba SMTP serveru: ';
$PHPMAILER_LANG['variable_set'] = 'Nelze nastavit nebo změnit proměnnou: ';
$PHPMAILER_LANG['extension_missing'] = 'Chybí rozšíření: ';

29
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-da.php

@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
<?php
/**
* Danish PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author John Sebastian <jms@iwb.dk>
* Rewrite and extension of the work by Mikael Stokkebro <info@stokkebro.dk>
*
*/
$PHPMAILER_LANG['authenticate'] = 'SMTP fejl: Login mislykkedes.';
$PHPMAILER_LANG['connect_host'] = 'SMTP fejl: Forbindelse til SMTP serveren kunne ikke oprettes.';
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP fejl: Data blev ikke accepteret.';
$PHPMAILER_LANG['empty_message'] = 'Meddelelsen er uden indhold';
$PHPMAILER_LANG['encoding'] = 'Ukendt encode-format: ';
$PHPMAILER_LANG['execute'] = 'Kunne ikke afvikle: ';
$PHPMAILER_LANG['file_access'] = 'Kunne ikke tilgå filen: ';
$PHPMAILER_LANG['file_open'] = 'Fil fejl: Kunne ikke åbne filen: ';
$PHPMAILER_LANG['from_failed'] = 'Følgende afsenderadresse er forkert: ';
$PHPMAILER_LANG['instantiate'] = 'Email funktionen kunne ikke initialiseres.';
$PHPMAILER_LANG['invalid_address'] = 'Udgyldig adresse: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer understøttes ikke.';
$PHPMAILER_LANG['provide_address'] = 'Indtast mindst en modtagers email adresse.';
$PHPMAILER_LANG['recipients_failed'] = 'SMTP fejl: Følgende modtagere er forkerte: ';
$PHPMAILER_LANG['signing'] = 'Signeringsfejl: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() fejlede.';
$PHPMAILER_LANG['smtp_error'] = 'SMTP server fejl: ';
$PHPMAILER_LANG['variable_set'] = 'Kunne ikke definere eller nulstille variablen: ';
$PHPMAILER_LANG['extension_missing'] = 'Udvidelse mangler: ';

28
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-de.php

@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
<?php
/**
* German PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
*/
$PHPMAILER_LANG['authenticate'] = 'SMTP-Fehler: Authentifizierung fehlgeschlagen.';
$PHPMAILER_LANG['connect_host'] = 'SMTP-Fehler: Konnte keine Verbindung zum SMTP-Host herstellen.';
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP-Fehler: Daten werden nicht akzeptiert.';
$PHPMAILER_LANG['empty_message'] = 'E-Mail-Inhalt ist leer.';
$PHPMAILER_LANG['encoding'] = 'Unbekannte Kodierung: ';
$PHPMAILER_LANG['execute'] = 'Konnte folgenden Befehl nicht ausführen: ';
$PHPMAILER_LANG['file_access'] = 'Zugriff auf folgende Datei fehlgeschlagen: ';
$PHPMAILER_LANG['file_open'] = 'Dateifehler: Konnte folgende Datei nicht öffnen: ';
$PHPMAILER_LANG['from_failed'] = 'Die folgende Absenderadresse ist nicht korrekt: ';
$PHPMAILER_LANG['instantiate'] = 'Mail-Funktion konnte nicht initialisiert werden.';
$PHPMAILER_LANG['invalid_address'] = 'Die Adresse ist ungültig: ';
$PHPMAILER_LANG['invalid_hostentry'] = 'Ungültiger Hosteintrag: ';
$PHPMAILER_LANG['invalid_host'] = 'Ungültiger Host: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer wird nicht unterstützt.';
$PHPMAILER_LANG['provide_address'] = 'Bitte geben Sie mindestens eine Empfängeradresse an.';
$PHPMAILER_LANG['recipients_failed'] = 'SMTP-Fehler: Die folgenden Empfänger sind nicht korrekt: ';
$PHPMAILER_LANG['signing'] = 'Fehler beim Signieren: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'Verbindung zum SMTP-Server fehlgeschlagen.';
$PHPMAILER_LANG['smtp_error'] = 'Fehler vom SMTP-Server: ';
$PHPMAILER_LANG['variable_set'] = 'Kann Variable nicht setzen oder zurücksetzen: ';
$PHPMAILER_LANG['extension_missing'] = 'Fehlende Erweiterung: ';

26
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-el.php

@ -0,0 +1,26 @@ @@ -0,0 +1,26 @@
<?php
/**
* Greek PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
*/
$PHPMAILER_LANG['authenticate'] = 'SMTP Σφάλμα: Αδυναμία πιστοποίησης (authentication).';
$PHPMAILER_LANG['connect_host'] = 'SMTP Σφάλμα: Αδυναμία σύνδεσης στον SMTP-Host.';
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Σφάλμα: Τα δεδομένα δεν έγιναν αποδεκτά.';
$PHPMAILER_LANG['empty_message'] = 'Το E-Mail δεν έχει περιεχόμενο .';
$PHPMAILER_LANG['encoding'] = 'Αγνωστο Encoding-Format: ';
$PHPMAILER_LANG['execute'] = 'Αδυναμία εκτέλεσης ακόλουθης εντολής: ';
$PHPMAILER_LANG['file_access'] = 'Αδυναμία προσπέλασης του αρχείου: ';
$PHPMAILER_LANG['file_open'] = 'Σφάλμα Αρχείου: Δεν είναι δυνατό το άνοιγμα του ακόλουθου αρχείου: ';
$PHPMAILER_LANG['from_failed'] = 'Η παρακάτω διεύθυνση αποστολέα δεν είναι σωστή: ';
$PHPMAILER_LANG['instantiate'] = 'Αδυναμία εκκίνησης Mail function.';
$PHPMAILER_LANG['invalid_address'] = 'Το μήνυμα δεν εστάλη, η διεύθυνση δεν είναι έγκυρη: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer δεν υποστηρίζεται.';
$PHPMAILER_LANG['provide_address'] = 'Παρακαλούμε δώστε τουλάχιστον μια e-mail διεύθυνση παραλήπτη.';
$PHPMAILER_LANG['recipients_failed'] = 'SMTP Σφάλμα: Οι παρακάτω διευθύνσεις παραλήπτη δεν είναι έγκυρες: ';
$PHPMAILER_LANG['signing'] = 'Σφάλμα υπογραφής: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'Αποτυχία σύνδεσης στον SMTP Server.';
$PHPMAILER_LANG['smtp_error'] = 'Σφάλμα από τον SMTP Server: ';
$PHPMAILER_LANG['variable_set'] = 'Αδυναμία ορισμού ή αρχικοποίησης μεταβλητής: ';
//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: ';

26
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-eo.php

@ -0,0 +1,26 @@ @@ -0,0 +1,26 @@
<?php
/**
* Esperanto PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
*/
$PHPMAILER_LANG['authenticate'] = 'Eraro de servilo SMTP : aŭtentigo malsukcesis.';
$PHPMAILER_LANG['connect_host'] = 'Eraro de servilo SMTP : konektado al servilo malsukcesis.';
$PHPMAILER_LANG['data_not_accepted'] = 'Eraro de servilo SMTP : neĝustaj datumoj.';
$PHPMAILER_LANG['empty_message'] = 'Teksto de mesaĝo mankas.';
$PHPMAILER_LANG['encoding'] = 'Nekonata kodoprezento: ';
$PHPMAILER_LANG['execute'] = 'Lanĉi rulumadon ne eblis: ';
$PHPMAILER_LANG['file_access'] = 'Aliro al dosiero ne sukcesis: ';
$PHPMAILER_LANG['file_open'] = 'Eraro de dosiero: malfermo neeblas: ';
$PHPMAILER_LANG['from_failed'] = 'Jena adreso de sendinto malsukcesis: ';
$PHPMAILER_LANG['instantiate'] = 'Genero de retmesaĝa funkcio neeblis.';
$PHPMAILER_LANG['invalid_address'] = 'Retadreso ne validas: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' mesaĝilo ne subtenata.';
$PHPMAILER_LANG['provide_address'] = 'Vi devas tajpi almenaŭ unu recevontan retadreson.';
$PHPMAILER_LANG['recipients_failed'] = 'Eraro de servilo SMTP : la jenaj poŝtrecivuloj kaŭzis eraron: ';
$PHPMAILER_LANG['signing'] = 'Eraro de subskribo: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP konektado malsukcesis.';
$PHPMAILER_LANG['smtp_error'] = 'Eraro de servilo SMTP : ';
$PHPMAILER_LANG['variable_set'] = 'Variablo ne pravalorizeblas aŭ ne repravalorizeblas: ';
$PHPMAILER_LANG['extension_missing'] = 'Mankas etendo: ';

27
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-es.php

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
<?php
/**
* Spanish PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author Matt Sturdy <matt.sturdy@gmail.com>
*/
$PHPMAILER_LANG['authenticate'] = 'Error SMTP: Imposible autentificar.';
$PHPMAILER_LANG['connect_host'] = 'Error SMTP: Imposible conectar al servidor SMTP.';
$PHPMAILER_LANG['data_not_accepted'] = 'Error SMTP: Datos no aceptados.';
$PHPMAILER_LANG['empty_message'] = 'El cuerpo del mensaje está vacío.';
$PHPMAILER_LANG['encoding'] = 'Codificación desconocida: ';
$PHPMAILER_LANG['execute'] = 'Imposible ejecutar: ';
$PHPMAILER_LANG['file_access'] = 'Imposible acceder al archivo: ';
$PHPMAILER_LANG['file_open'] = 'Error de Archivo: Imposible abrir el archivo: ';
$PHPMAILER_LANG['from_failed'] = 'La(s) siguiente(s) direcciones de remitente fallaron: ';
$PHPMAILER_LANG['instantiate'] = 'Imposible crear una instancia de la función Mail.';
$PHPMAILER_LANG['invalid_address'] = 'Imposible enviar: dirección de email inválido: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer no está soportado.';
$PHPMAILER_LANG['provide_address'] = 'Debe proporcionar al menos una dirección de email de destino.';
$PHPMAILER_LANG['recipients_failed'] = 'Error SMTP: Los siguientes destinos fallaron: ';
$PHPMAILER_LANG['signing'] = 'Error al firmar: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() falló.';
$PHPMAILER_LANG['smtp_error'] = 'Error del servidor SMTP: ';
$PHPMAILER_LANG['variable_set'] = 'No se pudo configurar la variable: ';
$PHPMAILER_LANG['extension_missing'] = 'Extensión faltante: ';

28
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-et.php

@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
<?php
/**
* Estonian PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author Indrek Päri
* @author Elan Ruusamäe <glen@delfi.ee>
*/
$PHPMAILER_LANG['authenticate'] = 'SMTP Viga: Autoriseerimise viga.';
$PHPMAILER_LANG['connect_host'] = 'SMTP Viga: Ei õnnestunud luua ühendust SMTP serveriga.';
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Viga: Vigased andmed.';
$PHPMAILER_LANG['empty_message'] = 'Tühi kirja sisu';
$PHPMAILER_LANG["encoding"] = 'Tundmatu kodeering: ';
$PHPMAILER_LANG['execute'] = 'Tegevus ebaõnnestus: ';
$PHPMAILER_LANG['file_access'] = 'Pole piisavalt õiguseid järgneva faili avamiseks: ';
$PHPMAILER_LANG['file_open'] = 'Faili Viga: Faili avamine ebaõnnestus: ';
$PHPMAILER_LANG['from_failed'] = 'Järgnev saatja e-posti aadress on vigane: ';
$PHPMAILER_LANG['instantiate'] = 'mail funktiooni käivitamine ebaõnnestus.';
$PHPMAILER_LANG['invalid_address'] = 'Saatmine peatatud, e-posti address vigane: ';
$PHPMAILER_LANG['provide_address'] = 'Te peate määrama vähemalt ühe saaja e-posti aadressi.';
$PHPMAILER_LANG['mailer_not_supported'] = ' maileri tugi puudub.';
$PHPMAILER_LANG['recipients_failed'] = 'SMTP Viga: Järgnevate saajate e-posti aadressid on vigased: ';
$PHPMAILER_LANG["signing"] = 'Viga allkirjastamisel: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() ebaõnnestus.';
$PHPMAILER_LANG['smtp_error'] = 'SMTP serveri viga: ';
$PHPMAILER_LANG['variable_set'] = 'Ei õnnestunud määrata või lähtestada muutujat: ';
$PHPMAILER_LANG['extension_missing'] = 'Nõutud laiendus on puudu: ';

28
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-fa.php

@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
<?php
/**
* Persian/Farsi PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author Ali Jazayeri <jaza.ali@gmail.com>
* @author Mohammad Hossein Mojtahedi <mhm5000@gmail.com>
*/
$PHPMAILER_LANG['authenticate'] = 'خطای SMTP: احراز هویت با شکست مواجه شد.';
$PHPMAILER_LANG['connect_host'] = 'خطای SMTP: اتصال به سرور SMTP برقرار نشد.';
$PHPMAILER_LANG['data_not_accepted'] = 'خطای SMTP: دادهها نادرست هستند.';
$PHPMAILER_LANG['empty_message'] = 'بخش متن پیام خالی است.';
$PHPMAILER_LANG['encoding'] = 'کدگذاری ناشناخته: ';
$PHPMAILER_LANG['execute'] = 'امکان اجرا وجود ندارد: ';
$PHPMAILER_LANG['file_access'] = 'امکان دسترسی به فایل وجود ندارد: ';
$PHPMAILER_LANG['file_open'] = 'خطای File: امکان بازکردن فایل وجود ندارد: ';
$PHPMAILER_LANG['from_failed'] = 'آدرس فرستنده اشتباه است: ';
$PHPMAILER_LANG['instantiate'] = 'امکان معرفی تابع ایمیل وجود ندارد.';
$PHPMAILER_LANG['invalid_address'] = 'آدرس ایمیل معتبر نیست: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer پشتیبانی نمیشود.';
$PHPMAILER_LANG['provide_address'] = 'باید حداقل یک آدرس گیرنده وارد کنید.';
$PHPMAILER_LANG['recipients_failed'] = 'خطای SMTP: ارسال به آدرس گیرنده با خطا مواجه شد: ';
$PHPMAILER_LANG['signing'] = 'خطا در امضا: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'خطا در اتصال به SMTP.';
$PHPMAILER_LANG['smtp_error'] = 'خطا در SMTP Server: ';
$PHPMAILER_LANG['variable_set'] = 'امکان ارسال یا ارسال مجدد متغیرها وجود ندارد: ';
$PHPMAILER_LANG['extension_missing'] = 'افزونه موجود نیست: ';

28
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-fi.php

@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
<?php
/**
* Finnish PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author Jyry Kuukanen
*/
$PHPMAILER_LANG['authenticate'] = 'SMTP-virhe: käyttäjätunnistus epäonnistui.';
$PHPMAILER_LANG['connect_host'] = 'SMTP-virhe: yhteys palvelimeen ei onnistu.';
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP-virhe: data on virheellinen.';
//$PHPMAILER_LANG['empty_message'] = 'Message body empty';
$PHPMAILER_LANG['encoding'] = 'Tuntematon koodaustyyppi: ';
$PHPMAILER_LANG['execute'] = 'Suoritus epäonnistui: ';
$PHPMAILER_LANG['file_access'] = 'Seuraavaan tiedostoon ei ole oikeuksia: ';
$PHPMAILER_LANG['file_open'] = 'Tiedostovirhe: Ei voida avata tiedostoa: ';
$PHPMAILER_LANG['from_failed'] = 'Seuraava lähettäjän osoite on virheellinen: ';
$PHPMAILER_LANG['instantiate'] = 'mail-funktion luonti epäonnistui.';
//$PHPMAILER_LANG['invalid_address'] = 'Invalid address: ';
$PHPMAILER_LANG['mailer_not_supported'] = 'postivälitintyyppiä ei tueta.';
$PHPMAILER_LANG['provide_address'] = 'Aseta vähintään yksi vastaanottajan sähk&ouml;postiosoite.';
$PHPMAILER_LANG['recipients_failed'] = 'SMTP-virhe: seuraava vastaanottaja osoite on virheellinen.';
$PHPMAILER_LANG['encoding'] = 'Tuntematon koodaustyyppi: ';
//$PHPMAILER_LANG['signing'] = 'Signing Error: ';
//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.';
//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: ';
//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: ';
//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: ';

27
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-fo.php

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
<?php
/**
* Faroese PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author Dávur Sørensen <http://www.profo-webdesign.dk>
*/
$PHPMAILER_LANG['authenticate'] = 'SMTP feilur: Kundi ikki góðkenna.';
$PHPMAILER_LANG['connect_host'] = 'SMTP feilur: Kundi ikki knýta samband við SMTP vert.';
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP feilur: Data ikki góðkent.';
//$PHPMAILER_LANG['empty_message'] = 'Message body empty';
$PHPMAILER_LANG['encoding'] = 'Ókend encoding: ';
$PHPMAILER_LANG['execute'] = 'Kundi ikki útføra: ';
$PHPMAILER_LANG['file_access'] = 'Kundi ikki tilganga fílu: ';
$PHPMAILER_LANG['file_open'] = 'Fílu feilur: Kundi ikki opna fílu: ';
$PHPMAILER_LANG['from_failed'] = 'fylgjandi Frá/From adressa miseydnaðist: ';
$PHPMAILER_LANG['instantiate'] = 'Kuni ikki instantiera mail funktión.';
//$PHPMAILER_LANG['invalid_address'] = 'Invalid address: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' er ikki supporterað.';
$PHPMAILER_LANG['provide_address'] = 'Tú skal uppgeva minst móttakara-emailadressu(r).';
$PHPMAILER_LANG['recipients_failed'] = 'SMTP Feilur: Fylgjandi móttakarar miseydnaðust: ';
//$PHPMAILER_LANG['signing'] = 'Signing Error: ';
//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.';
//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: ';
//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: ';
//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: ';

38
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-fr.php

@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
<?php
/**
* French PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* Some French punctuation requires a thin non-breaking space (U+202F) character before it,
* for example before a colon or exclamation mark.
* There is one of these characters between these quotes: ""
* @see http://unicode.org/udhr/n/notes_fra.html
*/
$PHPMAILER_LANG['authenticate'] = 'Erreur SMTP: échec de l’authentification.';
$PHPMAILER_LANG['buggy_php'] = 'Votre version de PHP est affectée par un bug qui peut entraîner des messages corrompus. Pour résoudre ce problème, passez à l’envoi par SMTP, désactivez l’option mail.add_x_header dans le fichier php.ini, passez à MacOS ou Linux, ou passez PHP à la version 7.0.17+ ou 7.1.3+.';
$PHPMAILER_LANG['connect_host'] = 'Erreur SMTP: impossible de se connecter au serveur SMTP.';
$PHPMAILER_LANG['data_not_accepted'] = 'Erreur SMTP: données incorrectes.';
$PHPMAILER_LANG['empty_message'] = 'Corps du message vide.';
$PHPMAILER_LANG['encoding'] = 'Encodage inconnu: ';
$PHPMAILER_LANG['execute'] = 'Impossible de lancer l’exécution: ';
$PHPMAILER_LANG['extension_missing'] = 'Extension manquante: ';
$PHPMAILER_LANG['file_access'] = 'Impossible d’accéder au fichier: ';
$PHPMAILER_LANG['file_open'] = 'Ouverture du fichier impossible: ';
$PHPMAILER_LANG['from_failed'] = 'L’adresse d’expéditeur suivante a échoué: ';
$PHPMAILER_LANG['instantiate'] = 'Impossible d’instancier la fonction mail.';
$PHPMAILER_LANG['invalid_address'] = 'Adresse courriel non valide: ';
$PHPMAILER_LANG['invalid_header'] = 'Nom ou valeur de l’en-tête non valide';
$PHPMAILER_LANG['invalid_hostentry'] = 'Entrée d’hôte non valide: ';
$PHPMAILER_LANG['invalid_host'] = 'Hôte non valide: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' client de messagerie non supporté.';
$PHPMAILER_LANG['provide_address'] = 'Vous devez fournir au moins une adresse de destinataire.';
$PHPMAILER_LANG['recipients_failed'] = 'Erreur SMTP:les destinataires suivants ont échoué: ';
$PHPMAILER_LANG['signing'] = 'Erreur de signature: ';
$PHPMAILER_LANG['smtp_code'] = 'Code SMTP: ';
$PHPMAILER_LANG['smtp_code_ex'] = 'Informations supplémentaires SMTP: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'La fonction SMTP connect() a échouée.';
$PHPMAILER_LANG['smtp_detail'] = 'Détails: ';
$PHPMAILER_LANG['smtp_error'] = 'Erreur du serveur SMTP: ';
$PHPMAILER_LANG['variable_set'] = 'Impossible d’initialiser ou de réinitialiser une variable: ';
$PHPMAILER_LANG['extension_missing'] = 'Extension manquante: ';

27
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-gl.php

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
<?php
/**
* Galician PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author by Donato Rouco <donatorouco@gmail.com>
*/
$PHPMAILER_LANG['authenticate'] = 'Erro SMTP: Non puido ser autentificado.';
$PHPMAILER_LANG['connect_host'] = 'Erro SMTP: Non puido conectar co servidor SMTP.';
$PHPMAILER_LANG['data_not_accepted'] = 'Erro SMTP: Datos non aceptados.';
$PHPMAILER_LANG['empty_message'] = 'Corpo da mensaxe vacía';
$PHPMAILER_LANG['encoding'] = 'Codificación descoñecida: ';
$PHPMAILER_LANG['execute'] = 'Non puido ser executado: ';
$PHPMAILER_LANG['file_access'] = 'Nob puido acceder ó arquivo: ';
$PHPMAILER_LANG['file_open'] = 'Erro de Arquivo: No puido abrir o arquivo: ';
$PHPMAILER_LANG['from_failed'] = 'A(s) seguinte(s) dirección(s) de remitente(s) deron erro: ';
$PHPMAILER_LANG['instantiate'] = 'Non puido crear unha instancia da función Mail.';
$PHPMAILER_LANG['invalid_address'] = 'Non puido envia-lo correo: dirección de email inválida: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer non está soportado.';
$PHPMAILER_LANG['provide_address'] = 'Debe engadir polo menos unha dirección de email coma destino.';
$PHPMAILER_LANG['recipients_failed'] = 'Erro SMTP: Os seguintes destinos fallaron: ';
$PHPMAILER_LANG['signing'] = 'Erro ó firmar: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() fallou.';
$PHPMAILER_LANG['smtp_error'] = 'Erro do servidor SMTP: ';
$PHPMAILER_LANG['variable_set'] = 'Non puidemos axustar ou reaxustar a variábel: ';
//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: ';

27
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-he.php

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
<?php
/**
* Hebrew PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author Ronny Sherer <ronny@hoojima.com>
*/
$PHPMAILER_LANG['authenticate'] = 'שגיאת SMTP: פעולת האימות נכשלה.';
$PHPMAILER_LANG['connect_host'] = 'שגיאת SMTP: לא הצלחתי להתחבר לשרת SMTP.';
$PHPMAILER_LANG['data_not_accepted'] = 'שגיאת SMTP: מידע לא התקבל.';
$PHPMAILER_LANG['empty_message'] = 'גוף ההודעה ריק';
$PHPMAILER_LANG['invalid_address'] = 'כתובת שגויה: ';
$PHPMAILER_LANG['encoding'] = 'קידוד לא מוכר: ';
$PHPMAILER_LANG['execute'] = 'לא הצלחתי להפעיל את: ';
$PHPMAILER_LANG['file_access'] = 'לא ניתן לגשת לקובץ: ';
$PHPMAILER_LANG['file_open'] = 'שגיאת קובץ: לא ניתן לגשת לקובץ: ';
$PHPMAILER_LANG['from_failed'] = 'כתובות הנמענים הבאות נכשלו: ';
$PHPMAILER_LANG['instantiate'] = 'לא הצלחתי להפעיל את פונקציית המייל.';
$PHPMAILER_LANG['mailer_not_supported'] = ' אינה נתמכת.';
$PHPMAILER_LANG['provide_address'] = 'חובה לספק לפחות כתובת אחת של מקבל המייל.';
$PHPMAILER_LANG['recipients_failed'] = 'שגיאת SMTP: הנמענים הבאים נכשלו: ';
$PHPMAILER_LANG['signing'] = 'שגיאת חתימה: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.';
$PHPMAILER_LANG['smtp_error'] = 'שגיאת שרת SMTP: ';
$PHPMAILER_LANG['variable_set'] = 'לא ניתן לקבוע או לשנות את המשתנה: ';
//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: ';

27
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-hi.php

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
<?php
/**
* Hindi PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author Yash Karanke <mr.karanke@gmail.com>
*/
$PHPMAILER_LANG['authenticate'] = 'SMTP ति: पिकतच नह सक। ';
$PHPMAILER_LANG['connect_host'] = 'SMTP ति: SMTP सरवर स कनट नह सक। ';
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP ति: डर नहि। ';
$PHPMAILER_LANG['empty_message'] = 'सश ख। ';
$PHPMAILER_LANG['encoding'] = 'अजत एनिग परकर। ';
$PHPMAILER_LANG['execute'] = 'आदश किित करनिफल। ';
$PHPMAILER_LANG['file_access'] = 'फइल उपलबध नह। ';
$PHPMAILER_LANG['file_open'] = 'फइल ति: फइल क नह सक। ';
$PHPMAILER_LANG['from_failed'] = 'पषक क पत गलत ह। ';
$PHPMAILER_LANG['instantiate'] = 'मल फशन कल नह कर सकत।';
$PHPMAILER_LANG['invalid_address'] = 'पत गलत ह। ';
$PHPMAILER_LANG['mailer_not_supported'] = 'मल सरवर कथ कम नह करत। ';
$PHPMAILER_LANG['provide_address'] = 'आपक कम स कम एक पतकर ई-मल पतरदन करन।';
$PHPMAILER_LANG['recipients_failed'] = 'SMTP ति: निन पतकर पतजनिफल। ';
$PHPMAILER_LANG['signing'] = 'सइनअप ति:। ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP क connect () फशन विफल हआ। ';
$PHPMAILER_LANG['smtp_error'] = 'SMTP सरवर ति। ';
$PHPMAILER_LANG['variable_set'] = 'चर क बनित नहि सकत। ';
$PHPMAILER_LANG['extension_missing'] = 'एकसटषन गयब ह: ';

27
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-hr.php

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
<?php
/**
* Croatian PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author Hrvoj3e <hrvoj3e@gmail.com>
*/
$PHPMAILER_LANG['authenticate'] = 'SMTP Greška: Neuspjela autentikacija.';
$PHPMAILER_LANG['connect_host'] = 'SMTP Greška: Ne mogu se spojiti na SMTP poslužitelj.';
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Greška: Podatci nisu prihvaćeni.';
$PHPMAILER_LANG['empty_message'] = 'Sadržaj poruke je prazan.';
$PHPMAILER_LANG['encoding'] = 'Nepoznati encoding: ';
$PHPMAILER_LANG['execute'] = 'Nije moguće izvršiti naredbu: ';
$PHPMAILER_LANG['file_access'] = 'Nije moguće pristupiti datoteci: ';
$PHPMAILER_LANG['file_open'] = 'Nije moguće otvoriti datoteku: ';
$PHPMAILER_LANG['from_failed'] = 'SMTP Greška: Slanje s navedenih e-mail adresa nije uspjelo: ';
$PHPMAILER_LANG['recipients_failed'] = 'SMTP Greška: Slanje na navedenih e-mail adresa nije uspjelo: ';
$PHPMAILER_LANG['instantiate'] = 'Ne mogu pokrenuti mail funkcionalnost.';
$PHPMAILER_LANG['invalid_address'] = 'E-mail nije poslan. Neispravna e-mail adresa: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer nije podržan.';
$PHPMAILER_LANG['provide_address'] = 'Definirajte barem jednu adresu primatelja.';
$PHPMAILER_LANG['signing'] = 'Greška prilikom prijave: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'Spajanje na SMTP poslužitelj nije uspjelo.';
$PHPMAILER_LANG['smtp_error'] = 'Greška SMTP poslužitelja: ';
$PHPMAILER_LANG['variable_set'] = 'Ne mogu postaviti varijablu niti ju vratiti nazad: ';
$PHPMAILER_LANG['extension_missing'] = 'Nedostaje proširenje: ';

27
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-hu.php

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
<?php
/**
* Hungarian PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author @dominicus-75
*/
$PHPMAILER_LANG['authenticate'] = 'SMTP hiba: az azonosítás sikertelen.';
$PHPMAILER_LANG['connect_host'] = 'SMTP hiba: nem lehet kapcsolódni az SMTP-szerverhez.';
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP hiba: adatok visszautasítva.';
$PHPMAILER_LANG['empty_message'] = 'Üres az üzenettörzs.';
$PHPMAILER_LANG['encoding'] = 'Ismeretlen kódolás: ';
$PHPMAILER_LANG['execute'] = 'Nem lehet végrehajtani: ';
$PHPMAILER_LANG['file_access'] = 'A következő fájl nem elérhető: ';
$PHPMAILER_LANG['file_open'] = 'Fájl hiba: a következő fájlt nem lehet megnyitni: ';
$PHPMAILER_LANG['from_failed'] = 'A feladóként megadott következő cím hibás: ';
$PHPMAILER_LANG['instantiate'] = 'A PHP mail() függvényt nem sikerült végrehajtani.';
$PHPMAILER_LANG['invalid_address'] = 'Érvénytelen cím: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' a mailer-osztály nem támogatott.';
$PHPMAILER_LANG['provide_address'] = 'Legalább egy címzettet fel kell tüntetni.';
$PHPMAILER_LANG['recipients_failed'] = 'SMTP hiba: a címzettként megadott következő címek hibásak: ';
$PHPMAILER_LANG['signing'] = 'Hibás aláírás: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'Hiba az SMTP-kapcsolatban.';
$PHPMAILER_LANG['smtp_error'] = 'SMTP-szerver hiba: ';
$PHPMAILER_LANG['variable_set'] = 'A következő változók beállítása nem sikerült: ';
$PHPMAILER_LANG['extension_missing'] = 'Bővítmény hiányzik: ';

27
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-hy.php

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
<?php
/**
* Armenian PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author Hrayr Grigoryan <hrayr@bits.am>
*/
$PHPMAILER_LANG['authenticate'] = 'SMTP -ի սխալ: չհաջողվեց ստուգել իսկությունը.';
$PHPMAILER_LANG['connect_host'] = 'SMTP -ի սխալ: չհաջողվեց կապ հաստատել SMTP սերվերի հետ.';
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP -ի սխալ: տվյալները ընդունված չեն.';
$PHPMAILER_LANG['empty_message'] = 'Հաղորդագրությունը դատարկ է';
$PHPMAILER_LANG['encoding'] = 'Կոդավորման անհայտ տեսակ: ';
$PHPMAILER_LANG['execute'] = 'Չհաջողվեց իրականացնել հրամանը: ';
$PHPMAILER_LANG['file_access'] = 'Ֆայլը հասանելի չէ: ';
$PHPMAILER_LANG['file_open'] = 'Ֆայլի սխալ: ֆայլը չհաջողվեց բացել: ';
$PHPMAILER_LANG['from_failed'] = 'Ուղարկողի հետևյալ հասցեն սխալ է: ';
$PHPMAILER_LANG['instantiate'] = 'Հնարավոր չէ կանչել mail ֆունկցիան.';
$PHPMAILER_LANG['invalid_address'] = 'Հասցեն սխալ է: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' փոստային սերվերի հետ չի աշխատում.';
$PHPMAILER_LANG['provide_address'] = 'Անհրաժեշտ է տրամադրել գոնե մեկ ստացողի e-mail հասցե.';
$PHPMAILER_LANG['recipients_failed'] = 'SMTP -ի սխալ: չի հաջողվել ուղարկել հետևյալ ստացողների հասցեներին: ';
$PHPMAILER_LANG['signing'] = 'Ստորագրման սխալ: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP -ի connect() ֆունկցիան չի հաջողվել';
$PHPMAILER_LANG['smtp_error'] = 'SMTP սերվերի սխալ: ';
$PHPMAILER_LANG['variable_set'] = 'Չի հաջողվում ստեղծել կամ վերափոխել փոփոխականը: ';
$PHPMAILER_LANG['extension_missing'] = 'Հավելվածը բացակայում է: ';

31
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-id.php

@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
<?php
/**
* Indonesian PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author Cecep Prawiro <cecep.prawiro@gmail.com>
* @author @januridp
* @author Ian Mustafa <mail@ianmustafa.com>
*/
$PHPMAILER_LANG['authenticate'] = 'Kesalahan SMTP: Tidak dapat mengotentikasi.';
$PHPMAILER_LANG['connect_host'] = 'Kesalahan SMTP: Tidak dapat terhubung ke host SMTP.';
$PHPMAILER_LANG['data_not_accepted'] = 'Kesalahan SMTP: Data tidak diterima.';
$PHPMAILER_LANG['empty_message'] = 'Isi pesan kosong';
$PHPMAILER_LANG['encoding'] = 'Pengkodean karakter tidak dikenali: ';
$PHPMAILER_LANG['execute'] = 'Tidak dapat menjalankan proses: ';
$PHPMAILER_LANG['file_access'] = 'Tidak dapat mengakses berkas: ';
$PHPMAILER_LANG['file_open'] = 'Kesalahan Berkas: Berkas tidak dapat dibuka: ';
$PHPMAILER_LANG['from_failed'] = 'Alamat pengirim berikut mengakibatkan kesalahan: ';
$PHPMAILER_LANG['instantiate'] = 'Tidak dapat menginisialisasi fungsi surel.';
$PHPMAILER_LANG['invalid_address'] = 'Gagal terkirim, alamat surel tidak sesuai: ';
$PHPMAILER_LANG['invalid_hostentry'] = 'Gagal terkirim, entri host tidak sesuai: ';
$PHPMAILER_LANG['invalid_host'] = 'Gagal terkirim, host tidak sesuai: ';
$PHPMAILER_LANG['provide_address'] = 'Harus tersedia minimal satu alamat tujuan';
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer tidak didukung';
$PHPMAILER_LANG['recipients_failed'] = 'Kesalahan SMTP: Alamat tujuan berikut menyebabkan kesalahan: ';
$PHPMAILER_LANG['signing'] = 'Kesalahan dalam penandatangan SSL: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() gagal.';
$PHPMAILER_LANG['smtp_error'] = 'Kesalahan pada pelayan SMTP: ';
$PHPMAILER_LANG['variable_set'] = 'Tidak dapat mengatur atau mengatur ulang variabel: ';
$PHPMAILER_LANG['extension_missing'] = 'Ekstensi PHP tidak tersedia: ';

28
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-it.php

@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
<?php
/**
* Italian PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author Ilias Bartolini <brain79@inwind.it>
* @author Stefano Sabatini <sabas88@gmail.com>
*/
$PHPMAILER_LANG['authenticate'] = 'SMTP Error: Impossibile autenticarsi.';
$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Impossibile connettersi all\'host SMTP.';
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Error: Dati non accettati dal server.';
$PHPMAILER_LANG['empty_message'] = 'Il corpo del messaggio è vuoto';
$PHPMAILER_LANG['encoding'] = 'Codifica dei caratteri sconosciuta: ';
$PHPMAILER_LANG['execute'] = 'Impossibile eseguire l\'operazione: ';
$PHPMAILER_LANG['file_access'] = 'Impossibile accedere al file: ';
$PHPMAILER_LANG['file_open'] = 'File Error: Impossibile aprire il file: ';
$PHPMAILER_LANG['from_failed'] = 'I seguenti indirizzi mittenti hanno generato errore: ';
$PHPMAILER_LANG['instantiate'] = 'Impossibile istanziare la funzione mail';
$PHPMAILER_LANG['invalid_address'] = 'Impossibile inviare, l\'indirizzo email non è valido: ';
$PHPMAILER_LANG['provide_address'] = 'Deve essere fornito almeno un indirizzo ricevente';
$PHPMAILER_LANG['mailer_not_supported'] = 'Mailer non supportato';
$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: I seguenti indirizzi destinatari hanno generato un errore: ';
$PHPMAILER_LANG['signing'] = 'Errore nella firma: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() fallita.';
$PHPMAILER_LANG['smtp_error'] = 'Errore del server SMTP: ';
$PHPMAILER_LANG['variable_set'] = 'Impossibile impostare o resettare la variabile: ';
$PHPMAILER_LANG['extension_missing'] = 'Estensione mancante: ';

29
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-ja.php

@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
<?php
/**
* Japanese PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author Mitsuhiro Yoshida <http://mitstek.com/>
* @author Yoshi Sakai <http://bluemooninc.jp/>
* @author Arisophy <https://github.com/arisophy/>
*/
$PHPMAILER_LANG['authenticate'] = 'SMTPエラー: 認証できませんでした。';
$PHPMAILER_LANG['connect_host'] = 'SMTPエラー: SMTPホストに接続できませんでした。';
$PHPMAILER_LANG['data_not_accepted'] = 'SMTPエラー: データが受け付けられませんでした。';
$PHPMAILER_LANG['empty_message'] = 'メール本文が空です。';
$PHPMAILER_LANG['encoding'] = '不明なエンコーディング: ';
$PHPMAILER_LANG['execute'] = '実行できませんでした: ';
$PHPMAILER_LANG['file_access'] = 'ファイルにアクセスできません: ';
$PHPMAILER_LANG['file_open'] = 'ファイルエラー: ファイルを開けません: ';
$PHPMAILER_LANG['from_failed'] = 'Fromアドレスを登録する際にエラーが発生しました: ';
$PHPMAILER_LANG['instantiate'] = 'メール関数が正常に動作しませんでした。';
$PHPMAILER_LANG['invalid_address'] = '不正なメールアドレス: ';
$PHPMAILER_LANG['provide_address'] = '少なくとも1つメールアドレスを 指定する必要があります。';
$PHPMAILER_LANG['mailer_not_supported'] = ' メーラーがサポートされていません。';
$PHPMAILER_LANG['recipients_failed'] = 'SMTPエラー: 次の受信者アドレスに 間違いがあります: ';
$PHPMAILER_LANG['signing'] = '署名エラー: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP接続に失敗しました。';
$PHPMAILER_LANG['smtp_error'] = 'SMTPサーバーエラー: ';
$PHPMAILER_LANG['variable_set'] = '変数が存在しません: ';
$PHPMAILER_LANG['extension_missing'] = '拡張機能が見つかりません: ';

27
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-ka.php

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
<?php
/**
* Georgian PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author Avtandil Kikabidze aka LONGMAN <akalongman@gmail.com>
*/
$PHPMAILER_LANG['authenticate'] = 'SMTP შეცდომა: ავტორიზაცია შეუძლებელია.';
$PHPMAILER_LANG['connect_host'] = 'SMTP შეცდომა: SMTP სერვერთან დაკავშირება შეუძლებელია.';
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP შეცდომა: მონაცემები არ იქნა მიღებული.';
$PHPMAILER_LANG['encoding'] = 'კოდირების უცნობი ტიპი: ';
$PHPMAILER_LANG['execute'] = 'შეუძლებელია შემდეგი ბრძანების შესრულება: ';
$PHPMAILER_LANG['file_access'] = 'შეუძლებელია წვდომა ფაილთან: ';
$PHPMAILER_LANG['file_open'] = 'ფაილური სისტემის შეცდომა: არ იხსნება ფაილი: ';
$PHPMAILER_LANG['from_failed'] = 'გამგზავნის არასწორი მისამართი: ';
$PHPMAILER_LANG['instantiate'] = 'mail ფუნქციის გაშვება ვერ ხერხდება.';
$PHPMAILER_LANG['provide_address'] = 'გთხოვთ მიუთითოთ ერთი ადრესატის e-mail მისამართი მაინც.';
$PHPMAILER_LANG['mailer_not_supported'] = ' - საფოსტო სერვერის მხარდაჭერა არ არის.';
$PHPMAILER_LANG['recipients_failed'] = 'SMTP შეცდომა: შემდეგ მისამართებზე გაგზავნა ვერ მოხერხდა: ';
$PHPMAILER_LANG['empty_message'] = 'შეტყობინება ცარიელია';
$PHPMAILER_LANG['invalid_address'] = 'არ გაიგზავნა, e-mail მისამართის არასწორი ფორმატი: ';
$PHPMAILER_LANG['signing'] = 'ხელმოწერის შეცდომა: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'შეცდომა SMTP სერვერთან დაკავშირებისას';
$PHPMAILER_LANG['smtp_error'] = 'SMTP სერვერის შეცდომა: ';
$PHPMAILER_LANG['variable_set'] = 'შეუძლებელია შემდეგი ცვლადის შექმნა ან შეცვლა: ';
$PHPMAILER_LANG['extension_missing'] = 'ბიბლიოთეკა არ არსებობს: ';

27
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-ko.php

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
<?php
/**
* Korean PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author ChalkPE <amato0617@gmail.com>
*/
$PHPMAILER_LANG['authenticate'] = 'SMTP 오류: 인증할 수 없습니다.';
$PHPMAILER_LANG['connect_host'] = 'SMTP 오류: SMTP 호스트에 접속할 수 없습니다.';
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 오류: 데이터가 받아들여지지 않았습니다.';
$PHPMAILER_LANG['empty_message'] = '메세지 내용이 없습니다';
$PHPMAILER_LANG['encoding'] = '알 수 없는 인코딩: ';
$PHPMAILER_LANG['execute'] = '실행 불가: ';
$PHPMAILER_LANG['file_access'] = '파일 접근 불가: ';
$PHPMAILER_LANG['file_open'] = '파일 오류: 파일을 열 수 없습니다: ';
$PHPMAILER_LANG['from_failed'] = '다음 From 주소에서 오류가 발생했습니다: ';
$PHPMAILER_LANG['instantiate'] = 'mail 함수를 인스턴스화할 수 없습니다';
$PHPMAILER_LANG['invalid_address'] = '잘못된 주소: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' 메일러는 지원되지 않습니다.';
$PHPMAILER_LANG['provide_address'] = '적어도 한 개 이상의 수신자 메일 주소를 제공해야 합니다.';
$PHPMAILER_LANG['recipients_failed'] = 'SMTP 오류: 다음 수신자에서 오류가 발생했습니다: ';
$PHPMAILER_LANG['signing'] = '서명 오류: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP 연결을 실패하였습니다.';
$PHPMAILER_LANG['smtp_error'] = 'SMTP 서버 오류: ';
$PHPMAILER_LANG['variable_set'] = '변수 설정 및 초기화 불가: ';
$PHPMAILER_LANG['extension_missing'] = '확장자 없음: ';

27
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-lt.php

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
<?php
/**
* Lithuanian PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author Dainius Kaupaitis <dk@sum.lt>
*/
$PHPMAILER_LANG['authenticate'] = 'SMTP klaida: autentifikacija nepavyko.';
$PHPMAILER_LANG['connect_host'] = 'SMTP klaida: nepavyksta prisijungti prie SMTP stoties.';
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP klaida: duomenys nepriimti.';
$PHPMAILER_LANG['empty_message'] = 'Laiško turinys tuščias';
$PHPMAILER_LANG['encoding'] = 'Neatpažinta koduotė: ';
$PHPMAILER_LANG['execute'] = 'Nepavyko įvykdyti komandos: ';
$PHPMAILER_LANG['file_access'] = 'Byla nepasiekiama: ';
$PHPMAILER_LANG['file_open'] = 'Bylos klaida: Nepavyksta atidaryti: ';
$PHPMAILER_LANG['from_failed'] = 'Neteisingas siuntėjo adresas: ';
$PHPMAILER_LANG['instantiate'] = 'Nepavyko paleisti mail funkcijos.';
$PHPMAILER_LANG['invalid_address'] = 'Neteisingas adresas: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' pašto stotis nepalaikoma.';
$PHPMAILER_LANG['provide_address'] = 'Nurodykite bent vieną gavėjo adresą.';
$PHPMAILER_LANG['recipients_failed'] = 'SMTP klaida: nepavyko išsiųsti šiems gavėjams: ';
$PHPMAILER_LANG['signing'] = 'Prisijungimo klaida: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP susijungimo klaida';
$PHPMAILER_LANG['smtp_error'] = 'SMTP stoties klaida: ';
$PHPMAILER_LANG['variable_set'] = 'Nepavyko priskirti reikšmės kintamajam: ';
//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: ';

27
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-lv.php

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
<?php
/**
* Latvian PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author Eduards M. <e@npd.lv>
*/
$PHPMAILER_LANG['authenticate'] = 'SMTP kļūda: Autorizācija neizdevās.';
$PHPMAILER_LANG['connect_host'] = 'SMTP Kļūda: Nevar izveidot savienojumu ar SMTP serveri.';
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Kļūda: Nepieņem informāciju.';
$PHPMAILER_LANG['empty_message'] = 'Ziņojuma teksts ir tukšs';
$PHPMAILER_LANG['encoding'] = 'Neatpazīts kodējums: ';
$PHPMAILER_LANG['execute'] = 'Neizdevās izpildīt komandu: ';
$PHPMAILER_LANG['file_access'] = 'Fails nav pieejams: ';
$PHPMAILER_LANG['file_open'] = 'Faila kļūda: Nevar atvērt failu: ';
$PHPMAILER_LANG['from_failed'] = 'Nepareiza sūtītāja adrese: ';
$PHPMAILER_LANG['instantiate'] = 'Nevar palaist sūtīšanas funkciju.';
$PHPMAILER_LANG['invalid_address'] = 'Nepareiza adrese: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' sūtītājs netiek atbalstīts.';
$PHPMAILER_LANG['provide_address'] = 'Lūdzu, norādiet vismaz vienu adresātu.';
$PHPMAILER_LANG['recipients_failed'] = 'SMTP kļūda: neizdevās nosūtīt šādiem saņēmējiem: ';
$PHPMAILER_LANG['signing'] = 'Autorizācijas kļūda: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP savienojuma kļūda';
$PHPMAILER_LANG['smtp_error'] = 'SMTP servera kļūda: ';
$PHPMAILER_LANG['variable_set'] = 'Nevar piešķirt mainīgā vērtību: ';
//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: ';

27
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-mg.php

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
<?php
/**
* Malagasy PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author Hackinet <piyushjha8164@gmail.com>
*/
$PHPMAILER_LANG['authenticate'] = 'Hadisoana SMTP: Tsy nahomby ny fanamarinana.';
$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Tsy afaka mampifandray amin\'ny mpampiantrano SMTP.';
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP diso: tsy voarakitra ny angona.';
$PHPMAILER_LANG['empty_message'] = 'Tsy misy ny votoaty mailaka.';
$PHPMAILER_LANG['encoding'] = 'Tsy fantatra encoding: ';
$PHPMAILER_LANG['execute'] = 'Tsy afaka manatanteraka ity baiko manaraka ity: ';
$PHPMAILER_LANG['file_access'] = 'Tsy nahomby ny fidirana amin\'ity rakitra ity: ';
$PHPMAILER_LANG['file_open'] = 'Hadisoana diso: Tsy afaka nanokatra ity file manaraka ity: ';
$PHPMAILER_LANG['from_failed'] = 'Ny adiresy iraka manaraka dia diso: ';
$PHPMAILER_LANG['instantiate'] = 'Tsy afaka nanomboka ny hetsika mail.';
$PHPMAILER_LANG['invalid_address'] = 'Tsy mety ny adiresy: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer tsy manohana.';
$PHPMAILER_LANG['provide_address'] = 'Alefaso azafady iray adiresy iray farafahakeliny.';
$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: Tsy mety ireo mpanaraka ireto: ';
$PHPMAILER_LANG['signing'] = 'Error nandritra ny sonia:';
$PHPMAILER_LANG['smtp_connect_failed'] = 'Tsy nahomby ny fifandraisana tamin\'ny server SMTP.';
$PHPMAILER_LANG['smtp_error'] = 'Fahadisoana tamin\'ny server SMTP: ';
$PHPMAILER_LANG['variable_set'] = 'Tsy azo atao ny mametraka na mamerina ny variable: ';
$PHPMAILER_LANG['extension_missing'] = 'Tsy hita ny ampahany: ';

27
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-ms.php

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
<?php
/**
* Malaysian PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author Nawawi Jamili <nawawi@rutweb.com>
*/
$PHPMAILER_LANG['authenticate'] = 'Ralat SMTP: Tidak dapat pengesahan.';
$PHPMAILER_LANG['connect_host'] = 'Ralat SMTP: Tidak dapat menghubungi hos pelayan SMTP.';
$PHPMAILER_LANG['data_not_accepted'] = 'Ralat SMTP: Data tidak diterima oleh pelayan.';
$PHPMAILER_LANG['empty_message'] = 'Tiada isi untuk mesej';
$PHPMAILER_LANG['encoding'] = 'Pengekodan tidak diketahui: ';
$PHPMAILER_LANG['execute'] = 'Tidak dapat melaksanakan: ';
$PHPMAILER_LANG['file_access'] = 'Tidak dapat mengakses fail: ';
$PHPMAILER_LANG['file_open'] = 'Ralat Fail: Tidak dapat membuka fail: ';
$PHPMAILER_LANG['from_failed'] = 'Berikut merupakan ralat dari alamat e-mel: ';
$PHPMAILER_LANG['instantiate'] = 'Tidak dapat memberi contoh fungsi e-mel.';
$PHPMAILER_LANG['invalid_address'] = 'Alamat emel tidak sah: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' jenis penghantar emel tidak disokong.';
$PHPMAILER_LANG['provide_address'] = 'Anda perlu menyediakan sekurang-kurangnya satu alamat e-mel penerima.';
$PHPMAILER_LANG['recipients_failed'] = 'Ralat SMTP: Penerima e-mel berikut telah gagal: ';
$PHPMAILER_LANG['signing'] = 'Ralat pada tanda tangan: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() telah gagal.';
$PHPMAILER_LANG['smtp_error'] = 'Ralat pada pelayan SMTP: ';
$PHPMAILER_LANG['variable_set'] = 'Tidak boleh menetapkan atau menetapkan semula pembolehubah: ';
$PHPMAILER_LANG['extension_missing'] = 'Sambungan hilang: ';

26
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-nb.php

@ -0,0 +1,26 @@ @@ -0,0 +1,26 @@
<?php
/**
* Norwegian Bokmål PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
*/
$PHPMAILER_LANG['authenticate'] = 'SMTP Feil: Kunne ikke autentisere.';
$PHPMAILER_LANG['connect_host'] = 'SMTP Feil: Kunne ikke koble til SMTP tjener.';
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Feil: Datainnhold ikke akseptert.';
$PHPMAILER_LANG['empty_message'] = 'Meldingsinnhold mangler';
$PHPMAILER_LANG['encoding'] = 'Ukjent koding: ';
$PHPMAILER_LANG['execute'] = 'Kunne ikke utføre: ';
$PHPMAILER_LANG['file_access'] = 'Får ikke tilgang til filen: ';
$PHPMAILER_LANG['file_open'] = 'Fil Feil: Kunne ikke åpne filen: ';
$PHPMAILER_LANG['from_failed'] = 'Følgende Frå adresse feilet: ';
$PHPMAILER_LANG['instantiate'] = 'Kunne ikke initialisere post funksjon.';
$PHPMAILER_LANG['invalid_address'] = 'Ugyldig adresse: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' sender er ikke støttet.';
$PHPMAILER_LANG['provide_address'] = 'Du må opppgi minst en mottakeradresse.';
$PHPMAILER_LANG['recipients_failed'] = 'SMTP Feil: Følgende mottakeradresse feilet: ';
$PHPMAILER_LANG['signing'] = 'Signering Feil: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP connect() feilet.';
$PHPMAILER_LANG['smtp_error'] = 'SMTP server feil: ';
$PHPMAILER_LANG['variable_set'] = 'Kan ikke skrive eller omskrive variabel: ';
$PHPMAILER_LANG['extension_missing'] = 'Utvidelse mangler: ';

34
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-nl.php

@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
<?php
/**
* Dutch PHPMailer language file: refer to PHPMailer.php for definitive list.
* @package PHPMailer
* @author Tuxion <team@tuxion.nl>
*/
$PHPMAILER_LANG['authenticate'] = 'SMTP-fout: authenticatie mislukt.';
$PHPMAILER_LANG['buggy_php'] = 'PHP versie gededecteerd die onderhavig is aan een bug die kan resulteren in gecorrumpeerde berichten. Om dit te voorkomen, gebruik SMTP voor het verzenden van berichten, zet de mail.add_x_header optie in uw php.ini file uit, gebruik MacOS of Linux, of pas de gebruikte PHP versie aan naar versie 7.0.17+ or 7.1.3+.';
$PHPMAILER_LANG['connect_host'] = 'SMTP-fout: kon niet verbinden met SMTP-host.';
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP-fout: data niet geaccepteerd.';
$PHPMAILER_LANG['empty_message'] = 'Berichttekst is leeg';
$PHPMAILER_LANG['encoding'] = 'Onbekende codering: ';
$PHPMAILER_LANG['execute'] = 'Kon niet uitvoeren: ';
$PHPMAILER_LANG['extension_missing'] = 'Extensie afwezig: ';
$PHPMAILER_LANG['file_access'] = 'Kreeg geen toegang tot bestand: ';
$PHPMAILER_LANG['file_open'] = 'Bestandsfout: kon bestand niet openen: ';
$PHPMAILER_LANG['from_failed'] = 'Het volgende afzendersadres is mislukt: ';
$PHPMAILER_LANG['instantiate'] = 'Kon mailfunctie niet initialiseren.';
$PHPMAILER_LANG['invalid_address'] = 'Ongeldig adres: ';
$PHPMAILER_LANG['invalid_header'] = 'Ongeldige header naam of waarde';
$PHPMAILER_LANG['invalid_hostentry'] = 'Ongeldige hostentry: ';
$PHPMAILER_LANG['invalid_host'] = 'Ongeldige host: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer wordt niet ondersteund.';
$PHPMAILER_LANG['provide_address'] = 'Er moet minstens één ontvanger worden opgegeven.';
$PHPMAILER_LANG['recipients_failed'] = 'SMTP-fout: de volgende ontvangers zijn mislukt: ';
$PHPMAILER_LANG['signing'] = 'Signeerfout: ';
$PHPMAILER_LANG['smtp_code'] = 'SMTP code: ';
$PHPMAILER_LANG['smtp_code_ex'] = 'Aanvullende SMTP informatie: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Verbinding mislukt.';
$PHPMAILER_LANG['smtp_detail'] = 'Detail: ';
$PHPMAILER_LANG['smtp_error'] = 'SMTP-serverfout: ';
$PHPMAILER_LANG['variable_set'] = 'Kan de volgende variabele niet instellen of resetten: ';

27
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-pl.php

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
<?php
/**
* Polish PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
*/
$PHPMAILER_LANG['authenticate'] = 'Błąd SMTP: Nie można przeprowadzić uwierzytelnienia.';
$PHPMAILER_LANG['connect_host'] = 'Błąd SMTP: Nie można połączyć się z wybranym hostem.';
$PHPMAILER_LANG['data_not_accepted'] = 'Błąd SMTP: Dane nie zostały przyjęte.';
$PHPMAILER_LANG['empty_message'] = 'Wiadomość jest pusta.';
$PHPMAILER_LANG['encoding'] = 'Nieznany sposób kodowania znaków: ';
$PHPMAILER_LANG['execute'] = 'Nie można uruchomić: ';
$PHPMAILER_LANG['file_access'] = 'Brak dostępu do pliku: ';
$PHPMAILER_LANG['file_open'] = 'Nie można otworzyć pliku: ';
$PHPMAILER_LANG['from_failed'] = 'Następujący adres Nadawcy jest nieprawidłowy: ';
$PHPMAILER_LANG['instantiate'] = 'Nie można wywołać funkcji mail(). Sprawdź konfigurację serwera.';
$PHPMAILER_LANG['invalid_address'] = 'Nie można wysłać wiadomości, ' .
'następujący adres Odbiorcy jest nieprawidłowy: ';
$PHPMAILER_LANG['provide_address'] = 'Należy podać prawidłowy adres email Odbiorcy.';
$PHPMAILER_LANG['mailer_not_supported'] = 'Wybrana metoda wysyłki wiadomości nie jest obsługiwana.';
$PHPMAILER_LANG['recipients_failed'] = 'Błąd SMTP: Następujący odbiorcy są nieprawidłowi: ';
$PHPMAILER_LANG['signing'] = 'Błąd podpisywania wiadomości: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() zakończone niepowodzeniem.';
$PHPMAILER_LANG['smtp_error'] = 'Błąd SMTP: ';
$PHPMAILER_LANG['variable_set'] = 'Nie można ustawić lub zmodyfikować zmiennej: ';
$PHPMAILER_LANG['extension_missing'] = 'Brakujące rozszerzenie: ';

27
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-pt.php

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
<?php
/**
* Portuguese (European) PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author Jonadabe <jonadabe@hotmail.com>
*/
$PHPMAILER_LANG['authenticate'] = 'Erro do SMTP: Não foi possível realizar a autenticação.';
$PHPMAILER_LANG['connect_host'] = 'Erro do SMTP: Não foi possível realizar ligação com o servidor SMTP.';
$PHPMAILER_LANG['data_not_accepted'] = 'Erro do SMTP: Os dados foram rejeitados.';
$PHPMAILER_LANG['empty_message'] = 'A mensagem no e-mail está vazia.';
$PHPMAILER_LANG['encoding'] = 'Codificação desconhecida: ';
$PHPMAILER_LANG['execute'] = 'Não foi possível executar: ';
$PHPMAILER_LANG['file_access'] = 'Não foi possível aceder o ficheiro: ';
$PHPMAILER_LANG['file_open'] = 'Abertura do ficheiro: Não foi possível abrir o ficheiro: ';
$PHPMAILER_LANG['from_failed'] = 'Ocorreram falhas nos endereços dos seguintes remententes: ';
$PHPMAILER_LANG['instantiate'] = 'Não foi possível iniciar uma instância da função mail.';
$PHPMAILER_LANG['invalid_address'] = 'Não foi enviado nenhum e-mail para o endereço de e-mail inválido: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer não é suportado.';
$PHPMAILER_LANG['provide_address'] = 'Tem de fornecer pelo menos um endereço como destinatário do e-mail.';
$PHPMAILER_LANG['recipients_failed'] = 'Erro do SMTP: O endereço do seguinte destinatário falhou: ';
$PHPMAILER_LANG['signing'] = 'Erro ao assinar: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() falhou.';
$PHPMAILER_LANG['smtp_error'] = 'Erro de servidor SMTP: ';
$PHPMAILER_LANG['variable_set'] = 'Não foi possível definir ou redefinir a variável: ';
$PHPMAILER_LANG['extension_missing'] = 'Extensão em falta: ';

38
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-pt_br.php

@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
<?php
/**
* Brazilian Portuguese PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author Paulo Henrique Garcia <paulo@controllerweb.com.br>
* @author Lucas Guimarães <lucas@lucasguimaraes.com>
* @author Phelipe Alves <phelipealvesdesouza@gmail.com>
* @author Fabio Beneditto <fabiobeneditto@gmail.com>
* @author Geidson Benício Coelho <geidsonc@gmail.com>
*/
$PHPMAILER_LANG['authenticate'] = 'Erro de SMTP: Não foi possível autenticar.';
$PHPMAILER_LANG['buggy_php'] = 'Sua versão do PHP é afetada por um bug que por resultar em messagens corrompidas. Para corrigir, mude para enviar usando SMTP, desative a opção mail.add_x_header em seu php.ini, mude para MacOS ou Linux, ou atualize seu PHP para versão 7.0.17+ ou 7.1.3+ ';
$PHPMAILER_LANG['connect_host'] = 'Erro de SMTP: Não foi possível conectar ao servidor SMTP.';
$PHPMAILER_LANG['data_not_accepted'] = 'Erro de SMTP: Dados rejeitados.';
$PHPMAILER_LANG['empty_message'] = 'Mensagem vazia';
$PHPMAILER_LANG['encoding'] = 'Codificação desconhecida: ';
$PHPMAILER_LANG['execute'] = 'Não foi possível executar: ';
$PHPMAILER_LANG['extension_missing'] = 'Extensão não existe: ';
$PHPMAILER_LANG['file_access'] = 'Não foi possível acessar o arquivo: ';
$PHPMAILER_LANG['file_open'] = 'Erro de Arquivo: Não foi possível abrir o arquivo: ';
$PHPMAILER_LANG['from_failed'] = 'Os seguintes remetentes falharam: ';
$PHPMAILER_LANG['instantiate'] = 'Não foi possível instanciar a função mail.';
$PHPMAILER_LANG['invalid_address'] = 'Endereço de e-mail inválido: ';
$PHPMAILER_LANG['invalid_header'] = 'Nome ou valor de cabeçalho inválido';
$PHPMAILER_LANG['invalid_hostentry'] = 'hostentry inválido: ';
$PHPMAILER_LANG['invalid_host'] = 'host inválido: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer não é suportado.';
$PHPMAILER_LANG['provide_address'] = 'Você deve informar pelo menos um destinatário.';
$PHPMAILER_LANG['recipients_failed'] = 'Erro de SMTP: Os seguintes destinatários falharam: ';
$PHPMAILER_LANG['signing'] = 'Erro de Assinatura: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() falhou.';
$PHPMAILER_LANG['smtp_code'] = 'Código do servidor SMTP: ';
$PHPMAILER_LANG['smtp_error'] = 'Erro de servidor SMTP: ';
$PHPMAILER_LANG['smtp_code_ex'] = 'Informações adicionais do servidor SMTP: ';
$PHPMAILER_LANG['smtp_detail'] = 'Detalhes do servidor SMTP: ';
$PHPMAILER_LANG['variable_set'] = 'Não foi possível definir ou redefinir a variável: ';

33
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-ro.php

@ -0,0 +1,33 @@ @@ -0,0 +1,33 @@
<?php
/**
* Romanian PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
*/
$PHPMAILER_LANG['authenticate'] = 'Eroare SMTP: Autentificarea a eșuat.';
$PHPMAILER_LANG['buggy_php'] = 'Versiunea instalată de PHP este afectată de o problemă care poate duce la coruperea mesajelor Pentru a preveni această problemă, folosiți SMTP, dezactivați opțiunea mail.add_x_header din php.ini, folosiți MacOS/Linux sau actualizați versiunea de PHP la 7.0.17+ sau 7.1.3+.';
$PHPMAILER_LANG['connect_host'] = 'Eroare SMTP: Conectarea la serverul SMTP a eșuat.';
$PHPMAILER_LANG['data_not_accepted'] = 'Eroare SMTP: Datele nu au fost acceptate.';
$PHPMAILER_LANG['empty_message'] = 'Mesajul este gol.';
$PHPMAILER_LANG['encoding'] = 'Encodare necunoscută: ';
$PHPMAILER_LANG['execute'] = 'Nu se poate executa următoarea comandă: ';
$PHPMAILER_LANG['extension_missing'] = 'Lipsește extensia: ';
$PHPMAILER_LANG['file_access'] = 'Nu se poate accesa următorul fișier: ';
$PHPMAILER_LANG['file_open'] = 'Eroare fișier: Nu se poate deschide următorul fișier: ';
$PHPMAILER_LANG['from_failed'] = 'Următoarele adrese From au dat eroare: ';
$PHPMAILER_LANG['instantiate'] = 'Funcția mail nu a putut fi inițializată.';
$PHPMAILER_LANG['invalid_address'] = 'Adresa de email nu este validă: ';
$PHPMAILER_LANG['invalid_header'] = 'Numele sau valoarea header-ului nu este validă: ';
$PHPMAILER_LANG['invalid_hostentry'] = 'Hostentry invalid: ';
$PHPMAILER_LANG['invalid_host'] = 'Host invalid: ';
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer nu este suportat.';
$PHPMAILER_LANG['provide_address'] = 'Trebuie să adăugați cel puțin o adresă de email.';
$PHPMAILER_LANG['recipients_failed'] = 'Eroare SMTP: Următoarele adrese de email au eșuat: ';
$PHPMAILER_LANG['signing'] = 'A aparut o problemă la semnarea emailului. ';
$PHPMAILER_LANG['smtp_code'] = 'Cod SMTP: ';
$PHPMAILER_LANG['smtp_code_ex'] = 'Informații SMTP adiționale: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'Conectarea la serverul SMTP a eșuat.';
$PHPMAILER_LANG['smtp_detail'] = 'Detalii SMTP: ';
$PHPMAILER_LANG['smtp_error'] = 'Eroare server SMTP: ';
$PHPMAILER_LANG['variable_set'] = 'Nu se poate seta/reseta variabila. ';

28
02.php/extension/PHPMailer-6.6.0/language/phpmailer.lang-ru.php

@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
<?php
/**
* Russian PHPMailer language file: refer to English translation for definitive list
* @package PHPMailer
* @author Alexey Chumakov <alex@chumakov.ru>
* @author Foster Snowhill <i18n@forstwoof.ru>
*/
$PHPMAILER_LANG['authenticate'] = 'Ошибка SMTP: ошибка авторизации.';
$PHPMAILER_LANG['connect_host'] = 'Ошибка SMTP: не удается подключиться к SMTP-серверу.';
$PHPMAILER_LANG['data_not_accepted'] = 'Ошибка SMTP: данные не приняты.';
$PHPMAILER_LANG['encoding'] = 'Неизвестная кодировка: ';
$PHPMAILER_LANG['execute'] = 'Невозможно выполнить команду: ';
$PHPMAILER_LANG['file_access'] = 'Нет доступа к файлу: ';
$PHPMAILER_LANG['file_open'] = 'Файловая ошибка: не удаётся открыть файл: ';
$PHPMAILER_LANG['from_failed'] = 'Неверный адрес отправителя: ';
$PHPMAILER_LANG['instantiate'] = 'Невозможно запустить функцию mail().';
$PHPMAILER_LANG['provide_address'] = 'Пожалуйста, введите хотя бы один email-адрес получателя.';
$PHPMAILER_LANG['mailer_not_supported'] = ' — почтовый сервер не поддерживается.';
$PHPMAILER_LANG['recipients_failed'] = 'Ошибка SMTP: не удалась отправка таким адресатам: ';
$PHPMAILER_LANG['empty_message'] = 'Пустое сообщение';
$PHPMAILER_LANG['invalid_address'] = 'Не отправлено из-за неправильного формата email-адреса: ';
$PHPMAILER_LANG['signing'] = 'Ошибка подписи: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'Ошибка соединения с SMTP-сервером';
$PHPMAILER_LANG['smtp_error'] = 'Ошибка SMTP-сервера: ';
$PHPMAILER_LANG['variable_set'] = 'Невозможно установить или сбросить переменную: ';
$PHPMAILER_LANG['extension_missing'] = 'Расширение отсутствует: ';

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save