remove applications which must be rewritten or integrated in a2 (msp)
|
@ -1,21 +0,0 @@
|
|||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from cms.plugin_base import CMSPluginBase
|
||||
from cms.plugin_pool import plugin_pool
|
||||
from models import A2ServiceListPlugin as A2ServiceListPluginModel
|
||||
|
||||
from authentic2.idp.views import service_list
|
||||
|
||||
class A2ServiceListPlugin(CMSPluginBase):
|
||||
model = A2ServiceListPluginModel
|
||||
name = _('Authentic2 Service List Plugin')
|
||||
render_template = "a2_service_list_plugin/plugin.html"
|
||||
text_enabled = True
|
||||
|
||||
def render(self, context, instance, placeholdre):
|
||||
context.update({
|
||||
'services': service_list(context['request']),
|
||||
})
|
||||
return context
|
||||
|
||||
plugin_pool.register_plugin(A2ServiceListPlugin)
|
|
@ -1,25 +0,0 @@
|
|||
# Translation of portail-citoyen strings
|
||||
# Copyright (C) 2013 Entr'ouvert
|
||||
# This file is distributed under the same license as the portail-citoyen package.
|
||||
# Benjamin Dauvergne <bdauvergne@entrouvert.com>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: portail_citoyen 0.1.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-03-21 10:58+0100\n"
|
||||
"PO-Revision-Date: 2013-03-21 10:58+0100\n"
|
||||
"Last-Translator: Benjamin Dauvergne <bdauvergne@entrouvert.com>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: cms_plugins.py:11
|
||||
msgid "Authentic2 Service List Plugin"
|
||||
msgstr "Liste des services accessibles par Authentic2"
|
||||
|
||||
#: templates/a2_service_list_plugin/plugin.html:7
|
||||
msgid "My services"
|
||||
msgstr "Mes services"
|
|
@ -1,5 +0,0 @@
|
|||
from cms.models import CMSPlugin
|
||||
|
||||
class A2ServiceListPlugin(CMSPlugin):
|
||||
def __unicode__(self):
|
||||
return '<A2ServiceListPlugin>'
|
|
@ -1,3 +0,0 @@
|
|||
.service-list form {
|
||||
display: inline;
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
{% load url from future %}
|
||||
{% load sekizai_tags %}
|
||||
{% load i18n %}
|
||||
{% if request.user.is_authenticated %}
|
||||
{% addtoblock "css" %}<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}a2_service_list_plugin/css/style.css"></link>{% endaddtoblock %}
|
||||
<div class="service-list">
|
||||
<ul>
|
||||
{% for service in services %}
|
||||
{% if service.actions %}
|
||||
<li>{% if service.url %}<a href="{{ service.url }}">{% endif %}{{ service.name }}{% if service.url %}</a>{% endif %}
|
||||
<span class="actions">
|
||||
{% for action in service.actions %}
|
||||
<form action="{{ action.2 }}" method="{{ action.1 }}">
|
||||
{% for key, value in action.3 %}
|
||||
<input type="hidden" name="{{ key }}" value="{{ value }}" />
|
||||
{% endfor %}
|
||||
<input type="hidden" name="next" value="/"/>
|
||||
<input type="submit" class="submit-link" value="{{ action.0 }}">
|
||||
</form>
|
||||
{% endfor %}
|
||||
</span>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% endif %}
|
|
@ -1,41 +0,0 @@
|
|||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from cms.plugin_base import CMSPluginBase
|
||||
from cms.plugin_pool import plugin_pool
|
||||
|
||||
from authentic2.saml.models import LibertyFederation
|
||||
|
||||
import models
|
||||
|
||||
|
||||
class FederationPlugin(CMSPluginBase):
|
||||
model = models.FederationPlugin
|
||||
name = _('federation management plugin')
|
||||
render_template = 'federation_plugin/plugin.html'
|
||||
text_enabled = True
|
||||
|
||||
def render(self, context, instance, placeholder):
|
||||
request = context['request']
|
||||
context['submit'] = submit = 'submit-{class_name}-{instance_id}'.format(
|
||||
class_name=self.__class__.__name__.lower(),
|
||||
instance_id=instance.id)
|
||||
providers = instance.get_providers()
|
||||
federations = LibertyFederation.objects.filter(user=request.user)
|
||||
if providers:
|
||||
federations = federations.filter(sp__liberty_provider__in=providers)
|
||||
if request.method == 'POST' and submit in request.POST:
|
||||
federation_id = request.POST.get('federation_id', '0')
|
||||
federations.filter(id=federation_id).update(user=None)
|
||||
context['federations'] = []
|
||||
for federation in federations:
|
||||
context['federations'].append({
|
||||
'name': federation.sp.liberty_provider.name,
|
||||
'hidden_values': [
|
||||
('federation_id', federation.id),
|
||||
],
|
||||
})
|
||||
context['instance'] = instance
|
||||
return context
|
||||
|
||||
|
||||
plugin_pool.register_plugin(FederationPlugin)
|
|
@ -1,64 +0,0 @@
|
|||
# portail-citoyen federation_plugin app
|
||||
# Copyright (C) 2013 Entr'ouvert
|
||||
# This file is distributed under the same license as the portail-citoyen package.
|
||||
# Benjamin Dauvergne <bdauvergne@entrouvert.com>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: portail-citoyen 0.1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-01-07 11:52+0100\n"
|
||||
"PO-Revision-Date: 2014-01-22 00:18+0100\n"
|
||||
"Last-Translator: Benjamin Dauvergne <bdauvergne@entrouvert.com>\n"
|
||||
"Language-Team: fr <fr@li.org>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: cms_plugins.py:13
|
||||
msgid "federation management plugin"
|
||||
msgstr "Gestion des liaisons de l'utilisateur"
|
||||
|
||||
#: models.py:19
|
||||
msgid "provider restrictions"
|
||||
msgstr "restriction sur les fournisseurs de service"
|
||||
|
||||
#: models.py:20
|
||||
msgid ""
|
||||
"provides provider slug separated by commas, appended or prepended spaces "
|
||||
"will be removed"
|
||||
msgstr ""
|
||||
"indiquez le raccourci des fournisseurs séparés par des virgules, les espaces "
|
||||
"suivants ou précédents seront supprimé"
|
||||
|
||||
#: models.py:34
|
||||
#, python-format
|
||||
msgid "no provider with slug %r"
|
||||
msgstr "il n'y pas de fournisseur ayant le raccourci %r"
|
||||
|
||||
#: templates/federation_plugin/federation_panel.html:13
|
||||
msgid "Delete"
|
||||
msgstr "Supprimer"
|
||||
|
||||
#: templates/federation_plugin/plugin.html:6
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\n"
|
||||
" You have currently %(count)s federation.\n"
|
||||
" "
|
||||
msgid_plural ""
|
||||
"\n"
|
||||
" You have currently %(count)s federations.\n"
|
||||
" "
|
||||
msgstr[0] ""
|
||||
"\n"
|
||||
"Votre compte citoyen est actuellement lié avec le compte suivant :"
|
||||
msgstr[1] ""
|
||||
"\n"
|
||||
"Votre compte citoyen est actuellement lié avec les %(count)s comptes suivants :"
|
||||
|
||||
#: templates/federation_plugin/plugin.html:14
|
||||
msgid "You have no federation currently."
|
||||
msgstr "Vous n'avez actuellement aucune liaison."
|
|
@ -1,34 +0,0 @@
|
|||
import logging
|
||||
|
||||
|
||||
from django.db import models
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.core.exceptions import ValidationError
|
||||
|
||||
from authentic2.saml.models import LibertyProvider
|
||||
|
||||
from cms.models import CMSPlugin
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class FederationPlugin(CMSPlugin):
|
||||
'''Django CMS plugin to manipulate Authentic2 federations'''
|
||||
|
||||
provider_restriction = models.TextField(verbose_name=_('provider '
|
||||
'restrictions'), blank=True, help_text=_('provides provider slug '
|
||||
'separated by commas, appended or prepended spaces will be '
|
||||
'removed'))
|
||||
|
||||
def get_slugs(self):
|
||||
return filter(None, map(unicode.strip, self.provider_restriction.split(',')))
|
||||
|
||||
def get_providers(self):
|
||||
return LibertyProvider.objects.filter(slug__in=self.get_slugs())
|
||||
|
||||
def clean(self):
|
||||
self.provider_restriction = u','.join(self.provider_restriction.split(','))
|
||||
for slug in self.get_slugs():
|
||||
if not LibertyProvider.objects.filter(slug=slug).exists():
|
||||
raise ValidationError(_('no provider with slug %r') % slug)
|
|
@ -1,17 +0,0 @@
|
|||
{% load i18n %}
|
||||
<ul id="federation-plugin-list-{{ instance.id }}" class="federation-plugin-list">
|
||||
{% for federation in federations %}
|
||||
<li id="federation-plugin-{{ instance.id }}-federation-{{ federation.id }}" class="federation-plugin-federation">
|
||||
<form method="post" class="federation-plugin-federation-form">
|
||||
<span class="federation-plugin-federation-name">
|
||||
{{ federation.name }}
|
||||
</span>
|
||||
{% csrf_token %}
|
||||
{% for input_name, input_value in federation.hidden_values %}
|
||||
<input type="hidden" name="{{ input_name}}" value="{{ input_value }}">
|
||||
{% endfor %}
|
||||
<input type="submit" name="{{ submit }}" value="{% trans "Delete" %}">
|
||||
</form>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
|
@ -1,16 +0,0 @@
|
|||
{% load i18n %}
|
||||
|
||||
<p id="federation-plugin-{{ instance.id }}" class="federation-plugin">
|
||||
{% if federations %}
|
||||
<p>
|
||||
{% blocktrans count count=federations|length %}
|
||||
You have currently {{ count }} federation.
|
||||
{% plural %}
|
||||
You have currently {{ count }} federations.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
{% include "federation_plugin/federation_panel.html" %}
|
||||
{% else %}
|
||||
<p>{% blocktrans %}You have no federation currently.{% endblocktrans %}
|
||||
{% endif %}
|
||||
</p>
|
|
@ -1,81 +0,0 @@
|
|||
The MSP application provides authentication through MSP for Django application
|
||||
and a gateway to the MSP REST API to share it with other properly authentified
|
||||
applications.
|
||||
|
||||
Requirements
|
||||
============
|
||||
|
||||
- Your base template must use django-sekizai and must contain a sekizai block
|
||||
named "css" and another named "js" respectively for stylesheet and
|
||||
javascript files.
|
||||
|
||||
- You must user a shared cache backend: through memcached, redis or the ORM.
|
||||
For example if you have a memcached installed just add the following
|
||||
fragment to your settings::
|
||||
|
||||
CACHES = {
|
||||
'default': {
|
||||
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
|
||||
'LOCATION': '127.0.0.1:11211',
|
||||
}
|
||||
}
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
Add the application to your installed apps::
|
||||
|
||||
INSTALLED_APPS += ( 'msp', )
|
||||
|
||||
Install the authentication backend::
|
||||
|
||||
AUTHENTICATION_BACKENDS += ( 'msp.backends.MspBackend', )
|
||||
|
||||
Define needed settings, we show here the default values::
|
||||
|
||||
MSP_AUTHORIZE_URL = 'https://mon.service-public.fr/apis/app/oauth/authorize'
|
||||
MSP_TOKEN_URL = 'https://mon.service-public.fr/apis/app/oauth/token'
|
||||
MSP_API_URL = 'https://mon.service-public.fr/apis/'
|
||||
MSP_CLIENT_ID = 'id assigned by DIMAP'
|
||||
MSP_CLIENT_SECRET = 'secret assigned by DIMAP'
|
||||
MSP_CLIENT_CERTIFICATE = ('/my-path/my-certificate.crt', '/my-path/my-certificate.key')
|
||||
MSP_VERIFY_CERTIFICATE = False
|
||||
|
||||
You must plug the application views in your urls.py file by adding this
|
||||
content::
|
||||
|
||||
url(r'^msp/', include('msp.urls')),
|
||||
|
||||
To link your account to MSP or unlink your account from MSP, add the following
|
||||
content to your template::
|
||||
|
||||
{% include 'msp/linking.html' %}
|
||||
|
||||
It will show a linking link when unauthenticated and when no msp account is
|
||||
linked to the current account or an unlinking link when authenticated and a
|
||||
to MSP exists.
|
||||
|
||||
To show a connection box include this content in your template::
|
||||
|
||||
{% include 'msp/connecting.html' %}
|
||||
|
||||
To make the include file use a popup to talk to MSP add the popup parameter
|
||||
like in the following content::
|
||||
|
||||
{% include 'msp/connecting.html' with popup=1 %}
|
||||
|
||||
MSP Gateway
|
||||
===========
|
||||
|
||||
The msp application also provides an OAuth2 gateway to MSP. To configure it your
|
||||
just need to provider a list of client_id, client_secret pairs in your
|
||||
settings, like that::
|
||||
|
||||
MSP_CLIENT_CREDENTIALS = (('client_id1', 'client_secret1'),)
|
||||
|
||||
The following URL are provided::
|
||||
|
||||
- /authorize : like the authorize URL of MSP
|
||||
- /access_token : like the access_token URL of MSP
|
||||
- /documents/ : like the document list REST API endpoint of MSP
|
||||
- /documents/<id>/ : like the document retrieval REST API endpoint of MSP
|
|
@ -1,60 +0,0 @@
|
|||
import sys
|
||||
|
||||
from django.conf import settings
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
|
||||
|
||||
class AppSettings(object):
|
||||
'''Thanks django-allauth'''
|
||||
__SENTINEL = object()
|
||||
|
||||
def __init__(self, prefix):
|
||||
self.prefix = prefix
|
||||
|
||||
def _setting(self, name, dflt=__SENTINEL):
|
||||
from django.conf import settings
|
||||
v = getattr(settings, self.prefix + name, dflt)
|
||||
if v is self.__SENTINEL:
|
||||
raise ImproperlyConfigured('Missing setting %r' % (self.prefix + name))
|
||||
return v
|
||||
|
||||
@property
|
||||
def authorize_url(self):
|
||||
return self._setting('AUTHORIZE_URL')
|
||||
|
||||
@property
|
||||
def token_url(self):
|
||||
return self._setting('TOKEN_URL')
|
||||
|
||||
@property
|
||||
def api_url(self):
|
||||
return self._setting('API_URL')
|
||||
|
||||
@property
|
||||
def client_id(self):
|
||||
return self._setting('CLIENT_ID')
|
||||
|
||||
@property
|
||||
def client_secret(self):
|
||||
return self._setting('CLIENT_SECRET')
|
||||
|
||||
@property
|
||||
def client_certificate(self):
|
||||
return self._setting('CLIENT_CERTIFICATE', None)
|
||||
|
||||
@property
|
||||
def verify_certificate(self):
|
||||
return self._setting('VERIFY_CERTIFICATE', False)
|
||||
|
||||
@property
|
||||
def client_credentials(self):
|
||||
return self._setting('CLIENT_CREDENTIALS', ())
|
||||
|
||||
@property
|
||||
def more_url(self):
|
||||
return self._setting('MORE_URL', 'https://mon.service-public.fr/')
|
||||
|
||||
|
||||
app_settings = AppSettings('MSP_')
|
||||
app_settings.__name__ = __name__
|
||||
sys.modules[__name__] = app_settings
|
|
@ -1,16 +0,0 @@
|
|||
from . import models
|
||||
|
||||
from django.contrib.auth.backends import ModelBackend
|
||||
|
||||
|
||||
class MspBackend(ModelBackend):
|
||||
def authenticate(self, agc=None, **kwargs):
|
||||
try:
|
||||
msp_account = models.MspAccount.objects.get(agc=agc)
|
||||
return msp_account.user
|
||||
except models.MspAccount.DoesNotExist:
|
||||
pass
|
||||
|
||||
def get_saml2_authn_context(self):
|
||||
import lasso
|
||||
return lasso.SAML2_AUTHN_CONTEXT_PASSWORD_PROTECTED_TRANSPORT
|
|
@ -1,65 +0,0 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-12-06 16:31+0100\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"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: models.py:11
|
||||
msgid "user"
|
||||
msgstr "Utilisateur"
|
||||
|
||||
#: models.py:12
|
||||
msgid "access grant code"
|
||||
msgstr "Identifiant de liaison"
|
||||
|
||||
#: models.py:13
|
||||
msgid "access token"
|
||||
msgstr "Jeton d'accès"
|
||||
|
||||
#: views.py:134
|
||||
msgid "request denied by user"
|
||||
msgstr "Demande refusée par l'utilisateur !"
|
||||
|
||||
#: views.py:169
|
||||
msgid "no local account is linked to your MSP account"
|
||||
msgstr ""
|
||||
"Vous n'avez aucun compte relié à Mon Service-Public actuellement ! Veuillez "
|
||||
"d'abord vous connecter avec votre compte pour faire une demande decréation "
|
||||
"de liaison."
|
||||
|
||||
#: views.py:189
|
||||
msgid "msp link already exists"
|
||||
msgstr "Une liaison avec mon.Service-Public.fr existe déjà."
|
||||
|
||||
#: views.py:193 views.py:397
|
||||
msgid "msp link created"
|
||||
msgstr "La liaison avec mon.Service-Public.fr est créée."
|
||||
|
||||
#: views.py:208
|
||||
msgid "msp link was deleted"
|
||||
msgstr "La liaison avec mon.Service-Public.fr est supprimée."
|
||||
|
||||
#: views.py:400
|
||||
msgid "to create a link with msp, please authenticate"
|
||||
msgstr "Pour créer une nouvelle liaison avec mon.Service-Public.fr, veuillez vous authentifier."
|
||||
|
||||
#: templates/msp/linking.html:13
|
||||
msgid "unlink my account from MSP"
|
||||
msgstr "Supprimer la liaison avec mon.Service-Public.fr"
|
||||
|
||||
#~ msgid "link my account to MSP"
|
||||
#~ msgstr "Créer une liaison avec mon.Service-Public.fr"
|
|
@ -1,78 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
# Adding model 'MspAccount'
|
||||
db.create_table(u'msp_mspaccount', (
|
||||
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('user', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['portail_citoyen.Citoyen'], unique=True)),
|
||||
('agc', self.gf('django.db.models.fields.CharField')(max_length=64)),
|
||||
))
|
||||
db.send_create_signal(u'msp', ['MspAccount'])
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting model 'MspAccount'
|
||||
db.delete_table(u'msp_mspaccount')
|
||||
|
||||
|
||||
models = {
|
||||
u'auth.group': {
|
||||
'Meta': {'object_name': 'Group'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
||||
},
|
||||
u'auth.permission': {
|
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
|
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
||||
},
|
||||
u'contenttypes.contenttype': {
|
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||
},
|
||||
u'msp.mspaccount': {
|
||||
'Meta': {'object_name': 'MspAccount'},
|
||||
'agc': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'user': ('django.db.models.fields.related.OneToOneField', [], {'to': u"orm['portail_citoyen.Citoyen']", 'unique': 'True'})
|
||||
},
|
||||
u'portail_citoyen.citoyen': {
|
||||
'Meta': {'object_name': 'Citoyen'},
|
||||
'address': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
||||
'backend': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}),
|
||||
'backend_id': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}),
|
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '128', 'blank': 'True'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'mobile': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}),
|
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'phone': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}),
|
||||
'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '5', 'blank': 'True'}),
|
||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['msp']
|
|
@ -1,76 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from south.utils import datetime_utils as datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
# Adding field 'MspAccount.token'
|
||||
db.add_column(u'msp_mspaccount', 'token',
|
||||
self.gf('django.db.models.fields.TextField')(default=''),
|
||||
keep_default=False)
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting field 'MspAccount.token'
|
||||
db.delete_column(u'msp_mspaccount', 'token')
|
||||
|
||||
|
||||
models = {
|
||||
u'auth.group': {
|
||||
'Meta': {'object_name': 'Group'},
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
|
||||
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
|
||||
},
|
||||
u'auth.permission': {
|
||||
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
|
||||
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
|
||||
},
|
||||
u'contenttypes.contenttype': {
|
||||
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
|
||||
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
|
||||
},
|
||||
u'msp.mspaccount': {
|
||||
'Meta': {'object_name': 'MspAccount'},
|
||||
'agc': ('django.db.models.fields.CharField', [], {'max_length': '64'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'token': ('django.db.models.fields.TextField', [], {}),
|
||||
'user': ('django.db.models.fields.related.OneToOneField', [], {'to': u"orm['portail_citoyen.Citoyen']", 'unique': 'True'})
|
||||
},
|
||||
u'portail_citoyen.citoyen': {
|
||||
'Meta': {'object_name': 'Citoyen'},
|
||||
'address': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}),
|
||||
'backend': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}),
|
||||
'backend_id': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}),
|
||||
'city': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}),
|
||||
'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'email': ('django.db.models.fields.EmailField', [], {'max_length': '128', 'blank': 'True'}),
|
||||
'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
|
||||
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
|
||||
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
|
||||
'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
|
||||
'mobile': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}),
|
||||
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
|
||||
'phone': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}),
|
||||
'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '5', 'blank': 'True'}),
|
||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}),
|
||||
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
|
||||
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['msp']
|
|
@ -1,43 +0,0 @@
|
|||
import requests
|
||||
import json
|
||||
import logging
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
from django.db import models
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from . import app_settings
|
||||
|
||||
class MspAccount(models.Model):
|
||||
user = models.OneToOneField(get_user_model(), verbose_name=_('user'))
|
||||
agc = models.CharField(max_length=64, verbose_name=_('access grant code'))
|
||||
token = models.TextField(verbose_name=_('access token'))
|
||||
|
||||
def refresh_token(self):
|
||||
if not self.token:
|
||||
return True
|
||||
token = json.loads(self.token)
|
||||
data = {
|
||||
'grant_type': 'refresh_token',
|
||||
'refresh_token': token['refresh_token'],
|
||||
'client_id': app_settings.client_id,
|
||||
'client_secret': app_settings.client_secret,
|
||||
}
|
||||
response = requests.post(app_settings.token_url,
|
||||
data=data, verify=app_settings.verify_certificate,
|
||||
cert=app_settings.client_certificate)
|
||||
|
||||
new_token = response.json()
|
||||
if 'error' in new_token:
|
||||
if new_token['error'] == 'invalid_grant':
|
||||
logger.warning('obsolete token %r, deleting MspAccount %r', self.token,
|
||||
self.agc)
|
||||
self.delete()
|
||||
return False
|
||||
return True
|
||||
else:
|
||||
self.token = json.dumps(new_token)
|
||||
self.save()
|
||||
return True
|
|
@ -1,339 +0,0 @@
|
|||
.msp{
|
||||
margin:0 auto 0 auto;
|
||||
text-align:left;
|
||||
font-size:11px;
|
||||
position:relative;
|
||||
padding:0 0 0px 0;
|
||||
color:#2B2A91;
|
||||
font-family:arial, verdana, sans-serif;
|
||||
}
|
||||
.msp *{
|
||||
font-family:arial, verdana, sans-serif;
|
||||
font-size:100%;
|
||||
}
|
||||
.msp p, .msp form, .msp h1, .msp h2, .msp h3, .msp h4, .msp h5, .msp h6, .msp input{
|
||||
margin:0;
|
||||
font-weight:normal;
|
||||
}
|
||||
.msp ul, .msp ol{
|
||||
list-style-type:none;
|
||||
padding:0;
|
||||
margin:0;
|
||||
}
|
||||
* html .msp li{
|
||||
height:1%;
|
||||
}
|
||||
.msp fieldset{
|
||||
background:#dae7ef url(../img/bg/degrade.jpg) left 0 repeat-x;
|
||||
border:1px solid #2B2A91;
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
.msp img{width:auto!important}
|
||||
.msp a img{border:none}
|
||||
.msp .alc{text-align:center}
|
||||
.msp .db{display:block}
|
||||
.msp .cb {clear:both}
|
||||
.msp .flr{float:right!important}
|
||||
.msp .m30 {margin:30px}
|
||||
.msp .mb20 {margin-bottom:20px}
|
||||
.msp .fz {font-size:110%}
|
||||
.msp .fz2 {font-size:130%}
|
||||
.msp .fz3 {font-size:105%!important}
|
||||
.msp .bnone {border:none!important}
|
||||
.msp .fz2 a {font-weight:bold}
|
||||
.msp p{margin:0 0 0.5em 0;padding:0}
|
||||
.msp a{background-color:inherit;color:#31579C!important}
|
||||
.msp a.roll,.msp a.none{text-decoration:none!important}
|
||||
.msp a.roll:hover{text-decoration:underline!important}
|
||||
.msp .bordure{border:2px solid #FFF;position:relative}
|
||||
* html .msp .bordure {height:1%}
|
||||
*:first-child+html .msp .bordure {min-height:1%}
|
||||
.msp .bordure:after {content:".";display:block;height:0;clear:both;visibility:hidden}
|
||||
.msp .marges{padding:0.4em}
|
||||
.msp fieldset .marges{padding:0 1em 0 1.25em}
|
||||
.msp fieldset .marges.top {padding-top:1em}
|
||||
.msp fieldset legend{background-color:#FFF;color:#2B2A91;margin-left:0.5em}
|
||||
.msp fieldset legend span{display:block;font-size:130%;font-weight:700;padding:0 0.5em 1em;position:relative;top:0.5em}
|
||||
.msp p img{vertical-align:middle}
|
||||
.msp p input.checkbox{vertical-align:middle}
|
||||
.msp p.lien{text-align:right}
|
||||
.msp p.lien a{background:url(../img/bg/fleche.png) 0 4px no-repeat;padding-left:12px}
|
||||
.msp label{cursor:pointer;font-weight:700}
|
||||
.msp .cadre{background:#FFF url(../img/bg/degrade.jpg) left bottom repeat-x;border:1px solid #2B2A91}
|
||||
.msp .centrer{text-align:center}
|
||||
.msp .centrer img{display:block;width:150px;margin:0 auto}
|
||||
.msp li .lien{text-align:left !important}
|
||||
.msp li.picto{background-position:2px 2px;background-repeat:no-repeat;padding-left:20px}
|
||||
.msp li.utilisateur{background-image:url(../img/bg/utilisateur.png)}
|
||||
.msp li.fermer{background-image:url(../img/bg/fermer.png)}
|
||||
.msp .message{background-color:#E7E7F7;border-left:10px solid #B5CEEE;color:#000;padding:1em}
|
||||
* html .msp .message{height:1%}
|
||||
.msp .message p{margin:0}
|
||||
.msp .fond{background-color:#838BCE;background-image:url(../img/bg/coin.png);background-position:100% 100%;background-repeat:no-repeat;color:#FFF;padding:1em 3px}
|
||||
.msp .fond a{background-color:inherit;background-image:url(../img/bg/fleche_blanche.png) !important;color:#FFF!important}
|
||||
.msp small a{background-color:inherit;background-image:url(../img/bg/retour.png);background-position:0 50%;background-repeat:no-repeat;color:#000;float:right;margin-right:30px;margin-top:-2em;padding-left:20px;font-size:90%}
|
||||
.msp h1{background-color:inherit;color:#31579C;font-size:200%;margin:0.5em 0 0.5em 30px;padding:0;font-weight:bold}
|
||||
.msp .contenu{background-color:inherit;color:#000;display:inline;float:left;margin-left:30px;padding-bottom:2em;width:445px}
|
||||
.msp .menu{background-color:inherit;color:#000;display:inline;float:left;margin:0 30px;padding-bottom:2em;width:215px}
|
||||
.msp .retablir{clear:both;display:block;height:1px;margin-top:-1px;overflow:hidden;width:1px}
|
||||
.msp .encart{background:#FFFFFF url(../img/bg/degrade.jpg) left bottom repeat-x ;border:1px solid #2B2A91}
|
||||
.msp .encart h2{background-color:#5E81C1;color:#FFF;font-size:100%;font-weight:bold;margin:0;padding:1px 6px}
|
||||
.msp .encart p{margin:1em}
|
||||
.msp .contenu ul{margin:2em 0}
|
||||
.msp .contenu li.utilisateur{background-image:url(../img/bg/utilisateur_blanc.png)}
|
||||
.msp .important{background-color:#E1E9F8;color:inherit;margin-bottom:0.5em;padding:0.5em}
|
||||
.msp .important p{margin:0;padding:0;font-weight:bold}
|
||||
.msp .contenu li p{padding:0}
|
||||
.msp a.marges{margin-right:20px;padding:0}
|
||||
.msp .barre{border-left:10px solid #B5CEEE;font-weight:bold;padding-left:20px}
|
||||
.msp .barre ul{font-weight:400}
|
||||
.msp em{background-color:inherit;color:#31579C;display:block;font-weight:700;margin:1.5em 0;text-align:center}
|
||||
.msp .contenu ul strong{background-image:url(../img/bg/fleche.png);background-position:0 4px;background-repeat:no-repeat;padding-left:15px}
|
||||
.msp .connexion{font-weight:bold;color:#FFF!important;background-color:inherit!important;text-decoration:none!important;background-image:url(../img/bg/connect.png);background-position:100% 50%;padding:0 25px 0 15px;text-transform:uppercase;font-size:120%}
|
||||
.msp .fond li.central {padding:0 0.5em 1em;text-align:center}
|
||||
.msp .note,.msp .joindre{background:#010d23 url(../img/bg/note2.gif) 0 0 repeat-x}
|
||||
.msp .note span,.msp .joindre span{background:url(../img/bg/note.png) 0 0 no-repeat;display:block;padding:4px 5px 4px 20px;min-height:14px;font-weight:bold}
|
||||
.msp .joindre span{background-image:url(../img/bg/note.png)}
|
||||
* html .msp .note span,* html .msp .joindre span{height:14px;}
|
||||
.msp .note a,.msp .joindre a{color:#FFF!important;text-decoration:none}
|
||||
.msp .user{background:#2b5973 url(../img/bg/user_2.png) top left no-repeat ;padding:3px 10px 3px 18px!important;float:left;display:inline;color:#FFF!important;font-weight:bold;text-decoration:none}
|
||||
.msp .bis{background-image:url(../img/bg/user.png);color:#1A2D4E!important;background-color:inherit;border:1px solid #C4D7DF;padding:2px 10px 2px 18px!important}
|
||||
.msp.bloc {width:99%;border:1px solid #31579C}
|
||||
.msp .cadre{background:#FFFFFF url(../img/bg/degrade.jpg) left bottom repeat-x;border:1px solid #2B2A91}
|
||||
.msp .centrer{text-align:center}
|
||||
.msp .fond{background-color:#838BCE;background-image:url(../img/bg/coin.png);background-position:100% 100%;background-repeat:no-repeat;color:#FFF;padding:1em 3px}
|
||||
.msp .fond a{background-color:inherit;background-image:url(../img/bg/fleche_blanche.png) !important;color:#FFF}
|
||||
|
||||
/* en savoir plus */
|
||||
.msp_esp{
|
||||
font-family:arial, verdana, sans-serif;
|
||||
background:#FFF;
|
||||
margin:24px 0 40px 19px;
|
||||
border:1px solid #4b4da4;
|
||||
width:712px;
|
||||
padding:0 0 55px 0;
|
||||
font-size:11px;
|
||||
text-align:left;
|
||||
position:relative;
|
||||
}
|
||||
.msp_esp *{
|
||||
font-family:arial, verdana, sans-serif;
|
||||
font-size:100%;
|
||||
color:#434343;
|
||||
}
|
||||
.msp_esp p, .msp_esp h1, .msp_esp h2, .msp_esp h3, .msp_esp form{
|
||||
margin:0;
|
||||
font-weight:normal;
|
||||
}
|
||||
.msp_esp_h{
|
||||
position:absolute;
|
||||
left:4px;
|
||||
top:4px;
|
||||
width:704px;
|
||||
height:213px;
|
||||
background:url(../img/fond_ensavoirplus_h.jpg) 0 0 no-repeat;
|
||||
}
|
||||
.msp_esp_b{
|
||||
position:absolute;
|
||||
left:4px;
|
||||
bottom:4px;
|
||||
width:704px;
|
||||
height:55px;
|
||||
background:url(../img/fond_ensavoirplus_b.jpg) 0 0 repeat-x;
|
||||
}
|
||||
.msp_esp_header{
|
||||
margin:0 0 -6px 0;
|
||||
}
|
||||
.msp_esp_header:after{
|
||||
content:".";
|
||||
display:block;
|
||||
height:0;
|
||||
clear:both;
|
||||
visibility:hidden;
|
||||
}
|
||||
* html .msp_esp_header{
|
||||
height:1%;
|
||||
}
|
||||
*:first-child+html .msp_esp_header{
|
||||
min-height:1%;
|
||||
}
|
||||
.msp_esp_intro{
|
||||
position:relative;
|
||||
padding:0 0 0 20px;
|
||||
float:left;
|
||||
width:548px;
|
||||
}
|
||||
* html .msp_esp_intro{
|
||||
width:558px;
|
||||
}
|
||||
.msp_esp_header a,
|
||||
.msp_esp_header a:hover{
|
||||
position:relative;
|
||||
float:left;
|
||||
background:url(../img/visite_guidee.png) 0 0 no-repeat;
|
||||
display:block;
|
||||
width:125px;
|
||||
height:122px;
|
||||
margin:30px 0 0 0;
|
||||
overflow:hidden;
|
||||
text-indent:-999em;
|
||||
cursor:pointer;
|
||||
cursor:hand;
|
||||
}
|
||||
* html .msp_esp_header a{
|
||||
background-image:none;
|
||||
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='./img/visite_guidee.png',sizingMethod='crop');
|
||||
}
|
||||
.msp_esp_pgtitre{
|
||||
color:#31579c;
|
||||
font-size:150%;
|
||||
text-transform:uppercase;
|
||||
padding:30px 0 10px 0;
|
||||
}
|
||||
.msp_esp_pgtitre span{
|
||||
color:#31579c;
|
||||
font-size:210%;
|
||||
line-height:90%;
|
||||
}
|
||||
.msp_esp_intro p{
|
||||
font-size:110%;
|
||||
line-height:150%;
|
||||
font-weight:bold;
|
||||
padding:0 10px 0 0;
|
||||
}
|
||||
.msp_esp_cont{
|
||||
margin:0 12px 0 12px;
|
||||
position:relative;
|
||||
padding:24px 0 24px 0;
|
||||
}
|
||||
* html .msp_esp_cont{
|
||||
height:1%;
|
||||
}
|
||||
*:first-child+html .msp_esp_cont{
|
||||
min-height:1%;
|
||||
}
|
||||
.msp_esp_cont-h{
|
||||
position:absolute;
|
||||
top:0;
|
||||
left:0;
|
||||
width:680px;
|
||||
height:24px;
|
||||
background:url(../img/ombre_content_h.png) 0 0 no-repeat;
|
||||
}
|
||||
* html .msp_esp_cont-h{
|
||||
background-image:none;
|
||||
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='./img/ombre_content_h.png',sizingMethod='crop');
|
||||
}
|
||||
.msp_esp_cont-b{
|
||||
position:absolute;
|
||||
bottom:0;
|
||||
left:0;
|
||||
width:688px;
|
||||
height:24px;
|
||||
background:url(../img/ombre_content_b.png) 0 0 no-repeat;
|
||||
}
|
||||
* html .msp_esp_cont-b{
|
||||
background-image:none;
|
||||
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='./img/ombre_content_b.png',sizingMethod='crop');
|
||||
}
|
||||
.msp_esp_cont-m{
|
||||
background:url(../img/ombre_content_m.png) 0 0 repeat-y;
|
||||
padding:0 14px 0 14px;
|
||||
}
|
||||
* html .msp_esp_cont-m{
|
||||
height:1%;
|
||||
background-image:none;
|
||||
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='./img/ombre_content_m.png',sizingMethod='scale');
|
||||
}
|
||||
.msp_esp_pres .msp_esp_sub,
|
||||
.msp_esp_sub{
|
||||
text-align:center;
|
||||
padding:0 0 4px 0;
|
||||
min-height:1px;
|
||||
font-size:100%;
|
||||
}
|
||||
* html .msp_esp_pres div .msp_esp_sub{
|
||||
height:auto;
|
||||
}
|
||||
.msp_esp_sub a,
|
||||
.msp_esp_sub a:hover{
|
||||
display:-moz-inline-box;
|
||||
background:#010D23 url(../img/bk-input.gif) 0 0 repeat-x;
|
||||
color:#fff;
|
||||
border:none;
|
||||
padding:3px 60px;
|
||||
text-transform:uppercase;
|
||||
font-weight:bold;
|
||||
cursor:pointer;
|
||||
cursor:hand;
|
||||
text-decoration:none;
|
||||
min-height:22px;
|
||||
}
|
||||
* html .msp_esp_sub a{
|
||||
display:inline-block;
|
||||
height:16px;
|
||||
}
|
||||
*:first-child+html .msp_esp_sub a{
|
||||
display:inline-block;
|
||||
min-height:16px;
|
||||
}
|
||||
.msp_esp_cont-degh{
|
||||
background:url(../img/deg_content_h.png) 0 0 repeat-x;
|
||||
}
|
||||
.msp_esp_cont-degb{
|
||||
background:url(../img/deg_content_b.png) 0 100% repeat-x;
|
||||
padding:0 8px 0 8px;
|
||||
}
|
||||
.msp_esp_cont-m .msp_esp_btitre{
|
||||
padding:4px 0 5px 0;
|
||||
color:#31579c;
|
||||
font-weight:bold;
|
||||
font-size:120%;
|
||||
}
|
||||
.msp_esp_pres div p{
|
||||
padding:6px 12px 20px 188px;
|
||||
font-size:110%;
|
||||
min-height:83px;
|
||||
}
|
||||
* html .msp_esp_pres .msp_esp_cont-degb div p{
|
||||
height:83px;
|
||||
}
|
||||
.msp_esp_pres .msp_esp_btitre{
|
||||
color:#fff;
|
||||
padding:4px 10px 5px 10px;
|
||||
}
|
||||
.msp_esp_bloc1 .msp_esp_btitre{
|
||||
background:#143152 url(../img/fond_titre_1.png) 0 0 repeat-x;
|
||||
}
|
||||
.msp_esp_bloc1 p{
|
||||
background:url(../img/illus_1.jpg) 0 0 no-repeat;
|
||||
}
|
||||
.msp_esp_bloc2 .msp_esp_btitre{
|
||||
background:#386722 url(../img/fond_titre_2.png) 0 0 repeat-x;
|
||||
}
|
||||
.msp_esp_bloc2 p{
|
||||
background:url(../img/illus_2.jpg) 0 0 no-repeat;
|
||||
}
|
||||
.msp_esp_bloc3 .msp_esp_btitre{
|
||||
background:#815302 url(../img/fond_titre_3.png) 0 0 repeat-x;
|
||||
}
|
||||
.msp_esp_bloc3 p{
|
||||
background:url(../img/illus_3.jpg) 0 0 no-repeat;
|
||||
}
|
||||
.msp_esp_bloc4 .msp_esp_btitre{
|
||||
background:#862e78 url(../img/fond_titre_4.png) 0 0 repeat-x;
|
||||
}
|
||||
.msp_esp_bloc4 p{
|
||||
background:url(../img/illus_4.jpg) 0 0 no-repeat;
|
||||
}
|
||||
.msp_esp_logos {
|
||||
text-align:center;
|
||||
list-style-type:none;
|
||||
padding:0;
|
||||
margin:12px 0 4px 0;
|
||||
}
|
||||
.msp_esp_logos li{
|
||||
display:inline;
|
||||
margin:0 8px 0 3px;
|
||||
}
|
|
@ -1,65 +0,0 @@
|
|||
div.msp {
|
||||
background: url("../img/degrade.jpg") repeat-x scroll 0 0 #FFFFFF;
|
||||
border: 1px solid #2B2A91;
|
||||
width: 19em;
|
||||
color: #2B2A91;
|
||||
font-family: verdana, arial, sans-serif;
|
||||
margin: auto;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
div.msp-bordure {
|
||||
border: 2px solid #FFFFFF;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.msp p, .msp form, .msp h1, .msp h2, .msp h3, .msp h4, .msp h5, .msp h6, .msp
|
||||
input, .msp select, .msp textarea, .msp div, .msp a, .msp ul, .msp li, .msp ol,
|
||||
.msp dt, .msp dl, .msp dd {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-weight: normal;
|
||||
list-style: none;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
.msp p {
|
||||
padding: 0;
|
||||
padding-left: 0.5em;
|
||||
padding-top: 0.3em;
|
||||
margin: 0 0 0.5em;
|
||||
}
|
||||
.msp .fz7 {
|
||||
font-size: 100.01%!important;
|
||||
font-family: verdana, arial, sans-serif;
|
||||
}
|
||||
.msp a {
|
||||
background-color: inherit;
|
||||
color: #31579C !important;
|
||||
font-size: 1em;
|
||||
-font-size: 1em;
|
||||
font-family: arial;
|
||||
font-size: 90%;
|
||||
}
|
||||
.msp a img {
|
||||
text-decoration: none;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.msp p img {
|
||||
display: block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.msp .lien-en-savoir-plus {
|
||||
background: url("../img/fleche.png") no-repeat scroll 11px 8px transparent;
|
||||
margin-left: 10em;
|
||||
margin-right: 0.5em;
|
||||
margin-top: -2.3em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#msp-linking {
|
||||
text-align: center;
|
||||
}
|
||||
|
|
@ -1,347 +0,0 @@
|
|||
#msp-linking {
|
||||
margin: 0px 100px;
|
||||
}
|
||||
|
||||
.msp{
|
||||
margin:0 auto 0 auto;
|
||||
text-align:left;
|
||||
font-size:11px;
|
||||
position:relative;
|
||||
padding:0 0 0px 0;
|
||||
color:#2B2A91;
|
||||
font-family:arial, verdana, sans-serif;
|
||||
}
|
||||
.msp.connecting {
|
||||
width: 35em;
|
||||
}
|
||||
.msp *{
|
||||
font-family:arial, verdana, sans-serif;
|
||||
font-size:100%;
|
||||
}
|
||||
.msp p, .msp form, .msp h1, .msp h2, .msp h3, .msp h4, .msp h5, .msp h6, .msp input{
|
||||
margin:0;
|
||||
font-weight:normal;
|
||||
}
|
||||
.msp ul, .msp ol{
|
||||
list-style-type:none;
|
||||
padding:0;
|
||||
margin:0;
|
||||
}
|
||||
* html .msp li{
|
||||
height:1%;
|
||||
}
|
||||
.msp fieldset{
|
||||
background:#dae7ef url(../img/bg/degrade.jpg) left 0 repeat-x;
|
||||
border:1px solid #2B2A91;
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
.msp img{width:auto!important}
|
||||
.msp a img{border:none}
|
||||
.msp .alc{text-align:center}
|
||||
.msp .db{display:block}
|
||||
.msp .cb {clear:both}
|
||||
.msp .flr{float:right!important}
|
||||
.msp .m30 {margin:30px}
|
||||
.msp .mb20 {margin-bottom:20px}
|
||||
.msp .fz {font-size:110%}
|
||||
.msp .fz2 {font-size:130%}
|
||||
.msp .fz3 {font-size:105%!important}
|
||||
.msp .bnone {border:none!important}
|
||||
.msp .fz2 a {font-weight:bold}
|
||||
.msp p{margin:0 0 0.5em 0;padding:0}
|
||||
.msp a{background-color:inherit;color:#31579C!important}
|
||||
.msp a.roll,.msp a.none{text-decoration:none!important}
|
||||
.msp a.roll:hover{text-decoration:underline!important}
|
||||
.msp .bordure{border:2px solid #FFF;position:relative}
|
||||
* html .msp .bordure {height:1%}
|
||||
*:first-child+html .msp .bordure {min-height:1%}
|
||||
.msp .bordure:after {content:".";display:block;height:0;clear:both;visibility:hidden}
|
||||
.msp .marges{padding:0.4em}
|
||||
.msp fieldset .marges{padding:0 1em 0 1.25em}
|
||||
.msp fieldset .marges.top {padding-top:1em}
|
||||
.msp fieldset legend{background-color:#FFF;color:#2B2A91;margin-left:0.5em}
|
||||
.msp fieldset legend span{display:block;font-size:130%;font-weight:700;padding:0 0.5em 1em;position:relative;top:0.5em}
|
||||
.msp p img{vertical-align:middle}
|
||||
.msp p input.checkbox{vertical-align:middle}
|
||||
.msp p.lien{text-align:right}
|
||||
.msp p.lien a{background:url(../img/bg/fleche.png) 0 4px no-repeat;padding-left:12px}
|
||||
.msp label{cursor:pointer;font-weight:700}
|
||||
.msp .cadre{background:#FFF url(../img/bg/degrade.jpg) left bottom repeat-x;border:1px solid #2B2A91}
|
||||
.msp .centrer{text-align:center}
|
||||
.msp .centrer img{display:block;width:150px;margin:0 auto}
|
||||
.msp li .lien{text-align:left !important}
|
||||
.msp li.picto{background-position:2px 2px;background-repeat:no-repeat;padding-left:20px}
|
||||
.msp li.utilisateur{background-image:url(../img/bg/utilisateur.png)}
|
||||
.msp li.fermer{background-image:url(../img/bg/fermer.png)}
|
||||
.msp .message{background-color:#E7E7F7;border-left:10px solid #B5CEEE;color:#000;padding:1em}
|
||||
* html .msp .message{height:1%}
|
||||
.msp .message p{margin:0}
|
||||
.msp .fond{background-color:#838BCE;background-image:url(../img/bg/coin.png);background-position:100% 100%;background-repeat:no-repeat;color:#FFF;padding:1em 3px}
|
||||
.msp .fond a{background-color:inherit;background-image:url(../img/bg/fleche_blanche.png) !important;color:#FFF!important}
|
||||
.msp small a{background-color:inherit;background-image:url(../img/bg/retour.png);background-position:0 50%;background-repeat:no-repeat;color:#000;float:right;margin-right:30px;margin-top:-2em;padding-left:20px;font-size:90%}
|
||||
.msp h1{background-color:inherit;color:#31579C;font-size:200%;margin:0.5em 0 0.5em 30px;padding:0;font-weight:bold}
|
||||
.msp .contenu{background-color:inherit;color:#000;display:inline;float:left;margin-left:30px;padding-bottom:2em;width:445px}
|
||||
.msp .menu{background-color:inherit;color:#000;display:inline;float:left;margin:0 30px;padding-bottom:2em;width:215px}
|
||||
.msp .retablir{clear:both;display:block;height:1px;margin-top:-1px;overflow:hidden;width:1px}
|
||||
.msp .encart{background:#FFFFFF url(../img/bg/degrade.jpg) left bottom repeat-x ;border:1px solid #2B2A91}
|
||||
.msp .encart h2{background-color:#5E81C1;color:#FFF;font-size:100%;font-weight:bold;margin:0;padding:1px 6px}
|
||||
.msp .encart p{margin:1em}
|
||||
.msp .contenu ul{margin:2em 0}
|
||||
.msp .contenu li.utilisateur{background-image:url(../img/bg/utilisateur_blanc.png)}
|
||||
.msp .important{background-color:#E1E9F8;color:inherit;margin-bottom:0.5em;padding:0.5em}
|
||||
.msp .important p{margin:0;padding:0;font-weight:bold}
|
||||
.msp .contenu li p{padding:0}
|
||||
.msp a.marges{margin-right:20px;padding:0}
|
||||
.msp .barre{border-left:10px solid #B5CEEE;font-weight:bold;padding-left:20px}
|
||||
.msp .barre ul{font-weight:400}
|
||||
.msp em{background-color:inherit;color:#31579C;display:block;font-weight:700;margin:1.5em 0;text-align:center}
|
||||
.msp .contenu ul strong{background-image:url(../img/bg/fleche.png);background-position:0 4px;background-repeat:no-repeat;padding-left:15px}
|
||||
.msp .connexion{font-weight:bold;color:#FFF!important;background-color:inherit!important;text-decoration:none!important;background-image:url(../img/bg/connect.png);background-position:100% 50%;padding:0 25px 0 15px;text-transform:uppercase;font-size:120%}
|
||||
.msp .fond li.central {padding:0 0.5em 1em;text-align:center}
|
||||
.msp .note,.msp .joindre{background:#010d23 url(../img/bg/note2.gif) 0 0 repeat-x}
|
||||
.msp .note span,.msp .joindre span{background:url(../img/bg/note.png) 0 0 no-repeat;display:block;padding:4px 5px 4px 20px;min-height:14px;font-weight:bold}
|
||||
.msp .joindre span{background-image:url(../img/bg/note.png)}
|
||||
* html .msp .note span,* html .msp .joindre span{height:14px;}
|
||||
.msp .note a,.msp .joindre a{color:#FFF!important;text-decoration:none}
|
||||
.msp .user{background:#2b5973 url(../img/bg/user_2.png) top left no-repeat ;padding:3px 10px 3px 18px!important;float:left;display:inline;color:#FFF!important;font-weight:bold;text-decoration:none}
|
||||
.msp .bis{background-image:url(../img/bg/user.png);color:#1A2D4E!important;background-color:inherit;border:1px solid #C4D7DF;padding:2px 10px 2px 18px!important}
|
||||
.msp.bloc {width:99%;border:1px solid #31579C}
|
||||
.msp .cadre{background:#FFFFFF url(../img/bg/degrade.jpg) left bottom repeat-x;border:1px solid #2B2A91}
|
||||
.msp .centrer{text-align:center}
|
||||
.msp .fond{background-color:#838BCE;background-image:url(../img/bg/coin.png);background-position:100% 100%;background-repeat:no-repeat;color:#FFF;padding:1em 3px}
|
||||
.msp .fond a{background-color:inherit;background-image:url(../img/bg/fleche_blanche.png) !important;color:#FFF}
|
||||
|
||||
/* en savoir plus */
|
||||
.msp_esp{
|
||||
font-family:arial, verdana, sans-serif;
|
||||
background:#FFF;
|
||||
margin:24px 0 40px 19px;
|
||||
border:1px solid #4b4da4;
|
||||
width:712px;
|
||||
padding:0 0 55px 0;
|
||||
font-size:11px;
|
||||
text-align:left;
|
||||
position:relative;
|
||||
}
|
||||
.msp_esp *{
|
||||
font-family:arial, verdana, sans-serif;
|
||||
font-size:100%;
|
||||
color:#434343;
|
||||
}
|
||||
.msp_esp p, .msp_esp h1, .msp_esp h2, .msp_esp h3, .msp_esp form{
|
||||
margin:0;
|
||||
font-weight:normal;
|
||||
}
|
||||
.msp_esp_h{
|
||||
position:absolute;
|
||||
left:4px;
|
||||
top:4px;
|
||||
width:704px;
|
||||
height:213px;
|
||||
background:url(../img/fond_ensavoirplus_h.jpg) 0 0 no-repeat;
|
||||
}
|
||||
.msp_esp_b{
|
||||
position:absolute;
|
||||
left:4px;
|
||||
bottom:4px;
|
||||
width:704px;
|
||||
height:55px;
|
||||
background:url(../img/fond_ensavoirplus_b.jpg) 0 0 repeat-x;
|
||||
}
|
||||
.msp_esp_header{
|
||||
margin:0 0 -6px 0;
|
||||
}
|
||||
.msp_esp_header:after{
|
||||
content:".";
|
||||
display:block;
|
||||
height:0;
|
||||
clear:both;
|
||||
visibility:hidden;
|
||||
}
|
||||
* html .msp_esp_header{
|
||||
height:1%;
|
||||
}
|
||||
*:first-child+html .msp_esp_header{
|
||||
min-height:1%;
|
||||
}
|
||||
.msp_esp_intro{
|
||||
position:relative;
|
||||
padding:0 0 0 20px;
|
||||
float:left;
|
||||
width:548px;
|
||||
}
|
||||
* html .msp_esp_intro{
|
||||
width:558px;
|
||||
}
|
||||
.msp_esp_header a,
|
||||
.msp_esp_header a:hover{
|
||||
position:relative;
|
||||
float:left;
|
||||
background:url(../img/visite_guidee.png) 0 0 no-repeat;
|
||||
display:block;
|
||||
width:125px;
|
||||
height:122px;
|
||||
margin:30px 0 0 0;
|
||||
overflow:hidden;
|
||||
text-indent:-999em;
|
||||
cursor:pointer;
|
||||
cursor:hand;
|
||||
}
|
||||
* html .msp_esp_header a{
|
||||
background-image:none;
|
||||
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='./img/visite_guidee.png',sizingMethod='crop');
|
||||
}
|
||||
.msp_esp_pgtitre{
|
||||
color:#31579c;
|
||||
font-size:150%;
|
||||
text-transform:uppercase;
|
||||
padding:30px 0 10px 0;
|
||||
}
|
||||
.msp_esp_pgtitre span{
|
||||
color:#31579c;
|
||||
font-size:210%;
|
||||
line-height:90%;
|
||||
}
|
||||
.msp_esp_intro p{
|
||||
font-size:110%;
|
||||
line-height:150%;
|
||||
font-weight:bold;
|
||||
padding:0 10px 0 0;
|
||||
}
|
||||
.msp_esp_cont{
|
||||
margin:0 12px 0 12px;
|
||||
position:relative;
|
||||
padding:24px 0 24px 0;
|
||||
}
|
||||
* html .msp_esp_cont{
|
||||
height:1%;
|
||||
}
|
||||
*:first-child+html .msp_esp_cont{
|
||||
min-height:1%;
|
||||
}
|
||||
.msp_esp_cont-h{
|
||||
position:absolute;
|
||||
top:0;
|
||||
left:0;
|
||||
width:680px;
|
||||
height:24px;
|
||||
background:url(../img/ombre_content_h.png) 0 0 no-repeat;
|
||||
}
|
||||
* html .msp_esp_cont-h{
|
||||
background-image:none;
|
||||
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='./img/ombre_content_h.png',sizingMethod='crop');
|
||||
}
|
||||
.msp_esp_cont-b{
|
||||
position:absolute;
|
||||
bottom:0;
|
||||
left:0;
|
||||
width:688px;
|
||||
height:24px;
|
||||
background:url(../img/ombre_content_b.png) 0 0 no-repeat;
|
||||
}
|
||||
* html .msp_esp_cont-b{
|
||||
background-image:none;
|
||||
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='./img/ombre_content_b.png',sizingMethod='crop');
|
||||
}
|
||||
.msp_esp_cont-m{
|
||||
background:url(../img/ombre_content_m.png) 0 0 repeat-y;
|
||||
padding:0 14px 0 14px;
|
||||
}
|
||||
* html .msp_esp_cont-m{
|
||||
height:1%;
|
||||
background-image:none;
|
||||
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='./img/ombre_content_m.png',sizingMethod='scale');
|
||||
}
|
||||
.msp_esp_pres .msp_esp_sub,
|
||||
.msp_esp_sub{
|
||||
text-align:center;
|
||||
padding:0 0 4px 0;
|
||||
min-height:1px;
|
||||
font-size:100%;
|
||||
}
|
||||
* html .msp_esp_pres div .msp_esp_sub{
|
||||
height:auto;
|
||||
}
|
||||
.msp_esp_sub a,
|
||||
.msp_esp_sub a:hover{
|
||||
display:-moz-inline-box;
|
||||
background:#010D23 url(../img/bk-input.gif) 0 0 repeat-x;
|
||||
color:#fff;
|
||||
border:none;
|
||||
padding:3px 60px;
|
||||
text-transform:uppercase;
|
||||
font-weight:bold;
|
||||
cursor:pointer;
|
||||
cursor:hand;
|
||||
text-decoration:none;
|
||||
min-height:22px;
|
||||
}
|
||||
* html .msp_esp_sub a{
|
||||
display:inline-block;
|
||||
height:16px;
|
||||
}
|
||||
*:first-child+html .msp_esp_sub a{
|
||||
display:inline-block;
|
||||
min-height:16px;
|
||||
}
|
||||
.msp_esp_cont-degh{
|
||||
background:url(../img/deg_content_h.png) 0 0 repeat-x;
|
||||
}
|
||||
.msp_esp_cont-degb{
|
||||
background:url(../img/deg_content_b.png) 0 100% repeat-x;
|
||||
padding:0 8px 0 8px;
|
||||
}
|
||||
.msp_esp_cont-m .msp_esp_btitre{
|
||||
padding:4px 0 5px 0;
|
||||
color:#31579c;
|
||||
font-weight:bold;
|
||||
font-size:120%;
|
||||
}
|
||||
.msp_esp_pres div p{
|
||||
padding:6px 12px 20px 70px;
|
||||
font-size:110%;
|
||||
min-height:65px;
|
||||
}
|
||||
* html .msp_esp_pres .msp_esp_cont-degb div p{
|
||||
height:83px;
|
||||
}
|
||||
.msp_esp_pres .msp_esp_btitre{
|
||||
color:#fff;
|
||||
padding:4px 10px 5px 10px;
|
||||
}
|
||||
.msp_esp_bloc1 .msp_esp_btitre{
|
||||
background:#143152 url(../img/fond_titre_1.png) 0 0 repeat-x;
|
||||
}
|
||||
.msp_esp_bloc1 p{
|
||||
background:url(../img/illus_1.jpg) 0 0 no-repeat;
|
||||
}
|
||||
.msp_esp_bloc2 .msp_esp_btitre{
|
||||
background:#386722 url(../img/fond_titre_2.png) 0 0 repeat-x;
|
||||
}
|
||||
.msp_esp_bloc2 p{
|
||||
background:url(../img/illus_2.jpg) 0 0 no-repeat;
|
||||
}
|
||||
.msp_esp_bloc3 .msp_esp_btitre{
|
||||
background:#815302 url(../img/fond_titre_3.png) 0 0 repeat-x;
|
||||
}
|
||||
.msp_esp_bloc3 p{
|
||||
background:url(../img/illus_3.jpg) 0 0 no-repeat;
|
||||
}
|
||||
.msp_esp_bloc4 .msp_esp_btitre{
|
||||
background:#862e78 url(../img/fond_titre_4.png) 0 0 repeat-x;
|
||||
}
|
||||
.msp_esp_bloc4 p{
|
||||
background:url(../img/illus_4.jpg) 0 0 no-repeat;
|
||||
}
|
||||
.msp_esp_logos {
|
||||
text-align:center;
|
||||
list-style-type:none;
|
||||
padding:0;
|
||||
margin:12px 0 4px 0;
|
||||
|
||||
}
|
||||
.msp_esp_logos li{
|
||||
display:inline;
|
||||
margin:0 8px 0 3px;
|
||||
}
|
Before Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 652 B |
Before Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 189 B |
Before Width: | Height: | Size: 234 B |
Before Width: | Height: | Size: 233 B |
Before Width: | Height: | Size: 558 B |
Before Width: | Height: | Size: 196 B |
Before Width: | Height: | Size: 108 B |
Before Width: | Height: | Size: 108 B |
Before Width: | Height: | Size: 207 B |
Before Width: | Height: | Size: 96 B |
Before Width: | Height: | Size: 128 B |
Before Width: | Height: | Size: 225 B |
Before Width: | Height: | Size: 364 B |
Before Width: | Height: | Size: 360 B |
Before Width: | Height: | Size: 205 B |
Before Width: | Height: | Size: 104 B |
Before Width: | Height: | Size: 97 B |
Before Width: | Height: | Size: 6.0 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 174 B |
Before Width: | Height: | Size: 184 B |
Before Width: | Height: | Size: 558 B |
Before Width: | Height: | Size: 108 B |
Before Width: | Height: | Size: 219 B |
Before Width: | Height: | Size: 338 B |
Before Width: | Height: | Size: 8.1 KiB |
Before Width: | Height: | Size: 190 B |
Before Width: | Height: | Size: 190 B |
Before Width: | Height: | Size: 190 B |
Before Width: | Height: | Size: 190 B |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 5.0 KiB |
Before Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 7.2 KiB |
Before Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 858 B |
Before Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 512 B |
Before Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 707 B |
Before Width: | Height: | Size: 685 B |
Before Width: | Height: | Size: 682 B |
Before Width: | Height: | Size: 217 B |
Before Width: | Height: | Size: 902 B |
Before Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 953 B |
|
@ -1,146 +0,0 @@
|
|||
(function(){
|
||||
|
||||
var DomReady = window.DomReady = {};
|
||||
|
||||
// Everything that has to do with properly supporting our document ready event. Brought over from the most awesome jQuery.
|
||||
|
||||
var userAgent = navigator.userAgent.toLowerCase();
|
||||
|
||||
// Figure out what browser is being used
|
||||
var browser = {
|
||||
version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1],
|
||||
safari: /webkit/.test(userAgent),
|
||||
opera: /opera/.test(userAgent),
|
||||
msie: (/msie/.test(userAgent)) && (!/opera/.test( userAgent )),
|
||||
mozilla: (/mozilla/.test(userAgent)) && (!/(compatible|webkit)/.test(userAgent))
|
||||
};
|
||||
|
||||
var readyBound = false;
|
||||
var isReady = false;
|
||||
var readyList = [];
|
||||
|
||||
// Handle when the DOM is ready
|
||||
function domReady() {
|
||||
// Make sure that the DOM is not already loaded
|
||||
if(!isReady) {
|
||||
// Remember that the DOM is ready
|
||||
isReady = true;
|
||||
|
||||
if(readyList) {
|
||||
for(var fn = 0; fn < readyList.length; fn++) {
|
||||
readyList[fn].call(window, []);
|
||||
}
|
||||
|
||||
readyList = [];
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// From Simon Willison. A safe way to fire onload w/o screwing up everyone else.
|
||||
function addLoadEvent(func) {
|
||||
var oldonload = window.onload;
|
||||
if (typeof window.onload != 'function') {
|
||||
window.onload = func;
|
||||
} else {
|
||||
window.onload = function() {
|
||||
if (oldonload) {
|
||||
oldonload();
|
||||
}
|
||||
func();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// does the heavy work of working through the browsers idiosyncracies (let's call them that) to hook onload.
|
||||
function bindReady() {
|
||||
if(readyBound) {
|
||||
return;
|
||||
}
|
||||
|
||||
readyBound = true;
|
||||
|
||||
// Mozilla, Opera (see further below for it) and webkit nightlies currently support this event
|
||||
if (document.addEventListener && !browser.opera) {
|
||||
// Use the handy event callback
|
||||
document.addEventListener("DOMContentLoaded", domReady, false);
|
||||
}
|
||||
|
||||
// If IE is used and is not in a frame
|
||||
// Continually check to see if the document is ready
|
||||
if (browser.msie && window == top) (function(){
|
||||
if (isReady) return;
|
||||
try {
|
||||
// If IE is used, use the trick by Diego Perini
|
||||
// http://javascript.nwbox.com/IEContentLoaded/
|
||||
document.documentElement.doScroll("left");
|
||||
} catch(error) {
|
||||
setTimeout(arguments.callee, 0);
|
||||
return;
|
||||
}
|
||||
// and execute any waiting functions
|
||||
domReady();
|
||||
})();
|
||||
|
||||
if(browser.opera) {
|
||||
document.addEventListener( "DOMContentLoaded", function () {
|
||||
if (isReady) return;
|
||||
for (var i = 0; i < document.styleSheets.length; i++)
|
||||
if (document.styleSheets[i].disabled) {
|
||||
setTimeout( arguments.callee, 0 );
|
||||
return;
|
||||
}
|
||||
// and execute any waiting functions
|
||||
domReady();
|
||||
}, false);
|
||||
}
|
||||
|
||||
if(browser.safari) {
|
||||
var numStyles;
|
||||
(function(){
|
||||
if (isReady) return;
|
||||
if (document.readyState != "loaded" && document.readyState != "complete") {
|
||||
setTimeout( arguments.callee, 0 );
|
||||
return;
|
||||
}
|
||||
if (numStyles === undefined) {
|
||||
var links = document.getElementsByTagName("link");
|
||||
for (var i=0; i < links.length; i++) {
|
||||
if(links[i].getAttribute('rel') == 'stylesheet') {
|
||||
numStyles++;
|
||||
}
|
||||
}
|
||||
var styles = document.getElementsByTagName("style");
|
||||
numStyles += styles.length;
|
||||
}
|
||||
if (document.styleSheets.length != numStyles) {
|
||||
setTimeout( arguments.callee, 0 );
|
||||
return;
|
||||
}
|
||||
|
||||
// and execute any waiting functions
|
||||
domReady();
|
||||
})();
|
||||
}
|
||||
|
||||
// A fallback to window.onload, that will always work
|
||||
addLoadEvent(domReady);
|
||||
};
|
||||
|
||||
// This is the public function that people can use to hook up ready.
|
||||
DomReady.ready = function(fn, args) {
|
||||
// Attach the listeners
|
||||
bindReady();
|
||||
|
||||
// If the DOM is already ready
|
||||
if (isReady) {
|
||||
// Execute the function immediately
|
||||
fn.call(window, []);
|
||||
} else {
|
||||
// Add the function to the wait list
|
||||
readyList.push( function() { return fn.call(window, []); } );
|
||||
}
|
||||
};
|
||||
|
||||
bindReady();
|
||||
|
||||
})();
|
|
@ -1,22 +0,0 @@
|
|||
(function(undef) {
|
||||
function openpopup(path) {
|
||||
var windowName = 'ConnectWithOauth';
|
||||
var windowOptions = 'location=0,status=0,width=400,height=500';
|
||||
var oauthWindow = window.open(path, windowName, windowOptions);
|
||||
var oauthInterval = window.setInterval(function(){
|
||||
if (oauthWindow.closed) {
|
||||
window.clearInterval(oauthInterval);
|
||||
}
|
||||
}, 1000);
|
||||
window.open(path, windowName, windowOptions);
|
||||
return false;
|
||||
}
|
||||
var tags = document.getElementsByClassName('js-oauth-popup');
|
||||
for (var i = 0; i < tags.length; i++) {
|
||||
var tag = tags[i];
|
||||
tag.onclick = function (ev) {
|
||||
openpopup(this.href);
|
||||
return false;
|
||||
};
|
||||
}
|
||||
})();
|
|
@ -1,16 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<script type="text/javascript">
|
||||
function getParameterByName(name) {
|
||||
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
|
||||
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
|
||||
results = regex.exec(location.search);
|
||||
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
|
||||
}
|
||||
var next = getParameterByName('next');
|
||||
window.opener.location.href = {% if redirect_to %}"{{ redirect_to }}" {% else %}next || '/'{% endif %};
|
||||
window.close();
|
||||
</script>
|
||||
</head>
|
||||
<html>
|
|
@ -1,48 +0,0 @@
|
|||
{% extends "base.html"%}
|
||||
{% load sekizai_tags %}
|
||||
{% load staticfiles %}
|
||||
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% addtoblock "css" %}<link rel="stylesheet" type="text/css" href="{% static 'msp/css/screen.msp.css' %}"></link>{% endaddtoblock %}
|
||||
{% addtoblock "js" %}<script type="text/javascript" src="{% static "msp/js/domready.js" %}"></script>{% endaddtoblock %}
|
||||
{% addtoblock "js" %}<script type="text/javascript" src="{% static "msp/js/oauth.js" %}"></script>{% endaddtoblock %}
|
||||
<div id="msp-confirm-unlink">
|
||||
<div class="msp">
|
||||
<div class="cadre">
|
||||
<div class="bordure">
|
||||
<h1>Gestion des liaisons : confirmation de suppression</h1>
|
||||
<p>
|
||||
<small><a href="{{ done }}" class="roll">Retour</a></small>
|
||||
</p>
|
||||
<div class="contenu">
|
||||
<div class="barre">
|
||||
<p><strong> Attention, vous allez supprimer votre (ou vos) liaison(s) entre votre compte Partenaire et mon.service-public.fr. </strong></p>
|
||||
|
||||
<p><strong> Supprimer la totalité des liaisons ne supprime ni votre compte mon.service-public.fr ni votre compte citoyen.<br />
|
||||
Si vous confirmez cette action, il ne vous sera plus possible d’accéder aux fonctionnalités de mon.service-public à partir de votre compte citoyen. </strong></p>
|
||||
<p>
|
||||
Confirmez-vous cette action ?
|
||||
</p>
|
||||
</div>
|
||||
<div class="m30">
|
||||
<p class="mb20">
|
||||
<a href="{% url 'msp-unlink' %}?next={{ next|urlencode }}{% if popup %}&popup=1{% endif %}" class="marges user {% if popup %}js-oauth-popup{% endif %}">Confirmer suppression</a>
|
||||
<a href="{{ next }}" class="marges user bis">Annuler</a>
|
||||
</p>
|
||||
<br class="cb" />
|
||||
<br class="cb" />
|
||||
<p>
|
||||
Une fois les liaisons supprimées, mon.service-public.fr n’a plus aucune connaissance de vos liaisons avec votre compte citoyen et vice versa. Il n'est alors plus possible de naviguer entre les deux sites sans réauthentification.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<span class="retablir"><br /></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
|
@ -1,34 +0,0 @@
|
|||
{% load staticfiles %}
|
||||
{% load sekizai_tags %}
|
||||
|
||||
{% addtoblock "css" %}<link rel="stylesheet" type="text/css" href="{% static 'msp/css/screen.msp.css' %}"></link>{% endaddtoblock %}
|
||||
{% addtoblock "js" %}<script type="text/javascript" src="{% static "msp/js/domready.js" %}"></script>{% endaddtoblock %}
|
||||
{% addtoblock "js" %}<script type="text/javascript" src="{% static "msp/js/oauth.js" %}"></script>{% endaddtoblock %}
|
||||
|
||||
{% comment %}
|
||||
Emprunté sur caf.fr
|
||||
{% endcomment %}
|
||||
|
||||
{% if 'nomsp' not in request.GET %}
|
||||
<div class="msp connecting">
|
||||
<div class="cadre">
|
||||
<div class="bordure">
|
||||
<div class="marges">
|
||||
<p class="flr">
|
||||
<a href="{% url 'msp-login-or-link' %}{% if request.GET.next or popup %}?{% endif %}{% if request.GET.next %}{{ request.GET.urlencode }}{% endif %}{% if popup %}&popup=1{% endif %}"
|
||||
title="Connectez-vous avec Mon Service Public" class="connexion{% if popup %} js-oauth-popup{% endif %}">Connexion</a>
|
||||
</p>
|
||||
<p>
|
||||
<strong class="fz">
|
||||
Nouveau : connectez-vous avec
|
||||
<img src="{% static "msp/img/mon_service-public.fr_petit.png" %}" width="100" height="25" alt="mon.service-public.fr" />
|
||||
</strong>
|
||||
</p>
|
||||
<p class="lien">
|
||||
<a href="{% url "msp-more-redirect" %}" target="_blank" class="roll">En savoir plus</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
|
@ -1,12 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<body>
|
||||
<ul>
|
||||
{% for document in documents %}
|
||||
<li>
|
||||
<a href="{% url 'msp-document' doc_id=document.id %}">{{ document.name }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</body>
|
||||
<html>
|
|
@ -1,77 +0,0 @@
|
|||
{% extends "base.html"%}
|
||||
{% load sekizai_tags %}
|
||||
{% load staticfiles %}
|
||||
|
||||
|
||||
{% block content %}
|
||||
|
||||
{% addtoblock "css" %}<link rel="stylesheet" type="text/css" href="{% static 'msp/css/screen.msp.css' %}"></link>{% endaddtoblock %}
|
||||
<div id="msp-link-management">
|
||||
<div class="msp">
|
||||
<div class="cadre">
|
||||
<div class="bordure">
|
||||
<h1>Gestion des liaisons avec mon.service-public.fr</h1>
|
||||
<p>
|
||||
<small><a href="{{ next }}" class="roll">Retour</a></small>
|
||||
</p>
|
||||
<div class="contenu">
|
||||
<p>
|
||||
<strong>Sur cette page, vous pouvez :</strong>
|
||||
</p>
|
||||
<ul>
|
||||
<!-- <li><strong>Activer ou désactiver le suivi de vos démarches sur mon.service-public.fr</strong></li> -->
|
||||
<li><strong>Supprimer les liaisons vers mon.service-public.fr</strong></li>
|
||||
</ul>
|
||||
|
||||
<!-- <div class="important">
|
||||
<p>
|
||||
Comment recevoir mes documents et informations sur mon.service-public.fr ?
|
||||
</p>
|
||||
</div>
|
||||
<p>
|
||||
En activant le suivi des démarches sur mon.service-public.fr, vous autorisez Partenaire.fr à envoyer des informations et des documents administratifs sur votre compte mon.service-public.fr . Ces informations sont ensuite accessibles depuis le bloc partenaire de mon.service-public.fr et les documents sont consultables dans votre espace confidentiel.
|
||||
</p>
|
||||
<p>
|
||||
<em>Actuellement, le suivi des démarches n’est pas activé</em>
|
||||
</p>
|
||||
<p>
|
||||
<a href="#" class="marges user">Activer le suivi des démarches</a>
|
||||
<img src="img/mon_service-public.fr.png" width="125" height="30" alt="mon.service-public.fr" />
|
||||
</p> -->
|
||||
<div class="important">
|
||||
<p>
|
||||
Comment supprimer toutes les liaisons entre Partenaire.fr et mon.service-public.fr ?
|
||||
</p>
|
||||
</div>
|
||||
<p>
|
||||
Supprimer la totalité des liaisons ne supprime ni votre compte mon.service-public.fr ni votre compte citoyen.
|
||||
</p>
|
||||
<p>
|
||||
Une fois les liaisons supprimées, mon.service-public.fr n’aura aucune connaissance de votre compte citoyen, et vice versa. Il ne sera alors plus possible de naviguer entre les deux sites sans ré-authentification.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<a href="{% url "msp-confirm-unlink" %}?next={{ next }}" class="marges user">Supprimer toutes les liaisons</a>
|
||||
<img src="{% static "msp/img/mon_service-public.fr.png" %}" width="125" height="30" alt="mon.service-public.fr" />
|
||||
</p>
|
||||
</div>
|
||||
<div class="menu">
|
||||
<div class="encart">
|
||||
<div class="bordure">
|
||||
<h2>Qu’est-ce que mon.service-public.fr ?</h2>
|
||||
<p> Simplifiez votre relation avec les services publics, accédez à une information adaptée à votre cas personnel, réalisez et suivez vos démarches administratives en ligne. </p>
|
||||
<p class="centrer">
|
||||
<img src="{% static "msp/img/mon_service-public.fr.png" %}" width="125" height="30" alt="mon.service-public.fr" />
|
||||
</p>
|
||||
<p class="lien">
|
||||
<a href="https://mon.service-public.fr/portail/app/cms/public/a_propos_du_site" class="roll" target="_blank">En savoir plus</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span class="retablir"><br /></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -1,54 +0,0 @@
|
|||
{% load i18n %}
|
||||
{% load sekizai_tags %}
|
||||
{% load staticfiles %}
|
||||
|
||||
{% addtoblock "css" %}<link rel="stylesheet" type="text/css" href="{% static 'msp/css/screen.msp.css' %}"></link>{% endaddtoblock %}
|
||||
{% addtoblock "js" %}<script type="text/javascript" src="{% static "msp/js/domready.js" %}"></script>{% endaddtoblock %}
|
||||
{% addtoblock "js" %}<script type="text/javascript" src="{% static "msp/js/oauth.js" %}"></script>{% endaddtoblock %}
|
||||
|
||||
<div id="msp-linking">
|
||||
{% if user.is_authenticated and user.mspaccount and user.mspaccount.refresh_token %}
|
||||
<div class="msp">
|
||||
<div class="cadre">
|
||||
<p class="centrer">
|
||||
<img src="{% static "msp/img/toutes_vos_demarches.png" %}" width="140" height="35" alt="Vous êtes actuellement en connexion avec" />
|
||||
<img src="{% static "msp/img/mon_service-public.fr.png" %}" width="125" height="30" alt="mon.Service-Public.fr" />
|
||||
</p>
|
||||
<ul class="fond">
|
||||
<li class="picto">
|
||||
<p class="lien">
|
||||
<a href="{% url "msp-more-redirect" %}" target="_blank" class="roll">En savoir plus</a>
|
||||
</p>
|
||||
</li>
|
||||
<li class="picto utilisateur">
|
||||
<p class="lien">
|
||||
<a href="{% url "msp-link-management" %}?next={{ request.get_full_path|urlencode }}" class="roll">Gérer mes liaisons</a>
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="msp" style="width: 300px">
|
||||
<div class="cadre">
|
||||
<p class="centrer">
|
||||
<img src="{% static "msp/img/toutes_vos_demarches.png" %}" width="140" height="35" alt="Vous êtes actuellement en connexion avec" />
|
||||
<img src="{% static "msp/img/mon_service-public.fr.png" %}" width="125" height="30" alt="mon.service-public.fr" />
|
||||
</p>
|
||||
<ul class="fond">
|
||||
<li class="picto">
|
||||
<p class="lien">
|
||||
<a href="{% url "msp-more-redirect" %}" target="_blank" class="roll">En savoir plus</a>
|
||||
</p>
|
||||
</li>
|
||||
<li class="picto utilisateur">
|
||||
<p class="lien">
|
||||
<a href="{% url 'msp-link' %}?next={{ request.get_full_path }}{% if popup %}&popup=1{% endif %}"
|
||||
class="{% if popup %}js-oauth-popup{% endif %} roll db">Créer une liaison avec mon.service-public.fr</a>
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|