Compare commits
No commits in common. "b1fe687cf47bf947a81cfac2fd7a3b4c086d22d4" and "a2b2a38fe745fb41e63f2b17181e8b7fd8e779b7" have entirely different histories.
b1fe687cf4
...
a2b2a38fe7
16 changed files with 2370 additions and 35 deletions
0
cas_eleves/__init__.py
Normal file
0
cas_eleves/__init__.py
Normal file
10
cas_eleves/scss/Makefile
Normal file
10
cas_eleves/scss/Makefile
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
OUTDIR=../static/css/
|
||||||
|
STYLES=style.scss
|
||||||
|
IMPORTS=_params.scss _forms.scss _mixins.scss
|
||||||
|
|
||||||
|
SASS=sassc
|
||||||
|
|
||||||
|
all: $(addprefix $(OUTDIR)/,$(STYLES:.scss=.css))
|
||||||
|
|
||||||
|
$(OUTDIR)/%.css: %.scss $(IMPORTS)
|
||||||
|
$(SASS) "$<" "$@"
|
94
cas_eleves/scss/_forms.scss
Normal file
94
cas_eleves/scss/_forms.scss
Normal file
|
@ -0,0 +1,94 @@
|
||||||
|
form {
|
||||||
|
display: flex;
|
||||||
|
align-items: stretch;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
.errorlist {
|
||||||
|
list-style-type: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
font-size: 0.7em;
|
||||||
|
|
||||||
|
li {
|
||||||
|
@include error_box;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin: 5px 0;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.helptext {
|
||||||
|
font-size: 0.7em;
|
||||||
|
color: $help_text_color;
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
font: inherit;
|
||||||
|
font-size: 0.9em;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="text"],
|
||||||
|
input[type="email"],
|
||||||
|
input[type="password"], {
|
||||||
|
background-color: white;
|
||||||
|
border: solid 1px $help_text_color;
|
||||||
|
padding: 5px 10px;
|
||||||
|
border-radius: 3px;
|
||||||
|
box-shadow: none;
|
||||||
|
|
||||||
|
&:optional {
|
||||||
|
border-color: fade-out($help_text_color, .25);
|
||||||
|
}
|
||||||
|
&:focus {
|
||||||
|
border-color: $secondary_color;
|
||||||
|
box-shadow: 0 0 1.5px 1px $secondary_color;
|
||||||
|
}
|
||||||
|
&:-moz-ui-invalid {
|
||||||
|
border-color: $error_box_border_color;
|
||||||
|
box-shadow: 0 0 1.5px 1px $error_box_border_color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="checkbox"],
|
||||||
|
input[type="radio"] {
|
||||||
|
width: auto;
|
||||||
|
margin: 5px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="submit"] {
|
||||||
|
@include button;
|
||||||
|
}
|
||||||
|
|
||||||
|
.formfield {
|
||||||
|
padding: 5px;
|
||||||
|
margin: 10px 0;
|
||||||
|
}
|
||||||
|
.error_field {
|
||||||
|
border-radius: 10px;
|
||||||
|
background-color: rgba($error_box_color, .4);
|
||||||
|
}
|
||||||
|
|
||||||
|
.checkbox_input {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-evenly;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.label_line {
|
||||||
|
order: 1;
|
||||||
|
flex: 1 1 500px;
|
||||||
|
}
|
||||||
|
input {
|
||||||
|
flex: 0 1 50px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.fieldgroup {
|
||||||
|
margin: 15px 0;
|
||||||
|
}
|
36
cas_eleves/scss/_mixins.scss
Normal file
36
cas_eleves/scss/_mixins.scss
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
@mixin box($bg_color: white, $border_color: black) {
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 10px;
|
||||||
|
border: 1px solid $border_color;
|
||||||
|
background-color: $bg_color;
|
||||||
|
color: $page_text_color;
|
||||||
|
}
|
||||||
|
@mixin error_box {
|
||||||
|
@include box($error_box_color, $error_box_border_color);
|
||||||
|
}
|
||||||
|
@mixin info_box {
|
||||||
|
@include box($info_box_color, $info_box_border_color);
|
||||||
|
}
|
||||||
|
@mixin success_box {
|
||||||
|
@include box($success_box_color, $success_box_border_color);
|
||||||
|
}
|
||||||
|
@mixin warning_box {
|
||||||
|
@include box($warning_box_color, $warning_box_border_color);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin button {
|
||||||
|
display: block;
|
||||||
|
text-decoration: none;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 100%;
|
||||||
|
|
||||||
|
@include box($button_color, $secondary_border_color);
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: darken($button_color, 10%);
|
||||||
|
}
|
||||||
|
&:focus {
|
||||||
|
background-color: darken($button_color, 20%);
|
||||||
|
box-shadow: 0 0 1.5px 1px $secondary_color;
|
||||||
|
}
|
||||||
|
}
|
37
cas_eleves/scss/_params.scss
Normal file
37
cas_eleves/scss/_params.scss
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
$page_bg_color: #f5f1f4;
|
||||||
|
$page_main_color: #ffffff;
|
||||||
|
$page_text_color: #000000dd;
|
||||||
|
$secondary_color: #3c173d;
|
||||||
|
$secondary_border_color: #3c173d;
|
||||||
|
$page_link_color: $secondary_border_color;
|
||||||
|
|
||||||
|
$page_width: 700px;
|
||||||
|
$page_mid_width: 450px;
|
||||||
|
|
||||||
|
$main_border_color: $secondary_border_color;
|
||||||
|
$main_border_radius: 20px;
|
||||||
|
$button_color: #d2bed3;
|
||||||
|
$button_text_color: white;
|
||||||
|
|
||||||
|
$help_text_color: rgba($page_text_color, .65);
|
||||||
|
|
||||||
|
$font_size: 16pt;
|
||||||
|
$font_family: "Open Sans";
|
||||||
|
|
||||||
|
$mid_font_size: 12pt;
|
||||||
|
$small_font_size: 11pt;
|
||||||
|
|
||||||
|
$logo_height: 100px;
|
||||||
|
$logo_maxwidth: 300px;
|
||||||
|
|
||||||
|
$responsive_mid_threshold: 750px;
|
||||||
|
$responsive_small_threshold: 500px;
|
||||||
|
|
||||||
|
$info_box_color: #c9c8ff;
|
||||||
|
$info_box_border_color: darken($info_box_color, 20%);
|
||||||
|
$error_box_color: #ffdfdf;
|
||||||
|
$error_box_border_color: darken($error_box_color, 20%);
|
||||||
|
$success_box_color: #bafb95;
|
||||||
|
$success_box_border_color: darken($success_box_color, 20%);
|
||||||
|
$warning_box_color: #ffd36c;
|
||||||
|
$warning_box_border_color: darken($warning_box_color, 20%);
|
30
cas_eleves/scss/_params.scss.blue
Normal file
30
cas_eleves/scss/_params.scss.blue
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
$page_bg_color: #f3f0ff;
|
||||||
|
$page_main_color: #e9e4ff;
|
||||||
|
$page_text_color: #000000dd;
|
||||||
|
$page_link_color: #c6491add;
|
||||||
|
$page_width: 700px;
|
||||||
|
|
||||||
|
$secondary_color: #9188ff;
|
||||||
|
$secondary_border_color: #25228a;
|
||||||
|
|
||||||
|
$main_border_color: $secondary_border_color;
|
||||||
|
$main_border_radius: 20px;
|
||||||
|
|
||||||
|
$help_text_color: rgba($page_text_color, .65);
|
||||||
|
|
||||||
|
$font_size: 16pt;
|
||||||
|
$font_family: "Open Sans";
|
||||||
|
|
||||||
|
$small_screen_font_size: 12pt;
|
||||||
|
|
||||||
|
$header_height: 100px;
|
||||||
|
$header_logo_maxwidth: 300px;
|
||||||
|
|
||||||
|
$info_box_color: #c9c8ff;
|
||||||
|
$info_box_border_color: darken($info_box_color, 20%);
|
||||||
|
$error_box_color: #ffdfdf;
|
||||||
|
$error_box_border_color: darken($error_box_color, 20%);
|
||||||
|
$success_box_color: #bafb95;
|
||||||
|
$success_box_border_color: darken($success_box_color, 20%);
|
||||||
|
$warning_box_color: #ffd36c;
|
||||||
|
$warning_box_border_color: darken($warning_box_color, 20%);
|
153
cas_eleves/scss/style.scss
Normal file
153
cas_eleves/scss/style.scss
Normal file
|
@ -0,0 +1,153 @@
|
||||||
|
@charset "utf-8";
|
||||||
|
@import "fonts.css";
|
||||||
|
@import "_mixins";
|
||||||
|
@import "_params";
|
||||||
|
@import "_forms";
|
||||||
|
|
||||||
|
html {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
*, *:before, *:after {
|
||||||
|
box-sizing: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background-color: $page_bg_color;
|
||||||
|
font-size: $font_size;
|
||||||
|
font-family: $font_family;
|
||||||
|
color: $page_text_color;
|
||||||
|
margin: 0;
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
min-height: 100vh;
|
||||||
|
|
||||||
|
@media (max-width: $responsive_mid_threshold) {
|
||||||
|
font-size: $mid_font_size;
|
||||||
|
}
|
||||||
|
@media (max-width: $responsive_small_threshold) {
|
||||||
|
font-size: $small_font_size;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-evenly;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
header {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: stretch;
|
||||||
|
|
||||||
|
margin: 0;
|
||||||
|
margin-bottom: 50px;
|
||||||
|
padding: 20px 30px;
|
||||||
|
padding-bottom: 0;
|
||||||
|
|
||||||
|
width: $page_width;
|
||||||
|
|
||||||
|
@media (max-width: $responsive_mid_threshold) {
|
||||||
|
width: $page_mid_width;
|
||||||
|
}
|
||||||
|
@media (max-width: $responsive_small_threshold) {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#headtext {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: end;
|
||||||
|
justify-content: space-evenly;
|
||||||
|
|
||||||
|
font-size: 1.2em;
|
||||||
|
color: $secondary_color;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
height: $logo_height;
|
||||||
|
max-width: $logo_maxwidth;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ens_logo_foot {
|
||||||
|
display: none;
|
||||||
|
|
||||||
|
@media (max-width: $responsive_small_threshold) {
|
||||||
|
display: block;
|
||||||
|
margin: 30px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
main {
|
||||||
|
background-color: $page_main_color;
|
||||||
|
border: 3px solid $main_border_color;
|
||||||
|
border-radius: $main_border_radius;
|
||||||
|
padding: 15px;
|
||||||
|
|
||||||
|
width: $page_width;
|
||||||
|
@media (max-width: $responsive_mid_threshold) {
|
||||||
|
width: $page_mid_width;
|
||||||
|
}
|
||||||
|
@media (max-width: $responsive_small_threshold) {
|
||||||
|
width: 90%;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 1.2em;
|
||||||
|
@media (max-width: $responsive_small_threshold) {
|
||||||
|
font-size: 1.1em;
|
||||||
|
}
|
||||||
|
text-align: center;
|
||||||
|
color: $secondary_color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
text-decoration: underline;
|
||||||
|
color: $page_link_color;
|
||||||
|
border-radius: 3px;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: darken($page_link_color, 20%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
:focus {
|
||||||
|
outline: none;
|
||||||
|
box-shadow: 0 0 1.5px 1px $page_link_color;
|
||||||
|
}
|
||||||
|
::-moz-focus-inner {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
button, .btn_row a {
|
||||||
|
@include button;
|
||||||
|
margin: 10px 5px;
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.messages {
|
||||||
|
list-style-type: none;
|
||||||
|
margin: 10px 0;
|
||||||
|
padding: 0;
|
||||||
|
font-size: 0.8em;
|
||||||
|
|
||||||
|
li {
|
||||||
|
margin: 8px 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.error { @include error_box; }
|
||||||
|
.info { @include info_box; }
|
||||||
|
.warning { @include warning_box; }
|
||||||
|
.success { @include success_box; }
|
||||||
|
|
||||||
|
.antispam {
|
||||||
|
unicode-bidi: bidi-override;
|
||||||
|
direction: rtl;
|
||||||
|
}
|
1780
cas_eleves/static/img/logo.svg
Normal file
1780
cas_eleves/static/img/logo.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 439 KiB |
31
default.nix
31
default.nix
|
@ -3,39 +3,22 @@
|
||||||
pkgs ? import sources.nixpkgs { },
|
pkgs ? import sources.nixpkgs { },
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
|
||||||
nix-pkgs = import sources.nix-pkgs {
|
|
||||||
inherit pkgs;
|
|
||||||
# Python 3.12 is required to have the correct SSL options for connecting with the legacy server
|
|
||||||
python3Pkgs = pkgs.python312.pkgs;
|
|
||||||
};
|
|
||||||
|
|
||||||
python3 = pkgs.python312.override {
|
|
||||||
packageOverrides = _: _: {
|
|
||||||
inherit (nix-pkgs)
|
|
||||||
django-browser-reload
|
|
||||||
django-bulma-forms
|
|
||||||
django-cas-server
|
|
||||||
loadcredential
|
|
||||||
;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
|
||||||
|
|
||||||
{
|
{
|
||||||
devShell = pkgs.mkShell {
|
devShell = pkgs.mkShell {
|
||||||
name = "cas-eleves.dev";
|
name = "cas-eleves.dev";
|
||||||
|
|
||||||
packages = [
|
packages = [
|
||||||
(python3.withPackages (ps: [
|
# Python 3.12 is required to have the correct SSL options for connecting with the legacy server
|
||||||
|
(pkgs.python312.withPackages (ps: [
|
||||||
ps.django
|
ps.django
|
||||||
ps.ipython
|
ps.ipython
|
||||||
ps.ldap3
|
ps.ldap3
|
||||||
|
|
||||||
ps.django-browser-reload
|
# Local packages
|
||||||
ps.django-bulma-forms
|
(ps.callPackage ./nix/django-browser-reload { })
|
||||||
ps.django-cas-server
|
(ps.callPackage ./nix/django-bulma-forms { })
|
||||||
ps.loadcredential
|
(ps.callPackage ./nix/django-cas-server { })
|
||||||
|
(ps.callPackage ./nix/loadcredential { })
|
||||||
]))
|
]))
|
||||||
|
|
||||||
pkgs.gettext
|
pkgs.gettext
|
||||||
|
|
42
nix/django-browser-reload/default.nix
Normal file
42
nix/django-browser-reload/default.nix
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
buildPythonPackage,
|
||||||
|
fetchFromGitHub,
|
||||||
|
setuptools,
|
||||||
|
wheel,
|
||||||
|
asgiref,
|
||||||
|
django,
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "django-browser-reload";
|
||||||
|
version = "1.12.1";
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "adamchainz";
|
||||||
|
repo = "django-browser-reload";
|
||||||
|
rev = version;
|
||||||
|
hash = "sha256-IDIkAl6YYI3isDvpzCtAu4fLSr2gbjEvVW+K1WBDPbo=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
setuptools
|
||||||
|
wheel
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
asgiref
|
||||||
|
django
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonImportsCheck = [ "django_browser_reload" ];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Automatically reload your browser in development";
|
||||||
|
homepage = "https://github.com/adamchainz/django-browser-reload";
|
||||||
|
changelog = "https://github.com/adamchainz/django-browser-reload/blob/${src.rev}/CHANGELOG.rst";
|
||||||
|
license = licenses.mit;
|
||||||
|
maintainers = [ ]; # with maintainers; [ thubrecht ];
|
||||||
|
};
|
||||||
|
}
|
36
nix/django-bulma-forms/default.nix
Normal file
36
nix/django-bulma-forms/default.nix
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
buildPythonPackage,
|
||||||
|
fetchgit,
|
||||||
|
setuptools,
|
||||||
|
setuptools-scm,
|
||||||
|
wheel,
|
||||||
|
django,
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "django-bulma-forms";
|
||||||
|
version = "0.1.4";
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
|
src = fetchgit {
|
||||||
|
url = "https://git.hubrecht.ovh/hubrecht/django-bulma-forms";
|
||||||
|
rev = "v${version}";
|
||||||
|
hash = "sha256-4KTMXx3YxDxB4/YH14pJnNYtpOGXeDmD+gcbrUHwD/w=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
setuptools
|
||||||
|
setuptools-scm
|
||||||
|
wheel
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [ django ];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "";
|
||||||
|
homepage = "https://git.hubrecht.ovh/hubrecht/django-bulma-forms";
|
||||||
|
license = licenses.eupl12;
|
||||||
|
maintainers = [ ]; # with maintainers; [ thubrecht ];
|
||||||
|
};
|
||||||
|
}
|
20
nix/django-cas-server/01-pytest.patch
Normal file
20
nix/django-cas-server/01-pytest.patch
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
diff --git a/cas_server/tests/test_utils.py b/cas_server/tests/test_utils.py
|
||||||
|
index d690724..73ee761 100644
|
||||||
|
--- a/cas_server/tests/test_utils.py
|
||||||
|
+++ b/cas_server/tests/test_utils.py
|
||||||
|
@@ -17,6 +17,7 @@ from django.db import connection
|
||||||
|
import six
|
||||||
|
import warnings
|
||||||
|
import datetime
|
||||||
|
+import pytest
|
||||||
|
|
||||||
|
from cas_server import utils
|
||||||
|
|
||||||
|
@@ -61,6 +62,7 @@ class CheckPasswordCase(TestCase):
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
+ @pytest.mark.skip(reason="crypt is broken somehow")
|
||||||
|
def test_crypt(self):
|
||||||
|
"""test the crypt auth method"""
|
||||||
|
salts = ["$6$UVVAQvrMyXMF3FF3", "aa"]
|
64
nix/django-cas-server/default.nix
Normal file
64
nix/django-cas-server/default.nix
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
buildPythonPackage,
|
||||||
|
pytestCheckHook,
|
||||||
|
fetchFromGitHub,
|
||||||
|
setuptools,
|
||||||
|
wheel,
|
||||||
|
django,
|
||||||
|
lxml,
|
||||||
|
requests,
|
||||||
|
requests-futures,
|
||||||
|
six,
|
||||||
|
pytest-django,
|
||||||
|
pytest-env,
|
||||||
|
pytest-runner,
|
||||||
|
mock,
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "django-cas-server";
|
||||||
|
version = "unstable-2024-04-13";
|
||||||
|
format = "pyproject";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "nitmir";
|
||||||
|
repo = "django-cas-server";
|
||||||
|
rev = "a04477d34eedba4fcc91f00a22689defd3f22a7f";
|
||||||
|
hash = "sha256-K6SKnYBiA1TrSdDSodYJoz1Bk20PsNo2g0dvs4XdmY0=";
|
||||||
|
};
|
||||||
|
|
||||||
|
patches = [ ./01-pytest.patch ];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
setuptools
|
||||||
|
wheel
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
django
|
||||||
|
lxml
|
||||||
|
requests
|
||||||
|
requests-futures
|
||||||
|
setuptools
|
||||||
|
six
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeCheckInputs = [
|
||||||
|
mock
|
||||||
|
pytestCheckHook
|
||||||
|
pytest-django
|
||||||
|
pytest-env
|
||||||
|
pytest-runner
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonImportsCheck = [ "cas_server" ];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "A Django Central Authentication Service server implementing the CAS Protocol 3.0 Specification";
|
||||||
|
homepage = "https://github.com/nitmir/django-cas-server";
|
||||||
|
changelog = "https://github.com/nitmir/django-cas-server/blob/${src.rev}/CHANGELOG.rst";
|
||||||
|
license = licenses.gpl3Only;
|
||||||
|
maintainers = [ ];
|
||||||
|
};
|
||||||
|
}
|
34
nix/loadcredential/default.nix
Normal file
34
nix/loadcredential/default.nix
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
buildPythonPackage,
|
||||||
|
fetchFromGitHub,
|
||||||
|
setuptools,
|
||||||
|
wheel,
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "loadcredential";
|
||||||
|
version = "1.2";
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "Tom-Hubrecht";
|
||||||
|
repo = "loadcredential";
|
||||||
|
rev = "v${version}";
|
||||||
|
hash = "sha256-rNWFD89h1p1jYWLcfzsa/w8nK3bR4aVJsUPx0UtZnIw=";
|
||||||
|
};
|
||||||
|
|
||||||
|
build-system = [
|
||||||
|
setuptools
|
||||||
|
wheel
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonImportsCheck = [ "loadcredential" ];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "A simple python package to read credentials passed through systemd's LoadCredential, with a fallback on env variables ";
|
||||||
|
homepage = "https://github.com/Tom-Hubrecht/loadcredential";
|
||||||
|
license = lib.licenses.mit;
|
||||||
|
maintainers = []; # with lib.maintainers; [ thubrecht ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,16 +1,5 @@
|
||||||
{
|
{
|
||||||
"pins": {
|
"pins": {
|
||||||
"nix-pkgs": {
|
|
||||||
"type": "Git",
|
|
||||||
"repository": {
|
|
||||||
"type": "Git",
|
|
||||||
"url": "https://git.hubrecht.ovh/hubrecht/nix-pkgs.git"
|
|
||||||
},
|
|
||||||
"branch": "main",
|
|
||||||
"revision": "aa1ecb224ff9c4d200c4d5b9d229d1315c0184f0",
|
|
||||||
"url": null,
|
|
||||||
"hash": "sha256-csAikAaQcr4RdOtOf7DMkOpBBB8w1vD+MPVZGBStMVM="
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"type": "Channel",
|
"type": "Channel",
|
||||||
"name": "nixpkgs-unstable",
|
"name": "nixpkgs-unstable",
|
||||||
|
|
27
requirements.txt
Normal file
27
requirements.txt
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
backcall==0.1.0
|
||||||
|
certifi==2019.11.28
|
||||||
|
chardet==3.0.4
|
||||||
|
decorator==4.4.2
|
||||||
|
Django==2.1.15
|
||||||
|
idna==2.9
|
||||||
|
ipython==7.13.0
|
||||||
|
ipython-genutils==0.2.0
|
||||||
|
jedi==0.16.0
|
||||||
|
ldap3==2.7
|
||||||
|
lxml==4.5.0
|
||||||
|
parso==0.6.2
|
||||||
|
pexpect==4.8.0
|
||||||
|
pickleshare==0.7.5
|
||||||
|
prompt-toolkit==3.0.4
|
||||||
|
ptyprocess==0.6.0
|
||||||
|
pyasn1==0.4.8
|
||||||
|
Pygments==2.6.1
|
||||||
|
pytz==2019.3
|
||||||
|
requests==2.23.0
|
||||||
|
requests-futures==1.0.0
|
||||||
|
six==1.14.0
|
||||||
|
traitlets==4.3.3
|
||||||
|
urllib3==1.25.8
|
||||||
|
wcwidth==0.1.9
|
||||||
|
#django-cas-server==1.1.0
|
||||||
|
git+https://github.com/tobast/django-cas-server@fix_crypt_des
|
Loading…
Reference in a new issue