linagora / twake Goto Github PK
View Code? Open in Web Editor NEWTwake is a secure open source collaboration platform to improve organizational productivity.
Home Page: https://twake.app
License: GNU Affero General Public License v3.0
Twake is a secure open source collaboration platform to improve organizational productivity.
Home Page: https://twake.app
License: GNU Affero General Public License v3.0
Describe the bug
In Parameters.php, when DKIM parameters are left empty or commented, TwakeMailer service try anyway to sign mail with DKIM, throwing a fatal error.
Complete Stacktrace :
Call Stack:
0.0002 350744 1. {main}() /twake-core/bin/console:0
0.0669 2966624 2. App\App->runCli() /twake-core/bin/console:9
0.0669 2967080 3. Common\CommandsManager->run() /twake-core/app/App.php:134
0.0669 2968792 4. Common\CommandsManager->execute() /twake-core/app/Common/CommandsManager.php:27
0.0677 2985824 5. Twake\Core\Command\MailsQueueCommand->executeFromManager() /twake-core/app/Common/CommandsManager.php:46
0.0677 2985824 6. Twake\Core\Command\MailsQueueCommand->execute() /twake-core/app/Common/Commands/ContainerAwareCommand.php: 27
21.4116 8465976 7. Twake\Core\Services\TwakeMailer->sendInternal() /twake-core/src/Twake/Core/Command/MailsQueueCommand.php:6 6
21.4298 9283392 8. Twake\Core\Services\TwakeMailer->sendHtml() /twake-core/src/Twake/Core/Services/TwakeMailer.php:95
21.4834 11078552 9. Swift_Mailer->send() /twake-core/src/Twake/Core/Services/TwakeMailer.php:151
21.8575 11103232 10. Swift_SmtpTransport->send() /twake-core/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer.php:71
21.8583 11111592 11. Swift_SmtpTransport->sendTo() /twake-core/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Abstr actSmtpTransport.php:206
21.8583 11111968 12. Swift_SmtpTransport->doMailTransaction() /twake-core/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Tran sport/AbstractSmtpTransport.php:516
21.9756 11111968 13. Swift_SmtpTransport->streamMessage() /twake-core/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transpor t/AbstractSmtpTransport.php:500
21.9761 11118448 14. Swift_Message->toByteStream() /twake-core/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Abstr actSmtpTransport.php:398
21.9779 11122280 15. Swift_Message->doSign() /twake-core/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Message.php:169
22.0229 11125736 16. Swift_Signers_DKIMSigner->addSignature() /twake-core/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mess age.php:203
22.0234 11128096 17. Swift_Signers_DKIMSigner->getEncryptedHash() /twake-core/vendor/swiftmailer/swiftmailer/lib/classes/Swift/ Signers/DKIMSigner.php:551
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Mail should be sent, even if DKIM settings aren't defined.
Possible solution
In TwakeMailer service (twake/backend/core/src/Twake/Core/Services/TwakeMailer.php), check if DKIM parameters are defined and are not left empty with
//Line 121
if(isset($this->mail_parameters["dkim"]) &&
isset($this->mail_parameters["dkim"]["private_key"]) && $this->mail_parameters["dkim"]["private_key"] !== "" &&
isset($this->mail_parameters["dkim"]["domain_name"]) && $this->mail_parameters["dkim"]["domain_name"] !== "" &&
isset($this->mail_parameters["dkim"]["selector"]) && $this->mail_parameters["dkim"]["selector"] !== ""){
/* Instanciate Swift_Signers_DKIMSigner $signer and attach it to SwiftMailer $this->mailer */
}
// Same for attachSigner line 149
Maybe consider to check this in the beginning of sendHtml method and store result in variable ($is_DKIM for exemple) to avoid duplicating those complex conditions on line 121 and line 149
//Line 117
$is_DKIM = false;
if(isset($this->mail_parameters["dkim"]) &&
isset($this->mail_parameters["dkim"]["private_key"]) && $this->mail_parameters["dkim"]["private_key"] !== "" &&
isset($this->mail_parameters["dkim"]["domain_name"]) && $this->mail_parameters["dkim"]["domain_name"] !== "" &&
isset($this->mail_parameters["dkim"]["selector"]) && $this->mail_parameters["dkim"]["selector"] !== ""){
$is_DKIM = true;
}
//Line 121
if($is_DKIM){
/* Instanciate Swift_Signers_DKIMSigner $signer and attach it to SwiftMailer $this->mailer */
}
// Same for attachSigner line 149
Desktop (please complete the following information):
Thanks ! 🤗
Frontend
Describe the bug
Unable to create a calendar tab on channel.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Ability to create this tab
Desktop (please complete the following information):
Additional context
Error tells "Cannot read property view of undefined", the error probably appear when no calendar were created in the calendar app.
There are no information about user shown to other user.
All
User should be able to know more about other user in workspace.
When you click on a nickname, a popup appears displaying the information available on the user:
And a button to start a direct message
Describe the bug
No message if wrong mail / password but button is locked.
To Reproduce
Create an account, first step if password is 6 char or less, no message is given.
Expected behavior
Text message explaining what should be done with email and password.
I setup Twake with the default docker-compose.yml. I noticed that the php and the scylladb container have very high idle CPU usage. The php container idles at around 75% while the scylladb container idles at 52% (docker stats).
I already found out that its normal for scylladb to use a lot of CPU and I was able to reduce the usage of the scylladb container to around 35% with the --smp 1
command line argument.
Is it also possible to reduce the idle CPU usage of the php container?
Is your feature request related to a problem? Please describe.
I think it could be a interesting for some organisations to restrict account creation and limit them to invitations only.
Describe the solution you'd like
Following the project code guidelines, I think that add a boolean key in config file and use it to conditionally display "Create Account" link in login form could be perfect.
Additional content
See original thread on Twake Community Forum : Thread
Describe the bug
Advanced event edition has no scroll, elements are outside the modal.
To Reproduce
Open an event, click on Advanced.
Linshare connector doesn't sorte file by linshare categories.
All
Allow getting files from "shared spaces" and may be more ("shared with me", etc) in linshare file selector
Video call on twake.app use the external Twake connectors server.
All
Video call on twake.app should use the built-in one.
Update jitsi connector on twake.app.
When a user wants to create a new private channel, he must first create the channel and use another menu in which he invites people.
He has to go through 2 popups to create his channel.
All
A user must be able to create a private channel and invite users on a single popup.
Update the popup creation
Describe the bug
A clear and concise description of what the bug is.
Uploading files doesn't appear to work correctly on a fresh install of Twake.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Files should appear with an icon or preview and download correctly.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Additional context
Fresh install on Ubuntu 20 with latest docker version.
Backend
Describe the bug
Unable to create an account on mobile, process stuck on "identity" page.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Finishing subscription
Smartphone (please complete the following information):
Docker-compose take a lot of time
server dev
User fields with autocomplete indicates everyone in Twake.
All
User fields with autocomplete must only indicate the company user.
Update user fields with autocompletion
Is your feature request related to a problem? Please describe.
Translation are done in a plain json (not easy)
Describe the solution you'd like
We could use Weblate or be compatible with Poedit.
See the thread here: https://community.twake.app/t/solved-add-translation-on-twake/26/3
When the user wants to add colleagues (user in his company) to his workspace, he needs to know the username of his colleagues.
All device
User should be able to add their colleagues with an autocomplete
Implement autocomplete for user companies in invitation form
Queue of tasks for notifications (bulk of 100 notifications instead of the big loop)
Store "workspace" instead of list of users for public channels
Overview
Documentation doesn't currently feature any Apache configuration instead of nginx for using a custom domain (reverse proxy)
Solution
I successfully configured Apache 2.4 to work with Twake. Here is a complete procedure to achieve it.
You need to create a vhost listening on port 443.
For exemple with certbot :
1. Create a vhost listening on port 80 with ServerName equals to your custom domain. Don't define any document root.
2. Then, use certbot to get a certificate and automatically create your vhost listening on port 443
sudo certbot --apache --email your_email -d your_domain --agree-tos --redirect --noninteractive
You have now to configure your reverse proxy directive. Head up to your 443 vhost configuration file and paste those directives (place them after server and ssl directives) :
RewriteEngine on
RewriteCond ${HTTP:Upgrade} websocket [NC]
RewriteCond ${HTTP:Connection} upgrade [NC]
RewriteRule .* "wss://127.0.0.1:8000/$1" [P,L]
ProxyRequests off
<Location />
ProxyPass http://127.0.0.1:8000/
ProxyPassReverse http://127.0.0.1:8000/
ProxyPreserveHost On
</Location>
<Location /socketcluster>
ProxyPass ws://127.0.0.1:8000/socketcluster
ProxyPassReverse ws://127.0.0.1:8000/socketcluster
ProxyPreserveHost On
</Location>
<Proxy *>
AllowOverride All
Order allow,deny
Allow from All
</Proxy>
RequestHeader set X-Forwarded-port "80"
Be careful to NOT type trailing slash for ws location (it won't work).
I'm not sure that all directives are needed, but this configuration works for me.
You also need to configure remoteip mod from apache with this command :
a2enmod remoteip
Then, edit /etc/apache2/conf-available/remoteip.conf to fit with this content :
RemoteIPHeader X-Real-IP
RemoteIPTrustedProxy 127.0.0.1 ::1
You can now enable the configuration of remoteip and restart Apache :
a2enconf remoteip
service apache2 restart
Describe the bug
Should not open user popup clicking on application name in messages.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
No popup for apps messages.
When user search a message, it can't be in specific channel
All
User should be able to search message in specific channel
We don't have a large stress test of the platform to validate or not scaling opportunity.
Desktop
Have an automatic test which validate scaling
Describe the bug
When pressing Enter to confirm the suppression of a workspace, the popup message doesn't disappear. However, the suppression of the workspace is effective.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The popup message disappears when pressing enter.
Desktop (please complete the following information):
Additional context
None
Describe the bug
I was creating an event in the calendar, I edited the start date, then the end date (which was not updating) and boom:
TypeError: this.sources[e] is undefined
To Reproduce
Steps to reproduce the behavior:
Context
This is not happening after reloading app, so may be related to #27
When someone replies to a thread too far in the history, we don't know where the message notification came from (we don't know which message was added). You can lose information, and it encourages you to start a new discussion when there is already a block on the topic.
All
User should be sure that most recent messages are down in channels.
Groups of messages must be sorted according to the date of the last message in the group.
As an user, when I reply to a message that is not in the most recent message block, a system message appears at the very bottom to indicate my reply (like below)
When i insert a username, emailadress and password, and then click next the button keeps stuck at the "Continue" circle..
Desktop (please complete the following information):
i used the instructions to spin up the docker containers, but it also fails to startup the elastic container. Perhaps this has something to do with it?
Describe the bug
I can't remove workspaces from my account after being invited.
To Reproduce
I created a main account, one at [email protected] - from there, I created a
guest account for [email protected] and shared a workspace from my main account
to the guest account.
The guest account is unable to quit the workspace if he's alone in it. And he cannot manage the workspace either.
Expected behavior
Prevent last non-guest user to quit workspace before guest.
When opening the reply panel of a message and answering via a connector (jitsii, giphy, ...), the answer is not in reply section.
Web
User should be able to use connector in reply section
Update connector button
Describe the bug
When user upload big file and download it, the file is empty (0ko)
To Reproduce
Expected behavior
A possibility to upload and download big file
Desktop (please complete the following information):
All (on-premise install)
Running Twake should be as easier as possible.
Update docker-compose
Hot reloading is not available for development.
Desktop dev
Developers can use hot reloading
Describe the bug
I noticed a bug which happens when trying to change some account settings, but not everytime !
When clicking on save button, page refresh and settings aren’t saved. Browser console giving JSON.parse : unexpected end of data
error, and ajax call to /ajax/users/account/identity/ don’t respond anything.
Checking docker-compose logs, I saw this error :
Pecee\SimpleRouter\Exceptions\NotFoundHttpException: Route "/ajax/users/account/identity/" or method "get" not allowed. in /twake-core/vendor/pecee/simple-router/src/Pecee/SimpleRouter/Router.php:415
If I attempt to edit multiple times, it eventually works after 4 of 5 retries. Sometimes, before page refreshing (which seems to be not a normal behavior), I can glimpse for a second a red error message, but can’t read it.
Steps to Reproduce
Expected behavior
Page should not reload and setting should be saved
Desktop:
Additional Context
Doesn't occurs on Chrome 84.0.4147.89 nor on Opera 69.0.3686.77
Thanks 🙂 !
Describe the bug
Unable to import cert for push notifications in on-premise docker-compose
Expected behavior
We must be able to put the "certs" directory in configuration/backend
When someone mentions a user in a thread, that user is not notified specifically for mentioning them.
All
Users need to know when their name is mentioned
Build a specific notification when users are mentioned
Is your feature request related to a problem? Please describe.
Old thread responses trigger notification but it's almost impossible to find the new message
Describe the solution you'd like
New message should be visible at the bottom of the channel a way of an other
Describe the bug
RabbitMQ consumer adapter not working.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.