Skip to content

omega-master-team/omega

Repository files navigation

Project Omega

Concept de base

Le bot a pour but de synchroniser automatiquement les roles discord aux differents items présents sur l'intranet. Il supporte actuellement les items suivants :

  • Cursus
  • Groupes
  • Projects
  • Coalitions
  • Années

Il permet également de définir une politique de nommage permettant d'uniformiser le nom des membres.

Etre pris en compte par protocole Omega

Executer la commande /login puis suivre l'oauth sur le lien qui vous sera transmis.

Cette manipulation n'est nécessaire qu'une seule fois par étudiant


Déploiment

Prérequis

  • Connexion internet
  • 5 Go
  • docker
  • docker-compose (command) ou docker compose (plugin)
  • les droits super-utilisateur pour ouvrir les ports réservé (http ou https) (< 1024)

Lancement

Renommer le fichier .env.template en .env, puis saisir toutes les informations.

  • DOMAIN: Le domaine avec son protocole (ex: http://toto.42)
  • BOT_TOKEN: Le token du bot discord présent sur le portail developpeur
  • API_UID: api intra 42 uid
  • API_SECRET: api intra 42 secret
  • MODE: DEV (pour run en http), PROD (pour run en https)

Note: pour l'api la redirect uri devra correspondre à DOMAIN/connected, avec DOMAIN la variable du .env.

Le déploiement se fait avec docker, pour lancer omega lancer:

# see make help
make

Attention: le port exposé dans le docker-compose.yml ne doit pas être utilisé.

Note: le build prend quelques minutes (selon la connexion et le cpu).

Détails liés à la mise en production

Pour lancer le projet en production, il faut:

  • dans le .env, mettre MODE=PROD
  • dans le docker-compose, mettre les 2 fichiers pour les certificats ssl en volume (décommenter et mettre le bon path) /!\ changer uniquement le path de la machine et non celui du conteneur
  • dans le docker-compose, changer le port exposé (normalement 443)

Administrer un serveur sous Project Omega

Les commandes suivantes servent à la configuration des différentes options du bot. Elles peuvent être effectuées par tout membre possédant les droits administrateur sur le serveur.

Attention les configurations sont uniques, chaque serveur possède la sienne.

Les commandes de configuration

/sync : Configuration globale

Elle vous permettra de définir l'item à synchroniser

image

Son identifiant sur l'intranet (dans le cas de l'année il faut mettre l'année d'entrée à l'ecole au lieu d'un id)

image

L'identifiant du rôle discord correspondant

image

Et enfin vous pouvez définir l'id du campus nécessaire pour obtenir le rôle. (pour définir tous les campus vous pouvez entrer 0)

image

/sync_piscine : Syncronisation des piscines

Elle vous permettra d'attribuer un role a un utilisateur en fonction des dates de sa piscine.

/sync_project : Syncronisation des projets

Elle vous permettra de définir son identifiant sur l'intranet

image

D'autoriser ou non les differents statuts possibles avec le projet

image

De définir l'identifiant du rôle discord correspondant

image

Et enfin vous pouvez définir l'id du campus necessaire pour obtenir le rôle. (Pour définir tous les campus vous pouvez entrer 0)

image

/nick : Définition de la politique de nommage

Screenshot from 2023-02-07 23-39-16

L'argument naming_patern permet de configurer le patern de nommage. (&login et &campus sont des valeurs dynamiques elles seront remplacées par leur valeur pour chaque étudiant).

L'argument campus correspond à l'id du campus sur lesquel la politique va s'appliquer. (Pour définir tous les campus vous pouvez entrer 0).

Supprimer sa configuration

/delete : Suppression de la configuration

Elle vous permettra de spécifier le type de sychronisation à interrompre

image

L'id intranet ou l'id discord en rapport

image

Et enfin l'identifiant

image

/nick_reset : Suppression des politiques de nommage sur le serveur

image


Notes des devs

La version actuelle (beta) a une base de données litesql3 (changement certainement à venir [mariadb])

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Contributors 4

  •  
  •  
  •  
  •