Projet

Général

Profil

0001-apps-ws-urls-dynamically-loaded-9727.patch

Josué Kouka, 25 janvier 2016 10:20

Télécharger (307 ko)

Voir les différences:

Subject: [PATCH] apps ws urls dynamically loaded (#9727)

 mandayejs/applications.py                          |  20 ++++-
 mandayejs/settings.py                              |   4 +-
 mandayejs/sites/__init__.py                        |   0
 mandayejs/sites/archimed/__init__.py               |   0
 .../sites/archimed/static/archimed/js/archimed.js  |   5 --
 .../archimed/static/archimed/js/auth.checker.js    |   9 ---
 mandayejs/sites/archimed/urls.py                   |  23 ------
 mandayejs/sites/archimed/views.py                  |  88 --------------------
 mandayejs/sites/arpege/__init__.py                 |   0
 mandayejs/sites/arpege/admin.py                    |   3 -
 mandayejs/sites/arpege/migrations/__init__.py      |   0
 mandayejs/sites/arpege/models.py                   |   3 -
 mandayejs/sites/arpege/static/arpege/js/arpege.js  |   1 -
 .../sites/arpege/static/arpege/js/auth.checker.js  |   7 --
 mandayejs/sites/arpege/tests.py                    |   3 -
 mandayejs/sites/arpege/views.py                    |   3 -
 mandayejs/sites/duonet/__init__.py                 |   1 -
 mandayejs/sites/duonet/models.py                   |   0
 .../duonet/static/duonet/css/font-awesome.min.css  |  34 --------
 .../static/duonet/font/fontawesome-webfont.ttf     | Bin 60296 -> 0 bytes
 .../static/duonet/font/fontawesome-webfont.woff    | Bin 31840 -> 0 bytes
 .../sites/duonet/static/duonet/js/auth.checker.js  |   7 --
 mandayejs/sites/duonet/static/duonet/js/duonet.js  |   2 -
 .../vincennes/conservatoire/css/associate.css      |  90 ---------------------
 .../static/vincennes/conservatoire/css/mandaye.css |  55 -------------
 .../conservatoire/images/compte-citoyen.png        | Bin 1742 -> 0 bytes
 .../vincennes/conservatoire/images/cont-bg.png     | Bin 5236 -> 0 bytes
 .../static/vincennes/conservatoire/images/logo.png | Bin 5103 -> 0 bytes
 .../images/vincennes-logo-associate.png            | Bin 19423 -> 0 bytes
 .../static/vincennes/conservatoire/js/associate.js |   3 -
 mandayejs/sites/duonet/views.py                    |   0
 mandayejs/static/archimed/js/archimed.js           |   5 ++
 mandayejs/static/archimed/js/auth.checker.js       |   9 +++
 mandayejs/static/arpege/js/arpege.js               |   1 +
 mandayejs/static/arpege/js/auth.checker.js         |   7 ++
 mandayejs/static/duonet/css/font-awesome.min.css   |  34 ++++++++
 .../static/duonet/font/fontawesome-webfont.ttf     | Bin 0 -> 60296 bytes
 .../static/duonet/font/fontawesome-webfont.woff    | Bin 0 -> 31840 bytes
 mandayejs/static/duonet/js/auth.checker.js         |   7 ++
 mandayejs/static/duonet/js/duonet.js               |   2 +
 .../vincennes/conservatoire/css/associate.css      |  90 +++++++++++++++++++++
 .../static/vincennes/conservatoire/css/mandaye.css |  55 +++++++++++++
 .../conservatoire/images/compte-citoyen.png        | Bin 0 -> 1742 bytes
 .../vincennes/conservatoire/images/cont-bg.png     | Bin 0 -> 5236 bytes
 .../static/vincennes/conservatoire/images/logo.png | Bin 0 -> 5103 bytes
 .../images/vincennes-logo-associate.png            | Bin 0 -> 19423 bytes
 .../static/vincennes/conservatoire/js/associate.js |   3 +
 mandayejs/urls.py                                  |   6 +-
 mandayejs/views.py                                 |  84 +++++++++++++++++++
 49 files changed, 319 insertions(+), 345 deletions(-)
 delete mode 100644 mandayejs/sites/__init__.py
 delete mode 100644 mandayejs/sites/archimed/__init__.py
 delete mode 100644 mandayejs/sites/archimed/static/archimed/js/archimed.js
 delete mode 100644 mandayejs/sites/archimed/static/archimed/js/auth.checker.js
 delete mode 100644 mandayejs/sites/archimed/urls.py
 delete mode 100644 mandayejs/sites/archimed/views.py
 delete mode 100644 mandayejs/sites/arpege/__init__.py
 delete mode 100644 mandayejs/sites/arpege/admin.py
 delete mode 100644 mandayejs/sites/arpege/migrations/__init__.py
 delete mode 100644 mandayejs/sites/arpege/models.py
 delete mode 100644 mandayejs/sites/arpege/static/arpege/js/arpege.js
 delete mode 100644 mandayejs/sites/arpege/static/arpege/js/auth.checker.js
 delete mode 100644 mandayejs/sites/arpege/tests.py
 delete mode 100644 mandayejs/sites/arpege/views.py
 delete mode 100644 mandayejs/sites/duonet/__init__.py
 delete mode 100644 mandayejs/sites/duonet/models.py
 delete mode 100644 mandayejs/sites/duonet/static/duonet/css/font-awesome.min.css
 delete mode 100644 mandayejs/sites/duonet/static/duonet/font/fontawesome-webfont.ttf
 delete mode 100644 mandayejs/sites/duonet/static/duonet/font/fontawesome-webfont.woff
 delete mode 100644 mandayejs/sites/duonet/static/duonet/js/auth.checker.js
 delete mode 100644 mandayejs/sites/duonet/static/duonet/js/duonet.js
 delete mode 100644 mandayejs/sites/duonet/static/vincennes/conservatoire/css/associate.css
 delete mode 100644 mandayejs/sites/duonet/static/vincennes/conservatoire/css/mandaye.css
 delete mode 100644 mandayejs/sites/duonet/static/vincennes/conservatoire/images/compte-citoyen.png
 delete mode 100644 mandayejs/sites/duonet/static/vincennes/conservatoire/images/cont-bg.png
 delete mode 100644 mandayejs/sites/duonet/static/vincennes/conservatoire/images/logo.png
 delete mode 100644 mandayejs/sites/duonet/static/vincennes/conservatoire/images/vincennes-logo-associate.png
 delete mode 100644 mandayejs/sites/duonet/static/vincennes/conservatoire/js/associate.js
 delete mode 100644 mandayejs/sites/duonet/views.py
 create mode 100644 mandayejs/static/archimed/js/archimed.js
 create mode 100644 mandayejs/static/archimed/js/auth.checker.js
 create mode 100644 mandayejs/static/arpege/js/arpege.js
 create mode 100644 mandayejs/static/arpege/js/auth.checker.js
 create mode 100644 mandayejs/static/duonet/css/font-awesome.min.css
 create mode 100644 mandayejs/static/duonet/font/fontawesome-webfont.ttf
 create mode 100644 mandayejs/static/duonet/font/fontawesome-webfont.woff
 create mode 100644 mandayejs/static/duonet/js/auth.checker.js
 create mode 100644 mandayejs/static/duonet/js/duonet.js
 create mode 100644 mandayejs/static/vincennes/conservatoire/css/associate.css
 create mode 100644 mandayejs/static/vincennes/conservatoire/css/mandaye.css
 create mode 100644 mandayejs/static/vincennes/conservatoire/images/compte-citoyen.png
 create mode 100644 mandayejs/static/vincennes/conservatoire/images/cont-bg.png
 create mode 100644 mandayejs/static/vincennes/conservatoire/images/logo.png
 create mode 100644 mandayejs/static/vincennes/conservatoire/images/vincennes-logo-associate.png
 create mode 100644 mandayejs/static/vincennes/conservatoire/js/associate.js
 create mode 100644 mandayejs/views.py
mandayejs/applications.py
18 18
from importlib import import_module
19 19

  
20 20
from django.conf import settings
21
from django.conf.urls import patterns, include, url
22
from django.http import Http404
21 23
from django.core.exceptions import ImproperlyConfigured
24
from django.core.urlresolvers import resolve
25

  
22 26

  
23 27
def get_app_settings():
24 28
    module_name,app_settings = tuple(settings.SITE_APP.rsplit('.',1))
25 29
    module = import_module(module_name)
26 30
    return getattr(module, app_settings)
27 31

  
32
def app_web_services(request, path):
33
    app = get_app_settings()
34
    if hasattr(app, 'urlpatterns'):
35
        view, args, kwargs = resolve(request.path, urlconf= app)
36
        return view(request, *args, **kwargs)
37
    raise Http404
38

  
28 39

  
29 40
# App Settings
30 41
class AppSettingsMeta(type):
......
138 149

  
139 150
    SITE_FORCE_REDIRECT_LOCATOR = '.connectBox'
140 151

  
141
    SITE_WEB_SERVICES = {
152
    SITE_WS_ENDPOINT = {
142 153
        'account_details': '/DEFAULT/Ermes/Services/ILSClient.svc/RetrieveAccount',
143 154
    }
144 155

  
156
    urlpatterns = patterns('',
157
        url(
158
            r'account/(?P<username>[\w+]*)/$', 
159
            'mandayejs.views.archimed_account_details', 
160
            name='archimed-account-details'),
161
    )
162

  
145 163

  
146 164
# Arpege App Settings
147 165
class Arpege(AppSettings):
mandayejs/settings.py
55 55
    'django.contrib.messages',
56 56
    'django.contrib.staticfiles',
57 57
    'rest_framework',
58
    'mandayejs',
58 59
    'mandayejs.mandaye',
59
    'mandayejs.sites.duonet',
60
    'mandayejs.sites.archimed',
61
    'mandayejs.sites.arpege',
62 60
    'gadjo',
63 61
    'mellon'
64 62
)
mandayejs/sites/archimed/static/archimed/js/archimed.js
1
$(function(){
2
    // TEMP
3
    // removes old mandaye panel 
4
    $('#mandaye-toolbar').hide();
5
});
mandayejs/sites/archimed/static/archimed/js/auth.checker.js
1
$(function(){
2
    window.auth_success = function(){
3
        var found = $('.connectBox').text().indexOf("L'utilisateur spécifié est introuvable, vérifiez la syntaxe et réessayez. Mot de passe oublié ?");
4
        if (found == -1){
5
            return true;
6
        }
7
        return false;
8
    }
9
});
mandayejs/sites/archimed/urls.py
1
# mandayejs - saml reverse proxy
2
# Copyright (C) 2015  Entr'ouvert
3
#
4
# This program is free software: you can redistribute it and/or modify it
5
# under the terms of the GNU Affero General Public License as published
6
# by the Free Software Foundation, either version 3 of the License, or
7
# (at your option) any later version.
8
#
9
# This program is distributed in the hope that it will be useful,
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
# GNU Affero General Public License for more details.
13
#
14
# You should have received a copy of the GNU Affero General Public License
15
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
16

  
17
from django.conf.urls import patterns, include, url
18

  
19
from mandayejs.sites.archimed.views import account
20

  
21
urlpatterns = patterns('',
22
    url(r'account/(?P<username>[\w+]*)/$', account, name='archimed-account-detail'),
23
)
mandayejs/sites/archimed/views.py
1
# mandayejs - saml reverse proxy
2
# Copyright (C) 2015  Entr'ouvert
3
#
4
# This program is free software: you can redistribute it and/or modify it
5
# under the terms of the GNU Affero General Public License as published
6
# by the Free Software Foundation, either version 3 of the License, or
7
# (at your option) any later version.
8
#
9
# This program is distributed in the hope that it will be useful,
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
# GNU Affero General Public License for more details.
13
#
14
# You should have received a copy of the GNU Affero General Public License
15
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
16

  
17
from __future__ import absolute_import
18

  
19
import logging
20
import requests
21
from pprint import pprint
22
from requests.cookies import RequestsCookieJar
23

  
24
from django.contrib.auth.models import User
25
from django.shortcuts import get_object_or_404
26
from django.core.exceptions import ImproperlyConfigured
27

  
28
from rest_framework import status
29
from rest_framework.views import APIView
30
from rest_framework.response import Response
31

  
32
from mandayejs.mandaye.models import UserCredentials
33
from mandayejs.mandaye.utils import exec_phantom, cookie_builder, get_login_info
34
from mandayejs.applications import get_app_settings
35

  
36

  
37
class AccountDetails(APIView):
38
    """Archimed user's account details
39
    """
40

  
41
    def get(self, request, *args, **kwargs):
42
        logger = logging.getLogger(__name__)
43
        app_settings = get_app_settings()
44
      
45
        try:
46
            ws_uri = app_settings.SITE_WEB_SERVICES['account_details']
47
        except (AttributeError,):
48
            raise ImproperlyConfigured(
49
                    'No SITE_WEB_SERVICES defined in your AppSettings') 
50

  
51
        username = kwargs['username']
52
        user = get_object_or_404(User, username=username)
53
        credentials = get_object_or_404(UserCredentials, user=user)
54

  
55
        login_info = get_login_info(request, credentials)
56
        logger.debug(login_info)
57
        login_info['locators'] = [ credentials.to_login_info(decrypt=True)]
58
        result = exec_phantom(login_info)
59

  
60
        if result.get('result') != 'ok':
61
            return Response(status=status.HTTP_401_UNAUTHORIZED)
62

  
63
        session = requests.session()
64
        r_cookies = RequestsCookieJar()
65

  
66
        for cookie in result.get('cookies'):
67
            r_cookies.set(
68
                cookie['name'],
69
                cookie['value'],
70
                domain=cookie['domain'],
71
                path=cookie['path'],
72
                secure=cookie['secure']
73
            )
74
        session.cookies = r_cookies
75

  
76
        headers = {
77
            'Content-Type': 'application/json',
78
        }
79
        content = '{"codeConfig":"", "xslPath":"Services/LectorShortAccount.xslt"}'
80
        url = request.build_absolute_uri(ws_uri)
81
        logger.debug(url) 
82
        request_response = session.post(url, headers=headers, data=content, verify=False) 
83
        data = request_response.json()
84
        logger.debug(pprint(data))
85
        return Response(data)
86

  
87

  
88
account = AccountDetails.as_view()
mandayejs/sites/arpege/admin.py
1
from django.contrib import admin
2

  
3
# Register your models here.
mandayejs/sites/arpege/models.py
1
from django.db import models
2

  
3
# Create your models here.
mandayejs/sites/arpege/static/arpege/js/arpege.js
1
$(function(){});
mandayejs/sites/arpege/static/arpege/js/auth.checker.js
1
$(function(){
2
    window.auth_success = function(){
3
        if(window.location.href.indexOf('/affichage_accueil_prive.do') != -1)
4
            return true;
5
        return false;
6
    }
7
});
mandayejs/sites/arpege/tests.py
1
from django.test import TestCase
2

  
3
# Create your tests here.
mandayejs/sites/arpege/views.py
1
from django.shortcuts import render
2

  
3
# Create your views here.
mandayejs/sites/duonet/__init__.py
1

  
mandayejs/sites/duonet/static/duonet/css/font-awesome.min.css
1
/*  Font Awesome 3.0
2
    the iconic font designed for use with Twitter Bootstrap
3
    -------------------------------------------------------
4
    The full suite of pictographic icons, examples, and documentation
5
    can be found at: http://fortawesome.github.com/Font-Awesome/
6

  
7
    License
8
    -------------------------------------------------------
9
    • The Font Awesome font is licensed under the SIL Open Font License - http://scripts.sil.org/OFL
10
    • Font Awesome CSS, LESS, and SASS files are licensed under the MIT License -
11
      http://opensource.org/licenses/mit-license.html
12
    • The Font Awesome pictograms are licensed under the CC BY 3.0 License - http://creativecommons.org/licenses/by/3.0/
13
    • Attribution is no longer required in Font Awesome 3.0, but much appreciated:
14
      "Font Awesome by Dave Gandy - http://fortawesome.github.com/Font-Awesome"
15

  
16
    Contact
17
    -------------------------------------------------------
18
    Email: dave@davegandy.com
19
    Twitter: http://twitter.com/fortaweso_me
20
    Work: Lead Product Designer @ http://kyruus.com
21

  
22
    */
23

  
24
@font-face {
25
  font-family:'FontAwesome';
26
  src:url('../font/fontawesome-webfont.eot');
27
  src:url('../font/fontawesome-webfont.eot?#iefix') format('embedded-opentype'),
28
    url('../font/fontawesome-webfont.woff') format('woff'),
29
    url('../font/fontawesome-webfont.ttf') format('truetype');
30
  font-weight:normal;
31
  font-style:normal
32
}
33

  
34
[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none!important;background-position:0 0;background-repeat:repeat}[class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none}a [class^="icon-"],a [class*=" icon-"]{display:inline-block}.icon-large:before{vertical-align:-10%;font-size:1.3333333333333333em}.btn [class^="icon-"],.nav [class^="icon-"],.btn [class*=" icon-"],.nav [class*=" icon-"]{display:inline;line-height:.6em}.btn [class^="icon-"].icon-spin,.nav [class^="icon-"].icon-spin,.btn [class*=" icon-"].icon-spin,.nav [class*=" icon-"].icon-spin{display:inline-block}li [class^="icon-"],li [class*=" icon-"]{display:inline-block;width:1.25em;text-align:center}li [class^="icon-"].icon-large,li [class*=" icon-"].icon-large{width:1.5625em}ul.icons{list-style-type:none;text-indent:-0.75em}ul.icons li [class^="icon-"],ul.icons li [class*=" icon-"]{width:.75em}.icon-muted{color:#eee}.icon-border{border:solid 1px #eee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.icon-2x{font-size:2em}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.icon-3x{font-size:3em}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.icon-4x{font-size:4em}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.pull-right{float:right}.pull-left{float:left}[class^="icon-"].pull-left,[class*=" icon-"].pull-left{margin-right:.35em}[class^="icon-"].pull-right,[class*=" icon-"].pull-right{margin-left:.35em}.btn [class^="icon-"].pull-left.icon-2x,.btn [class*=" icon-"].pull-left.icon-2x,.btn [class^="icon-"].pull-right.icon-2x,.btn [class*=" icon-"].pull-right.icon-2x{margin-top:.35em}.btn [class^="icon-"].icon-spin.icon-large,.btn [class*=" icon-"].icon-spin.icon-large{height:.75em}.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small [class*=" icon-"].pull-right.icon-2x{margin-top:.45em}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-top:.2em}.icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.icon-glass:before{content:"\f000"}.icon-music:before{content:"\f001"}.icon-search:before{content:"\f002"}.icon-envelope:before{content:"\f003"}.icon-heart:before{content:"\f004"}.icon-star:before{content:"\f005"}.icon-star-empty:before{content:"\f006"}.icon-user:before{content:"\f007"}.icon-film:before{content:"\f008"}.icon-th-large:before{content:"\f009"}.icon-th:before{content:"\f00a"}.icon-th-list:before{content:"\f00b"}.icon-ok:before{content:"\f00c"}.icon-remove:before{content:"\f00d"}.icon-zoom-in:before{content:"\f00e"}.icon-zoom-out:before{content:"\f010"}.icon-off:before{content:"\f011"}.icon-signal:before{content:"\f012"}.icon-cog:before{content:"\f013"}.icon-trash:before{content:"\f014"}.icon-home:before{content:"\f015"}.icon-file:before{content:"\f016"}.icon-time:before{content:"\f017"}.icon-road:before{content:"\f018"}.icon-download-alt:before{content:"\f019"}.icon-download:before{content:"\f01a"}.icon-upload:before{content:"\f01b"}.icon-inbox:before{content:"\f01c"}.icon-play-circle:before{content:"\f01d"}.icon-repeat:before{content:"\f01e"}.icon-refresh:before{content:"\f021"}.icon-list-alt:before{content:"\f022"}.icon-lock:before{content:"\f023"}.icon-flag:before{content:"\f024"}.icon-headphones:before{content:"\f025"}.icon-volume-off:before{content:"\f026"}.icon-volume-down:before{content:"\f027"}.icon-volume-up:before{content:"\f028"}.icon-qrcode:before{content:"\f029"}.icon-barcode:before{content:"\f02a"}.icon-tag:before{content:"\f02b"}.icon-tags:before{content:"\f02c"}.icon-book:before{content:"\f02d"}.icon-bookmark:before{content:"\f02e"}.icon-print:before{content:"\f02f"}.icon-camera:before{content:"\f030"}.icon-font:before{content:"\f031"}.icon-bold:before{content:"\f032"}.icon-italic:before{content:"\f033"}.icon-text-height:before{content:"\f034"}.icon-text-width:before{content:"\f035"}.icon-align-left:before{content:"\f036"}.icon-align-center:before{content:"\f037"}.icon-align-right:before{content:"\f038"}.icon-align-justify:before{content:"\f039"}.icon-list:before{content:"\f03a"}.icon-indent-left:before{content:"\f03b"}.icon-indent-right:before{content:"\f03c"}.icon-facetime-video:before{content:"\f03d"}.icon-picture:before{content:"\f03e"}.icon-pencil:before{content:"\f040"}.icon-map-marker:before{content:"\f041"}.icon-adjust:before{content:"\f042"}.icon-tint:before{content:"\f043"}.icon-edit:before{content:"\f044"}.icon-share:before{content:"\f045"}.icon-check:before{content:"\f046"}.icon-move:before{content:"\f047"}.icon-step-backward:before{content:"\f048"}.icon-fast-backward:before{content:"\f049"}.icon-backward:before{content:"\f04a"}.icon-play:before{content:"\f04b"}.icon-pause:before{content:"\f04c"}.icon-stop:before{content:"\f04d"}.icon-forward:before{content:"\f04e"}.icon-fast-forward:before{content:"\f050"}.icon-step-forward:before{content:"\f051"}.icon-eject:before{content:"\f052"}.icon-chevron-left:before{content:"\f053"}.icon-chevron-right:before{content:"\f054"}.icon-plus-sign:before{content:"\f055"}.icon-minus-sign:before{content:"\f056"}.icon-remove-sign:before{content:"\f057"}.icon-ok-sign:before{content:"\f058"}.icon-question-sign:before{content:"\f059"}.icon-info-sign:before{content:"\f05a"}.icon-screenshot:before{content:"\f05b"}.icon-remove-circle:before{content:"\f05c"}.icon-ok-circle:before{content:"\f05d"}.icon-ban-circle:before{content:"\f05e"}.icon-arrow-left:before{content:"\f060"}.icon-arrow-right:before{content:"\f061"}.icon-arrow-up:before{content:"\f062"}.icon-arrow-down:before{content:"\f063"}.icon-share-alt:before{content:"\f064"}.icon-resize-full:before{content:"\f065"}.icon-resize-small:before{content:"\f066"}.icon-plus:before{content:"\f067"}.icon-minus:before{content:"\f068"}.icon-asterisk:before{content:"\f069"}.icon-exclamation-sign:before{content:"\f06a"}.icon-gift:before{content:"\f06b"}.icon-leaf:before{content:"\f06c"}.icon-fire:before{content:"\f06d"}.icon-eye-open:before{content:"\f06e"}.icon-eye-close:before{content:"\f070"}.icon-warning-sign:before{content:"\f071"}.icon-plane:before{content:"\f072"}.icon-calendar:before{content:"\f073"}.icon-random:before{content:"\f074"}.icon-comment:before{content:"\f075"}.icon-magnet:before{content:"\f076"}.icon-chevron-up:before{content:"\f077"}.icon-chevron-down:before{content:"\f078"}.icon-retweet:before{content:"\f079"}.icon-shopping-cart:before{content:"\f07a"}.icon-folder-close:before{content:"\f07b"}.icon-folder-open:before{content:"\f07c"}.icon-resize-vertical:before{content:"\f07d"}.icon-resize-horizontal:before{content:"\f07e"}.icon-bar-chart:before{content:"\f080"}.icon-twitter-sign:before{content:"\f081"}.icon-facebook-sign:before{content:"\f082"}.icon-camera-retro:before{content:"\f083"}.icon-key:before{content:"\f084"}.icon-cogs:before{content:"\f085"}.icon-comments:before{content:"\f086"}.icon-thumbs-up:before{content:"\f087"}.icon-thumbs-down:before{content:"\f088"}.icon-star-half:before{content:"\f089"}.icon-heart-empty:before{content:"\f08a"}.icon-signout:before{content:"\f08b"}.icon-linkedin-sign:before{content:"\f08c"}.icon-pushpin:before{content:"\f08d"}.icon-external-link:before{content:"\f08e"}.icon-signin:before{content:"\f090"}.icon-trophy:before{content:"\f091"}.icon-github-sign:before{content:"\f092"}.icon-upload-alt:before{content:"\f093"}.icon-lemon:before{content:"\f094"}.icon-phone:before{content:"\f095"}.icon-check-empty:before{content:"\f096"}.icon-bookmark-empty:before{content:"\f097"}.icon-phone-sign:before{content:"\f098"}.icon-twitter:before{content:"\f099"}.icon-facebook:before{content:"\f09a"}.icon-github:before{content:"\f09b"}.icon-unlock:before{content:"\f09c"}.icon-credit-card:before{content:"\f09d"}.icon-rss:before{content:"\f09e"}.icon-hdd:before{content:"\f0a0"}.icon-bullhorn:before{content:"\f0a1"}.icon-bell:before{content:"\f0a2"}.icon-certificate:before{content:"\f0a3"}.icon-hand-right:before{content:"\f0a4"}.icon-hand-left:before{content:"\f0a5"}.icon-hand-up:before{content:"\f0a6"}.icon-hand-down:before{content:"\f0a7"}.icon-circle-arrow-left:before{content:"\f0a8"}.icon-circle-arrow-right:before{content:"\f0a9"}.icon-circle-arrow-up:before{content:"\f0aa"}.icon-circle-arrow-down:before{content:"\f0ab"}.icon-globe:before{content:"\f0ac"}.icon-wrench:before{content:"\f0ad"}.icon-tasks:before{content:"\f0ae"}.icon-filter:before{content:"\f0b0"}.icon-briefcase:before{content:"\f0b1"}.icon-fullscreen:before{content:"\f0b2"}.icon-group:before{content:"\f0c0"}.icon-link:before{content:"\f0c1"}.icon-cloud:before{content:"\f0c2"}.icon-beaker:before{content:"\f0c3"}.icon-cut:before{content:"\f0c4"}.icon-copy:before{content:"\f0c5"}.icon-paper-clip:before{content:"\f0c6"}.icon-save:before{content:"\f0c7"}.icon-sign-blank:before{content:"\f0c8"}.icon-reorder:before{content:"\f0c9"}.icon-list-ul:before{content:"\f0ca"}.icon-list-ol:before{content:"\f0cb"}.icon-strikethrough:before{content:"\f0cc"}.icon-underline:before{content:"\f0cd"}.icon-table:before{content:"\f0ce"}.icon-magic:before{content:"\f0d0"}.icon-truck:before{content:"\f0d1"}.icon-pinterest:before{content:"\f0d2"}.icon-pinterest-sign:before{content:"\f0d3"}.icon-google-plus-sign:before{content:"\f0d4"}.icon-google-plus:before{content:"\f0d5"}.icon-money:before{content:"\f0d6"}.icon-caret-down:before{content:"\f0d7"}.icon-caret-up:before{content:"\f0d8"}.icon-caret-left:before{content:"\f0d9"}.icon-caret-right:before{content:"\f0da"}.icon-columns:before{content:"\f0db"}.icon-sort:before{content:"\f0dc"}.icon-sort-down:before{content:"\f0dd"}.icon-sort-up:before{content:"\f0de"}.icon-envelope-alt:before{content:"\f0e0"}.icon-linkedin:before{content:"\f0e1"}.icon-undo:before{content:"\f0e2"}.icon-legal:before{content:"\f0e3"}.icon-dashboard:before{content:"\f0e4"}.icon-comment-alt:before{content:"\f0e5"}.icon-comments-alt:before{content:"\f0e6"}.icon-bolt:before{content:"\f0e7"}.icon-sitemap:before{content:"\f0e8"}.icon-umbrella:before{content:"\f0e9"}.icon-paste:before{content:"\f0ea"}.icon-lightbulb:before{content:"\f0eb"}.icon-exchange:before{content:"\f0ec"}.icon-cloud-download:before{content:"\f0ed"}.icon-cloud-upload:before{content:"\f0ee"}.icon-user-md:before{content:"\f0f0"}.icon-stethoscope:before{content:"\f0f1"}.icon-suitcase:before{content:"\f0f2"}.icon-bell-alt:before{content:"\f0f3"}.icon-coffee:before{content:"\f0f4"}.icon-food:before{content:"\f0f5"}.icon-file-alt:before{content:"\f0f6"}.icon-building:before{content:"\f0f7"}.icon-hospital:before{content:"\f0f8"}.icon-ambulance:before{content:"\f0f9"}.icon-medkit:before{content:"\f0fa"}.icon-fighter-jet:before{content:"\f0fb"}.icon-beer:before{content:"\f0fc"}.icon-h-sign:before{content:"\f0fd"}.icon-plus-sign-alt:before{content:"\f0fe"}.icon-double-angle-left:before{content:"\f100"}.icon-double-angle-right:before{content:"\f101"}.icon-double-angle-up:before{content:"\f102"}.icon-double-angle-down:before{content:"\f103"}.icon-angle-left:before{content:"\f104"}.icon-angle-right:before{content:"\f105"}.icon-angle-up:before{content:"\f106"}.icon-angle-down:before{content:"\f107"}.icon-desktop:before{content:"\f108"}.icon-laptop:before{content:"\f109"}.icon-tablet:before{content:"\f10a"}.icon-mobile-phone:before{content:"\f10b"}.icon-circle-blank:before{content:"\f10c"}.icon-quote-left:before{content:"\f10d"}.icon-quote-right:before{content:"\f10e"}.icon-spinner:before{content:"\f110"}.icon-circle:before{content:"\f111"}.icon-reply:before{content:"\f112"}.icon-github-alt:before{content:"\f113"}.icon-folder-close-alt:before{content:"\f114"}.icon-folder-open-alt:before{content:"\f115"}
mandayejs/sites/duonet/static/duonet/js/auth.checker.js
1
$(function(){
2
    window.auth_success = function(){
3
       if (window.location.pathname == '/Default.aspx')
4
           return true;
5
       return false;
6
    };
7
});
mandayejs/sites/duonet/static/duonet/js/duonet.js
1
$('head').append('<link rel="stylesheet" href="/_mandaye/static/duonet/css/font-awesome.min.css" type="text/css" />');
2
$('#sso-url').after($('#sso-mandaye-link'));
mandayejs/sites/duonet/static/vincennes/conservatoire/css/associate.css
1
body {
2
    width: 900px;
3
    max-width: 100%;
4
    margin: 0 auto;
5
    position: relative;
6
}
7

  
8
h1 {
9
    font-size: larger;
10
}
11

  
12
.helptext {
13
    font-size: x-small;
14
}
15

  
16
.messages {
17
    font-size: small;
18
    text-align: left;
19
    postion: relative;
20
    margin-left: 90px;
21
    color: red;
22
}
23

  
24
.messages li { list-style-type: none }
25

  
26
.errorlist {
27
    font-size: small;
28
    text-align: left;
29
    position: relative;
30
    left: 90px;
31
    color: red;
32
    margin: 0;
33
}
34

  
35
.errorlist li { list-style-type: none }
36

  
37
#main-div {
38
    width: 400px;
39
    max-width: 100%;
40
    margin-left: auto;
41
    margin-right: auto;
42
    position: relative;
43
    background: #f7f7fd;
44
    color: #3a4450;
45
    border: 1px solid #f0f0fb;
46
    border-radius: 5px;
47
    text-align: center;
48
}
49

  
50
#submit, #cancel {
51
    border-color: #6bbef6;
52
    background: #6bbef6;
53
    color: #ffffff;
54
    text-transform: uppercase;
55
    font-weight: bold;
56
}
57

  
58
p {
59
    text-align: left; 
60
    width: 90%;
61
    max-width: 15em;;
62
    margin: 1ex auto;
63
}
64
label {
65
    display: block;
66
    margin-left: auto;
67
    margin-right: auto;
68
    vertical-align: top;
69
    text-align: left;
70
    font-size: 14px;
71
    font-weight: normal;
72
    line-height: 20px;
73
}
74

  
75
input {
76
    width: 100%;
77
    display: block;
78
    margin-left: auto;
79
    margin-right: auto;
80
    padding: 4px;
81
    vertical-align: top;
82
}
83

  
84
#imgMain {
85
    height: 120px;
86
    border: none;
87
    display: block;
88
    margin: 1ex auto;
89
    border: 1px solid #eee;
90
}
mandayejs/sites/duonet/static/vincennes/conservatoire/css/mandaye.css
1
#mandaye-js {
2
    margin: 0 auto;
3
    background: #d72a84;
4
    height: 35px;
5
}
6

  
7
#mandaye-logo {
8
    position: absolute;
9
    top: 10px;
10
    left: 0;
11
    padding: 10px 15px 0px 15px;
12
    width: 170px;
13
    height: 60px;
14
    background: url('/_mandaye/static/images/cont-bg.png') 0px -10px no-repeat;
15
    background-size: 100% 100%;
16
}
17

  
18
#mandaye-username {
19
    background-color: transparent;
20
    background-repeat: no-repeat;
21
    background-image: url('/_mandaye/static/images/compte-citoyen.png');
22
    padding: 0px 12px 10px 47px;
23
    background-position: 10px 5px;
24
    font-weight : bold;
25
    height: 30px;
26
    margin-left: 210px;
27
}
28

  
29
#mandaye-url {
30
    float: right;
31
    margin : 0 20px 0 20px ;
32
}
33

  
34
#mandaye-association-url {
35
    float : right;
36
    margin : 0 20px 0 20px ;
37
}
38

  
39
#mandaye-advances {
40
    float: left;
41
    margin-left: 20px;
42
    margin-right: 20px;
43
    font-weight : bold;
44
}
45

  
46
/*On Default.aspx*/
47
#logo {
48
    display: none;
49
}
50

  
51
/*On Connect.aspx*/
52
#imgMain {
53
    margin-top: 20px;
54
}
55

  
mandayejs/sites/duonet/static/vincennes/conservatoire/js/associate.js
1
$(function(){
2
    $('body').prepend('<a href="https://www.vincennes.fr/"><img id="imgMain" class="img-polaroid" src="/_mandaye/static/vincennes/conservatoire/images/vincennes-logo-associate.png"></a>');
3
});
mandayejs/static/archimed/js/archimed.js
1
$(function(){
2
    // TEMP
3
    // removes old mandaye panel 
4
    $('#mandaye-toolbar').hide();
5
});
mandayejs/static/archimed/js/auth.checker.js
1
$(function(){
2
    window.auth_success = function(){
3
        var found = $('.connectBox').text().indexOf("L'utilisateur spécifié est introuvable, vérifiez la syntaxe et réessayez. Mot de passe oublié ?");
4
        if (found == -1){
5
            return true;
6
        }
7
        return false;
8
    }
9
});
mandayejs/static/arpege/js/arpege.js
1
$(function(){});
mandayejs/static/arpege/js/auth.checker.js
1
$(function(){
2
    window.auth_success = function(){
3
        if(window.location.href.indexOf('/affichage_accueil_prive.do') != -1)
4
            return true;
5
        return false;
6
    }
7
});
mandayejs/static/duonet/css/font-awesome.min.css
1
/*  Font Awesome 3.0
2
    the iconic font designed for use with Twitter Bootstrap
3
    -------------------------------------------------------
4
    The full suite of pictographic icons, examples, and documentation
5
    can be found at: http://fortawesome.github.com/Font-Awesome/
6

  
7
    License
8
    -------------------------------------------------------
9
    • The Font Awesome font is licensed under the SIL Open Font License - http://scripts.sil.org/OFL
10
    • Font Awesome CSS, LESS, and SASS files are licensed under the MIT License -
11
      http://opensource.org/licenses/mit-license.html
12
    • The Font Awesome pictograms are licensed under the CC BY 3.0 License - http://creativecommons.org/licenses/by/3.0/
13
    • Attribution is no longer required in Font Awesome 3.0, but much appreciated:
14
      "Font Awesome by Dave Gandy - http://fortawesome.github.com/Font-Awesome"
15

  
16
    Contact
17
    -------------------------------------------------------
18
    Email: dave@davegandy.com
19
    Twitter: http://twitter.com/fortaweso_me
20
    Work: Lead Product Designer @ http://kyruus.com
21

  
22
    */
23

  
24
@font-face {
25
  font-family:'FontAwesome';
26
  src:url('../font/fontawesome-webfont.eot');
27
  src:url('../font/fontawesome-webfont.eot?#iefix') format('embedded-opentype'),
28
    url('../font/fontawesome-webfont.woff') format('woff'),
29
    url('../font/fontawesome-webfont.ttf') format('truetype');
30
  font-weight:normal;
31
  font-style:normal
32
}
33

  
34
[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none!important;background-position:0 0;background-repeat:repeat}[class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none}a [class^="icon-"],a [class*=" icon-"]{display:inline-block}.icon-large:before{vertical-align:-10%;font-size:1.3333333333333333em}.btn [class^="icon-"],.nav [class^="icon-"],.btn [class*=" icon-"],.nav [class*=" icon-"]{display:inline;line-height:.6em}.btn [class^="icon-"].icon-spin,.nav [class^="icon-"].icon-spin,.btn [class*=" icon-"].icon-spin,.nav [class*=" icon-"].icon-spin{display:inline-block}li [class^="icon-"],li [class*=" icon-"]{display:inline-block;width:1.25em;text-align:center}li [class^="icon-"].icon-large,li [class*=" icon-"].icon-large{width:1.5625em}ul.icons{list-style-type:none;text-indent:-0.75em}ul.icons li [class^="icon-"],ul.icons li [class*=" icon-"]{width:.75em}.icon-muted{color:#eee}.icon-border{border:solid 1px #eee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.icon-2x{font-size:2em}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.icon-3x{font-size:3em}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.icon-4x{font-size:4em}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.pull-right{float:right}.pull-left{float:left}[class^="icon-"].pull-left,[class*=" icon-"].pull-left{margin-right:.35em}[class^="icon-"].pull-right,[class*=" icon-"].pull-right{margin-left:.35em}.btn [class^="icon-"].pull-left.icon-2x,.btn [class*=" icon-"].pull-left.icon-2x,.btn [class^="icon-"].pull-right.icon-2x,.btn [class*=" icon-"].pull-right.icon-2x{margin-top:.35em}.btn [class^="icon-"].icon-spin.icon-large,.btn [class*=" icon-"].icon-spin.icon-large{height:.75em}.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small [class*=" icon-"].pull-right.icon-2x{margin-top:.45em}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large [class*=" icon-"].pull-right.icon-2x{margin-top:.2em}.icon-spin{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.icon-glass:before{content:"\f000"}.icon-music:before{content:"\f001"}.icon-search:before{content:"\f002"}.icon-envelope:before{content:"\f003"}.icon-heart:before{content:"\f004"}.icon-star:before{content:"\f005"}.icon-star-empty:before{content:"\f006"}.icon-user:before{content:"\f007"}.icon-film:before{content:"\f008"}.icon-th-large:before{content:"\f009"}.icon-th:before{content:"\f00a"}.icon-th-list:before{content:"\f00b"}.icon-ok:before{content:"\f00c"}.icon-remove:before{content:"\f00d"}.icon-zoom-in:before{content:"\f00e"}.icon-zoom-out:before{content:"\f010"}.icon-off:before{content:"\f011"}.icon-signal:before{content:"\f012"}.icon-cog:before{content:"\f013"}.icon-trash:before{content:"\f014"}.icon-home:before{content:"\f015"}.icon-file:before{content:"\f016"}.icon-time:before{content:"\f017"}.icon-road:before{content:"\f018"}.icon-download-alt:before{content:"\f019"}.icon-download:before{content:"\f01a"}.icon-upload:before{content:"\f01b"}.icon-inbox:before{content:"\f01c"}.icon-play-circle:before{content:"\f01d"}.icon-repeat:before{content:"\f01e"}.icon-refresh:before{content:"\f021"}.icon-list-alt:before{content:"\f022"}.icon-lock:before{content:"\f023"}.icon-flag:before{content:"\f024"}.icon-headphones:before{content:"\f025"}.icon-volume-off:before{content:"\f026"}.icon-volume-down:before{content:"\f027"}.icon-volume-up:before{content:"\f028"}.icon-qrcode:before{content:"\f029"}.icon-barcode:before{content:"\f02a"}.icon-tag:before{content:"\f02b"}.icon-tags:before{content:"\f02c"}.icon-book:before{content:"\f02d"}.icon-bookmark:before{content:"\f02e"}.icon-print:before{content:"\f02f"}.icon-camera:before{content:"\f030"}.icon-font:before{content:"\f031"}.icon-bold:before{content:"\f032"}.icon-italic:before{content:"\f033"}.icon-text-height:before{content:"\f034"}.icon-text-width:before{content:"\f035"}.icon-align-left:before{content:"\f036"}.icon-align-center:before{content:"\f037"}.icon-align-right:before{content:"\f038"}.icon-align-justify:before{content:"\f039"}.icon-list:before{content:"\f03a"}.icon-indent-left:before{content:"\f03b"}.icon-indent-right:before{content:"\f03c"}.icon-facetime-video:before{content:"\f03d"}.icon-picture:before{content:"\f03e"}.icon-pencil:before{content:"\f040"}.icon-map-marker:before{content:"\f041"}.icon-adjust:before{content:"\f042"}.icon-tint:before{content:"\f043"}.icon-edit:before{content:"\f044"}.icon-share:before{content:"\f045"}.icon-check:before{content:"\f046"}.icon-move:before{content:"\f047"}.icon-step-backward:before{content:"\f048"}.icon-fast-backward:before{content:"\f049"}.icon-backward:before{content:"\f04a"}.icon-play:before{content:"\f04b"}.icon-pause:before{content:"\f04c"}.icon-stop:before{content:"\f04d"}.icon-forward:before{content:"\f04e"}.icon-fast-forward:before{content:"\f050"}.icon-step-forward:before{content:"\f051"}.icon-eject:before{content:"\f052"}.icon-chevron-left:before{content:"\f053"}.icon-chevron-right:before{content:"\f054"}.icon-plus-sign:before{content:"\f055"}.icon-minus-sign:before{content:"\f056"}.icon-remove-sign:before{content:"\f057"}.icon-ok-sign:before{content:"\f058"}.icon-question-sign:before{content:"\f059"}.icon-info-sign:before{content:"\f05a"}.icon-screenshot:before{content:"\f05b"}.icon-remove-circle:before{content:"\f05c"}.icon-ok-circle:before{content:"\f05d"}.icon-ban-circle:before{content:"\f05e"}.icon-arrow-left:before{content:"\f060"}.icon-arrow-right:before{content:"\f061"}.icon-arrow-up:before{content:"\f062"}.icon-arrow-down:before{content:"\f063"}.icon-share-alt:before{content:"\f064"}.icon-resize-full:before{content:"\f065"}.icon-resize-small:before{content:"\f066"}.icon-plus:before{content:"\f067"}.icon-minus:before{content:"\f068"}.icon-asterisk:before{content:"\f069"}.icon-exclamation-sign:before{content:"\f06a"}.icon-gift:before{content:"\f06b"}.icon-leaf:before{content:"\f06c"}.icon-fire:before{content:"\f06d"}.icon-eye-open:before{content:"\f06e"}.icon-eye-close:before{content:"\f070"}.icon-warning-sign:before{content:"\f071"}.icon-plane:before{content:"\f072"}.icon-calendar:before{content:"\f073"}.icon-random:before{content:"\f074"}.icon-comment:before{content:"\f075"}.icon-magnet:before{content:"\f076"}.icon-chevron-up:before{content:"\f077"}.icon-chevron-down:before{content:"\f078"}.icon-retweet:before{content:"\f079"}.icon-shopping-cart:before{content:"\f07a"}.icon-folder-close:before{content:"\f07b"}.icon-folder-open:before{content:"\f07c"}.icon-resize-vertical:before{content:"\f07d"}.icon-resize-horizontal:before{content:"\f07e"}.icon-bar-chart:before{content:"\f080"}.icon-twitter-sign:before{content:"\f081"}.icon-facebook-sign:before{content:"\f082"}.icon-camera-retro:before{content:"\f083"}.icon-key:before{content:"\f084"}.icon-cogs:before{content:"\f085"}.icon-comments:before{content:"\f086"}.icon-thumbs-up:before{content:"\f087"}.icon-thumbs-down:before{content:"\f088"}.icon-star-half:before{content:"\f089"}.icon-heart-empty:before{content:"\f08a"}.icon-signout:before{content:"\f08b"}.icon-linkedin-sign:before{content:"\f08c"}.icon-pushpin:before{content:"\f08d"}.icon-external-link:before{content:"\f08e"}.icon-signin:before{content:"\f090"}.icon-trophy:before{content:"\f091"}.icon-github-sign:before{content:"\f092"}.icon-upload-alt:before{content:"\f093"}.icon-lemon:before{content:"\f094"}.icon-phone:before{content:"\f095"}.icon-check-empty:before{content:"\f096"}.icon-bookmark-empty:before{content:"\f097"}.icon-phone-sign:before{content:"\f098"}.icon-twitter:before{content:"\f099"}.icon-facebook:before{content:"\f09a"}.icon-github:before{content:"\f09b"}.icon-unlock:before{content:"\f09c"}.icon-credit-card:before{content:"\f09d"}.icon-rss:before{content:"\f09e"}.icon-hdd:before{content:"\f0a0"}.icon-bullhorn:before{content:"\f0a1"}.icon-bell:before{content:"\f0a2"}.icon-certificate:before{content:"\f0a3"}.icon-hand-right:before{content:"\f0a4"}.icon-hand-left:before{content:"\f0a5"}.icon-hand-up:before{content:"\f0a6"}.icon-hand-down:before{content:"\f0a7"}.icon-circle-arrow-left:before{content:"\f0a8"}.icon-circle-arrow-right:before{content:"\f0a9"}.icon-circle-arrow-up:before{content:"\f0aa"}.icon-circle-arrow-down:before{content:"\f0ab"}.icon-globe:before{content:"\f0ac"}.icon-wrench:before{content:"\f0ad"}.icon-tasks:before{content:"\f0ae"}.icon-filter:before{content:"\f0b0"}.icon-briefcase:before{content:"\f0b1"}.icon-fullscreen:before{content:"\f0b2"}.icon-group:before{content:"\f0c0"}.icon-link:before{content:"\f0c1"}.icon-cloud:before{content:"\f0c2"}.icon-beaker:before{content:"\f0c3"}.icon-cut:before{content:"\f0c4"}.icon-copy:before{content:"\f0c5"}.icon-paper-clip:before{content:"\f0c6"}.icon-save:before{content:"\f0c7"}.icon-sign-blank:before{content:"\f0c8"}.icon-reorder:before{content:"\f0c9"}.icon-list-ul:before{content:"\f0ca"}.icon-list-ol:before{content:"\f0cb"}.icon-strikethrough:before{content:"\f0cc"}.icon-underline:before{content:"\f0cd"}.icon-table:before{content:"\f0ce"}.icon-magic:before{content:"\f0d0"}.icon-truck:before{content:"\f0d1"}.icon-pinterest:before{content:"\f0d2"}.icon-pinterest-sign:before{content:"\f0d3"}.icon-google-plus-sign:before{content:"\f0d4"}.icon-google-plus:before{content:"\f0d5"}.icon-money:before{content:"\f0d6"}.icon-caret-down:before{content:"\f0d7"}.icon-caret-up:before{content:"\f0d8"}.icon-caret-left:before{content:"\f0d9"}.icon-caret-right:before{content:"\f0da"}.icon-columns:before{content:"\f0db"}.icon-sort:before{content:"\f0dc"}.icon-sort-down:before{content:"\f0dd"}.icon-sort-up:before{content:"\f0de"}.icon-envelope-alt:before{content:"\f0e0"}.icon-linkedin:before{content:"\f0e1"}.icon-undo:before{content:"\f0e2"}.icon-legal:before{content:"\f0e3"}.icon-dashboard:before{content:"\f0e4"}.icon-comment-alt:before{content:"\f0e5"}.icon-comments-alt:before{content:"\f0e6"}.icon-bolt:before{content:"\f0e7"}.icon-sitemap:before{content:"\f0e8"}.icon-umbrella:before{content:"\f0e9"}.icon-paste:before{content:"\f0ea"}.icon-lightbulb:before{content:"\f0eb"}.icon-exchange:before{content:"\f0ec"}.icon-cloud-download:before{content:"\f0ed"}.icon-cloud-upload:before{content:"\f0ee"}.icon-user-md:before{content:"\f0f0"}.icon-stethoscope:before{content:"\f0f1"}.icon-suitcase:before{content:"\f0f2"}.icon-bell-alt:before{content:"\f0f3"}.icon-coffee:before{content:"\f0f4"}.icon-food:before{content:"\f0f5"}.icon-file-alt:before{content:"\f0f6"}.icon-building:before{content:"\f0f7"}.icon-hospital:before{content:"\f0f8"}.icon-ambulance:before{content:"\f0f9"}.icon-medkit:before{content:"\f0fa"}.icon-fighter-jet:before{content:"\f0fb"}.icon-beer:before{content:"\f0fc"}.icon-h-sign:before{content:"\f0fd"}.icon-plus-sign-alt:before{content:"\f0fe"}.icon-double-angle-left:before{content:"\f100"}.icon-double-angle-right:before{content:"\f101"}.icon-double-angle-up:before{content:"\f102"}.icon-double-angle-down:before{content:"\f103"}.icon-angle-left:before{content:"\f104"}.icon-angle-right:before{content:"\f105"}.icon-angle-up:before{content:"\f106"}.icon-angle-down:before{content:"\f107"}.icon-desktop:before{content:"\f108"}.icon-laptop:before{content:"\f109"}.icon-tablet:before{content:"\f10a"}.icon-mobile-phone:before{content:"\f10b"}.icon-circle-blank:before{content:"\f10c"}.icon-quote-left:before{content:"\f10d"}.icon-quote-right:before{content:"\f10e"}.icon-spinner:before{content:"\f110"}.icon-circle:before{content:"\f111"}.icon-reply:before{content:"\f112"}.icon-github-alt:before{content:"\f113"}.icon-folder-close-alt:before{content:"\f114"}.icon-folder-open-alt:before{content:"\f115"}
mandayejs/static/duonet/js/auth.checker.js
1
$(function(){
2
    window.auth_success = function(){
3
       if (window.location.pathname == '/Default.aspx')
4
           return true;
5
       return false;
6
    };
7
});
mandayejs/static/duonet/js/duonet.js
1
$('head').append('<link rel="stylesheet" href="/_mandaye/static/duonet/css/font-awesome.min.css" type="text/css" />');
2
$('#sso-url').after($('#sso-mandaye-link'));
mandayejs/static/vincennes/conservatoire/css/associate.css
1
body {
2
    width: 900px;
3
    max-width: 100%;
4
    margin: 0 auto;
5
    position: relative;
6
}
7

  
8
h1 {
9
    font-size: larger;
10
}
11

  
12
.helptext {
13
    font-size: x-small;
14
}
15

  
16
.messages {
17
    font-size: small;
18
    text-align: left;
19
    postion: relative;
20
    margin-left: 90px;
21
    color: red;
22
}
23

  
24
.messages li { list-style-type: none }
25

  
26
.errorlist {
27
    font-size: small;
28
    text-align: left;
29
    position: relative;
30
    left: 90px;
31
    color: red;
32
    margin: 0;
33
}
34

  
35
.errorlist li { list-style-type: none }
36

  
37
#main-div {
38
    width: 400px;
39
    max-width: 100%;
40
    margin-left: auto;
41
    margin-right: auto;
42
    position: relative;
43
    background: #f7f7fd;
44
    color: #3a4450;
45
    border: 1px solid #f0f0fb;
46
    border-radius: 5px;
47
    text-align: center;
48
}
49

  
50
#submit, #cancel {
51
    border-color: #6bbef6;
52
    background: #6bbef6;
53
    color: #ffffff;
54
    text-transform: uppercase;
55
    font-weight: bold;
56
}
57

  
58
p {
59
    text-align: left; 
60
    width: 90%;
61
    max-width: 15em;;
62
    margin: 1ex auto;
63
}
64
label {
65
    display: block;
66
    margin-left: auto;
67
    margin-right: auto;
68
    vertical-align: top;
69
    text-align: left;
70
    font-size: 14px;
71
    font-weight: normal;
72
    line-height: 20px;
73
}
74

  
75
input {
76
    width: 100%;
77
    display: block;
78
    margin-left: auto;
79
    margin-right: auto;
80
    padding: 4px;
81
    vertical-align: top;
82
}
83

  
84
#imgMain {
85
    height: 120px;
86
    border: none;
87
    display: block;
88
    margin: 1ex auto;
89
    border: 1px solid #eee;
90
}
mandayejs/static/vincennes/conservatoire/css/mandaye.css
1
#mandaye-js {
2
    margin: 0 auto;
3
    background: #d72a84;
4
    height: 35px;
5
}
6

  
7
#mandaye-logo {
8
    position: absolute;
9
    top: 10px;
10
    left: 0;
11
    padding: 10px 15px 0px 15px;
12
    width: 170px;
13
    height: 60px;
14
    background: url('/_mandaye/static/images/cont-bg.png') 0px -10px no-repeat;
15
    background-size: 100% 100%;
16
}
17

  
18
#mandaye-username {
19
    background-color: transparent;
20
    background-repeat: no-repeat;
21
    background-image: url('/_mandaye/static/images/compte-citoyen.png');
22
    padding: 0px 12px 10px 47px;
23
    background-position: 10px 5px;
24
    font-weight : bold;
25
    height: 30px;
26
    margin-left: 210px;
27
}
28

  
29
#mandaye-url {
30
    float: right;
31
    margin : 0 20px 0 20px ;
32
}
33

  
34
#mandaye-association-url {
35
    float : right;
36
    margin : 0 20px 0 20px ;
37
}
38

  
39
#mandaye-advances {
40
    float: left;
41
    margin-left: 20px;
42
    margin-right: 20px;
43
    font-weight : bold;
44
}
45

  
46
/*On Default.aspx*/
47
#logo {
48
    display: none;
49
}
50

  
51
/*On Connect.aspx*/
52
#imgMain {
53
    margin-top: 20px;
54
}
55

  
mandayejs/static/vincennes/conservatoire/js/associate.js
1
$(function(){
2
    $('body').prepend('<a href="https://www.vincennes.fr/"><img id="imgMain" class="img-polaroid" src="/_mandaye/static/vincennes/conservatoire/images/vincennes-logo-associate.png"></a>');
3
});
mandayejs/urls.py
19 19
from django.contrib import admin
20 20
from django.conf import settings
21 21

  
22
from mandayejs.applications import app_web_services
22 23

  
23 24
urlpatterns = patterns('',
24 25
    url(r'^_mandaye/panel$', 'mandayejs.mandaye.views.panel', name='panel'),
......
27 28
    url(r'^_mandaye/post-login/$', 'mandayejs.mandaye.views.post_login', name='post-login'),
28 29
    url(r'^_mandaye/post-login-do/$', 'mandayejs.mandaye.views.post_login_do', name='post-login-do'),
29 30
    url(r'^_mandaye/admin/', include(admin.site.urls)),
31
    url(r'^_mandaye/ws/(?P<path>.*)$', app_web_services)
30 32
)
31 33

  
32 34
if 'mellon' in settings.INSTALLED_APPS:
33 35
    urlpatterns += patterns('', url(r'^_mandaye/accounts/mellon/', include('mellon.urls')))
34 36

  
35
if 'mandayejs.sites.archimed' in settings.INSTALLED_APPS:
36
    urlpatterns += patterns('',
37
        url(r'^_mandaye/archimed/', include('mandayejs.sites.archimed.urls')),
38
    )
mandayejs/views.py
1
# mandayejs - saml reverse proxy
2
# Copyright (C) 2015  Entr'ouvert
3
#
4
# This program is free software: you can redistribute it and/or modify it
5
# under the terms of the GNU Affero General Public License as published
6
# by the Free Software Foundation, either version 3 of the License, or
7
# (at your option) any later version.
8
#
9
# This program is distributed in the hope that it will be useful,
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
# GNU Affero General Public License for more details.
13
#
14
# You should have received a copy of the GNU Affero General Public License
15
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
16

  
17
from __future__ import absolute_import
18

  
19
import logging
20
import requests
21
from pprint import pprint
22
from requests.cookies import RequestsCookieJar
23

  
24
from django.contrib.auth.models import User
25
from django.shortcuts import get_object_or_404
26
from django.core.exceptions import ImproperlyConfigured
27

  
28
from rest_framework import status
29
from rest_framework.views import APIView
30
from rest_framework.response import Response
31

  
32
from mandayejs.mandaye.models import UserCredentials
33
from mandayejs.mandaye.utils import exec_phantom, cookie_builder, get_login_info
34
from mandayejs.applications import get_app_settings
35

  
36

  
37
class ArchimedAccountDetails(APIView):
38
    """Archimed user's account details
39
    """
40

  
41
    def get(self, request, *args, **kwargs):
42
        logger = logging.getLogger(__name__)
43
        app_settings = get_app_settings()
44
      
45
        ws_uri = app_settings.SITE_WS_ENDPOINT['account_details']
46

  
47
        username = kwargs['username']
48
        user = get_object_or_404(User, username=username)
49
        credentials = get_object_or_404(UserCredentials, user=user)
50

  
51
        login_info = get_login_info(request, credentials)
52
        logger.debug(login_info)
53
        login_info['locators'] = [ credentials.to_login_info(decrypt=True)]
54
        result = exec_phantom(login_info)
55

  
56
        if result.get('result') != 'ok':
57
            return Response(status=status.HTTP_401_UNAUTHORIZED)
58

  
59
        session = requests.session()
60
        r_cookies = RequestsCookieJar()
61

  
62
        for cookie in result.get('cookies'):
63
            r_cookies.set(
64
                cookie['name'],
65
                cookie['value'],
66
                domain=cookie['domain'],
67
                path=cookie['path'],
68
                secure=cookie['secure']
69
            )
70
        session.cookies = r_cookies
71

  
72
        headers = {
73
            'Content-Type': 'application/json',
74
        }
75
        content = '{"codeConfig":"", "xslPath":"Services/LectorShortAccount.xslt"}'
76
        url = request.build_absolute_uri(ws_uri)
77
        logger.debug(url) 
78
        request_response = session.post(url, headers=headers, data=content, verify=False) 
79
        data = request_response.json()
80
        logger.debug(pprint(data))
81
        return Response(data)
82

  
83

  
84
archimed_account_details = ArchimedAccountDetails.as_view()
0
-