Renamed the project 'canaille'
10
.gitignore
vendored
|
@ -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
|
||||
|
|
|
@ -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/*
|
||||
|
|
17
README.md
|
@ -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
|
||||
```
|
||||
|
|
|
@ -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)
|
|
@ -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)
|
||||
|
|
@ -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")
|
|
@ -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"])
|
|
@ -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")
|
|
@ -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
|
|
@ -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"))
|
|
@ -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():
|
Before Width: | Height: | Size: 699 KiB After Width: | Height: | Size: 699 KiB |
Before Width: | Height: | Size: 876 KiB After Width: | Height: | Size: 876 KiB |
Before Width: | Height: | Size: 141 KiB After Width: | Height: | Size: 141 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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"))
|
|
@ -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"
|
||||
|
328
canaille/translations/messages.pot
Normal 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 ""
|
||||
|
|
@ -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" ]
|
||||
|
|
|
@ -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 ""
|
||||
|
30
setup.cfg
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
from oidc_ldap_bridge.models import Client
|
||||
from canaille.models import Client
|
||||
|
||||
|
||||
def test_no_logged_no_access(testclient):
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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):
|
||||
|
|