Renamed the project 'canaille'

This commit is contained in:
Éloi Rivard 2020-10-21 14:04:40 +02:00
parent d132ca7a13
commit e9e3368a33
77 changed files with 514 additions and 513 deletions

10
.gitignore vendored
View file

@ -14,8 +14,8 @@ htmlcov
build
dist
python-ldap-test*
oidc_ldap_bridge/conf/oauth-authorization-server.json
oidc_ldap_bridge/conf/openid-configuration.json
oidc_ldap_bridge/conf/*.pem
oidc_ldap_bridge/conf/*.pub
oidc_ldap_bridge/conf/*.key
canaille/conf/oauth-authorization-server.json
canaille/conf/openid-configuration.json
canaille/conf/*.pem
canaille/conf/*.pub
canaille/conf/*.key

View file

@ -1,6 +1,6 @@
include schemas/*
include oidc_ldap_bridge/conf/*.sample.*
graft oidc_ldap_bridge/templates
graft oidc_ldap_bridge/translations
graft oidc_ldap_bridge/static
include canaille/conf/*.sample.*
graft canaille/templates
graft canaille/translations
graft canaille/static
exclude tests/*

View file

@ -1,8 +1,9 @@
OpenID Connect LDAP Bridge is under development. Do not use in production yet. ⚠
Canaille is under development. Do not use in production yet. ⚠
# OpenID Connect LDAP Bridge
# Canaille
oidc-ldap-bridge is a simple OpenID Connect provider based upon OpenLDAP.
Canaille is a French word meaning *rascal*, and is pronounced approximatively **Can I?**,
as in *Can I access this data please?*. It is a simple OpenID Connect provider based upon OpenLDAP.
It aims to be very light, simple to install and simple to maintain. Its main features are :
- OAuth/OpenID Connect support;
@ -35,14 +36,14 @@ sudo slapadd -n0 -l schema/*.ldif
Then you can deploy the code either by copying the git repository or installing the pip package:
```bash
pip install oidc_ldap_bridge
pip install canaille
```
Finally you have to run the website in a WSGI server:
```bash
pip install gunicorn
gunicorn "oidc_ldap_bridge:create_app()"
gunicorn "canaille:create_app()"
```
## Contribute
@ -54,8 +55,8 @@ To try a development environment, you can run the docker image and then open htt
You can then connect with user *admin* and password *admin* to access an admin account, or user *user* and password *user* for a regular one.
```bash
cp oidc_ldap_bridge/conf/config.sample.toml oidc_ldap_bridge/conf/config.toml
cp oidc_ldap_bridge/conf/oauth-authorization-server.sample.json oidc_ldap_bridge/conf/oauth-authorization-server.json
cp oidc_ldap_bridge/conf/openid-configuration.sample.json oidc_ldap_bridge/conf/openid-configuration.json
cp canaille/conf/config.sample.toml canaille/conf/config.toml
cp canaille/conf/oauth-authorization-server.sample.json canaille/conf/oauth-authorization-server.json
cp canaille/conf/openid-configuration.sample.json canaille/conf/openid-configuration.json
docker-compose up
```

View file

@ -2,15 +2,15 @@ import ldap
import os
import toml
import oidc_ldap_bridge.admin
import oidc_ldap_bridge.admin.tokens
import oidc_ldap_bridge.admin.authorizations
import oidc_ldap_bridge.admin.clients
import oidc_ldap_bridge.consents
import oidc_ldap_bridge.oauth
import oidc_ldap_bridge.account
import oidc_ldap_bridge.tokens
import oidc_ldap_bridge.well_known
import canaille.admin
import canaille.admin.tokens
import canaille.admin.authorizations
import canaille.admin.clients
import canaille.consents
import canaille.oauth
import canaille.account
import canaille.tokens
import canaille.well_known
from cryptography.hazmat.primitives import serialization as crypto_serialization
from cryptography.hazmat.primitives.asymmetric import rsa
@ -39,7 +39,7 @@ def create_app(config=None):
app.config.from_mapping(
{
"SESSION_COOKIE_NAME": "oidc-ldap-bridge",
"SESSION_COOKIE_NAME": "canaille",
"OAUTH2_REFRESH_TOKEN_GENERATOR": True,
}
)
@ -121,21 +121,21 @@ def setup_app(app):
config_oauth(app)
setup_ldap_tree(app)
app.register_blueprint(oidc_ldap_bridge.account.bp)
app.register_blueprint(oidc_ldap_bridge.oauth.bp, url_prefix="/oauth")
app.register_blueprint(oidc_ldap_bridge.consents.bp, url_prefix="/consent")
app.register_blueprint(oidc_ldap_bridge.tokens.bp, url_prefix="/token")
app.register_blueprint(canaille.account.bp)
app.register_blueprint(canaille.oauth.bp, url_prefix="/oauth")
app.register_blueprint(canaille.consents.bp, url_prefix="/consent")
app.register_blueprint(canaille.tokens.bp, url_prefix="/token")
app.register_blueprint(
oidc_ldap_bridge.well_known.bp, url_prefix="/.well-known"
canaille.well_known.bp, url_prefix="/.well-known"
)
app.register_blueprint(
oidc_ldap_bridge.admin.tokens.bp, url_prefix="/admin/token"
canaille.admin.tokens.bp, url_prefix="/admin/token"
)
app.register_blueprint(
oidc_ldap_bridge.admin.authorizations.bp, url_prefix="/admin/authorization"
canaille.admin.authorizations.bp, url_prefix="/admin/authorization"
)
app.register_blueprint(
oidc_ldap_bridge.admin.clients.bp, url_prefix="/admin/client"
canaille.admin.clients.bp, url_prefix="/admin/client"
)
babel = Babel(app)

View file

@ -13,8 +13,8 @@ bp = Blueprint(__name__, "home")
@bp.route("/")
def index():
if not current_user():
return redirect(url_for("oidc_ldap_bridge.account.login"))
return redirect(url_for("oidc_ldap_bridge.account.profile"))
return redirect(url_for("canaille.account.login"))
return redirect(url_for("canaille.account.profile"))
@bp.route("/login", methods=("GET", "POST"))
@ -28,7 +28,7 @@ def login():
flash(gettext("Login failed, please check your information"), "error")
return render_template("login.html", form=form)
return redirect(url_for("oidc_ldap_bridge.account.index"))
return redirect(url_for("canaille.account.index"))
return render_template("login.html", form=form)

View file

@ -1,6 +1,6 @@
from flask import Blueprint, render_template
from oidc_ldap_bridge.models import AuthorizationCode
from oidc_ldap_bridge.flaskutils import admin_needed
from canaille.models import AuthorizationCode
from canaille.flaskutils import admin_needed
bp = Blueprint(__name__, "authorizations")

View file

@ -5,8 +5,8 @@ from flask import Blueprint, render_template, request, flash, redirect, url_for
from flask_wtf import FlaskForm
from flask_babel import gettext
from werkzeug.security import gen_salt
from oidc_ldap_bridge.models import Client
from oidc_ldap_bridge.flaskutils import admin_needed
from canaille.models import Client
from canaille.flaskutils import admin_needed
bp = Blueprint(__name__, "clients")
@ -156,7 +156,7 @@ def add():
"success",
)
return redirect(url_for("oidc_ldap_bridge.admin.clients.edit", client_id=client_id))
return redirect(url_for("canaille.admin.clients.edit", client_id=client_id))
@bp.route("/edit/<client_id>", methods=["GET", "POST"])

View file

@ -1,6 +1,6 @@
from flask import Blueprint, render_template
from oidc_ldap_bridge.models import Token
from oidc_ldap_bridge.flaskutils import admin_needed
from canaille.models import Token
from canaille.flaskutils import admin_needed
bp = Blueprint(__name__, "tokens")

View file

@ -12,8 +12,8 @@ NAME = "MyDomain"
# Path to the RFC8414 metadata file. You should update those files
# with your production URLs.
OAUTH2_METADATA_FILE = "oidc_ldap_bridge/conf/oauth-authorization-server.json"
OIDC_METADATA_FILE = "oidc_ldap_bridge/conf/openid-configuration.json"
OAUTH2_METADATA_FILE = "canaille/conf/oauth-authorization-server.json"
OIDC_METADATA_FILE = "canaille/conf/openid-configuration.json"
# If you have a sentry instance, you can set its dsn here:
# SENTRY_DSN = "https://examplePublicKey@o0.ingest.sentry.io/0"
@ -41,8 +41,8 @@ ADMIN_FILTER = "memberof=cn=admins,ou=groups,dc=mydomain,dc=tld"
# ssh-keygen -t rsa -b 4096 -m PEM -f private.pem
# openssl rsa -in private.pem -pubout -outform PEM -out public.pem
[JWT]
PUBLIC_KEY = "oidc_ldap_bridge/conf/public.pem"
PRIVATE_KEY = "oidc_ldap_bridge/conf/private.pem"
PUBLIC_KEY = "canaille/conf/public.pem"
PRIVATE_KEY = "canaille/conf/private.pem"
KTY = "RSA"
ALG = "RS256"
EXP = 3600

View file

@ -1,7 +1,7 @@
from flask import Blueprint, render_template, flash, redirect, url_for
from flask_babel import gettext
from oidc_ldap_bridge.models import Consent, Client
from oidc_ldap_bridge.flaskutils import user_needed
from canaille.models import Consent, Client
from canaille.flaskutils import user_needed
bp = Blueprint(__name__, "consents")
@ -31,4 +31,4 @@ def delete(user, consent_id):
consent.revoke()
flash(gettext("The access has been revoked"), "success")
return redirect(url_for("oidc_ldap_bridge.consents.consents"))
return redirect(url_for("canaille.consents.consents"))

View file

@ -1,7 +1,7 @@
import ldap
from functools import wraps
from flask import session, abort
from oidc_ldap_bridge.models import User
from canaille.models import User
def current_user():

View file

Before

Width:  |  Height:  |  Size: 876 KiB

After

Width:  |  Height:  |  Size: 876 KiB

View file

@ -22,8 +22,8 @@
</thead>
{% for authorization in authorizations %}
<tr>
<td><a href="{{ url_for('oidc_ldap_bridge.admin.authorizations.view', authorization_id=authorization.oauthCode) }}">{{ authorization.oauthCode }}</a></td>
<td><a href="{{ url_for('oidc_ldap_bridge.admin.clients.edit', client_id=authorization.oauthClientID) }}">{{ authorization.oauthClientID }}</a></td>
<td><a href="{{ url_for('canaille.admin.authorizations.view', authorization_id=authorization.oauthCode) }}">{{ authorization.oauthCode }}</a></td>
<td><a href="{{ url_for('canaille.admin.clients.edit', client_id=authorization.oauthClientID) }}">{{ authorization.oauthClientID }}</a></td>
<td>{{ authorization.oauthSubject }}</td>
<td>{{ authorization.issue_date }}</td>
</tr>

View file

@ -14,7 +14,7 @@
{% block content %}
<div class="ui segment">
<a class="ui primary button" href="{{ url_for('oidc_ldap_bridge.admin.clients.add') }}">{% trans %}Add client{% endtrans %}</a>
<a class="ui primary button" href="{{ url_for('canaille.admin.clients.add') }}">{% trans %}Add client{% endtrans %}</a>
</div>
<table class="ui table">
@ -25,7 +25,7 @@
</thead>
{% for client in clients %}
<tr>
<td><a href="{{ url_for('oidc_ldap_bridge.admin.clients.edit', client_id=client.oauthClientID) }}">{{ client.oauthClientName }}</a></td>
<td><a href="{{ url_for('canaille.admin.clients.edit', client_id=client.oauthClientID) }}">{{ client.oauthClientName }}</a></td>
<td><a href="{{ client.oauthClientURI }}">{{ client.oauthClientURI }}</a></td>
<td>{{ client.issue_date }}</td>
</tr>

View file

@ -22,8 +22,8 @@
</thead>
{% for token in tokens %}
<tr>
<td><a href="{{ url_for('oidc_ldap_bridge.admin.tokens.view', token_id=token.oauthAccessToken) }}">{{ token.oauthAccessToken }}</a></td>
<td><a href="{{ url_for('oidc_ldap_bridge.admin.clients.edit', client_id=token.oauthClientID) }}">{{ token.oauthClientID }}</a></td>
<td><a href="{{ url_for('canaille.admin.tokens.view', token_id=token.oauthAccessToken) }}">{{ token.oauthAccessToken }}</a></td>
<td><a href="{{ url_for('canaille.admin.clients.edit', client_id=token.oauthClientID) }}">{{ token.oauthClientID }}</a></td>
<td>{{ token.oauthSubject }}</td>
<td>{{ token.issue_date }}</td>
</tr>

View file

@ -32,17 +32,17 @@
</div>
{% endif %}
<a class="item {% if menuitem == "profile" %}active{% endif %}"
href="{{ url_for('oidc_ldap_bridge.account.profile') }}">
href="{{ url_for('canaille.account.profile') }}">
<i class="id card icon"></i>
{% trans %}My profile{% endtrans %}
</a>
<a class="item {% if menuitem == "consents" %}active{% endif %}"
href="{{ url_for('oidc_ldap_bridge.consents.consents') }}">
href="{{ url_for('canaille.consents.consents') }}">
<i class="handshake icon"></i>
{% trans %}My consents{% endtrans %}
</a>
<a class="item {% if menuitem == "tokens" %}active{% endif %}"
href="{{ url_for('oidc_ldap_bridge.tokens.tokens') }}">
href="{{ url_for('canaille.tokens.tokens') }}">
<i class="key icon"></i>
{% trans %}My tokens{% endtrans %}
</a>
@ -51,15 +51,15 @@
<i class="settings icon"></i>
Admin
<div class="menu">
<a class="item" href="{{ url_for('oidc_ldap_bridge.admin.clients.index') }}">
<a class="item" href="{{ url_for('canaille.admin.clients.index') }}">
<i class="plug icon"></i>
{% trans %}Clients{% endtrans %}
</a>
<a class="item" href="{{ url_for('oidc_ldap_bridge.admin.tokens.index') }}">
<a class="item" href="{{ url_for('canaille.admin.tokens.index') }}">
<i class="key icon"></i>
{% trans %}Tokens{% endtrans %}
</a>
<a class="item" href="{{ url_for('oidc_ldap_bridge.admin.authorizations.index') }}">
<a class="item" href="{{ url_for('canaille.admin.authorizations.index') }}">
<i class="user secret icon"></i>
{% trans %}Codes{% endtrans %}
</a>
@ -70,7 +70,7 @@
</div>
</div>
{% endif %}
<a class="item" href="{{ url_for('oidc_ldap_bridge.account.logout') }}">
<a class="item" href="{{ url_for('canaille.account.logout') }}">
<i class="sign out alternate icon"></i>
{% trans %}Log out{% endtrans %}
</a>

View file

@ -49,7 +49,7 @@
</ul>
</div>
</div>
<a class="ui bottom attached button" href="{{ url_for('oidc_ldap_bridge.consents.delete', consent_id=consent.cn[0] ) }}">
<a class="ui bottom attached button" href="{{ url_for('canaille.consents.delete', consent_id=consent.cn[0] ) }}">
<i class="remove icon"></i>
{% trans %}Remove access{% endtrans %}
</a>

View file

@ -48,7 +48,7 @@
</ul>
</div>
</div>
<a class="ui bottom attached button" href="{{ url_for('oidc_ldap_bridge.tokens.delete', token_id=token.oauthAccessToken ) }}">
<a class="ui bottom attached button" href="{{ url_for('canaille.tokens.delete', token_id=token.oauthAccessToken ) }}">
<i class="remove icon"></i>
{% trans %}Remove token{% endtrans %}
</a>

View file

@ -1,8 +1,8 @@
import datetime
from flask import Blueprint, render_template, flash, redirect, url_for
from flask_babel import gettext
from oidc_ldap_bridge.models import Token, Client
from oidc_ldap_bridge.flaskutils import user_needed
from canaille.models import Token, Client
from canaille.flaskutils import user_needed
bp = Blueprint(__name__, "tokens")
@ -33,4 +33,4 @@ def delete(user, token_id):
token.save()
flash(gettext("The access has been revoked"), "success")
return redirect(url_for("oidc_ldap_bridge.tokens.tokens"))
return redirect(url_for("canaille.tokens.tokens"))

View file

@ -20,313 +20,313 @@ msgstr ""
"Generated-By: Babel 2.8.0\n"
"X-Generator: Gtranslator 3.36.0\n"
#: oidc_ldap_bridge/account.py:28 oidc_ldap_bridge/oauth.py:42
#: canaille/account.py:28 canaille/oauth.py:42
msgid "Login failed, please check your information"
msgstr "La connexion a échoué, veuillez vérifier vos informations."
#: oidc_ldap_bridge/account.py:56
#: canaille/account.py:56
msgid "Profile edition failed."
msgstr "L'édition du profil a échoué."
#: oidc_ldap_bridge/account.py:59
#: canaille/account.py:59
msgid "Profile updated successfuly."
msgstr "Le profil a été mis à jour avec succès."
#: oidc_ldap_bridge/consents.py:26 oidc_ldap_bridge/tokens.py:27
#: canaille/consents.py:26 canaille/tokens.py:27
msgid "Could not delete this access"
msgstr "Impossible de supprimer cet accès."
#: oidc_ldap_bridge/consents.py:30 oidc_ldap_bridge/tokens.py:32
#: canaille/consents.py:30 canaille/tokens.py:32
msgid "The access has been revoked"
msgstr "L'accès a été révoqué."
#: oidc_ldap_bridge/forms.py:8
#: canaille/forms.py:8
msgid "Login"
msgstr "Connexion"
#: oidc_ldap_bridge/forms.py:13
#: canaille/forms.py:13
msgid "Password"
msgstr "Mot de passe"
#: oidc_ldap_bridge/forms.py:19
#: canaille/forms.py:19
msgid "Username"
msgstr "Identifiant"
#: oidc_ldap_bridge/forms.py:23
#: canaille/forms.py:23
msgid "Given name"
msgstr "Prénom"
#: oidc_ldap_bridge/forms.py:24
#: canaille/forms.py:24
msgid "Family Name"
msgstr "Nom de famille"
#: oidc_ldap_bridge/forms.py:30
#: canaille/forms.py:30
msgid "Email address"
msgstr "Courriel"
#: oidc_ldap_bridge/forms.py:32
#: canaille/forms.py:32
msgid "Phone number"
msgstr "Numéro de téléphone"
#: oidc_ldap_bridge/oauth.py:86
#: canaille/oauth.py:86
msgid "You have been successfully logged out."
msgstr "Vous avez été déconnectés."
#: oidc_ldap_bridge/admin/clients.py:24
#: oidc_ldap_bridge/templates/admin/client_list.html:22
#: canaille/admin/clients.py:24
#: canaille/templates/admin/client_list.html:22
msgid "Name"
msgstr "Nom"
#: oidc_ldap_bridge/admin/clients.py:29
#: canaille/admin/clients.py:29
msgid "Contact"
msgstr "Contact"
#: oidc_ldap_bridge/admin/clients.py:34
#: canaille/admin/clients.py:34
msgid "URI"
msgstr "URI"
#: oidc_ldap_bridge/admin/clients.py:39
#: canaille/admin/clients.py:39
msgid "Redirect URIs"
msgstr "URIs de redirection"
#: oidc_ldap_bridge/admin/clients.py:44
#: canaille/admin/clients.py:44
msgid "Grant types"
msgstr "Grant types"
#: oidc_ldap_bridge/admin/clients.py:56
#: canaille/admin/clients.py:56
msgid "Scope"
msgstr "Scope"
#: oidc_ldap_bridge/admin/clients.py:62
#: canaille/admin/clients.py:62
msgid "Response types"
msgstr "Types de réponse"
#: oidc_ldap_bridge/admin/clients.py:68
#: canaille/admin/clients.py:68
msgid "Token Endpoint Auth Method"
msgstr "Token Endpoint Auth Method"
#: oidc_ldap_bridge/admin/clients.py:78
#: canaille/admin/clients.py:78
msgid "Logo URI"
msgstr "URI du logo"
#: oidc_ldap_bridge/admin/clients.py:83
#: canaille/admin/clients.py:83
msgid "Terms of service URI"
msgstr "URI des conditions d'utilisation"
#: oidc_ldap_bridge/admin/clients.py:88
#: canaille/admin/clients.py:88
msgid "Policy URI"
msgstr "URI de la politique de confidentialité"
#: oidc_ldap_bridge/admin/clients.py:93
#: canaille/admin/clients.py:93
msgid "Software ID"
msgstr "ID du logiciel"
#: oidc_ldap_bridge/admin/clients.py:98
#: canaille/admin/clients.py:98
msgid "Software Version"
msgstr "Version du logiciel"
#: oidc_ldap_bridge/admin/clients.py:103
#: canaille/admin/clients.py:103
msgid "JWK"
msgstr "JWK"
#: oidc_ldap_bridge/admin/clients.py:108
#: canaille/admin/clients.py:108
msgid "JKW URI"
msgstr "URI du JWK"
#: oidc_ldap_bridge/admin/clients.py:124
#: canaille/admin/clients.py:124
msgid "The client has not been added. Please check your information."
msgstr "Le client n'a pas été ajouté. Veuillez vérifier vos informations."
#: oidc_ldap_bridge/admin/clients.py:155
#: canaille/admin/clients.py:155
msgid "The client has been created."
msgstr "Le client a été créé."
#: oidc_ldap_bridge/admin/clients.py:176
#: canaille/admin/clients.py:176
msgid "The client has not been edited. Please check your information."
msgstr "Le client n'a pas été édité. Veuillez vérifier vos informations."
#: oidc_ldap_bridge/admin/clients.py:200
#: canaille/admin/clients.py:200
msgid "The client has been edited."
msgstr "Le client a été édité."
#: oidc_ldap_bridge/templates/authorize.html:9
#: canaille/templates/authorize.html:9
#, python-format
msgid "The application %(name)s is requesting access to:"
msgstr "L'application %(name)s demande un accès à :"
#: oidc_ldap_bridge/templates/authorize.html:14
#: canaille/templates/authorize.html:14
#, python-format
msgid "from: %(user)s"
msgstr "pour : %(user)s"
#: oidc_ldap_bridge/templates/authorize.html:19
#: canaille/templates/authorize.html:19
msgid "Deny"
msgstr "Refuser"
#: oidc_ldap_bridge/templates/authorize.html:24
#: canaille/templates/authorize.html:24
msgid "Switch user"
msgstr "Changer d'utilisateur"
#: oidc_ldap_bridge/templates/authorize.html:29
#: canaille/templates/authorize.html:29
msgid "Accept"
msgstr "Accepter"
#: oidc_ldap_bridge/templates/base.html:7
#: canaille/templates/base.html:7
msgid "OpenID Connect LDAP Bridge"
msgstr "OpendID Connect LDAP Bridge"
#: oidc_ldap_bridge/templates/base.html:35
#: oidc_ldap_bridge/templates/profile.html:8
#: canaille/templates/base.html:35
#: canaille/templates/profile.html:8
msgid "My profile"
msgstr "Mon profil"
#: oidc_ldap_bridge/templates/base.html:39
#: oidc_ldap_bridge/templates/consent_list.html:16
#: canaille/templates/base.html:39
#: canaille/templates/consent_list.html:16
msgid "My consents"
msgstr "Mes autorisations"
#: oidc_ldap_bridge/templates/base.html:43
#: oidc_ldap_bridge/templates/token_list.html:16
#: canaille/templates/base.html:43
#: canaille/templates/token_list.html:16
msgid "My tokens"
msgstr "Mes jetons"
#: oidc_ldap_bridge/templates/base.html:52
#: canaille/templates/base.html:52
msgid "Clients"
msgstr "Clients"
#: oidc_ldap_bridge/templates/base.html:56
#: canaille/templates/base.html:56
msgid "Tokens"
msgstr "Jetons"
#: oidc_ldap_bridge/templates/base.html:60
#: canaille/templates/base.html:60
msgid "Codes"
msgstr "Codes"
#: oidc_ldap_bridge/templates/base.html:64
#: canaille/templates/base.html:64
msgid "Consents"
msgstr "Autorisations"
#: oidc_ldap_bridge/templates/base.html:71
#: canaille/templates/base.html:71
msgid "Log out"
msgstr "Déconnexion"
#: oidc_ldap_bridge/templates/consent_list.html:39
#: oidc_ldap_bridge/templates/token_list.html:39
#: canaille/templates/consent_list.html:39
#: canaille/templates/token_list.html:39
msgid "From:"
msgstr "À partir de :"
#: oidc_ldap_bridge/templates/consent_list.html:41
#: canaille/templates/consent_list.html:41
msgid "Revoked:"
msgstr "Révoqué le :"
#: oidc_ldap_bridge/templates/consent_list.html:44
#: oidc_ldap_bridge/templates/token_list.html:43
#: canaille/templates/consent_list.html:44
#: canaille/templates/token_list.html:43
msgid "Has access to:"
msgstr "A accès à :"
#: oidc_ldap_bridge/templates/consent_list.html:54
#: canaille/templates/consent_list.html:54
msgid "Remove access"
msgstr "Supprimer l'accès"
#: oidc_ldap_bridge/templates/consent_list.html:64
#: oidc_ldap_bridge/templates/token_list.html:63
#: canaille/templates/consent_list.html:64
#: canaille/templates/token_list.html:63
msgid "Nothing here"
msgstr "Rien ici"
#: oidc_ldap_bridge/templates/consent_list.html:65
#: oidc_ldap_bridge/templates/token_list.html:64
#: canaille/templates/consent_list.html:65
#: canaille/templates/token_list.html:64
msgid "You did not authorize applications yet."
msgstr ""
"Vous n'avez pas encore autorisé d'application à accéder à votre profil."
#: oidc_ldap_bridge/templates/login.html:14
#: canaille/templates/login.html:14
#, python-format
msgid "Sign in at %(website)s"
msgstr "Connexion à %(website)s"
#: oidc_ldap_bridge/templates/login.html:16
#: canaille/templates/login.html:16
msgid "Log-in and manage your authorizations."
msgstr "Connectez-vous et gérez vos autorisations."
#: oidc_ldap_bridge/templates/login.html:27
#: canaille/templates/login.html:27
msgid "Sign in"
msgstr "Se connecter"
#: oidc_ldap_bridge/templates/profile.html:11
#: canaille/templates/profile.html:11
msgid "Edit your personal informations"
msgstr "Éditez vos informations personnelles"
#: oidc_ldap_bridge/templates/profile.html:23
#: canaille/templates/profile.html:23
msgid "Edit"
msgstr "Éditer"
#: oidc_ldap_bridge/templates/token_list.html:40
#: canaille/templates/token_list.html:40
msgid "Until:"
msgstr "Jusqu'à :"
#: oidc_ldap_bridge/templates/token_list.html:53
#: canaille/templates/token_list.html:53
msgid "Remove token"
msgstr "Supprimer le jeton"
#: oidc_ldap_bridge/templates/admin/authorization_list.html:18
#: oidc_ldap_bridge/templates/admin/token_list.html:18
#: canaille/templates/admin/authorization_list.html:18
#: canaille/templates/admin/token_list.html:18
msgid "Token"
msgstr "Jeton"
#: oidc_ldap_bridge/templates/admin/authorization_list.html:19
#: oidc_ldap_bridge/templates/admin/token_list.html:19
#: canaille/templates/admin/authorization_list.html:19
#: canaille/templates/admin/token_list.html:19
msgid "Client"
msgstr "Client"
#: oidc_ldap_bridge/templates/admin/authorization_list.html:20
#: oidc_ldap_bridge/templates/admin/token_list.html:20
#: canaille/templates/admin/authorization_list.html:20
#: canaille/templates/admin/token_list.html:20
msgid "Subject"
msgstr "Utilisateur"
#: oidc_ldap_bridge/templates/admin/authorization_list.html:21
#: oidc_ldap_bridge/templates/admin/client_list.html:24
#: oidc_ldap_bridge/templates/admin/token_list.html:21
#: canaille/templates/admin/authorization_list.html:21
#: canaille/templates/admin/client_list.html:24
#: canaille/templates/admin/token_list.html:21
msgid "Created"
msgstr "Créé"
#: oidc_ldap_bridge/templates/admin/authorization_view.html:7
#: canaille/templates/admin/authorization_view.html:7
msgid "View a authorization"
msgstr "Voir une autorisation"
#: oidc_ldap_bridge/templates/admin/client_add.html:7
#: canaille/templates/admin/client_add.html:7
msgid "Add a client"
msgstr "Ajouter un client"
#: oidc_ldap_bridge/templates/admin/client_add.html:17
#: oidc_ldap_bridge/templates/admin/client_edit.html:34
#: canaille/templates/admin/client_add.html:17
#: canaille/templates/admin/client_edit.html:34
msgid "Confirm"
msgstr "Confirmer"
#: oidc_ldap_bridge/templates/admin/client_edit.html:7
#: canaille/templates/admin/client_edit.html:7
msgid "Edit a client"
msgstr "Éditer un client"
#: oidc_ldap_bridge/templates/admin/client_edit.html:20
#: canaille/templates/admin/client_edit.html:20
msgid "ID"
msgstr "ID"
#: oidc_ldap_bridge/templates/admin/client_edit.html:24
#: canaille/templates/admin/client_edit.html:24
msgid "Secret"
msgstr "Secret"
#: oidc_ldap_bridge/templates/admin/client_edit.html:28
#: canaille/templates/admin/client_edit.html:28
msgid "Issued at"
msgstr "Créé le"
#: oidc_ldap_bridge/templates/admin/client_list.html:17
#: canaille/templates/admin/client_list.html:17
msgid "Add client"
msgstr "Ajouter un client"
#: oidc_ldap_bridge/templates/admin/client_list.html:23
#: canaille/templates/admin/client_list.html:23
msgid "URL"
msgstr "URL"
#: oidc_ldap_bridge/templates/admin/token_view.html:7
#: canaille/templates/admin/token_view.html:7
msgid "View a token"
msgstr "Voir un jeton"

View file

@ -0,0 +1,328 @@
# Translations template for PROJECT.
# Copyright (C) 2020 ORGANIZATION
# This file is distributed under the same license as the PROJECT project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2020-10-20 11:48+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.8.0\n"
#: canaille/account.py:28 canaille/oauth.py:42
msgid "Login failed, please check your information"
msgstr ""
#: canaille/account.py:56
msgid "Profile edition failed."
msgstr ""
#: canaille/account.py:59
msgid "Profile updated successfuly."
msgstr ""
#: canaille/consents.py:26 canaille/tokens.py:27
msgid "Could not delete this access"
msgstr ""
#: canaille/consents.py:30 canaille/tokens.py:32
msgid "The access has been revoked"
msgstr ""
#: canaille/forms.py:8
msgid "Login"
msgstr ""
#: canaille/forms.py:13
msgid "Password"
msgstr ""
#: canaille/forms.py:19
msgid "Username"
msgstr ""
#: canaille/forms.py:23
msgid "Given name"
msgstr ""
#: canaille/forms.py:24
msgid "Family Name"
msgstr ""
#: canaille/forms.py:30
msgid "Email address"
msgstr ""
#: canaille/forms.py:32
msgid "Phone number"
msgstr ""
#: canaille/oauth.py:86
msgid "You have been successfully logged out."
msgstr ""
#: canaille/admin/clients.py:24
#: canaille/templates/admin/client_list.html:22
msgid "Name"
msgstr ""
#: canaille/admin/clients.py:29
msgid "Contact"
msgstr ""
#: canaille/admin/clients.py:34
msgid "URI"
msgstr ""
#: canaille/admin/clients.py:39
msgid "Redirect URIs"
msgstr ""
#: canaille/admin/clients.py:44
msgid "Grant types"
msgstr ""
#: canaille/admin/clients.py:56
msgid "Scope"
msgstr ""
#: canaille/admin/clients.py:62
msgid "Response types"
msgstr ""
#: canaille/admin/clients.py:68
msgid "Token Endpoint Auth Method"
msgstr ""
#: canaille/admin/clients.py:78
msgid "Logo URI"
msgstr ""
#: canaille/admin/clients.py:83
msgid "Terms of service URI"
msgstr ""
#: canaille/admin/clients.py:88
msgid "Policy URI"
msgstr ""
#: canaille/admin/clients.py:93
msgid "Software ID"
msgstr ""
#: canaille/admin/clients.py:98
msgid "Software Version"
msgstr ""
#: canaille/admin/clients.py:103
msgid "JWK"
msgstr ""
#: canaille/admin/clients.py:108
msgid "JKW URI"
msgstr ""
#: canaille/admin/clients.py:124
msgid "The client has not been added. Please check your information."
msgstr ""
#: canaille/admin/clients.py:155
msgid "The client has been created."
msgstr ""
#: canaille/admin/clients.py:176
msgid "The client has not been edited. Please check your information."
msgstr ""
#: canaille/admin/clients.py:200
msgid "The client has been edited."
msgstr ""
#: canaille/templates/authorize.html:9
#, python-format
msgid "The application %(name)s is requesting access to:"
msgstr ""
#: canaille/templates/authorize.html:14
#, python-format
msgid "from: %(user)s"
msgstr ""
#: canaille/templates/authorize.html:19
msgid "Deny"
msgstr ""
#: canaille/templates/authorize.html:24
msgid "Switch user"
msgstr ""
#: canaille/templates/authorize.html:29
msgid "Accept"
msgstr ""
#: canaille/templates/base.html:7
msgid "OpenID Connect LDAP Bridge"
msgstr ""
#: canaille/templates/base.html:35
#: canaille/templates/profile.html:8
msgid "My profile"
msgstr ""
#: canaille/templates/base.html:39
#: canaille/templates/consent_list.html:16
msgid "My consents"
msgstr ""
#: canaille/templates/base.html:43
#: canaille/templates/token_list.html:16
msgid "My tokens"
msgstr ""
#: canaille/templates/base.html:52
msgid "Clients"
msgstr ""
#: canaille/templates/base.html:56
msgid "Tokens"
msgstr ""
#: canaille/templates/base.html:60
msgid "Codes"
msgstr ""
#: canaille/templates/base.html:64
msgid "Consents"
msgstr ""
#: canaille/templates/base.html:71
msgid "Log out"
msgstr ""
#: canaille/templates/consent_list.html:39
#: canaille/templates/token_list.html:39
msgid "From:"
msgstr ""
#: canaille/templates/consent_list.html:41
msgid "Revoked:"
msgstr ""
#: canaille/templates/consent_list.html:44
#: canaille/templates/token_list.html:43
msgid "Has access to:"
msgstr ""
#: canaille/templates/consent_list.html:54
msgid "Remove access"
msgstr ""
#: canaille/templates/consent_list.html:64
#: canaille/templates/token_list.html:63
msgid "Nothing here"
msgstr ""
#: canaille/templates/consent_list.html:65
#: canaille/templates/token_list.html:64
msgid "You did not authorize applications yet."
msgstr ""
#: canaille/templates/login.html:14
#, python-format
msgid "Sign in at %(website)s"
msgstr ""
#: canaille/templates/login.html:16
msgid "Log-in and manage your authorizations."
msgstr ""
#: canaille/templates/login.html:27
msgid "Sign in"
msgstr ""
#: canaille/templates/profile.html:11
msgid "Edit your personal informations"
msgstr ""
#: canaille/templates/profile.html:23
msgid "Edit"
msgstr ""
#: canaille/templates/token_list.html:40
msgid "Until:"
msgstr ""
#: canaille/templates/token_list.html:53
msgid "Remove token"
msgstr ""
#: canaille/templates/admin/authorization_list.html:18
#: canaille/templates/admin/token_list.html:18
msgid "Token"
msgstr ""
#: canaille/templates/admin/authorization_list.html:19
#: canaille/templates/admin/token_list.html:19
msgid "Client"
msgstr ""
#: canaille/templates/admin/authorization_list.html:20
#: canaille/templates/admin/token_list.html:20
msgid "Subject"
msgstr ""
#: canaille/templates/admin/authorization_list.html:21
#: canaille/templates/admin/client_list.html:24
#: canaille/templates/admin/token_list.html:21
msgid "Created"
msgstr ""
#: canaille/templates/admin/authorization_view.html:7
msgid "View a authorization"
msgstr ""
#: canaille/templates/admin/client_add.html:7
msgid "Add a client"
msgstr ""
#: canaille/templates/admin/client_add.html:17
#: canaille/templates/admin/client_edit.html:34
msgid "Confirm"
msgstr ""
#: canaille/templates/admin/client_edit.html:7
msgid "Edit a client"
msgstr ""
#: canaille/templates/admin/client_edit.html:20
msgid "ID"
msgstr ""
#: canaille/templates/admin/client_edit.html:24
msgid "Secret"
msgstr ""
#: canaille/templates/admin/client_edit.html:28
msgid "Issued at"
msgstr ""
#: canaille/templates/admin/client_list.html:17
msgid "Add client"
msgstr ""
#: canaille/templates/admin/client_list.html:23
msgid "URL"
msgstr ""
#: canaille/templates/admin/token_view.html:7
msgid "View a token"
msgstr ""

View file

@ -9,8 +9,8 @@ RUN pip install /app/
WORKDIR /app
USER oauthserver
ENV FLASK_APP=oidc_ldap_bridge
ENV FLASK_APP=canaille
ENV FLASK_ENV=development
ENV AUTHLIB_INSECURE_TRANSPORT=1
ENTRYPOINT [ "flask", "run", "--host", "0.0.0.0", "--extra-files", "oidc_ldap_bridge/conf/config.toml" ]
ENTRYPOINT [ "flask", "run", "--host", "0.0.0.0", "--extra-files", "canaille/conf/config.toml" ]

View file

@ -1,328 +0,0 @@
# Translations template for PROJECT.
# Copyright (C) 2020 ORGANIZATION
# This file is distributed under the same license as the PROJECT project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2020.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2020-10-20 11:48+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.8.0\n"
#: oidc_ldap_bridge/account.py:28 oidc_ldap_bridge/oauth.py:42
msgid "Login failed, please check your information"
msgstr ""
#: oidc_ldap_bridge/account.py:56
msgid "Profile edition failed."
msgstr ""
#: oidc_ldap_bridge/account.py:59
msgid "Profile updated successfuly."
msgstr ""
#: oidc_ldap_bridge/consents.py:26 oidc_ldap_bridge/tokens.py:27
msgid "Could not delete this access"
msgstr ""
#: oidc_ldap_bridge/consents.py:30 oidc_ldap_bridge/tokens.py:32
msgid "The access has been revoked"
msgstr ""
#: oidc_ldap_bridge/forms.py:8
msgid "Login"
msgstr ""
#: oidc_ldap_bridge/forms.py:13
msgid "Password"
msgstr ""
#: oidc_ldap_bridge/forms.py:19
msgid "Username"
msgstr ""
#: oidc_ldap_bridge/forms.py:23
msgid "Given name"
msgstr ""
#: oidc_ldap_bridge/forms.py:24
msgid "Family Name"
msgstr ""
#: oidc_ldap_bridge/forms.py:30
msgid "Email address"
msgstr ""
#: oidc_ldap_bridge/forms.py:32
msgid "Phone number"
msgstr ""
#: oidc_ldap_bridge/oauth.py:86
msgid "You have been successfully logged out."
msgstr ""
#: oidc_ldap_bridge/admin/clients.py:24
#: oidc_ldap_bridge/templates/admin/client_list.html:22
msgid "Name"
msgstr ""
#: oidc_ldap_bridge/admin/clients.py:29
msgid "Contact"
msgstr ""
#: oidc_ldap_bridge/admin/clients.py:34
msgid "URI"
msgstr ""
#: oidc_ldap_bridge/admin/clients.py:39
msgid "Redirect URIs"
msgstr ""
#: oidc_ldap_bridge/admin/clients.py:44
msgid "Grant types"
msgstr ""
#: oidc_ldap_bridge/admin/clients.py:56
msgid "Scope"
msgstr ""
#: oidc_ldap_bridge/admin/clients.py:62
msgid "Response types"
msgstr ""
#: oidc_ldap_bridge/admin/clients.py:68
msgid "Token Endpoint Auth Method"
msgstr ""
#: oidc_ldap_bridge/admin/clients.py:78
msgid "Logo URI"
msgstr ""
#: oidc_ldap_bridge/admin/clients.py:83
msgid "Terms of service URI"
msgstr ""
#: oidc_ldap_bridge/admin/clients.py:88
msgid "Policy URI"
msgstr ""
#: oidc_ldap_bridge/admin/clients.py:93
msgid "Software ID"
msgstr ""
#: oidc_ldap_bridge/admin/clients.py:98
msgid "Software Version"
msgstr ""
#: oidc_ldap_bridge/admin/clients.py:103
msgid "JWK"
msgstr ""
#: oidc_ldap_bridge/admin/clients.py:108
msgid "JKW URI"
msgstr ""
#: oidc_ldap_bridge/admin/clients.py:124
msgid "The client has not been added. Please check your information."
msgstr ""
#: oidc_ldap_bridge/admin/clients.py:155
msgid "The client has been created."
msgstr ""
#: oidc_ldap_bridge/admin/clients.py:176
msgid "The client has not been edited. Please check your information."
msgstr ""
#: oidc_ldap_bridge/admin/clients.py:200
msgid "The client has been edited."
msgstr ""
#: oidc_ldap_bridge/templates/authorize.html:9
#, python-format
msgid "The application %(name)s is requesting access to:"
msgstr ""
#: oidc_ldap_bridge/templates/authorize.html:14
#, python-format
msgid "from: %(user)s"
msgstr ""
#: oidc_ldap_bridge/templates/authorize.html:19
msgid "Deny"
msgstr ""
#: oidc_ldap_bridge/templates/authorize.html:24
msgid "Switch user"
msgstr ""
#: oidc_ldap_bridge/templates/authorize.html:29
msgid "Accept"
msgstr ""
#: oidc_ldap_bridge/templates/base.html:7
msgid "OpenID Connect LDAP Bridge"
msgstr ""
#: oidc_ldap_bridge/templates/base.html:35
#: oidc_ldap_bridge/templates/profile.html:8
msgid "My profile"
msgstr ""
#: oidc_ldap_bridge/templates/base.html:39
#: oidc_ldap_bridge/templates/consent_list.html:16
msgid "My consents"
msgstr ""
#: oidc_ldap_bridge/templates/base.html:43
#: oidc_ldap_bridge/templates/token_list.html:16
msgid "My tokens"
msgstr ""
#: oidc_ldap_bridge/templates/base.html:52
msgid "Clients"
msgstr ""
#: oidc_ldap_bridge/templates/base.html:56
msgid "Tokens"
msgstr ""
#: oidc_ldap_bridge/templates/base.html:60
msgid "Codes"
msgstr ""
#: oidc_ldap_bridge/templates/base.html:64
msgid "Consents"
msgstr ""
#: oidc_ldap_bridge/templates/base.html:71
msgid "Log out"
msgstr ""
#: oidc_ldap_bridge/templates/consent_list.html:39
#: oidc_ldap_bridge/templates/token_list.html:39
msgid "From:"
msgstr ""
#: oidc_ldap_bridge/templates/consent_list.html:41
msgid "Revoked:"
msgstr ""
#: oidc_ldap_bridge/templates/consent_list.html:44
#: oidc_ldap_bridge/templates/token_list.html:43
msgid "Has access to:"
msgstr ""
#: oidc_ldap_bridge/templates/consent_list.html:54
msgid "Remove access"
msgstr ""
#: oidc_ldap_bridge/templates/consent_list.html:64
#: oidc_ldap_bridge/templates/token_list.html:63
msgid "Nothing here"
msgstr ""
#: oidc_ldap_bridge/templates/consent_list.html:65
#: oidc_ldap_bridge/templates/token_list.html:64
msgid "You did not authorize applications yet."
msgstr ""
#: oidc_ldap_bridge/templates/login.html:14
#, python-format
msgid "Sign in at %(website)s"
msgstr ""
#: oidc_ldap_bridge/templates/login.html:16
msgid "Log-in and manage your authorizations."
msgstr ""
#: oidc_ldap_bridge/templates/login.html:27
msgid "Sign in"
msgstr ""
#: oidc_ldap_bridge/templates/profile.html:11
msgid "Edit your personal informations"
msgstr ""
#: oidc_ldap_bridge/templates/profile.html:23
msgid "Edit"
msgstr ""
#: oidc_ldap_bridge/templates/token_list.html:40
msgid "Until:"
msgstr ""
#: oidc_ldap_bridge/templates/token_list.html:53
msgid "Remove token"
msgstr ""
#: oidc_ldap_bridge/templates/admin/authorization_list.html:18
#: oidc_ldap_bridge/templates/admin/token_list.html:18
msgid "Token"
msgstr ""
#: oidc_ldap_bridge/templates/admin/authorization_list.html:19
#: oidc_ldap_bridge/templates/admin/token_list.html:19
msgid "Client"
msgstr ""
#: oidc_ldap_bridge/templates/admin/authorization_list.html:20
#: oidc_ldap_bridge/templates/admin/token_list.html:20
msgid "Subject"
msgstr ""
#: oidc_ldap_bridge/templates/admin/authorization_list.html:21
#: oidc_ldap_bridge/templates/admin/client_list.html:24
#: oidc_ldap_bridge/templates/admin/token_list.html:21
msgid "Created"
msgstr ""
#: oidc_ldap_bridge/templates/admin/authorization_view.html:7
msgid "View a authorization"
msgstr ""
#: oidc_ldap_bridge/templates/admin/client_add.html:7
msgid "Add a client"
msgstr ""
#: oidc_ldap_bridge/templates/admin/client_add.html:17
#: oidc_ldap_bridge/templates/admin/client_edit.html:34
msgid "Confirm"
msgstr ""
#: oidc_ldap_bridge/templates/admin/client_edit.html:7
msgid "Edit a client"
msgstr ""
#: oidc_ldap_bridge/templates/admin/client_edit.html:20
msgid "ID"
msgstr ""
#: oidc_ldap_bridge/templates/admin/client_edit.html:24
msgid "Secret"
msgstr ""
#: oidc_ldap_bridge/templates/admin/client_edit.html:28
msgid "Issued at"
msgstr ""
#: oidc_ldap_bridge/templates/admin/client_list.html:17
msgid "Add client"
msgstr ""
#: oidc_ldap_bridge/templates/admin/client_list.html:23
msgid "URL"
msgstr ""
#: oidc_ldap_bridge/templates/admin/token_view.html:7
msgid "View a token"
msgstr ""

View file

@ -1,10 +1,10 @@
[metadata]
name = OIDC LDAP Bridge
name = Canaille
version = 0.0.1
url = https://gitlab.com/yaal/oidc-ldap-bridge
url = https://gitlab.com/yaal/canaille
project_urls =
Code = https://gitlab.com/yaal/oidc-ldap-bridge
Issue Tracker = https://gitlab.com/yaal/oidc-ldap-bridge/-/issues
Code = https://gitlab.com/yaal/canaille
Issue Tracker = https://gitlab.com/yaal/canaille/-/issues
license = MIT
license_files = LICENSE.md
maintainer = Yaal
@ -64,28 +64,28 @@ commands =
[coverage:run]
source =
oidc_ldap_bridge
canaille
tests
[extract_messages]
copyright_holder = Yaal Coop Team
input_paths = oidc_ldap_bridge
output_file = oidc_ldap_bridge/translations/messages.pot
input_paths = canaille
output_file = canaille/translations/messages.pot
[init_catalog]
input_file = oidc_ldap_bridge/translations/messages.pot
output_dir = oidc_ldap_bridge/translations/
domain = oidc_ldap_bridge
input_file = canaille/translations/messages.pot
output_dir = canaille/translations/
domain = canaille
[update_catalog]
input_file = oidc_ldap_bridge/translations/messages.pot
output_dir = oidc_ldap_bridge/translations/
domain = oidc_ldap_bridge
input_file = canaille/translations/messages.pot
output_dir = canaille/translations/
domain = canaille
update-header-comment = true
no-fuzzy-matching = true
ignore-obsolete = true
[compile_catalog]
directory = oidc_ldap_bridge/translations/
domain = oidc_ldap_bridge
directory = canaille/translations/
domain = canaille
statistics = true

View file

@ -8,9 +8,9 @@ from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.backends import default_backend as crypto_default_backend
from flask_webtest import TestApp
from werkzeug.security import gen_salt
from oidc_ldap_bridge import create_app
from oidc_ldap_bridge.models import User, Client, Token, AuthorizationCode, Consent
from oidc_ldap_bridge.ldaputils import LDAPObject
from canaille import create_app
from canaille.models import User, Client, Token, AuthorizationCode, Consent
from canaille.ldaputils import LDAPObject
class CustomSlapdObject(slapdtest.SlapdObject):
@ -120,8 +120,8 @@ def app(slapd_server, keypair_path):
app = create_app(
{
"SECRET_KEY": gen_salt(24),
"OAUTH2_METADATA_FILE": "oidc_ldap_bridge/conf/oauth-authorization-server.sample.json",
"OIDC_METADATA_FILE": "oidc_ldap_bridge/conf/openid-configuration.sample.json",
"OAUTH2_METADATA_FILE": "canaille/conf/oauth-authorization-server.sample.json",
"OIDC_METADATA_FILE": "canaille/conf/openid-configuration.sample.json",
"LDAP": {
"ROOT_DN": slapd_server.suffix,
"URI": slapd_server.ldap_uri,

View file

@ -1,7 +1,7 @@
from . import client_credentials
from authlib.oauth2.rfc7636 import create_s256_code_challenge
from urllib.parse import urlsplit, parse_qs
from oidc_ldap_bridge.models import AuthorizationCode, Token, Consent
from canaille.models import AuthorizationCode, Token, Consent
from werkzeug.security import gen_salt

View file

@ -1,4 +1,4 @@
from oidc_ldap_bridge.models import Client
from canaille.models import Client
def test_no_logged_no_access(testclient):

View file

@ -1,6 +1,6 @@
from authlib.jose import jwt
from urllib.parse import urlsplit, parse_qs
from oidc_ldap_bridge.models import AuthorizationCode, Token
from canaille.models import AuthorizationCode, Token
def test_oauth_hybrid(testclient, slapd_connection, user, client):

View file

@ -1,6 +1,6 @@
from authlib.jose import jwt
from urllib.parse import urlsplit, parse_qs
from oidc_ldap_bridge.models import Token
from canaille.models import Token
def test_oauth_implicit(testclient, slapd_connection, user, client):

View file

@ -1,5 +1,5 @@
from . import client_credentials
from oidc_ldap_bridge.models import Token
from canaille.models import Token
def test_password_flow(testclient, slapd_connection, user, client):