Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: cypht-org/cypht
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: b9da846150fdc44cf936ed81f736928cd8a8aac6
Choose a base ref
..
head repository: cypht-org/cypht
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 952a2e120697108db8ddfd6f01f5e35dd1f6e68e
Choose a head ref
Showing with 3,924 additions and 2,562 deletions.
  1. +191 −0 .env.example
  2. +185 −0 .github/tests/.env
  3. +0 −552 .github/tests/hm3.ini
  4. +3 −3 .github/tests/setup.sh
  5. +3 −2 .gitignore
  6. +185 −0 .travis/.env
  7. +0 −552 .travis/hm3.ini
  8. +3 −3 .travis/setup.sh
  9. +29 −45 INSTALL
  10. +8 −4 composer.json
  11. +692 −59 composer.lock
  12. +36 −0 config/2fa.php
  13. +1,309 −0 config/app.php
  14. +22 −0 config/carddav.php
  15. +67 −0 config/database.php
  16. +57 −0 config/dynamic_login.php
  17. +24 −0 config/github.php
  18. +73 −0 config/ldap.php
  19. +47 −0 config/oauth2.php
  20. +24 −0 config/recaptcha.php
  21. +23 −0 config/themes.php
  22. +23 −0 config/wordpress.php
  23. +0 −897 hm3.sample.ini
  24. +5 −4 index.php
  25. +1 −0 language/az.php
  26. +1 −0 language/de.php
  27. +1 −0 language/en.php
  28. +1 −0 language/es.php
  29. +1 −0 language/et.php
  30. +1 −0 language/fa.php
  31. +1 −0 language/fr.php
  32. +1 −0 language/hu.php
  33. +1 −0 language/id.php
  34. +1 −0 language/it.php
  35. +1 −0 language/ja.php
  36. +1 −0 language/nl.php
  37. +1 −0 language/pt-BR.php
  38. +1 −0 language/ro.php
  39. +1 −0 language/ru.php
  40. +1 −0 language/zh-Hans.php
  41. +1 −0 lib/cache.php
  42. +5 −10 lib/config.php
  43. +1 −1 lib/crypt.php
  44. +10 −8 lib/db.php
  45. +2 −2 lib/dispatch.php
  46. +141 −0 lib/environment.php
  47. +10 −9 lib/framework.php
  48. +1 −1 lib/ini_set.php
  49. +1 −0 lib/modules_exec.php
  50. +4 −4 lib/output.php
  51. +0 −26 modules/2fa/2fa.ini
  52. +2 −11 modules/2fa/modules.php
  53. +2 −3 modules/api_login/api.php
  54. +1 −1 modules/carddav_contacts/README.md
  55. +0 −14 modules/carddav_contacts/carddav.ini
  56. +7 −7 modules/carddav_contacts/modules.php
  57. +4 −23 modules/core/functions.php
  58. +17 −0 modules/core/handler_modules.php
  59. +1 −2 modules/core/message_functions.php
  60. +24 −1 modules/core/output_modules.php
  61. +5 −2 modules/core/setup.php
  62. +15 −3 modules/core/site.css
  63. +156 −2 modules/core/site.js
  64. +0 −1 modules/developer/modules.php
  65. +0 −38 modules/dynamic_login/dynamic_login.ini
  66. +1 −1 modules/dynamic_login/modules.php
  67. +0 −15 modules/github/github.ini
  68. +2 −1 modules/github/modules.php
  69. +1 −1 modules/hello_world/modules.php
  70. +2 −2 modules/hello_world/setup.php
  71. +1 −1 modules/hello_world/site.js
  72. +1 −3 modules/imap/handler_modules.php
  73. +1 −1 modules/imap/hm-imap.php
  74. +0 −33 modules/imap/oauth2.ini
  75. +14 −1 modules/imap/output_modules.php
  76. +17 −9 modules/imap_folders/modules.php
  77. +1 −1 modules/ldap_contacts/README.md
  78. +0 −44 modules/ldap_contacts/ldap.ini
  79. +1 −1 modules/ldap_contacts/modules.php
  80. +5 −5 modules/nux/modules.php
  81. +4 −0 modules/nux/services.php
  82. +1 −1 modules/recaptcha/modules.php
  83. +1 −1 modules/recaptcha/recaptcha.ini
  84. +24 −2 modules/sievefilters/modules.php
  85. +3 −1 modules/sievefilters/setup.php
  86. +24 −5 modules/sievefilters/site.js
  87. +3 −4 modules/site/lib.php
  88. +19 −9 modules/smtp/modules.php
  89. +5 −1 modules/themes/assets/blue.css
  90. +4 −1 modules/themes/modules.php
  91. +0 −13 modules/themes/themes.ini
  92. +1 −1 modules/wordpress/modules.php
  93. +1 −1 modules/wordpress/wordpress.ini
  94. +19 −45 scripts/config_gen.php
  95. +1 −1 scripts/create_account.php
  96. +1 −1 scripts/create_config.php
  97. +1 −2 scripts/delete_account.php
  98. +1 −2 scripts/update_password.php
  99. +1 −0 tests/phpunit/auth.php
  100. +3 −0 tests/phpunit/cache.php
  101. +7 −3 tests/phpunit/config.php
  102. +3 −0 tests/phpunit/data/app.php
  103. +0 −1 tests/phpunit/data/siteconfig.rc
  104. +1 −0 tests/phpunit/db.php
  105. +4 −3 tests/phpunit/dispatch.php
  106. +50 −0 tests/phpunit/environment.php
  107. +2 −0 tests/phpunit/format.php
  108. +5 −0 tests/phpunit/helpers.php
  109. +3 −1 tests/phpunit/mocks.php
  110. +7 −0 tests/phpunit/module.php
  111. +2 −0 tests/phpunit/modules.php
  112. +1 −29 tests/phpunit/modules/core/functions.php
  113. +1 −1 tests/phpunit/modules/core/message_list_functions.php
  114. +12 −12 tests/phpunit/modules/core/modules.php
  115. +1 −0 tests/phpunit/oauth2.php
  116. +1 −0 tests/phpunit/output.php
  117. +3 −0 tests/phpunit/phpunit.xml
  118. +2 −2 tests/phpunit/request.php
  119. +5 −0 tests/phpunit/session.php
  120. +1 −0 tests/phpunit/stubs.php
  121. +15 −10 tests/selenium/base.py
  122. +20 −0 third_party/ays-beforeunload-shim.js
  123. +177 −0 third_party/jquery.are-you-sure.js
  124. +2 −0 third_party/sortable.min.js
191 changes: 191 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,191 @@
APP_NAME=Cypht

DB_CONNECTION_TYPE=host
DB_DRIVER=mysql
DB_PORT=
DB_HOST=localhost
DB_NAME=test
DB_USER=test
DB_PASS=123456
DB_SOCKET=/var/lib/mysqld/mysqld.sock

SESSION_TYPE=PHP
AUTH_TYPE=DB
LDAP_AUTH_SERVER=localhost
LDAP_AUTH_PORT=389
LDAP_AUTH_TLS=
LDAP_AUTH_BASE_DN=example,dc=com

IMAP_AUTH_NAME=localhost
IMAP_AUTH_SERVER=localhost
IMAP_AUTH_PORT=143
IMAP_AUTH_TLS=
IMAP_AUTH_SIEVE_CONF_HOST=

DEFAULT_SMTP_NAME=
DEFAULT_SMTP_SERVER=
DEFAULT_SMTP_PORT=
DEFAULT_SMTP_TLS=
DEFAULT_SMTP_NO_AUTH=

USER_CONFIG_TYPE=file
USER_SETTINGS_DIR=/var/lib/hm3/users
ATTACHMENT_DIR=/var/lib/hm3/attachments
APP_DATA_DIR=/var/lib/hm3/app_data

DISABLE_ORIGIN_CHECK=false

ADMIN_USERS=

COOKIE_DOMAIN=
COOKIE_PATH=

DEFAULT_EMAIL_DOMAIN=
AUTO_CREATE_PROFILE=

REDIRECT_AFTER_LOGIN=

ALWAYS_MOBILE_UI=

DEFAULT_LANGUAGE=en

JS_COMPRESS=false
CSS_COMPRESS=false

ALLOW_SESSION_CACHE=false
CACHE_CLASS=

ENABLE_REDIS=true
REDIS_SERVER='127.0.0.1'
REDIS_PORT=6379
REDIS_INDEX=1
REDIS_PASS=
REDIS_SOCKET=/var/run/redis/redis-server.sock

ENABLE_MEMCACHED=true
MEMCACHED_SERVER='127.0.0.1'
MEMCACHED_PORT=11211
MEMCACHED_AUTH=false
MEMCACHED_USER=
MEMCACHED_PASS=

ALLOW_LONG_SESSION=false
LONG_SESSION_LIFETIME=30

ENCRYPT_AJAX_REQUESTS=
ENCRYPT_LOCAL_STORAGE=

ENCRYPT_LOCAL_STORAGE=

DISABLE_IP_CHECK=false

DISABLE_ORIGIN_CHECK=true

ALLOW_EXTERNAL_IMAGE_SOURCES=true

SINGLE_SERVER_MODE=false

DISABLE_EMPTY_SUPERGLOBALS=false
DISABLE_OPEN_BASE_DIR=false
DISABLE_INI_SETTINGS=false
DISABLE_FINGERPRINT=false

AUTH_CLASS=
SESSION_CLASS=

API_LOGIN_KEY=

DEFAULT_SETTING_NO_PASSWORD_SAVE=false
DEFAULT_SETTING_IMAP_PER_PAGE=20
DEFAULT_SETTING_SIMPLE_MSG_PARTS=false
DEFAULT_SETTING_PAGINATE_LINKS=true
DEFAULT_SETTING_MSG_PART_ICONS=true
DEFAULT_SETTING_TEXT_ONLY=true
DEFAULT_SETTING_SENT_PER_SOURCE=20
DEFAULT_SETTING_SENT_SINCE='-1 week'
DEFAULT_SETTING_SHOW_LIST_ICONS=true
DEFAULT_SETTING_START_PAGE=none
DEFAULT_SETTING_DISABLE_DELETE_PROMPT=false
DEFAULT_SETTING_FLAGGED_PER_SOURCE=20
DEFAULT_SETTING_NO_FOLDER_ICONS=false
DEFAULT_SETTING_ALL_EMAIL_PER_SOURCE=20
DEFAULT_SETTING_ALL_EMAIL_SINCE='-1 week'
DEFAULT_SETTING_ALL_SINCE='-1 week'
DEFAULT_SETTING_ALL_PER_SOURCE=20
DEFAULT_SETTING_UNREAD_PER_SOURCE=20
DEFAULT_SETTING_FLAGGED_SINCE='-1 week'
DEFAULT_SETTING_UNREAD_SINCE='-1 week'
DEFAULT_SETTING_TIMEZONE='UTC'
DEFAULT_SETTING_LIST_STYLE='email_style'
DEFAULT_SETTING_LANGUAGE=en
DEFAULT_SETTING_UNREAD_EXCLUDE_FEEDS=false
DEFAULT_SETTING_FEED_LIMIT=20
DEFAULT_SETTING_FEED_SINCE='-1 week'
DEFAULT_SETTING_SMTP_COMPOSE_TYPE=0
DEFAULT_SETTING_SMTP_AUTO_BCC=false
DEFAULT_SETTING_THEME='default'
DEFAULT_SETTING_UNREAD_EXCLUDE_WORDPRESS=false
DEFAULT_SETTING_WORDPRESS_SINCE='-1 week'
DEFAULT_SETTING_UNREAD_EXCLUDE_GITHUB=false
DEFAULT_SETTING_GITHUB_LIMIT=20
DEFAULT_SETTING_GITHUB_SINCE='-1 weeks'
DEFAULT_SETTING_INLINE_MESSAGE=false
DEFAULT_SETTING_ENABLE_KEYBOARD_SHORTCUTS=1
DEFAULT_SETTING_ENABLE_SIEVE_FILTER=false


APP_2FA_SECRET=""
APP_2FA_SIMPLE=false

CARD_DAV_SERVER=http://localhost:5232

#DYNAMIC LOGIN
DYNAMIC_HOST=true
DYNAMIC_HOST_SUBDOMAIN=""
DYNAMIC_USER=false
DYNAMIC_SMTP_SUBDOMAIN=""
DYNAMIC_MAIL_SUBDOMAIN=""

#github.com
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
GITHUB_REDIRECT_URI=
GITHUB_AUTH_URL=https://github.com/login/oauth/authorize
GITHUB_AUTH_URL=https://github.com/login/oauth/access_token

#gmail
GMAIL_CLIENT_ID=
GMAIL_CLIENT_SECRET=
GMAIL_CLIENT_URI=
GMAIL_AUTH_URI=https://accounts.google.com/o/oauth2/auth
GMAIL_TOKEN_URI=https://www.googleapis.com/oauth2/v3/token
GMAIL_REFRESH_URI=https://www.googleapis.com/oauth2/v3/token

#aoutlook
OUTLOOK_CLIENT_ID=
OUTLOOK_CLIENT_SECRET=
OUTLOOK_CLIENT_URI=
OUTLOOK_AUTH_URI=https://login.live.com/oauth20_authorize.srf
OUTLOOK_TOKEN_URI=https://login.live.com/oauth20_token.srf
OUTLOOK_REFRESH_URI=https://login.live.com/oauth20_token.srf

#ldap
LDAP_SERVER=localhost
LDAP_ENABLE_TLS=true
LDAP_PORT=389
LDAP_BASE_DN="dc=example,dc=com"
LDAP_SEARCH_TERM="objectclass=inetOrgPerson"
LDAP_SEARCH_TERM=false
LDAP_USER=''
LDAP_PASS=''
LDAP_READ_WRITE=true

#WordPress
WORDPRESS_CLIENT_ID=
WORDPRESS_CLIENT_SECRET=
WORDPRESS_CLIENT_URI=

RECAPTCHA_SECRET=
RECAPTCHA_SITE_KEY=

CYPHT_MODULES="core,contacts,local_contacts,ldap_contacts,gmail_contacts,feeds,jmap,imap,smtp,account,idle_timer,desktop_notifications,calendar,themes,nux,developer"
185 changes: 185 additions & 0 deletions .github/tests/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
APP_NAME=Cypht

DB_CONNECTION_TYPE=host
DB_DRIVER=mysql
DB_PORT=
DB_HOST=localhost
DB_NAME=cypht_test
DB_USER=cypht_test
DB_PASS=cypht_test
DB_SOCKET=/var/lib/mysqld/mysqld.sock

SESSION_TYPE=PHP
AUTH_TYPE=IMAP
LDAP_AUTH_SERVER=localhost
LDAP_AUTH_PORT=389
LDAP_AUTH_TLS=
LDAP_AUTH_BASE_DN=example,dc=com

IMAP_AUTH_NAME=localhost
IMAP_AUTH_SERVER=localhost
IMAP_AUTH_PORT=143
IMAP_AUTH_TLS=
IMAP_AUTH_SIEVE_CONF_HOST=

DEFAULT_SMTP_NAME=
DEFAULT_SMTP_SERVER=
DEFAULT_SMTP_PORT=
DEFAULT_SMTP_TLS=
DEFAULT_SMTP_NO_AUTH=

USER_CONFIG_TYPE=file
USER_SETTINGS_DIR=/tmp
ATTACHMENT_DIR=/tmp
APP_DATA_DIR=/tmp

ADMIN_USERS=

COOKIE_DOMAIN=
COOKIE_PATH=

DEFAULT_EMAIL_DOMAIN=
AUTO_CREATE_PROFILE=

REDIRECT_AFTER_LOGIN=

ALWAYS_MOBILE_UI=

DEFAULT_LANGUAGE=en

JS_COMPRESS=false
CSS_COMPRESS=false

ALLOW_SESSION_CACHE=false
CACHE_CLASS=

ENABLE_REDIS=true
REDIS_SERVER='127.0.0.1'
REDIS_PORT=6379
REDIS_INDEX=1
REDIS_PASS=
REDIS_SOCKET=/var/run/redis/redis-server.sock

ENABLE_MEMCACHED=true
MEMCACHED_SERVER='127.0.0.1'
MEMCACHED_PORT=11211
MEMCACHED_AUTH=false
MEMCACHED_USER=
MEMCACHED_PASS=

ALLOW_LONG_SESSION=false
LONG_SESSION_LIFETIME=30

ENCRYPT_AJAX_REQUESTS=
ENCRYPT_LOCAL_STORAGE=

DISABLE_IP_CHECK=false

DISABLE_ORIGIN_CHECK=false

ALLOW_EXTERNAL_IMAGE_SOURCES=true

SINGLE_SERVER_MODE=false

DISABLE_EMPTY_SUPERGLOBALS=false
DISABLE_OPEN_BASE_DIR=false
DISABLE_INI_SETTINGS=false
DISABLE_FINGERPRINT=false

AUTH_CLASS=
SESSION_CLASS=

API_LOGIN_KEY=

DEFAULT_SETTING_NO_PASSWORD_SAVE=false
DEFAULT_SETTING_IMAP_PER_PAGE=20
DEFAULT_SETTING_SIMPLE_MSG_PARTS=false
DEFAULT_SETTING_PAGINATE_LINKS=true
DEFAULT_SETTING_MSG_PART_ICONS=true
DEFAULT_SETTING_TEXT_ONLY=true
DEFAULT_SETTING_SENT_PER_SOURCE=20
DEFAULT_SETTING_SENT_SINCE='-1 week'
DEFAULT_SETTING_SHOW_LIST_ICONS=true
DEFAULT_SETTING_START_PAGE=none
DEFAULT_SETTING_DISABLE_DELETE_PROMPT=false
DEFAULT_SETTING_FLAGGED_PER_SOURCE=20
DEFAULT_SETTING_NO_FOLDER_ICONS=false
DEFAULT_SETTING_ALL_EMAIL_PER_SOURCE=20
DEFAULT_SETTING_ALL_EMAIL_SINCE='-1 week'
DEFAULT_SETTING_ALL_SINCE='-1 week'
DEFAULT_SETTING_ALL_PER_SOURCE=20
DEFAULT_SETTING_UNREAD_PER_SOURCE=20
DEFAULT_SETTING_FLAGGED_SINCE='-1 week'
DEFAULT_SETTING_UNREAD_SINCE='-1 week'
DEFAULT_SETTING_TIMEZONE='UTC'
DEFAULT_SETTING_LIST_STYLE='email_style'
DEFAULT_SETTING_LANGUAGE=en
DEFAULT_SETTING_UNREAD_EXCLUDE_FEEDS=false
DEFAULT_SETTING_FEED_LIMIT=20
DEFAULT_SETTING_FEED_SINCE='-1 week'
DEFAULT_SETTING_SMTP_COMPOSE_TYPE=0
DEFAULT_SETTING_SMTP_AUTO_BCC=false
DEFAULT_SETTING_THEME='default'
DEFAULT_SETTING_UNREAD_EXCLUDE_WORDPRESS=false
DEFAULT_SETTING_WORDPRESS_SINCE='-1 week'
DEFAULT_SETTING_UNREAD_EXCLUDE_GITHUB=false
DEFAULT_SETTING_GITHUB_LIMIT=20
DEFAULT_SETTING_GITHUB_SINCE='-1 weeks'
DEFAULT_SETTING_INLINE_MESSAGE=false
DEFAULT_SETTING_ENABLE_KEYBOARD_SHORTCUTS=1
DEFAULT_SETTING_ENABLE_SIEVE_FILTER=false


APP_2FA_SECRET=""
APP_2FA_SIMPLE=false

CARD_DAV_SERVER=http://localhost:5232

#DYNAMIC LOGIN
DYNAMIC_HOST=true
DYNAMIC_HOST_SUBDOMAIN=""
DYNAMIC_USER=false
DYNAMIC_SMTP_SUBDOMAIN=""
DYNAMIC_MAIL_SUBDOMAIN=""

#github.com
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
GITHUB_REDIRECT_URI=
GITHUB_AUTH_URL=https://github.com/login/oauth/authorize
GITHUB_AUTH_URL=https://github.com/login/oauth/access_token

#gmail
GMAIL_CLIENT_ID=
GMAIL_CLIENT_SECRET=
GMAIL_CLIENT_URI=
GMAIL_AUTH_URI=https://accounts.google.com/o/oauth2/auth
GMAIL_TOKEN_URI=https://www.googleapis.com/oauth2/v3/token
GMAIL_REFRESH_URI=https://www.googleapis.com/oauth2/v3/token

#aoutlook
OUTLOOK_CLIENT_ID=
OUTLOOK_CLIENT_SECRET=
OUTLOOK_CLIENT_URI=
OUTLOOK_AUTH_URI=https://login.live.com/oauth20_authorize.srf
OUTLOOK_TOKEN_URI=https://login.live.com/oauth20_token.srf
OUTLOOK_REFRESH_URI=https://login.live.com/oauth20_token.srf

#ldap
LDAP_SERVER=localhost
LDAP_ENABLE_TLS=true
LDAP_PORT=389
LDAP_BASE_DN="dc=example,dc=com"
LDAP_SEARCH_TERM="objectclass=inetOrgPerson"
LDAP_SEARCH_TERM=false
LDAP_USER=''
LDAP_PASS=''
LDAP_READ_WRITE=true

#WordPress
WORDPRESS_CLIENT_ID=
WORDPRESS_CLIENT_SECRET=
WORDPRESS_CLIENT_URI=

RECAPTCHA_SECRET=
RECAPTCHA_SITE_KEY=
Loading