escolalms / mattermost
Escola LMS mattermost integration.
Installs: 9 135
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:package
pkg:composer/escolalms/mattermost
Requires
- php: >=7.4
- escolalms/auth: ^0
- escolalms/core: ^1
- escolalms/settings: ^0
- gnello/laravel-mattermost-driver: ^1
- guzzlehttp/guzzle: ^7
- laravel/framework: >=8.0
Requires (Dev)
- escolalms/course-access: ^0
- escolalms/courses: ^0
- escolalms/webinar: ^0
- orchestra/testbench: >=5.0
- phpunit/phpunit: ^9.0
README
What does it do
This package is used for Mattermost integration.
It listens for Events then add/remove user for mattermost and particular channels either as standard user or admin.
Installing
- composer require escolalms/mattermost
Example
You can configure the package using Facade
Config::set('mattermost.package_status', PackageStatusEnum::ENABLED);
Config::set('mattermost.servers.default.host', 'localhost');
Config::set('mattermost.servers.default.login', 'login');
Config::set('mattermost.servers.default.password', 'password');
or /api/admin/config endpoint
$this->actingAs($this->user, 'api')->json( 'POST', '/api/admin/config', [ 'config' => [ [ 'key' => 'mattermost.package_status', 'value' => PackageStatusEnum::ENABLED, ], [ 'key' => 'mattermost.servers.default.host', 'value' => 'localhost', ], [ 'key' => 'mattermost.servers.default.login', 'value' => 'login', ], [ 'key' => 'mattermost.servers.default.password', 'value' => 'password', ], ] ] );
Endpoints
All the endpoints are defined in 
Test
Run ./vendor/bin/phpunit to run tests. See tests folder as it's quite good staring point as documentation appendix.
Test details
Listeners
Handling events
- EscolaLms\Auth\Events\AccountConfirmed=> add user to Mattermost
- EscolaLms\Auth\Events\AccountDeleted=> remove user from Mattermost
- EscolaLms\Auth\Events\AccountBlocked=> block user account
- EscolaLms\Courses\Events\CourseAssigned=> add user to course channel with member role
- EscolaLms\Courses\Events\CourseUnassigned=> remove user from course channel
- EscolaLms\Courses\Events\CourseTutorAssigned=> add user to course channel with channel_admin role
- EscolaLms\Courses\Events\CourseTutorUnassigned=> remove user from course channel
- EscolaLms\Webinar\Events\WebinarUserAssigned=> add user to webinar channel with member role
- EscolaLms\Webinar\Events\WebinarUserUnassigned=> remove user from webinar channel
- EscolaLms\Webinar\Events\WebinarTrainerAssigned=> add user to webinar channel with channel_admin role
- EscolaLms\Webinar\Events\WebinarTrainerUnassigned=> remove user from webinar channel