Modifications:

- use password instead of token auth
- ask for team name in .env file
- update disclaimer
This commit is contained in:
Mylloon 2021-12-21 10:24:07 +01:00
parent 66f5fc665a
commit 9de03acd4c
Signed by: Anri
GPG key ID: A82D63DFF8D1317F
3 changed files with 13 additions and 9 deletions

View file

@ -8,8 +8,10 @@ sudo apt install libssl-dev
`.env` placé dans la racine du projet qui contient le token et l'URL, exemple :
```
TOKEN_MATTERMOST=votre_token_ici
MATTERMOST_INSTANCE_URL=url_du_site_ici, ex: https://talk.up8.edu
PSEUDO=votre_pseudo_ici
MOT_DE_PASSE=votre_mot-de-passe_ici
URL=url_du_site_ici, ex: https://talk.up8.edu
EQUIPE=nom_de_lequipe, ex: etudiant-es
```
---
@ -32,4 +34,4 @@ services:
- [Documentation `tokio`](https://docs.rs/tokio/1.15.0/tokio/attr.main.html) (utilisé car `mattermost_api` est `async`)
---
*Projet ne fonctionne pas, et a peu de chance d'aboutir car le mattermost de la fac se connecte via Gitlab et aucune librarie ne supporte ceci.*
*Projet ne fonctionne pas avec l'instance de la Fac, car son mattermost se connecte via Gitlab et (je crois?) aucune librarie ne supporte ceci.*

View file

@ -6,7 +6,9 @@ mod mattermost;
#[tokio::main]
async fn main() {
dotenv().expect("Le fichier .env n'a pas été trouvé..."); // vérification si fichier .env trouvé
let token = env::var("TOKEN_MATTERMOST").expect("Token non trouvé dans le fichier .env"); // récupération du token
let url = env::var("MATTERMOST_INSTANCE_URL").expect("URL non trouvé dans le fichier .env"); // récupération de l'url
mattermost::connexion(&token, &url).await; // connexion à mattermost
let pseudo = env::var("PSEUDO").expect("Pseudo non trouvé dans le fichier .env"); // récupération du pseudo
let mot_de_passe = env::var("MOT_DE_PASSE").expect("Mot de passe non trouvé dans le fichier .env"); // récupération du mot de passe
let url = env::var("URL").expect("URL non trouvé dans le fichier .env"); // récupération de l'url
let equipe = env::var("EQUIPE").expect("Équipe non trouvé dans le fichier .env"); // récupération de l'équipe
mattermost::connexion(&pseudo, &mot_de_passe, &equipe, &url).await; // connexion à mattermost
}

View file

@ -1,11 +1,11 @@
use mattermost_api::prelude::*;
/// Se connecte à Mattermost depuis Gitlab
pub async fn connexion(token: &str, url: &str) {
let auth = AuthenticationData::from_access_token(&token);
pub async fn connexion(pseudo: &str, mot_de_passe: &str, url: &str, equipe: &str) {
let auth = AuthenticationData::from_password(pseudo, mot_de_passe);
let mut api = Mattermost::new(url, auth);
api.store_session_token().await.unwrap();
let team_info = api.get_team_info("etudiant-es").await;
let team_info = api.get_team_info(equipe).await;
match team_info {
Ok(infos) => {