From ab2f9227e5aed4c1125f298447dbf678c65ae9b6 Mon Sep 17 00:00:00 2001 From: Pedro Cisneros Santana <37348419+PedroCisnerosSantana@users.noreply.github.com> Date: Tue, 6 Oct 2020 17:58:06 +0200 Subject: [PATCH 01/52] Added QRCode dependency --- composer.json | 5 ++- composer.lock | 121 +++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 123 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index f0ce2624c..7f186fd59 100644 --- a/composer.json +++ b/composer.json @@ -50,7 +50,8 @@ "domnikl/statsd": "3.0.*", "influxdb/influxdb-php": "1.15.*", "bacon/bacon-qr-code": "2.0.2", - "phpmailer/phpmailer": "6.1.7" + "phpmailer/phpmailer": "6.1.7", + "chillerlan/php-qrcode": "^4.1" }, "require-dev": { "swoole/ide-helper": "4.5.4", @@ -72,4 +73,4 @@ "php": "7.4" } } -} \ No newline at end of file +} diff --git a/composer.lock b/composer.lock index 1392b6fdd..810eb51ef 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "07a5b2d2e742e8651d58889c3253c3b5", + "content-hash": "6b4324f0371e508d691337551c00c74e", "packages": [ { "name": "appwrite/php-clamav", @@ -100,6 +100,125 @@ "homepage": "https://github.com/Bacon/BaconQrCode", "time": "2020-07-30T16:40:58+00:00" }, + { + "name": "chillerlan/php-qrcode", + "version": "4.1.0", + "source": { + "type": "git", + "url": "https://github.com/chillerlan/php-qrcode.git", + "reference": "2cecb32cf618319dd01d9bc1fa64dc6bb683df85" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/chillerlan/php-qrcode/zipball/2cecb32cf618319dd01d9bc1fa64dc6bb683df85", + "reference": "2cecb32cf618319dd01d9bc1fa64dc6bb683df85", + "shasum": "" + }, + "require": { + "chillerlan/php-settings-container": "^2.0", + "ext-mbstring": "*", + "php": "^7.4" + }, + "require-dev": { + "phan/phan": "^2.7", + "phpunit/phpunit": "^9.1", + "setasign/fpdf": "^1.8.2" + }, + "suggest": { + "chillerlan/php-authenticator": "Yet another Google authenticator! Also creates URIs for mobile apps.", + "setasign/fpdf": "Required to use the QR FPDF output." + }, + "type": "library", + "autoload": { + "psr-4": { + "chillerlan\\QRCode\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kazuhiko Arase", + "homepage": "https://github.com/kazuhikoarase" + }, + { + "name": "Smiley", + "email": "smiley@chillerlan.net", + "homepage": "https://github.com/codemasher" + }, + { + "name": "Contributors", + "homepage": "https://github.com/chillerlan/php-qrcode/graphs/contributors" + } + ], + "description": "A QR code generator. PHP 7.4+", + "homepage": "https://github.com/chillerlan/php-qrcode", + "keywords": [ + "phpqrcode", + "qr", + "qr code", + "qrcode", + "qrcode-generator" + ], + "funding": [ + { + "url": "https://ko-fi.com/codemasher", + "type": "ko_fi" + } + ], + "time": "2020-06-04T17:07:12+00:00" + }, + { + "name": "chillerlan/php-settings-container", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/chillerlan/php-settings-container.git", + "reference": "75888345532373074fba482a6642c0f8cda996f0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/chillerlan/php-settings-container/zipball/75888345532373074fba482a6642c0f8cda996f0", + "reference": "75888345532373074fba482a6642c0f8cda996f0", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.4" + }, + "require-dev": { + "phan/phan": "^2.6", + "phpunit/phpunit": "^9.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "chillerlan\\Settings\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Smiley", + "email": "smiley@chillerlan.net", + "homepage": "https://github.com/codemasher" + } + ], + "description": "A container class for immutable settings objects. Not a DI container. PHP 7.4+", + "homepage": "https://github.com/chillerlan/php-settings-container", + "keywords": [ + "PHP7", + "Settings", + "container", + "helper" + ], + "time": "2020-04-16T16:56:44+00:00" + }, { "name": "colinmollenhour/credis", "version": "1.11.2", From 4c44e3a36e5a20693f41c3d2a2c52598a4337ef7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Bj=C3=B8rnbakk?= Date: Tue, 20 Oct 2020 12:04:36 +0200 Subject: [PATCH 02/52] Update environment-variables.md Sounded like it was set to enabled to cancel scans by default. Re-phrased the the sentence to make the intention more clear. --- docs/tutorials/environment-variables.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/environment-variables.md b/docs/tutorials/environment-variables.md index d4799380e..7de4c95e4 100644 --- a/docs/tutorials/environment-variables.md +++ b/docs/tutorials/environment-variables.md @@ -26,7 +26,7 @@ Maximum file size allowed for file upload. The default value is 100MB limitation ### _APP_STORAGE_ANTIVIRUS -This variable allows you to disable the internal anti-virus scans. By default, this value is set to 'enabled' to cancel the scans, set the value to 'disabled'. When disabled, it's recommended to turn off the ClamAV container for better resource usage. +This variable allows you to disable the internal anti-virus scans. This value is set to 'enabled' by default, to cancel the scans set the value to 'disabled'. When disabled, it's recommended to turn off the ClamAV container for better resource usage. ### _APP_CONSOLE_WHITELIST_EMAILS From f91a64103225abfd09242062701d7764e369048f Mon Sep 17 00:00:00 2001 From: Pedro Cisneros Santana <37348419+PedroCisnerosSantana@users.noreply.github.com> Date: Thu, 22 Oct 2020 20:50:57 +0200 Subject: [PATCH 03/52] Added QRCode dependency --- app/controllers/api/avatars.php | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/app/controllers/api/avatars.php b/app/controllers/api/avatars.php index 093080698..c0ccbcb2d 100644 --- a/app/controllers/api/avatars.php +++ b/app/controllers/api/avatars.php @@ -11,12 +11,15 @@ use Utopia\Cache\Cache; use Utopia\Cache\Adapter\Filesystem; use Appwrite\Resize\Resize; use Appwrite\URL\URL as URLParse; -use BaconQrCode\Renderer\ImageRenderer; +/* use BaconQrCode\Renderer\ImageRenderer; use BaconQrCode\Renderer\Image\ImagickImageBackEnd; use BaconQrCode\Renderer\RendererStyle\RendererStyle; -use BaconQrCode\Writer; +use BaconQrCode\Writer; */ use Utopia\Config\Config; use Utopia\Validator\HexColor; +use chillerlan\QRCode\QRCode; +use chillerlan\QRCode\QROptions; +/* use SebastianBergmann\CodeCoverage\Report\Html\Renderer; */ $avatarCallback = function ($type, $code, $width, $height, $quality, $response) { /** @var Utopia\Response $response */ @@ -366,12 +369,17 @@ App::get('/v1/avatars/qr') $download = ($download === '1' || $download === 'true' || $download === 1 || $download === true); - $renderer = new ImageRenderer( + /* $renderer = new ImageRenderer( new RendererStyle($size, $margin), new ImagickImageBackEnd('png', 100) - ); + ); */ + $qropts = new QROptions([ + 'quietzone' => $size + ]); + $qrcode = new QRCode($qropts); + $qrcode->render($text); - $writer = new Writer($renderer); + /* $writer = new Writer($renderer); */ if ($download) { $response->addHeader('Content-Disposition', 'attachment; filename="qr.png"'); @@ -380,7 +388,7 @@ App::get('/v1/avatars/qr') $response ->addHeader('Expires', \date('D, d M Y H:i:s', \time() + (60 * 60 * 24 * 45)).' GMT') // 45 days cache ->setContentType('image/png') - ->send($writer->writeString($text)) + /* ->send($writer->writeString($text)) */ ; }, ['response']); From b5e3e412d4c1f2ca5ba9b81e13c1318fe116c9af Mon Sep 17 00:00:00 2001 From: iraj Date: Fri, 23 Oct 2020 01:01:08 +0300 Subject: [PATCH 04/52] Adding Farsi/Persian language. --- app/config/locale/codes.php | 1 + .../locale/translations/fa.continents.php | 11 + .../locale/translations/fa.countries.php | 198 ++++++++++++++++++ app/config/locale/translations/fa.php | 21 ++ .../templates/fa.email.auth.confirm.tpl | 16 ++ .../templates/fa.email.auth.invitation.tpl | 18 ++ .../templates/fa.email.auth.recovery.tpl | 15 ++ app/init.php | 1 + 8 files changed, 281 insertions(+) create mode 100644 app/config/locale/translations/fa.continents.php create mode 100644 app/config/locale/translations/fa.countries.php create mode 100644 app/config/locale/translations/fa.php create mode 100644 app/config/locale/translations/templates/fa.email.auth.confirm.tpl create mode 100644 app/config/locale/translations/templates/fa.email.auth.invitation.tpl create mode 100644 app/config/locale/translations/templates/fa.email.auth.recovery.tpl diff --git a/app/config/locale/codes.php b/app/config/locale/codes.php index 039650da0..d3f289576 100644 --- a/app/config/locale/codes.php +++ b/app/config/locale/codes.php @@ -12,6 +12,7 @@ return [ 'de', // German 'en', // English 'es', // Spanish + 'fa', // Farsi/Persian 'fi', // Finnish 'fo', // Faroese 'fr', // French diff --git a/app/config/locale/translations/fa.continents.php b/app/config/locale/translations/fa.continents.php new file mode 100644 index 000000000..e55e8f9f3 --- /dev/null +++ b/app/config/locale/translations/fa.continents.php @@ -0,0 +1,11 @@ + 'آفریقا', + 'AN' => 'قطب جنوب', + 'AS' => 'آسیا', + 'EU' => 'اروپا', + 'NA' => 'آمریکای شمالی', + 'OC' => 'اقیانوسیه', + 'SA' => 'آمریکای جنوبی', +]; diff --git a/app/config/locale/translations/fa.countries.php b/app/config/locale/translations/fa.countries.php new file mode 100644 index 000000000..af2930ca7 --- /dev/null +++ b/app/config/locale/translations/fa.countries.php @@ -0,0 +1,198 @@ + 'افقانستان', + 'AO' => 'آنگولا', + 'AL' => 'آلبانی', + 'AD' => 'آندورا', + 'AE' => 'امارات متحده عربی', + 'AR' => 'آرژانتین', + 'AM' => 'ارمنستان', + 'AG' => 'آنتیگوا و باربودا', + 'AU' => 'استرالیا', + 'AT' => 'اتریش', + 'AZ' => 'آذربایجان', + 'BI' => 'بوروندی', + 'BE' => 'بلژیک', + 'BJ' => 'بنین', + 'BF' => 'بورکینافاسو', + 'BD' => 'بنگلادش', + 'BG' => 'بلغارستان', + 'BH' => 'بحرین', + 'BS' => 'باهاما', + 'BA' => 'بوسنی و هرزگوین', + 'BY' => 'بلاروس', + 'BZ' => 'بلیز', + 'BO' => 'بولیوی', + 'BR' => 'برزیل', + 'BB' => 'باربادوس', + 'BN' => 'برونئی', + 'BT' => 'بوتان', + 'BW' => 'بوتسوانا', + 'CF' => 'جمهوری آفریقای مرکزی', + 'CA' => 'کانادا', + 'CH' => 'سوئیس', + 'CL' => 'شیلی', + 'CN' => ']dk', + 'CI' => 'ساحل عاج', + 'CM' => 'کامرون', + 'CD' => 'کنگو', + 'CG' => 'جمهوری کنگو', + 'CO' => 'کلمبیا', + 'KM' => 'کومور', + 'CV' => 'کیپ ورد', + 'CR' => 'کاستاریکا', + 'CU' => 'کوبا', + 'CY' => 'قبرس', + 'CZ' => 'جمهوری چک', + 'DE' => 'آلمان', + 'DJ' => 'جیبوتی', + 'DM' => 'دومینیکا', + 'DK' => 'دانمارک', + 'DO' => 'جمهوری دومینیکا', + 'DZ' => 'الجزیره', + 'EC' => 'اکوادور', + 'EG' => 'مصر', + 'ER' => 'اریتره', + 'ES' => 'اسپانیا', + 'EE' => 'استونی', + 'ET' => 'اتیوپی', + 'FI' => 'فنلاند', + 'FJ' => 'فیجی', + 'FR' => 'فرانسه', + 'FM' => 'میکرونزی', + 'GA' => 'گابن', + 'GB' => 'انگلستان', + 'GE' => 'گرجستان', + 'GH' => 'غنا', + 'GN' => 'گینه', + 'GM' => 'گامبیا', + 'GW' => 'گینه بیسائو', + 'GQ' => 'گینه استوایی', + 'GR' => 'یونان', + 'GD' => 'گرنادا', + 'GT' => 'گواتمالا', + 'GY' => 'گویان', + 'HN' => 'هندوراس', + 'HR' => 'کرواسی', + 'HT' => 'هائیتی', + 'HU' => 'مجارستان', + 'ID' => 'اندونزی', + 'IN' => 'هند', + 'IE' => 'ایرلند', + 'IR' => 'ایران', + 'IQ' => 'عراث', + 'IS' => 'ایسلند', + 'IL' => 'اسرائیل', + 'IT' => 'ایتالیا', + 'JM' => 'جاماییکا', + 'JO' => 'اردن', + 'JP' => 'جاپن', + 'KZ' => 'قزاقستان', + 'KE' => 'کنیا', + 'KG' => 'قرقیزستان', + 'KH' => 'کامبوج', + 'KI' => 'کیریباتی', + 'KN' => 'سنت کیتس و نویس', + 'KR' => 'کرخ جنوبی', + 'KW' => 'کویت', + 'LA' => 'لائوس', + 'LB' => 'لبنان', + 'LR' => 'لیبریا', + 'LY' => 'لیبی', + 'LC' => 'سنت لوسیا', + 'LI' => 'لیختن اشتاین', + 'LK' => 'سریلانکا', + 'LS' => 'لسوتو', + 'LT' => 'لیتوانی', + 'LU' => 'لوکزامبورگ', + 'LV' => 'لتونی', + 'MA' => 'مراکش', + 'MC' => 'موناکو', + 'MD' => 'مولداوی', + 'MG' => 'ماداگاسکار', + 'MV' => 'مالدیو', + 'MX' => 'مکزیک', + 'MH' => 'جزایر مارشال', + 'MK' => 'مقدونیه', + 'ML' => 'مالی', + 'MT' => 'مالتا', + 'MM' => 'میانمار', + 'ME' => 'مونته نگرو', + 'MN' => 'مغولستان', + 'MZ' => 'موزامبیک', + 'MR' => 'موریتانی', + 'MU' => 'موریس', + 'MW' => 'مالاوی', + 'MY' => 'مالزی', + 'NA' => 'نامیبیا', + 'NE' => 'نیجر', + 'NG' => 'نیجریه', + 'NI' => 'نیکاراگوئه', + 'NL' => 'هلند', + 'NO' => 'نروژ', + 'NP' => 'نپال', + 'NR' => 'نائورو', + 'NZ' => 'نیوزلند', + 'OM' => 'عمان', + 'PK' => 'پاکستان', + 'PA' => 'پاناما', + 'PE' => 'پرو', + 'PH' => 'فیلیپین', + 'PW' => 'پالائو', + 'PG' => 'پاپوآ گینه نو', + 'PL' => 'لهستان', + 'KP' => 'کره شمالی', + 'PT' => 'پرتغال', + 'PY' => 'پاراگوئه', + 'QA' => 'قطر', + 'RO' => 'رومانی', + 'RU' => 'روسیه', + 'RW' => 'رواندا', + 'SA' => 'عربستان سعودی', + 'SD' => 'سودان', + 'SN' => 'سنگال', + 'SG' => 'سنگاپور', + 'SB' => 'جزایر سلیمان', + 'SL' => 'سیرا لئون', + 'SV' => 'السالوادور', + 'SM' => 'سان مارینو', + 'SO' => 'سومالی', + 'RS' => 'صربستان', + 'SS' => 'سودان جنوبی', + 'ST' => 'سائو تومه و پرنسیپ', + 'SR' => 'سورینام', + 'SK' => 'اسلواکی', + 'SI' => 'اسلوونی', + 'SE' => 'سوئد', + 'SZ' => 'سوئیس', + 'SC' => 'سیشل', + 'SY' => 'سوریه', + 'TD' => 'چاد', + 'TG' => 'توگپ', + 'TH' => 'تایلند', + 'TJ' => 'تاجیکستان', + 'TM' => 'ترکمنستان', + 'TL' => 'تیمور-لسته', + 'TO' => 'تونگا', + 'TT' => 'ترینیداد و توباگو', + 'TN' => 'تونس', + 'TR' => 'ترکیه', + 'TV' => 'تووالو', + 'TZ' => 'تانزانیا', + 'UG' => 'اوگاندا', + 'UA' => 'اوکراین', + 'UY' => 'اوگوئه', + 'US' => 'ایالات متحده آمریکا', + 'UZ' => 'ازبکستان', + 'VA' => 'شهر واتیکان', + 'VC' => 'سنت وینسنت و گرنادین ها', + 'VE' => 'ونزوئلا', + 'VN' => 'ویتنام', + 'VU' => 'وانواتو', + 'WS' => 'ساموآ', + 'YE' => 'یمن', + 'ZA' => 'آفریقای جنوبی', + 'ZM' => 'زامبیا', + 'ZW' => 'زیمباوه', +]; diff --git a/app/config/locale/translations/fa.php b/app/config/locale/translations/fa.php new file mode 100644 index 000000000..d16593945 --- /dev/null +++ b/app/config/locale/translations/fa.php @@ -0,0 +1,21 @@ + '"هنر خردمند بودن، هنر دانستن چیزی است که باید از آن غافل شد."', // This is the line printed in the homepage and console 'view-source' + 'settings.locale' => 'fa', + 'settings.direction' => 'rtl', + + // Service - Users + 'account.emails.team' => 'تیم %s', + 'account.emails.verification.title' => 'تاییدیه حساب کاربری', + 'account.emails.verification.body' => 'fa.email.auth.confirm.tpl', + 'account.emails.recovery.title' => 'بازیابی رمز عبور', + 'account.emails.recovery.body' => 'fa.email.auth.recovery.tpl', + 'account.emails.invitation.title' => 'دعوتنامه به تیم %s در %s', + 'account.emails.invitation.body' => 'fa.email.auth.invitation.tpl', + + 'locale.country.unknown' => 'ناشناس', + + 'countries' => include 'fa.countries.php', + 'continents' => include 'fa.continents.php', +]; diff --git a/app/config/locale/translations/templates/fa.email.auth.confirm.tpl b/app/config/locale/translations/templates/fa.email.auth.confirm.tpl new file mode 100644 index 000000000..dcd33d88a --- /dev/null +++ b/app/config/locale/translations/templates/fa.email.auth.confirm.tpl @@ -0,0 +1,16 @@ +

+ +سلام {{name}}، +

+

+ برای تأیید آدرس ایمیل خود، روی این لینک کلیک کنید. +

+{{cta}} +

+اگر از شما خواسته نشده است این آدرس ایمیل را تأیید کنید، می توانید این پیام را نادیده بگیرید. +

+

+ متشکریم, +
+ تیم {{project}} +

\ No newline at end of file diff --git a/app/config/locale/translations/templates/fa.email.auth.invitation.tpl b/app/config/locale/translations/templates/fa.email.auth.invitation.tpl new file mode 100644 index 000000000..a89c7decc --- /dev/null +++ b/app/config/locale/translations/templates/fa.email.auth.invitation.tpl @@ -0,0 +1,18 @@ +

+ سلام، +

+

+ این نامه برای شما ارسال شد زیرا {{owner}} می‌خواهد شما را به عضویت تیم {{team}} در {{project}} دعوت کند. +

+

+ برای عضویت در تیم {{team}} بر روی لینک زیر کلیک کنید : +

+{{cta}} +

+اگر علاقه‌ای ندارید، می توانید این پیام را نادیده بگیرید. +

+

+ متشکریم, +
+ {{project}} تیم +

\ No newline at end of file diff --git a/app/config/locale/translations/templates/fa.email.auth.recovery.tpl b/app/config/locale/translations/templates/fa.email.auth.recovery.tpl new file mode 100644 index 000000000..b493d5e03 --- /dev/null +++ b/app/config/locale/translations/templates/fa.email.auth.recovery.tpl @@ -0,0 +1,15 @@ +

+ سلام {{name}}، +

+

+ لینک زیر را کلیک کنید تا رمز عبور {{project}} را بازیابی کنید. +

+{{cta}} +

+ اگر علاقه‌ای ندارید، می توانید این پیام را نادیده بگیرید. +

+

+ متشکریم، +
+ تیم {{project}} +

diff --git a/app/init.php b/app/init.php index d44039ec2..ba4779cdc 100644 --- a/app/init.php +++ b/app/init.php @@ -233,6 +233,7 @@ Locale::setLanguage('cz', include __DIR__.'/config/locale/translations/cz.php'); Locale::setLanguage('de', include __DIR__.'/config/locale/translations/de.php'); Locale::setLanguage('en', include __DIR__.'/config/locale/translations/en.php'); Locale::setLanguage('es', include __DIR__.'/config/locale/translations/es.php'); +Locale::setLanguage('fa', include __DIR__.'/config/locale/translations/fa.php'); Locale::setLanguage('fi', include __DIR__.'/config/locale/translations/fi.php'); Locale::setLanguage('fo', include __DIR__.'/config/locale/translations/fo.php'); Locale::setLanguage('fr', include __DIR__.'/config/locale/translations/fr.php'); From 2e6b8684eb5c3f2dccb580d4b33896002d3a873f Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Fri, 23 Oct 2020 03:42:16 +0300 Subject: [PATCH 05/52] Fixed preloading ignore path list --- app/preload.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/preload.php b/app/preload.php index 6cf308f8c..d58d6717f 100644 --- a/app/preload.php +++ b/app/preload.php @@ -23,9 +23,6 @@ include __DIR__.'/controllers/general.php'; $preloader = new Preloader(); foreach ([ - realpath(__DIR__ . '/../app/config'), - realpath(__DIR__ . '/../app/controllers'), - realpath(__DIR__ . '/../src'), realpath(__DIR__ . '/../vendor/twig/twig'), realpath(__DIR__ . '/../vendor/guzzlehttp/guzzle'), realpath(__DIR__ . '/../vendor/domnikl'), From 5df60549befb2df1fa3597fc26ccb907c38b3d79 Mon Sep 17 00:00:00 2001 From: iraj Date: Fri, 23 Oct 2020 14:15:32 +0300 Subject: [PATCH 06/52] Fix China translation typo in Farsi countries file. --- app/config/locale/translations/fa.countries.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/locale/translations/fa.countries.php b/app/config/locale/translations/fa.countries.php index af2930ca7..28a5ae0ae 100644 --- a/app/config/locale/translations/fa.countries.php +++ b/app/config/locale/translations/fa.countries.php @@ -33,7 +33,7 @@ return [ 'CA' => 'کانادا', 'CH' => 'سوئیس', 'CL' => 'شیلی', - 'CN' => ']dk', + 'CN' => 'چین', 'CI' => 'ساحل عاج', 'CM' => 'کامرون', 'CD' => 'کنگو', From 3a296ccb2544fc6f40d06a57425b6ca876f38425 Mon Sep 17 00:00:00 2001 From: iraj Date: Fri, 23 Oct 2020 18:56:06 +0300 Subject: [PATCH 07/52] improve Farsi translation. --- app/config/locale/translations/fa.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/config/locale/translations/fa.php b/app/config/locale/translations/fa.php index d16593945..35fb30afc 100644 --- a/app/config/locale/translations/fa.php +++ b/app/config/locale/translations/fa.php @@ -7,14 +7,14 @@ return [ // Service - Users 'account.emails.team' => 'تیم %s', - 'account.emails.verification.title' => 'تاییدیه حساب کاربری', + 'account.emails.verification.title' => 'تایید حساب کاربری', 'account.emails.verification.body' => 'fa.email.auth.confirm.tpl', 'account.emails.recovery.title' => 'بازیابی رمز عبور', 'account.emails.recovery.body' => 'fa.email.auth.recovery.tpl', 'account.emails.invitation.title' => 'دعوتنامه به تیم %s در %s', 'account.emails.invitation.body' => 'fa.email.auth.invitation.tpl', - 'locale.country.unknown' => 'ناشناس', + 'locale.country.unknown' => 'ناشناخته', 'countries' => include 'fa.countries.php', 'continents' => include 'fa.continents.php', From 21eacb8a63f0da9fdd7d3308a2020d03960be3b3 Mon Sep 17 00:00:00 2001 From: hack3r-0m Date: Fri, 23 Oct 2020 17:36:52 +0000 Subject: [PATCH 08/52] Replace .mmdb reader with maxmind and native C extension --- Dockerfile | 33 +++++ app/controllers/api/locale.php | 14 +- app/init.php | 2 +- composer.json | 4 +- composer.lock | 233 +++++---------------------------- 5 files changed, 75 insertions(+), 211 deletions(-) diff --git a/Dockerfile b/Dockerfile index 75c03c3e0..184784856 100755 --- a/Dockerfile +++ b/Dockerfile @@ -34,6 +34,16 @@ RUN \ RUN docker-php-ext-install sockets +RUN wget https://github.com/maxmind/libmaxminddb/releases/download/1.4.3/libmaxminddb-1.4.3.tar.gz +RUN tar -xvf libmaxminddb-1.4.3.tar.gz && \ + cd ./libmaxminddb-1.4.3 && \ + ./configure && \ + make && \ + make check && \ + make install && \ + ldconfig ./libmaxminddb-1.4.3 + + RUN \ # Redis Extension wget -q https://github.com/phpredis/phpredis/archive/$PHP_REDIS_VERSION.tar.gz && \ @@ -128,6 +138,29 @@ COPY ./docs /usr/src/code/docs COPY ./public /usr/src/code/public COPY ./src /usr/src/code/src +RUN \ + apk add --no-cache --virtual .deps \ + make \ + automake \ + autoconf \ + gcc \ + g++ \ + tar \ + wget \ + git \ + zlib-dev \ + brotli-dev + +RUN apk add libmaxminddb-dev && \ + cd vendor/maxmind-db/reader/ext && ls -a && \ + phpize && \ + ./configure && \ + make && \ + make test && \ + make install + +RUN echo extension=maxminddb.so >> /usr/local/etc/php/php.ini + # Set Volumes RUN mkdir -p /storage/uploads && \ mkdir -p /storage/cache && \ diff --git a/app/controllers/api/locale.php b/app/controllers/api/locale.php index 8be46d8e4..04524abe5 100644 --- a/app/controllers/api/locale.php +++ b/app/controllers/api/locale.php @@ -30,16 +30,16 @@ App::get('/v1/locale') $currency = null; try { - $record = $geodb->country($ip); - $output['countryCode'] = $record->country->isoCode; - $output['country'] = (isset($countries[$record->country->isoCode])) ? $countries[$record->country->isoCode] : $locale->getText('locale.country.unknown'); + $record = $geodb->get($ip); + $output['countryCode'] = $record['country']['iso_code']; + $output['country'] = (isset($countries[$record['country']['iso_code']])) ? $countries[$record['country']['iso_code']] : $locale->getText('locale.country.unknown'); //$output['countryTimeZone'] = DateTimeZone::listIdentifiers(DateTimeZone::PER_COUNTRY, $record->country->isoCode); - $output['continent'] = (isset($continents[$record->continent->code])) ? $continents[$record->continent->code] : $locale->getText('locale.country.unknown'); - $output['continentCode'] = $record->continent->code; - $output['eu'] = (\in_array($record->country->isoCode, $eu)) ? true : false; + $output['continent'] = (isset($continents[$record['continent']['code']])) ? $continents[$record['continent']['code']] : $locale->getText('locale.country.unknown'); + $output['continentCode'] = $record['continent']['code']; + $output['eu'] = (\in_array($record['country']['iso_code'], $eu)) ? true : false; foreach ($currencies as $code => $element) { - if (isset($element['locations']) && isset($element['code']) && \in_array($record->country->isoCode, $element['locations'])) { + if (isset($element['locations']) && isset($element['code']) && \in_array($record['country']['iso_code'], $element['locations'])) { $currency = $element['code']; } } diff --git a/app/init.php b/app/init.php index 9637c4381..1afa2a837 100644 --- a/app/init.php +++ b/app/init.php @@ -25,7 +25,7 @@ use Utopia\View; use Utopia\Config\Config; use Utopia\Locale\Locale; use Utopia\Registry\Registry; -use GeoIp2\Database\Reader; +use MaxMind\Db\Reader; use PHPMailer\PHPMailer\PHPMailer; use PDO as PDONative; diff --git a/composer.json b/composer.json index 7f3faed7e..8b49062d4 100644 --- a/composer.json +++ b/composer.json @@ -45,7 +45,7 @@ "utopia-php/domains": "1.1.*", "resque/php-resque": "1.3.6", - "geoip2/geoip2": "2.10.0", + "maxmind-db/reader": "1.8.*", "piwik/device-detector": "3.13.0", "dragonmantank/cron-expression": "3.0.1", "domnikl/statsd": "3.0.*", @@ -73,4 +73,4 @@ "php": "7.4" } } -} \ No newline at end of file +} diff --git a/composer.lock b/composer.lock index 2d881b4b1..a7c4e3981 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "19f7cef86ddc98623cd3ffffa2be2cae", + "content-hash": "555bdf22c5a6417b7336ce7e616eba50", "packages": [ { "name": "appwrite/php-clamav", @@ -140,76 +140,6 @@ "homepage": "https://github.com/colinmollenhour/credis", "time": "2020-10-13T23:55:13+00:00" }, - { - "name": "composer/ca-bundle", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/composer/ca-bundle.git", - "reference": "8a7ecad675253e4654ea05505233285377405215" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/8a7ecad675253e4654ea05505233285377405215", - "reference": "8a7ecad675253e4654ea05505233285377405215", - "shasum": "" - }, - "require": { - "ext-openssl": "*", - "ext-pcre": "*", - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8", - "psr/log": "^1.0", - "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\CaBundle\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", - "keywords": [ - "cabundle", - "cacert", - "certificate", - "ssl", - "tls" - ], - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2020-08-23T12:54:47+00:00" - }, { "name": "dasprid/enum", "version": "1.0.3", @@ -357,59 +287,6 @@ ], "time": "2020-08-21T02:30:13+00:00" }, - { - "name": "geoip2/geoip2", - "version": "v2.10.0", - "source": { - "type": "git", - "url": "https://github.com/maxmind/GeoIP2-php.git", - "reference": "419557cd21d9fe039721a83490701a58c8ce784a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/maxmind/GeoIP2-php/zipball/419557cd21d9fe039721a83490701a58c8ce784a", - "reference": "419557cd21d9fe039721a83490701a58c8ce784a", - "shasum": "" - }, - "require": { - "ext-json": "*", - "maxmind-db/reader": "~1.5", - "maxmind/web-service-common": "~0.6", - "php": ">=5.6" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "2.*", - "phpunit/phpunit": "5.*", - "squizlabs/php_codesniffer": "3.*" - }, - "type": "library", - "autoload": { - "psr-4": { - "GeoIp2\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Gregory J. Oschwald", - "email": "goschwald@maxmind.com", - "homepage": "https://www.maxmind.com/" - } - ], - "description": "MaxMind GeoIP2 PHP API", - "homepage": "https://github.com/maxmind/GeoIP2-php", - "keywords": [ - "IP", - "geoip", - "geoip2", - "geolocation", - "maxmind" - ], - "time": "2019-12-12T18:48:39+00:00" - }, { "name": "guzzlehttp/guzzle", "version": "7.2.0", @@ -514,12 +391,12 @@ "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "60d379c243457e073cff02bc323a2a86cb355631" + "reference": "ddfeedfff2a52661429437da0702979f708e6ac6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631", - "reference": "60d379c243457e073cff02bc323a2a86cb355631", + "url": "https://api.github.com/repos/guzzle/promises/zipball/ddfeedfff2a52661429437da0702979f708e6ac6", + "reference": "ddfeedfff2a52661429437da0702979f708e6ac6", "shasum": "" }, "require": { @@ -557,7 +434,7 @@ "keywords": [ "promise" ], - "time": "2020-09-30T07:37:28+00:00" + "time": "2020-10-19T16:50:15+00:00" }, { "name": "guzzlehttp/psr7", @@ -565,12 +442,12 @@ "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3" + "reference": "25f7f893f0b52b7b14e244a16679d72b1f0088de" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3", - "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/25f7f893f0b52b7b14e244a16679d72b1f0088de", + "reference": "25f7f893f0b52b7b14e244a16679d72b1f0088de", "shasum": "" }, "require": { @@ -628,7 +505,7 @@ "uri", "url" ], - "time": "2020-09-30T07:37:11+00:00" + "time": "2020-10-22T07:42:05+00:00" }, { "name": "influxdb/influxdb-php", @@ -751,52 +628,6 @@ ], "time": "2020-10-01T17:30:21+00:00" }, - { - "name": "maxmind/web-service-common", - "version": "v0.8.0", - "source": { - "type": "git", - "url": "https://github.com/maxmind/web-service-common-php.git", - "reference": "ba67d9532cfaf499bd71774b8170d05df4f75fb7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/maxmind/web-service-common-php/zipball/ba67d9532cfaf499bd71774b8170d05df4f75fb7", - "reference": "ba67d9532cfaf499bd71774b8170d05df4f75fb7", - "shasum": "" - }, - "require": { - "composer/ca-bundle": "^1.0.3", - "ext-curl": "*", - "ext-json": "*", - "php": ">=7.2" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "2.*", - "phpunit/phpunit": "^8.0 || ^9.0", - "squizlabs/php_codesniffer": "3.*" - }, - "type": "library", - "autoload": { - "psr-4": { - "MaxMind\\Exception\\": "src/Exception", - "MaxMind\\WebService\\": "src/WebService" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Gregory Oschwald", - "email": "goschwald@maxmind.com" - } - ], - "description": "Internal MaxMind Web Service API", - "homepage": "https://github.com/maxmind/web-service-common-php", - "time": "2020-10-01T15:28:36+00:00" - }, { "name": "mustangostang/spyc", "version": "dev-master", @@ -1713,7 +1544,7 @@ "source": { "type": "git", "url": "https://github.com/appwrite/sdk-generator", - "reference": "a57b3cd56c4bfe1538276cfc77456cf95d8835cb" + "reference": "ad1ee55f61967546c0889d377b628e244182311e" }, "require": { "ext-curl": "*", @@ -1743,7 +1574,7 @@ } ], "description": "Appwrite PHP library for generating API SDKs for multiple programming languages and platforms", - "time": "2020-10-14T12:07:25+00:00" + "time": "2020-10-20T10:23:43+00:00" }, { "name": "doctrine/instantiator", @@ -2646,12 +2477,12 @@ "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "338bf27b4510498c4b0ab70c7cbc292a591dc0df" + "reference": "b2a9914fd2057a72ec65bc9b3cd963c831a1b14b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/338bf27b4510498c4b0ab70c7cbc292a591dc0df", - "reference": "338bf27b4510498c4b0ab70c7cbc292a591dc0df", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b2a9914fd2057a72ec65bc9b3cd963c831a1b14b", + "reference": "b2a9914fd2057a72ec65bc9b3cd963c831a1b14b", "shasum": "" }, "require": { @@ -2737,7 +2568,7 @@ "type": "github" } ], - "time": "2020-10-19T09:25:00+00:00" + "time": "2020-10-22T06:06:02+00:00" }, { "name": "sebastian/cli-parser", @@ -3675,16 +3506,16 @@ }, { "name": "symfony/polyfill-ctype", - "version": "dev-master", + "version": "dev-main", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "1c302646f6efc070cd46856e600e5e0684d6b454" + "reference": "325e20642232b66e3f140a76f795b58b50a08787" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/1c302646f6efc070cd46856e600e5e0684d6b454", - "reference": "1c302646f6efc070cd46856e600e5e0684d6b454", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/325e20642232b66e3f140a76f795b58b50a08787", + "reference": "325e20642232b66e3f140a76f795b58b50a08787", "shasum": "" }, "require": { @@ -3696,7 +3527,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.19-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3747,20 +3578,20 @@ "type": "tidelift" } ], - "time": "2020-07-14T12:35:20+00:00" + "time": "2020-10-21T09:57:48+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "dev-master", + "version": "dev-main", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "48928d471ede0548b399f54b0286fe0d0ed79267" + "reference": "15e533d0893e58cc6c7a1971046a3dfc219435f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/48928d471ede0548b399f54b0286fe0d0ed79267", - "reference": "48928d471ede0548b399f54b0286fe0d0ed79267", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/15e533d0893e58cc6c7a1971046a3dfc219435f2", + "reference": "15e533d0893e58cc6c7a1971046a3dfc219435f2", "shasum": "" }, "require": { @@ -3772,7 +3603,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-main": "1.19-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3824,7 +3655,7 @@ "type": "tidelift" } ], - "time": "2020-09-14T11:01:58+00:00" + "time": "2020-10-21T09:57:48+00:00" }, { "name": "theseer/tokenizer", @@ -3878,16 +3709,16 @@ "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "fa2f1ccdb44a973571235c4a78487c040f26f116" + "reference": "78173b3c850e344cb8515fc2a05138d39a6c39e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/fa2f1ccdb44a973571235c4a78487c040f26f116", - "reference": "fa2f1ccdb44a973571235c4a78487c040f26f116", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/78173b3c850e344cb8515fc2a05138d39a6c39e0", + "reference": "78173b3c850e344cb8515fc2a05138d39a6c39e0", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": ">=7.2.5", "symfony/polyfill-ctype": "^1.8", "symfony/polyfill-mbstring": "^1.3" }, @@ -3945,7 +3776,7 @@ "type": "tidelift" } ], - "time": "2020-10-14T06:37:57+00:00" + "time": "2020-10-21T12:45:52+00:00" }, { "name": "webmozart/assert", From 198b6e02b27e73868952f2a95cd0841a5c435884 Mon Sep 17 00:00:00 2001 From: hack3r-0m Date: Fri, 23 Oct 2020 17:46:51 +0000 Subject: [PATCH 09/52] refactored Dockerfile --- Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 184784856..c0f66d1c5 100755 --- a/Dockerfile +++ b/Dockerfile @@ -34,6 +34,8 @@ RUN \ RUN docker-php-ext-install sockets +# install C extension for .mmdb reader +# https://github.com/maxmind/libmaxminddb RUN wget https://github.com/maxmind/libmaxminddb/releases/download/1.4.3/libmaxminddb-1.4.3.tar.gz RUN tar -xvf libmaxminddb-1.4.3.tar.gz && \ cd ./libmaxminddb-1.4.3 && \ @@ -43,7 +45,6 @@ RUN tar -xvf libmaxminddb-1.4.3.tar.gz && \ make install && \ ldconfig ./libmaxminddb-1.4.3 - RUN \ # Redis Extension wget -q https://github.com/phpredis/phpredis/archive/$PHP_REDIS_VERSION.tar.gz && \ @@ -151,6 +152,7 @@ RUN \ zlib-dev \ brotli-dev +# Enabling C extension for .mmdb reader and adding loading it RUN apk add libmaxminddb-dev && \ cd vendor/maxmind-db/reader/ext && ls -a && \ phpize && \ From 9e7d7911253bb59ab8cb8e5a69ef9e2e00622e81 Mon Sep 17 00:00:00 2001 From: "Eldad A. Fux" Date: Sat, 24 Oct 2020 00:24:20 +0300 Subject: [PATCH 10/52] Update CONTRIBUTING.md --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 223312c88..32d528e75 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -239,7 +239,7 @@ docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t appwrite/ To run tests manually, use the Appwrite Docker CLI from your terminal: ```bash -docker exec appwrite test +docker-compose exec appwrite test ``` ## Code Maintenance From eb2018b99e520df1e4a443b8efbfac4e707d11e7 Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Sat, 24 Oct 2020 01:50:13 +0300 Subject: [PATCH 11/52] Updated base image --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8a86a910f..a94ad16e8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:18.04 AS builder +FROM ubuntu:20.04 AS builder LABEL maintainer="team@appwrite.io" @@ -43,7 +43,7 @@ RUN composer update --ignore-platform-reqs --optimize-autoloader \ --no-plugins --no-scripts --prefer-dist \ `if [ "$TESTING" != "true" ]; then echo "--no-dev"; fi` -FROM ubuntu:18.04 +FROM ubuntu:20.04 LABEL maintainer="team@appwrite.io" ARG VERSION=dev From f97af2e5d2c53879dbb8f5697de28358fb755d4e Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Sat, 24 Oct 2020 01:58:27 +0300 Subject: [PATCH 12/52] Updated base OS --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index a94ad16e8..fa6e1ed7b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:20.04 AS builder +FROM ubuntu:19.04 AS builder LABEL maintainer="team@appwrite.io" @@ -43,7 +43,7 @@ RUN composer update --ignore-platform-reqs --optimize-autoloader \ --no-plugins --no-scripts --prefer-dist \ `if [ "$TESTING" != "true" ]; then echo "--no-dev"; fi` -FROM ubuntu:20.04 +FROM ubuntu:19.04 LABEL maintainer="team@appwrite.io" ARG VERSION=dev From f74d9258ddafa6d67ad235730f8e4644cd600432 Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Sat, 24 Oct 2020 02:03:47 +0300 Subject: [PATCH 13/52] Updated base OS --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index fa6e1ed7b..f7f61030c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:19.04 AS builder +FROM ubuntu:19.10 AS builder LABEL maintainer="team@appwrite.io" @@ -43,7 +43,7 @@ RUN composer update --ignore-platform-reqs --optimize-autoloader \ --no-plugins --no-scripts --prefer-dist \ `if [ "$TESTING" != "true" ]; then echo "--no-dev"; fi` -FROM ubuntu:19.04 +FROM ubuntu:19.10 LABEL maintainer="team@appwrite.io" ARG VERSION=dev From c97ebbe52c59e5228a959dde5b973cb891f8ca1a Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Sat, 24 Oct 2020 02:06:58 +0300 Subject: [PATCH 14/52] Updated base OS --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index f7f61030c..37c5fd902 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:19.10 AS builder +FROM ubuntu:20.10 AS builder LABEL maintainer="team@appwrite.io" @@ -43,7 +43,7 @@ RUN composer update --ignore-platform-reqs --optimize-autoloader \ --no-plugins --no-scripts --prefer-dist \ `if [ "$TESTING" != "true" ]; then echo "--no-dev"; fi` -FROM ubuntu:19.10 +FROM ubuntu:20.10 LABEL maintainer="team@appwrite.io" ARG VERSION=dev From c3511b00804bceb63a4a198a4edde7e6d679057f Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Sat, 24 Oct 2020 02:34:33 +0300 Subject: [PATCH 15/52] Updated certbot setup --- Dockerfile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 37c5fd902..9a58abe89 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:20.10 AS builder +FROM ubuntu:20.04 AS builder LABEL maintainer="team@appwrite.io" @@ -43,7 +43,7 @@ RUN composer update --ignore-platform-reqs --optimize-autoloader \ --no-plugins --no-scripts --prefer-dist \ `if [ "$TESTING" != "true" ]; then echo "--no-dev"; fi` -FROM ubuntu:20.10 +FROM ubuntu:20.04 LABEL maintainer="team@appwrite.io" ARG VERSION=dev @@ -91,7 +91,6 @@ RUN \ apt-get install -y --no-install-recommends --no-install-suggests wget ca-certificates software-properties-common build-essential libpcre3-dev zlib1g-dev libssl-dev openssl gnupg htop supervisor && \ LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php && \ add-apt-repository universe && \ - add-apt-repository ppa:certbot/certbot && \ apt-get update && \ apt-get install -y --no-install-recommends --no-install-suggests php$PHP_VERSION php$PHP_VERSION-fpm \ php$PHP_VERSION-mysqlnd php$PHP_VERSION-curl php$PHP_VERSION-imagick php$PHP_VERSION-mbstring php$PHP_VERSION-dom webp certbot && \ From cfbc32122f2b72ca733f53012427c34d9739f796 Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Sat, 24 Oct 2020 07:48:19 +0300 Subject: [PATCH 16/52] Fixed domain lib --- app/app.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/app.php b/app/app.php index e92660b5a..3f6735fdb 100644 --- a/app/app.php +++ b/app/app.php @@ -67,7 +67,7 @@ $utopia->init(function () use ($utopia, $request, $response, &$user, $project, $ ? $origin : 'localhost') . (!empty($port) ? ':'.$port : ''); $selfDomain = new Domain(Config::getParam('hostname')); - $endDomain = new Domain($origin); + $endDomain = new Domain((string)$origin); Config::setParam('domainVerification', ($selfDomain->getRegisterable() === $endDomain->getRegisterable()) && From eb1e44cb0582c579505d64c2f39177e42fb4c189 Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Sat, 24 Oct 2020 08:24:47 +0300 Subject: [PATCH 17/52] Updated preview controller --- app/controllers/api/storage.php | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/app/controllers/api/storage.php b/app/controllers/api/storage.php index 9a12b5604..853bdade6 100644 --- a/app/controllers/api/storage.php +++ b/app/controllers/api/storage.php @@ -429,18 +429,16 @@ $utopia->get('/v1/storage/files/:fileId/preview') $output = (empty($output)) ? $type : $output; - $response - ->setContentType($outputs[$output]) - ->addHeader('Expires', $date) - ->addHeader('X-Appwrite-Cache', 'miss') - ->send('') - ; - $data = $resize->output($output, $quality); $cache->save($key, $data); - echo $data; + $response + ->setContentType($outputs[$output]) + ->addHeader('Expires', $date) + ->addHeader('X-Appwrite-Cache', 'miss') + ->send($data) + ; unset($resize); } From b34dd6714ed380bf09738faacf4c4a632408fdd0 Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Sat, 24 Oct 2020 08:42:15 +0300 Subject: [PATCH 18/52] Updated cropping tests --- public/index.php | 6 +++--- tests/resources/resize/100x100-q30.jpg | Bin 797 -> 799 bytes tests/resources/resize/100x100.gif | Bin 608220 -> 610124 bytes tests/resources/resize/100x100.jpg | Bin 9254 -> 9417 bytes tests/resources/resize/100x100.png | Bin 20148 -> 20085 bytes tests/resources/resize/100x100.webp | Bin 5094 -> 5134 bytes tests/resources/resize/100x400.jpg | Bin 31166 -> 31830 bytes tests/resources/resize/400x100.jpg | Bin 22863 -> 23841 bytes 8 files changed, 3 insertions(+), 3 deletions(-) diff --git a/public/index.php b/public/index.php index c87b14a26..a80a35132 100644 --- a/public/index.php +++ b/public/index.php @@ -11,9 +11,9 @@ error_reporting(0); ini_set('display_errors', 0); -// ini_set('display_errors', 1); -// ini_set('display_startup_errors', 1); -// error_reporting(E_ALL); +ini_set('display_errors', 1); +ini_set('display_startup_errors', 1); +error_reporting(E_ALL); $path = (isset($_GET['q'])) ? explode('/', $_GET['q']) : []; diff --git a/tests/resources/resize/100x100-q30.jpg b/tests/resources/resize/100x100-q30.jpg index 67cfd6b9512cf9b32c92e8765900db091c05a5c7..23933efc869efbc67db35051e6d8adce919c19d6 100644 GIT binary patch delta 530 zcmV+t0`2{s2A>9y&m|`i00II60s;a80R;d600000009CK10fPI1VJKUQE?L#BSL|Z z^Gtugr_tDwj8a~aT(SO4O)l2Z93TJy*9I4n+tgS6H1d*!BN(K%5y}7n002k9XokZ7xd9R@qThlu}7jM<1B) zDqnwQrh1mwYm6OPa&_xvTBBzP#qs~1H znIj(dbG%V*($E~_nsANQiFnfd1!qVX;J$zrLgokm;@F{Pyi4A+0)DCH2?qr delta 528 zcmV+r0`L8w2Au|w&m<-g00II60s;a80s{a500000009CK10fPI1VJKUQE?L#BSMk% zOn=Mi^mZhp6qlq|EPs;|OSQBI2mk;z!G+{@^%egBO+2Kb2*xQbgmQoY000sIP_z}z zFS4eX70%zFI^4cRli8I%cj&sZ1hC_qwyX44`jEXgT}myb$yut~Dk_qSNh(O=^Bv_& z@Q&#%93E2t04@C>Fa(eQ00e*nhL{~p%zv~kO;8`d=-~1t&m&-BK_CbK0U&}xhS+hrJAD~KE>fg+#ynz> z1=)10vPy|dWJP!~>q}*bDCE!NZ-gK1oVR`UZ{_3RJ4%x|zz_fc024&UExJaE3V%!E zD*cv(IJ>mMw#NmEKV+$XOx8r*H?qhhWh7gYFtX6QAlH(zc@X*tqMk%l@jY~T$DxxX zW8ThpiY?k&1Dumi5xUVY8ef2{sRK?6=mB0%n)Xa4$X?S5G{_=*nPoZ0-J-IhUel8)Y+3hB{rdmRY9Z#`I??$@c81T${FPvU)MM z>_@$kS}RW9LQmwWke#ZcT|r;4B2%Y8t7*Gn1M0-vumB=&bN~pqO<7df06)|%!~h|Z S0Y$E&MYidHL1dKx0RP#1i0eH7 diff --git a/tests/resources/resize/100x100.gif b/tests/resources/resize/100x100.gif index 30ef716cd040db04cbd4d09cd690c902ad48e19a..864dc7c0242a7ac0100036291547e42c5f47469a 100644 GIT binary patch literal 610124 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

{8nvs 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

diff --git a/app/views/console/home/index.phtml b/app/views/console/home/index.phtml index 50f4a30b0..afc44428f 100644 --- a/app/views/console/home/index.phtml +++ b/app/views/console/home/index.phtml @@ -135,7 +135,7 @@ $graph = $this->getParam('graph', false); -

+

From 4c8c019316de39abb81cba5eda7c820158c47b71 Mon Sep 17 00:00:00 2001 From: hack3r-0m <54898623+hack3r-0m@users.noreply.github.com> Date: Sun, 25 Oct 2020 08:01:41 -0700 Subject: [PATCH 38/52] Update eu.php since time() cannot be less than 2020-01-31, 'GB' is not required --- app/config/locale/eu.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/config/locale/eu.php b/app/config/locale/eu.php index fbefd2369..3db5b8773 100644 --- a/app/config/locale/eu.php +++ b/app/config/locale/eu.php @@ -30,8 +30,4 @@ $list = [ 'SE', // Sweden ]; -if (\time() < \strtotime('2020-01-31')) { // @see https://en.wikipedia.org/wiki/Brexit - $list[] = 'GB'; // // United Kingdom -} - return $list; From 4f14d79d88a820f02de59b7145a21fea7d920052 Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Sun, 25 Oct 2020 21:59:18 +0200 Subject: [PATCH 39/52] Updated installation --- app/tasks/install.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/tasks/install.php b/app/tasks/install.php index cb287c00a..5345ad627 100644 --- a/app/tasks/install.php +++ b/app/tasks/install.php @@ -144,10 +144,6 @@ $cli $stderr = ''; Console::log("Running \"docker-compose -f {$path}/docker-compose.yml up -d --remove-orphans\""); - - $files1 = scandir($path); - - print_r($files1); $exit = Console::execute("docker-compose -f {$path}/docker-compose.yml up -d --remove-orphans", null, $stdout, $stderr); From bff0e4db58ce6d60f91d00d494a9d5ea40c40b85 Mon Sep 17 00:00:00 2001 From: Pedro Cisneros Santana <37348419+PedroCisnerosSantana@users.noreply.github.com> Date: Mon, 26 Oct 2020 14:23:58 +0100 Subject: [PATCH 40/52] Bugs fixed - Updated qrcode to v4.2 - Removed baconqrcode from composer - Removed comments - Fixed some indents - Fixed the QR endpoint --- app/controllers/api/avatars.php | 97 +++++++++++++-------------------- composer.json | 3 +- 2 files changed, 40 insertions(+), 60 deletions(-) diff --git a/app/controllers/api/avatars.php b/app/controllers/api/avatars.php index c0ccbcb2d..386406a25 100644 --- a/app/controllers/api/avatars.php +++ b/app/controllers/api/avatars.php @@ -11,22 +11,17 @@ use Utopia\Cache\Cache; use Utopia\Cache\Adapter\Filesystem; use Appwrite\Resize\Resize; use Appwrite\URL\URL as URLParse; -/* use BaconQrCode\Renderer\ImageRenderer; -use BaconQrCode\Renderer\Image\ImagickImageBackEnd; -use BaconQrCode\Renderer\RendererStyle\RendererStyle; -use BaconQrCode\Writer; */ use Utopia\Config\Config; use Utopia\Validator\HexColor; use chillerlan\QRCode\QRCode; use chillerlan\QRCode\QROptions; -/* use SebastianBergmann\CodeCoverage\Report\Html\Renderer; */ $avatarCallback = function ($type, $code, $width, $height, $quality, $response) { /** @var Utopia\Response $response */ $code = \strtolower($code); $type = \strtolower($type); - $set = Config::getParam('avatar-'.$type, []); + $set = Config::getParam('avatar-' . $type, []); if (empty($set)) { throw new Exception('Avatar set not found', 404); @@ -41,16 +36,16 @@ $avatarCallback = function ($type, $code, $width, $height, $quality, $response) } $output = 'png'; - $date = \date('D, d M Y H:i:s', \time() + (60 * 60 * 24 * 45)).' GMT'; // 45 days cache - $key = \md5('/v1/avatars/:type/:code-'.$code.$width.$height.$quality.$output); + $date = \date('D, d M Y H:i:s', \time() + (60 * 60 * 24 * 45)) . ' GMT'; // 45 days cache + $key = \md5('/v1/avatars/:type/:code-' . $code . $width . $height . $quality . $output); $path = $set[$code]; $type = 'png'; if (!\is_readable($path)) { - throw new Exception('File not readable in '.$path, 500); + throw new Exception('File not readable in ' . $path, 500); } - $cache = new Cache(new Filesystem(APP_STORAGE_CACHE.'/app-0')); // Limit file number or size + $cache = new Cache(new Filesystem(APP_STORAGE_CACHE . '/app-0')); // Limit file number or size $data = $cache->load($key, 60 * 60 * 24 * 30 * 3 /* 3 months */); if ($data) { @@ -60,8 +55,7 @@ $avatarCallback = function ($type, $code, $width, $height, $quality, $response) ->setContentType('image/png') ->addHeader('Expires', $date) ->addHeader('X-Appwrite-Cache', 'hit') - ->send($data) - ; + ->send($data); } $resize = new Resize(\file_get_contents($path)); @@ -71,15 +65,14 @@ $avatarCallback = function ($type, $code, $width, $height, $quality, $response) $output = (empty($output)) ? $type : $output; $data = $resize->output($output, $quality); - + $cache->save($key, $data); - + $response ->setContentType('image/png') ->addHeader('Expires', $date) ->addHeader('X-Appwrite-Cache', 'miss') - ->send($data, null); - ; + ->send($data, null);; unset($resize); }; @@ -93,7 +86,7 @@ App::get('/v1/avatars/credit-cards/:code') ->label('sdk.method', 'getCreditCard') ->label('sdk.methodType', 'location') ->label('sdk.description', '/docs/references/avatars/get-credit-card.md') - ->param('code', '', new WhiteList(\array_keys(Config::getParam('avatar-credit-cards'))), 'Credit Card Code. Possible values: '.\implode(', ', \array_keys(Config::getParam('avatar-credit-cards'))).'.') + ->param('code', '', new WhiteList(\array_keys(Config::getParam('avatar-credit-cards'))), 'Credit Card Code. Possible values: ' . \implode(', ', \array_keys(Config::getParam('avatar-credit-cards'))) . '.') ->param('width', 100, new Range(0, 2000), 'Image width. Pass an integer between 0 to 2000. Defaults to 100.', true) ->param('height', 100, new Range(0, 2000), 'Image height. Pass an integer between 0 to 2000. Defaults to 100.', true) ->param('quality', 100, new Range(0, 100), 'Image quality. Pass an integer between 0 to 100. Defaults to 100.', true) @@ -152,10 +145,10 @@ App::get('/v1/avatars/image') $quality = 80; $output = 'png'; - $date = \date('D, d M Y H:i:s', \time() + (60 * 60 * 24 * 45)).' GMT'; // 45 days cache - $key = \md5('/v2/avatars/images-'.$url.'-'.$width.'/'.$height.'/'.$quality); + $date = \date('D, d M Y H:i:s', \time() + (60 * 60 * 24 * 45)) . ' GMT'; // 45 days cache + $key = \md5('/v2/avatars/images-' . $url . '-' . $width . '/' . $height . '/' . $quality); $type = 'png'; - $cache = new Cache(new Filesystem(APP_STORAGE_CACHE.'/app-0')); // Limit file number or size + $cache = new Cache(new Filesystem(APP_STORAGE_CACHE . '/app-0')); // Limit file number or size $data = $cache->load($key, 60 * 60 * 24 * 7 /* 1 week */); if ($data) { @@ -163,8 +156,7 @@ App::get('/v1/avatars/image') ->setContentType('image/png') ->addHeader('Expires', $date) ->addHeader('X-Appwrite-Cache', 'hit') - ->send($data) - ; + ->send($data); } if (!\extension_loaded('imagick')) { @@ -186,17 +178,16 @@ App::get('/v1/avatars/image') $resize->crop((int) $width, (int) $height); $output = (empty($output)) ? $type : $output; - + $data = $resize->output($output, $quality); - + $cache->save($key, $data); $response ->setContentType('image/png') ->addHeader('Expires', $date) ->addHeader('X-Appwrite-Cache', 'miss') - ->send($data); - ; + ->send($data);; unset($resize); }, ['response']); @@ -218,10 +209,10 @@ App::get('/v1/avatars/favicon') $height = 56; $quality = 80; $output = 'png'; - $date = \date('D, d M Y H:i:s', \time() + (60 * 60 * 24 * 45)).' GMT'; // 45 days cache - $key = \md5('/v2/avatars/favicon-'.$url); + $date = \date('D, d M Y H:i:s', \time() + (60 * 60 * 24 * 45)) . ' GMT'; // 45 days cache + $key = \md5('/v2/avatars/favicon-' . $url); $type = 'png'; - $cache = new Cache(new Filesystem(APP_STORAGE_CACHE.'/app-0')); // Limit file number or size + $cache = new Cache(new Filesystem(APP_STORAGE_CACHE . '/app-0')); // Limit file number or size $data = $cache->load($key, 60 * 60 * 24 * 30 * 3 /* 3 months */); if ($data) { @@ -229,8 +220,7 @@ App::get('/v1/avatars/favicon') ->setContentType('image/png') ->addHeader('Expires', $date) ->addHeader('X-Appwrite-Cache', 'hit') - ->send($data) - ; + ->send($data); } if (!\extension_loaded('imagick')) { @@ -244,7 +234,8 @@ App::get('/v1/avatars/favicon') CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS => 3, CURLOPT_URL => $url, - CURLOPT_USERAGENT => \sprintf(APP_USERAGENT, + CURLOPT_USERAGENT => \sprintf( + APP_USERAGENT, App::getEnv('_APP_VERSION', 'UNKNOWN'), App::getEnv('_APP_SYSTEM_SECURITY_EMAIL_ADDRESS', APP_EMAIL_SECURITY) ), @@ -305,7 +296,7 @@ App::get('/v1/avatars/favicon') if (empty($outputHref) || empty($outputExt)) { $default = \parse_url($url); - $outputHref = $default['scheme'].'://'.$default['host'].'/favicon.ico'; + $outputHref = $default['scheme'] . '://' . $default['host'] . '/favicon.ico'; $outputExt = 'ico'; } @@ -322,8 +313,7 @@ App::get('/v1/avatars/favicon') ->setContentType('image/x-icon') ->addHeader('Expires', $date) ->addHeader('X-Appwrite-Cache', 'miss') - ->send($data) - ; + ->send($data); } $fetch = @\file_get_contents($outputHref, false); @@ -368,28 +358,20 @@ App::get('/v1/avatars/qr') /** @var Utopia\Response $response */ $download = ($download === '1' || $download === 'true' || $download === 1 || $download === true); - - /* $renderer = new ImageRenderer( - new RendererStyle($size, $margin), - new ImagickImageBackEnd('png', 100) - ); */ $qropts = new QROptions([ 'quietzone' => $size ]); $qrcode = new QRCode($qropts); $qrcode->render($text); - /* $writer = new Writer($renderer); */ - if ($download) { $response->addHeader('Content-Disposition', 'attachment; filename="qr.png"'); } $response - ->addHeader('Expires', \date('D, d M Y H:i:s', \time() + (60 * 60 * 24 * 45)).' GMT') // 45 days cache + ->addHeader('Expires', \date('D, d M Y H:i:s', \time() + (60 * 60 * 24 * 45)) . ' GMT') // 45 days cache ->setContentType('image/png') - /* ->send($writer->writeString($text)) */ - ; + ->send($qrcode->render($text)); }, ['response']); App::get('/v1/avatars/initials') @@ -423,7 +405,7 @@ App::get('/v1/avatars/initials') ['color' => '#610008', 'background' => '#f6d2d5'] // RED ]; - $rand = \rand(0, \count($themes)-1); + $rand = \rand(0, \count($themes) - 1); $name = (!empty($name)) ? $name : $user->getAttribute('name', $user->getAttribute('email', '')); $words = \explode(' ', \strtoupper($name)); @@ -440,23 +422,23 @@ App::get('/v1/avatars/initials') } $length = \count($words); - $rand = \substr($code,-1); - $background = (!empty($background)) ? '#'.$background : $themes[$rand]['background']; - $color = (!empty($color)) ? '#'.$color : $themes[$rand]['color']; + $rand = \substr($code, -1); + $background = (!empty($background)) ? '#' . $background : $themes[$rand]['background']; + $color = (!empty($color)) ? '#' . $color : $themes[$rand]['color']; $image = new \Imagick(); $draw = new \ImagickDraw(); $fontSize = \min($width, $height) / 2; - - $draw->setFont(__DIR__."/../../../public/fonts/poppins-v9-latin-500.ttf"); - $image->setFont(__DIR__."/../../../public/fonts/poppins-v9-latin-500.ttf"); + + $draw->setFont(__DIR__ . "/../../../public/fonts/poppins-v9-latin-500.ttf"); + $image->setFont(__DIR__ . "/../../../public/fonts/poppins-v9-latin-500.ttf"); $draw->setFillColor(new \ImagickPixel($color)); $draw->setFontSize($fontSize); - + $draw->setTextAlignment(\Imagick::ALIGN_CENTER); $draw->annotation($width / 1.97, ($height / 2) + ($fontSize / 3), $initials); - + $image->newImage($width, $height, $background); $image->setImageFormat("png"); $image->drawImage($draw); @@ -464,8 +446,7 @@ App::get('/v1/avatars/initials') //$image->setImageCompressionQuality(9 - round(($quality / 100) * 9)); $response - ->addHeader('Expires', \date('D, d M Y H:i:s', \time() + (60 * 60 * 24 * 45)).' GMT') // 45 days cache + ->addHeader('Expires', \date('D, d M Y H:i:s', \time() + (60 * 60 * 24 * 45)) . ' GMT') // 45 days cache ->setContentType('image/png') - ->send($image->getImageBlob()) - ; - }, ['response', 'user']); \ No newline at end of file + ->send($image->getImageBlob()); + }, ['response', 'user']); diff --git a/composer.json b/composer.json index 7f186fd59..cff7b542b 100644 --- a/composer.json +++ b/composer.json @@ -49,9 +49,8 @@ "dragonmantank/cron-expression": "3.0.1", "domnikl/statsd": "3.0.*", "influxdb/influxdb-php": "1.15.*", - "bacon/bacon-qr-code": "2.0.2", "phpmailer/phpmailer": "6.1.7", - "chillerlan/php-qrcode": "^4.1" + "chillerlan/php-qrcode": "^4.2" }, "require-dev": { "swoole/ide-helper": "4.5.4", From da8167fdf5c7d074b670a241c29f5ead949a9305 Mon Sep 17 00:00:00 2001 From: hack3r-0m Date: Mon, 26 Oct 2020 14:34:19 +0000 Subject: [PATCH 41/52] fixing vars for using external smtp --- .env | 15 +++++++++------ docker-compose.yml | 5 ++++- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/.env b/.env index 6583a94fc..1c7e34b76 100644 --- a/.env +++ b/.env @@ -1,8 +1,8 @@ _APP_ENV=production _APP_ENV=development -_APP_SYSTEM_EMAIL_NAME=Appwrite -_APP_SYSTEM_EMAIL_ADDRESS=team@appwrite.io -_APP_SYSTEM_SECURITY_EMAIL_ADDRESS=security@appwrite.io +_APP_SYSTEM_EMAIL_NAME=self +_APP_SYSTEM_EMAIL_ADDRESS=self@omparikh.me +_APP_SYSTEM_SECURITY_EMAIL_ADDRESS=self@omparikh.me _APP_OPTIONS_ABUSE=disabled _APP_OPTIONS_FORCE_HTTPS=disabled _APP_OPENSSL_KEY_V1=your-secret-key @@ -19,8 +19,11 @@ _APP_INFLUXDB_HOST=influxdb _APP_INFLUXDB_PORT=8086 _APP_STATSD_HOST=telegraf _APP_STATSD_PORT=8125 -_APP_SMTP_HOST=maildev -_APP_SMTP_PORT=25 +_APP_SMTP_HOST=smtp.sendgrid.net +_APP_SMTP_PORT=465 +_APP_SMTP_SECURE=ssl +_APP_SMTP_USERNAME= +_APP_SMTP_PASSWORD= _APP_STORAGE_LIMIT=100000000 _APP_FUNCTIONS_TIMEOUT=900 -_APP_FUNCTIONS_CONTAINERS=10 \ No newline at end of file +_APP_FUNCTIONS_CONTAINERS=10 diff --git a/docker-compose.yml b/docker-compose.yml index ad27815eb..e595a6c37 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -266,6 +266,9 @@ services: - _APP_REDIS_PORT - _APP_SMTP_HOST - _APP_SMTP_PORT + - _APP_SMTP_SECURE + - _APP_SMTP_USERNAME + - _APP_SMTP_PASSWORD appwrite-schedule: entrypoint: schedule @@ -293,7 +296,7 @@ services: ports: - "3306:3306" environment: - - MYSQL_ROOT_PASSWORD=rootsecretpassword + - MYSQL_ROOT_PASSWORD=password - MYSQL_DATABASE=${_APP_DB_SCHEMA} - MYSQL_USER=${_APP_DB_USER} - MYSQL_PASSWORD=${_APP_DB_PASS} From d179a6b605a5d60e28dc9f4ea4c3adc0e47c6bab Mon Sep 17 00:00:00 2001 From: hack3r-0m <54898623+hack3r-0m@users.noreply.github.com> Date: Mon, 26 Oct 2020 07:45:46 -0700 Subject: [PATCH 42/52] Update .env --- .env | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.env b/.env index 1c7e34b76..d317f3365 100644 --- a/.env +++ b/.env @@ -1,8 +1,8 @@ _APP_ENV=production _APP_ENV=development -_APP_SYSTEM_EMAIL_NAME=self -_APP_SYSTEM_EMAIL_ADDRESS=self@omparikh.me -_APP_SYSTEM_SECURITY_EMAIL_ADDRESS=self@omparikh.me +_APP_SYSTEM_EMAIL_NAME=Appwrite +_APP_SYSTEM_EMAIL_ADDRESS=team@appwrite.io +_APP_SYSTEM_SECURITY_EMAIL_ADDRESS=security@appwrite.io _APP_OPTIONS_ABUSE=disabled _APP_OPTIONS_FORCE_HTTPS=disabled _APP_OPENSSL_KEY_V1=your-secret-key From 934715e16d31faa5cf850a830900b16b7c44fd9e Mon Sep 17 00:00:00 2001 From: hack3r-0m <54898623+hack3r-0m@users.noreply.github.com> Date: Mon, 26 Oct 2020 08:38:59 -0700 Subject: [PATCH 43/52] Create sendgrid-integration.md --- docs/deployment/sendgrid-integration.md | 26 +++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 docs/deployment/sendgrid-integration.md diff --git a/docs/deployment/sendgrid-integration.md b/docs/deployment/sendgrid-integration.md new file mode 100644 index 000000000..d56980643 --- /dev/null +++ b/docs/deployment/sendgrid-integration.md @@ -0,0 +1,26 @@ +## INTEGRATING SENDGRID SMTP WITH APPWRITE + +### PREREQUISITES + +- Sendgird's email sending API key ([how to create api key](https://sendgrid.com/docs/ui/account-and-settings/api-keys/#creating-an-api-key)) +- Apprwrite repo/server locally + +### INTEGRATION + +- In root directory of repo, `.env` file is where you have to put your credentials of external smtp +- Edit the folowing values in `.env` file : + - `_APP_SYSTEM_EMAIL_NAME=` + - `_APP_SYSTEM_EMAIL_ADDRESS=`(make sure email you want to use is authenticated from your sendgrid account) + - `_APP_SMTP_HOST=smtp.sendgrid.net` + - `_APP_SMTP_PORT=465` + - `_APP_SMTP_SECURE=ssl` (If you want to use tls, change `_APP_SMTP_PORT` to 587) + - `_APP_SMTP_USERNAME=apikey` + - `_APP_SMTP_PASSWORD=` + +- build/re-build with `docker-compose build appwrite-worker-mails && docker-compose up -d` + +### DEBUG + +- check logs using `docker-compose logs appwrite-worker-mails` +- check vars used by smtp using `docker-compose exec appwrite-worker-mails vars` +- check your sendgrid's activity dashboard for more details From e001a1cf9ff176a169f69bbb4231abafa42ec5a7 Mon Sep 17 00:00:00 2001 From: hack3r-0m <54898623+hack3r-0m@users.noreply.github.com> Date: Mon, 26 Oct 2020 08:43:41 -0700 Subject: [PATCH 44/52] Update .env --- .env | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.env b/.env index d317f3365..30b4a83f7 100644 --- a/.env +++ b/.env @@ -19,11 +19,11 @@ _APP_INFLUXDB_HOST=influxdb _APP_INFLUXDB_PORT=8086 _APP_STATSD_HOST=telegraf _APP_STATSD_PORT=8125 -_APP_SMTP_HOST=smtp.sendgrid.net -_APP_SMTP_PORT=465 -_APP_SMTP_SECURE=ssl -_APP_SMTP_USERNAME= -_APP_SMTP_PASSWORD= +_APP_SMTP_HOST=maildev +_APP_SMTP_PORT=25 +_APP_SMTP_SECURE= +_APP_SMTP_USERNAME= +_APP_SMTP_PASSWORD= _APP_STORAGE_LIMIT=100000000 _APP_FUNCTIONS_TIMEOUT=900 _APP_FUNCTIONS_CONTAINERS=10 From af268257adff19487e61a1560685f7dfdd21d6c2 Mon Sep 17 00:00:00 2001 From: hack3r-0m Date: Mon, 26 Oct 2020 15:50:05 +0000 Subject: [PATCH 45/52] Revert "Create sendgrid-integration.md" This reverts commit 934715e16d31faa5cf850a830900b16b7c44fd9e. --- docs/deployment/sendgrid-integration.md | 26 ------------------------- 1 file changed, 26 deletions(-) delete mode 100644 docs/deployment/sendgrid-integration.md diff --git a/docs/deployment/sendgrid-integration.md b/docs/deployment/sendgrid-integration.md deleted file mode 100644 index d56980643..000000000 --- a/docs/deployment/sendgrid-integration.md +++ /dev/null @@ -1,26 +0,0 @@ -## INTEGRATING SENDGRID SMTP WITH APPWRITE - -### PREREQUISITES - -- Sendgird's email sending API key ([how to create api key](https://sendgrid.com/docs/ui/account-and-settings/api-keys/#creating-an-api-key)) -- Apprwrite repo/server locally - -### INTEGRATION - -- In root directory of repo, `.env` file is where you have to put your credentials of external smtp -- Edit the folowing values in `.env` file : - - `_APP_SYSTEM_EMAIL_NAME=` - - `_APP_SYSTEM_EMAIL_ADDRESS=`(make sure email you want to use is authenticated from your sendgrid account) - - `_APP_SMTP_HOST=smtp.sendgrid.net` - - `_APP_SMTP_PORT=465` - - `_APP_SMTP_SECURE=ssl` (If you want to use tls, change `_APP_SMTP_PORT` to 587) - - `_APP_SMTP_USERNAME=apikey` - - `_APP_SMTP_PASSWORD=` - -- build/re-build with `docker-compose build appwrite-worker-mails && docker-compose up -d` - -### DEBUG - -- check logs using `docker-compose logs appwrite-worker-mails` -- check vars used by smtp using `docker-compose exec appwrite-worker-mails vars` -- check your sendgrid's activity dashboard for more details From 580c3fa8bc359c9c311ce0a7ca52dd6123d12d4b Mon Sep 17 00:00:00 2001 From: hack3r-0m <54898623+hack3r-0m@users.noreply.github.com> Date: Mon, 26 Oct 2020 09:02:03 -0700 Subject: [PATCH 46/52] Create sendgrid-integration.md --- docs/deployment/sendgrid-integration.md | 26 +++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 docs/deployment/sendgrid-integration.md diff --git a/docs/deployment/sendgrid-integration.md b/docs/deployment/sendgrid-integration.md new file mode 100644 index 000000000..d56980643 --- /dev/null +++ b/docs/deployment/sendgrid-integration.md @@ -0,0 +1,26 @@ +## INTEGRATING SENDGRID SMTP WITH APPWRITE + +### PREREQUISITES + +- Sendgird's email sending API key ([how to create api key](https://sendgrid.com/docs/ui/account-and-settings/api-keys/#creating-an-api-key)) +- Apprwrite repo/server locally + +### INTEGRATION + +- In root directory of repo, `.env` file is where you have to put your credentials of external smtp +- Edit the folowing values in `.env` file : + - `_APP_SYSTEM_EMAIL_NAME=` + - `_APP_SYSTEM_EMAIL_ADDRESS=`(make sure email you want to use is authenticated from your sendgrid account) + - `_APP_SMTP_HOST=smtp.sendgrid.net` + - `_APP_SMTP_PORT=465` + - `_APP_SMTP_SECURE=ssl` (If you want to use tls, change `_APP_SMTP_PORT` to 587) + - `_APP_SMTP_USERNAME=apikey` + - `_APP_SMTP_PASSWORD=` + +- build/re-build with `docker-compose build appwrite-worker-mails && docker-compose up -d` + +### DEBUG + +- check logs using `docker-compose logs appwrite-worker-mails` +- check vars used by smtp using `docker-compose exec appwrite-worker-mails vars` +- check your sendgrid's activity dashboard for more details From 84f41c72add8014600aebf9f86191756b06a7e79 Mon Sep 17 00:00:00 2001 From: hack3r-0m Date: Mon, 26 Oct 2020 16:06:08 +0000 Subject: [PATCH 47/52] Revert "Create sendgrid-integration.md" This reverts commit 580c3fa8bc359c9c311ce0a7ca52dd6123d12d4b. --- docs/deployment/sendgrid-integration.md | 26 ------------------------- 1 file changed, 26 deletions(-) delete mode 100644 docs/deployment/sendgrid-integration.md diff --git a/docs/deployment/sendgrid-integration.md b/docs/deployment/sendgrid-integration.md deleted file mode 100644 index d56980643..000000000 --- a/docs/deployment/sendgrid-integration.md +++ /dev/null @@ -1,26 +0,0 @@ -## INTEGRATING SENDGRID SMTP WITH APPWRITE - -### PREREQUISITES - -- Sendgird's email sending API key ([how to create api key](https://sendgrid.com/docs/ui/account-and-settings/api-keys/#creating-an-api-key)) -- Apprwrite repo/server locally - -### INTEGRATION - -- In root directory of repo, `.env` file is where you have to put your credentials of external smtp -- Edit the folowing values in `.env` file : - - `_APP_SYSTEM_EMAIL_NAME=` - - `_APP_SYSTEM_EMAIL_ADDRESS=`(make sure email you want to use is authenticated from your sendgrid account) - - `_APP_SMTP_HOST=smtp.sendgrid.net` - - `_APP_SMTP_PORT=465` - - `_APP_SMTP_SECURE=ssl` (If you want to use tls, change `_APP_SMTP_PORT` to 587) - - `_APP_SMTP_USERNAME=apikey` - - `_APP_SMTP_PASSWORD=` - -- build/re-build with `docker-compose build appwrite-worker-mails && docker-compose up -d` - -### DEBUG - -- check logs using `docker-compose logs appwrite-worker-mails` -- check vars used by smtp using `docker-compose exec appwrite-worker-mails vars` -- check your sendgrid's activity dashboard for more details From c286f23e1ab2dc8dfd978d240a7d24842c73fe89 Mon Sep 17 00:00:00 2001 From: Pedro Cisneros Santana <37348419+PedroCisnerosSantana@users.noreply.github.com> Date: Mon, 26 Oct 2020 19:14:04 +0100 Subject: [PATCH 48/52] Removed extra spaces --- app/controllers/api/avatars.php | 85 ++++++++++++++++++--------------- 1 file changed, 46 insertions(+), 39 deletions(-) diff --git a/app/controllers/api/avatars.php b/app/controllers/api/avatars.php index 386406a25..b2ff5b50e 100644 --- a/app/controllers/api/avatars.php +++ b/app/controllers/api/avatars.php @@ -21,7 +21,7 @@ $avatarCallback = function ($type, $code, $width, $height, $quality, $response) $code = \strtolower($code); $type = \strtolower($type); - $set = Config::getParam('avatar-' . $type, []); + $set = Config::getParam('avatar-'.$type, []); if (empty($set)) { throw new Exception('Avatar set not found', 404); @@ -36,16 +36,16 @@ $avatarCallback = function ($type, $code, $width, $height, $quality, $response) } $output = 'png'; - $date = \date('D, d M Y H:i:s', \time() + (60 * 60 * 24 * 45)) . ' GMT'; // 45 days cache - $key = \md5('/v1/avatars/:type/:code-' . $code . $width . $height . $quality . $output); + $date = \date('D, d M Y H:i:s', \time() + (60 * 60 * 24 * 45)).' GMT'; // 45 days cache + $key = \md5('/v1/avatars/:type/:code-'.$code.$width.$height.$quality.$output); $path = $set[$code]; $type = 'png'; if (!\is_readable($path)) { - throw new Exception('File not readable in ' . $path, 500); + throw new Exception('File not readable in '.$path, 500); } - $cache = new Cache(new Filesystem(APP_STORAGE_CACHE . '/app-0')); // Limit file number or size + $cache = new Cache(new Filesystem(APP_STORAGE_CACHE.'/app-0')); // Limit file number or size $data = $cache->load($key, 60 * 60 * 24 * 30 * 3 /* 3 months */); if ($data) { @@ -55,7 +55,8 @@ $avatarCallback = function ($type, $code, $width, $height, $quality, $response) ->setContentType('image/png') ->addHeader('Expires', $date) ->addHeader('X-Appwrite-Cache', 'hit') - ->send($data); + ->send($data) + ; } $resize = new Resize(\file_get_contents($path)); @@ -65,14 +66,15 @@ $avatarCallback = function ($type, $code, $width, $height, $quality, $response) $output = (empty($output)) ? $type : $output; $data = $resize->output($output, $quality); - + $cache->save($key, $data); - + $response ->setContentType('image/png') ->addHeader('Expires', $date) ->addHeader('X-Appwrite-Cache', 'miss') - ->send($data, null);; + ->send($data, null); + ; unset($resize); }; @@ -86,7 +88,7 @@ App::get('/v1/avatars/credit-cards/:code') ->label('sdk.method', 'getCreditCard') ->label('sdk.methodType', 'location') ->label('sdk.description', '/docs/references/avatars/get-credit-card.md') - ->param('code', '', new WhiteList(\array_keys(Config::getParam('avatar-credit-cards'))), 'Credit Card Code. Possible values: ' . \implode(', ', \array_keys(Config::getParam('avatar-credit-cards'))) . '.') + ->param('code', '', new WhiteList(\array_keys(Config::getParam('avatar-credit-cards'))), 'Credit Card Code. Possible values: '.\implode(', ', \array_keys(Config::getParam('avatar-credit-cards'))).'.') ->param('width', 100, new Range(0, 2000), 'Image width. Pass an integer between 0 to 2000. Defaults to 100.', true) ->param('height', 100, new Range(0, 2000), 'Image height. Pass an integer between 0 to 2000. Defaults to 100.', true) ->param('quality', 100, new Range(0, 100), 'Image quality. Pass an integer between 0 to 100. Defaults to 100.', true) @@ -145,10 +147,10 @@ App::get('/v1/avatars/image') $quality = 80; $output = 'png'; - $date = \date('D, d M Y H:i:s', \time() + (60 * 60 * 24 * 45)) . ' GMT'; // 45 days cache - $key = \md5('/v2/avatars/images-' . $url . '-' . $width . '/' . $height . '/' . $quality); + $date = \date('D, d M Y H:i:s', \time() + (60 * 60 * 24 * 45)).' GMT'; // 45 days cache + $key = \md5('/v2/avatars/images-'.$url.'-'.$width.'/'.$height.'/'.$quality); $type = 'png'; - $cache = new Cache(new Filesystem(APP_STORAGE_CACHE . '/app-0')); // Limit file number or size + $cache = new Cache(new Filesystem(APP_STORAGE_CACHE.'/app-0')); // Limit file number or size $data = $cache->load($key, 60 * 60 * 24 * 7 /* 1 week */); if ($data) { @@ -156,7 +158,8 @@ App::get('/v1/avatars/image') ->setContentType('image/png') ->addHeader('Expires', $date) ->addHeader('X-Appwrite-Cache', 'hit') - ->send($data); + ->send($data) + ; } if (!\extension_loaded('imagick')) { @@ -178,16 +181,17 @@ App::get('/v1/avatars/image') $resize->crop((int) $width, (int) $height); $output = (empty($output)) ? $type : $output; - + $data = $resize->output($output, $quality); - + $cache->save($key, $data); $response ->setContentType('image/png') ->addHeader('Expires', $date) ->addHeader('X-Appwrite-Cache', 'miss') - ->send($data);; + ->send($data); + ; unset($resize); }, ['response']); @@ -209,10 +213,10 @@ App::get('/v1/avatars/favicon') $height = 56; $quality = 80; $output = 'png'; - $date = \date('D, d M Y H:i:s', \time() + (60 * 60 * 24 * 45)) . ' GMT'; // 45 days cache - $key = \md5('/v2/avatars/favicon-' . $url); + $date = \date('D, d M Y H:i:s', \time() + (60 * 60 * 24 * 45)).' GMT'; // 45 days cache + $key = \md5('/v2/avatars/favicon-'.$url); $type = 'png'; - $cache = new Cache(new Filesystem(APP_STORAGE_CACHE . '/app-0')); // Limit file number or size + $cache = new Cache(new Filesystem(APP_STORAGE_CACHE.'/app-0')); // Limit file number or size $data = $cache->load($key, 60 * 60 * 24 * 30 * 3 /* 3 months */); if ($data) { @@ -220,7 +224,8 @@ App::get('/v1/avatars/favicon') ->setContentType('image/png') ->addHeader('Expires', $date) ->addHeader('X-Appwrite-Cache', 'hit') - ->send($data); + ->send($data) + ; } if (!\extension_loaded('imagick')) { @@ -234,8 +239,7 @@ App::get('/v1/avatars/favicon') CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS => 3, CURLOPT_URL => $url, - CURLOPT_USERAGENT => \sprintf( - APP_USERAGENT, + CURLOPT_USERAGENT => \sprintf(APP_USERAGENT, App::getEnv('_APP_VERSION', 'UNKNOWN'), App::getEnv('_APP_SYSTEM_SECURITY_EMAIL_ADDRESS', APP_EMAIL_SECURITY) ), @@ -296,7 +300,7 @@ App::get('/v1/avatars/favicon') if (empty($outputHref) || empty($outputExt)) { $default = \parse_url($url); - $outputHref = $default['scheme'] . '://' . $default['host'] . '/favicon.ico'; + $outputHref = $default['scheme'].'://'.$default['host'].'/favicon.ico'; $outputExt = 'ico'; } @@ -313,7 +317,8 @@ App::get('/v1/avatars/favicon') ->setContentType('image/x-icon') ->addHeader('Expires', $date) ->addHeader('X-Appwrite-Cache', 'miss') - ->send($data); + ->send($data) + ; } $fetch = @\file_get_contents($outputHref, false); @@ -369,9 +374,10 @@ App::get('/v1/avatars/qr') } $response - ->addHeader('Expires', \date('D, d M Y H:i:s', \time() + (60 * 60 * 24 * 45)) . ' GMT') // 45 days cache + ->addHeader('Expires', \date('D, d M Y H:i:s', \time() + (60 * 60 * 24 * 45)).' GMT') // 45 days cache ->setContentType('image/png') - ->send($qrcode->render($text)); + ->send($qrcode->render($text)) + ; }, ['response']); App::get('/v1/avatars/initials') @@ -405,7 +411,7 @@ App::get('/v1/avatars/initials') ['color' => '#610008', 'background' => '#f6d2d5'] // RED ]; - $rand = \rand(0, \count($themes) - 1); + $rand = \rand(0, \count($themes)-1); $name = (!empty($name)) ? $name : $user->getAttribute('name', $user->getAttribute('email', '')); $words = \explode(' ', \strtoupper($name)); @@ -422,23 +428,23 @@ App::get('/v1/avatars/initials') } $length = \count($words); - $rand = \substr($code, -1); - $background = (!empty($background)) ? '#' . $background : $themes[$rand]['background']; - $color = (!empty($color)) ? '#' . $color : $themes[$rand]['color']; + $rand = \substr($code,-1); + $background = (!empty($background)) ? '#'.$background : $themes[$rand]['background']; + $color = (!empty($color)) ? '#'.$color : $themes[$rand]['color']; $image = new \Imagick(); $draw = new \ImagickDraw(); $fontSize = \min($width, $height) / 2; - - $draw->setFont(__DIR__ . "/../../../public/fonts/poppins-v9-latin-500.ttf"); - $image->setFont(__DIR__ . "/../../../public/fonts/poppins-v9-latin-500.ttf"); + + $draw->setFont(__DIR__."/../../../public/fonts/poppins-v9-latin-500.ttf"); + $image->setFont(__DIR__."/../../../public/fonts/poppins-v9-latin-500.ttf"); $draw->setFillColor(new \ImagickPixel($color)); $draw->setFontSize($fontSize); - + $draw->setTextAlignment(\Imagick::ALIGN_CENTER); $draw->annotation($width / 1.97, ($height / 2) + ($fontSize / 3), $initials); - + $image->newImage($width, $height, $background); $image->setImageFormat("png"); $image->drawImage($draw); @@ -446,7 +452,8 @@ App::get('/v1/avatars/initials') //$image->setImageCompressionQuality(9 - round(($quality / 100) * 9)); $response - ->addHeader('Expires', \date('D, d M Y H:i:s', \time() + (60 * 60 * 24 * 45)) . ' GMT') // 45 days cache + ->addHeader('Expires', \date('D, d M Y H:i:s', \time() + (60 * 60 * 24 * 45)).' GMT') // 45 days cache ->setContentType('image/png') - ->send($image->getImageBlob()); - }, ['response', 'user']); + ->send($image->getImageBlob()) + ; + }, ['response', 'user']); \ No newline at end of file From c102bee5ec9b86ebab8778ee78cde8e98336142d Mon Sep 17 00:00:00 2001 From: Pedro Cisneros Santana <37348419+PedroCisnerosSantana@users.noreply.github.com> Date: Mon, 26 Oct 2020 22:08:47 +0100 Subject: [PATCH 49/52] Set output type to imagick --- app/controllers/api/avatars.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/api/avatars.php b/app/controllers/api/avatars.php index 6c225d711..49889f48d 100644 --- a/app/controllers/api/avatars.php +++ b/app/controllers/api/avatars.php @@ -364,10 +364,10 @@ App::get('/v1/avatars/qr') $download = ($download === '1' || $download === 'true' || $download === 1 || $download === true); $qropts = new QROptions([ - 'quietzone' => $size + 'quietzone' => $size, + 'outputType' => QRCode::OUTPUT_IMAGICK ]); $qrcode = new QRCode($qropts); - $qrcode->render($text); if ($download) { $response->addHeader('Content-Disposition', 'attachment; filename="qr.png"'); @@ -456,4 +456,4 @@ App::get('/v1/avatars/initials') ->setContentType('image/png') ->send($image->getImageBlob()) ; - }, ['response', 'user']); \ No newline at end of file + }, ['response', 'user']); From e24afbde8df894ecfda425978b7d29a1d3e44963 Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Tue, 27 Oct 2020 00:19:22 +0200 Subject: [PATCH 50/52] Upgraded to Swoole 4.5.6 --- Dockerfile | 2 +- composer.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 364da314c..9b394d5b1 100755 --- a/Dockerfile +++ b/Dockerfile @@ -16,7 +16,7 @@ FROM php:7.4-cli-alpine as step1 ENV TZ=Asia/Tel_Aviv \ PHP_REDIS_VERSION=5.3.0 \ - PHP_SWOOLE_VERSION=4.5.5 \ + PHP_SWOOLE_VERSION=4.5.6 \ PHP_XDEBUG_VERSION=sdebug_2_9-beta RUN \ diff --git a/composer.json b/composer.json index 5f107c6bf..804225d56 100644 --- a/composer.json +++ b/composer.json @@ -54,7 +54,7 @@ "phpmailer/phpmailer": "6.1.7" }, "require-dev": { - "swoole/ide-helper": "4.5.4", + "swoole/ide-helper": "4.5.6", "appwrite/sdk-generator": "master", "phpunit/phpunit": "^9.3" }, From 5dbf3744f61ac6e4b5d06480a9c4b1018adf159d Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Tue, 27 Oct 2020 00:26:00 +0200 Subject: [PATCH 51/52] Revert IDE helper, version not out yet --- build.sh | 4 ++-- composer.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sh b/build.sh index c641709a8..b34f44b7b 100644 --- a/build.sh +++ b/build.sh @@ -17,8 +17,8 @@ fi echo "Updating git repository $1 / $2" -git fetch origin -git reset --hard origin/master +# git fetch origin +# git reset --hard origin/master if test $(find "./app/db/DBIP/dbip-country-lite-2020-01.mmdb" -mmin +259200) then diff --git a/composer.json b/composer.json index 804225d56..15f994079 100644 --- a/composer.json +++ b/composer.json @@ -54,7 +54,7 @@ "phpmailer/phpmailer": "6.1.7" }, "require-dev": { - "swoole/ide-helper": "4.5.6", + "swoole/ide-helper": "4.5.5", "appwrite/sdk-generator": "master", "phpunit/phpunit": "^9.3" }, From 6d914095d38e120226d203ac774be5d97451e101 Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Tue, 27 Oct 2020 00:26:22 +0200 Subject: [PATCH 52/52] Revert build changes --- build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sh b/build.sh index b34f44b7b..c641709a8 100644 --- a/build.sh +++ b/build.sh @@ -17,8 +17,8 @@ fi echo "Updating git repository $1 / $2" -# git fetch origin -# git reset --hard origin/master +git fetch origin +git reset --hard origin/master if test $(find "./app/db/DBIP/dbip-country-lite-2020-01.mmdb" -mmin +259200) then