Compare commits

..

17 Commits

Author SHA1 Message Date
Thomas Berrod d6f8941e47 unknown deletes 2019-05-16 09:46:59 +02:00
Thomas Berrod 5474397f5f Merge branch 'feat/api-rest' of https://git.e-declic.net/talents-tube/website into feat/api-rest 2018-09-17 10:49:18 +02:00
Maxime Thévenot 44d0711dc1 Feat : Add company and answer api base 2018-09-17 10:15:12 +02:00
Thomas Berrod 9f6c1a740f Merge branch 'feat/api-rest' of https://git.e-declic.net/talents-tube/website into feat/api-rest 2018-09-17 09:04:25 +02:00
Thomas Berrod 8063c8479e feat:adding quotes to makefile 2018-09-10 09:53:07 +02:00
Maxime Thévenot 04229b0781 Feat : implement token generation with facebook id 2018-09-07 14:31:32 +02:00
Maxime Thévenot 4edfae9f1c Feat : implement JWT for api authentication 2018-09-07 08:57:44 +02:00
Maxime Thévenot 870654c850 Feat : update ads representation 2018-09-06 09:48:12 +02:00
Maxime Thévenot 9413202660 WIP : test authentication for api 2018-09-06 08:20:27 +02:00
Maxime Thévenot 215e325a8c Feat : configure and test api on add 2018-09-06 08:20:09 +02:00
Maxime Thévenot 9f8682c896 Feat : Install hateoas bundle 2018-09-06 08:19:16 +02:00
Maxime Thévenot c48fe53e6a Feat : install pagerfante bundle and update api 2018-08-31 16:44:42 +02:00
Maxime Thévenot d69f32c657 Feat : update config.yml for fosrest and add some api method 2018-08-31 12:07:29 +02:00
Maxime Thévenot dba776d15f Update : symfony to 3.4 + vendors 2018-08-31 11:26:11 +02:00
Maxime Thévenot bb3ed610ab WIP : testing api 2018-08-31 10:40:47 +02:00
Maxime Thévenot 75145d9e1c Feat : install FOSRestBundle 2018-08-29 15:26:50 +02:00
Maxime Thévenot b885e6866c Feat : install jmsserializer bundle 2018-08-29 14:42:12 +02:00
11566 changed files with 279121 additions and 70815 deletions
+1 -1
View File
@@ -17,7 +17,7 @@ endif
DC_OVERRIDE := $(shell test -e conf/docker-compose.override.yml && echo "--file conf/docker-compose.override.yml")
DC_OVERRIDE_ENV := $(shell test -e conf/docker-compose.$(ENV).yml && echo "--file conf/docker-compose.$(ENV).yml")
DC=ENV=$(ENV) CLIENT=$(CLIENT) $(DOCKERCOMPOSE) --project-name "$(CLIENT)_$(ENV)" --file conf/docker-compose.yml $(DC_OVERRIDE) $(DC_OVERRIDE_ENV)
DC=ENV=$(ENV) CLIENT=$(CLIENT) "$(DOCKERCOMPOSE)" --project-name "$(CLIENT)_$(ENV)" --file conf/docker-compose.yml $(DC_OVERRIDE) $(DC_OVERRIDE_ENV)
default:
$(info $(USAGE))
+7
View File
@@ -51,6 +51,13 @@ class AppKernel extends Kernel
//CookieBar
new Fairlane\CookieConsentBundle\FairlaneCookieConsentBundle(),
//Api
new JMS\SerializerBundle\JMSSerializerBundle(),
new FOS\RestBundle\FOSRestBundle(),
new WhiteOctober\PagerfantaBundle\WhiteOctoberPagerfantaBundle(),
new Bazinga\Bundle\HateoasBundle\BazingaHateoasBundle(),
new Lexik\Bundle\JWTAuthenticationBundle\LexikJWTAuthenticationBundle(),
];
if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {
@@ -169,10 +169,6 @@
<trans-unit id="profile.edit.submit">
<source>profile.edit.submit</source>
<target>Sauvegarder mon profil</target>
</trans-unit>
<trans-unit id="profile.edit.save">
<source>profile.edit.save</source>
<target>Enregistrer</target>
</trans-unit>
<trans-unit id="profile.company.title">
<source>profile.company.title</source>
@@ -230,30 +226,6 @@
<source>profile.company.logo</source>
<target>Logo de l'entreprise</target>
</trans-unit>
<trans-unit id="talent.profile.title.label">
<source>talent.profile.title.label</source>
<target>Titre de votre profil</target>
</trans-unit>
<trans-unit id="talent.profile.situation.label">
<source>talent.profile.situation.label</source>
<target>Votre situation</target>
</trans-unit>
<trans-unit id="talent.profile.description.label">
<source>talent.profile.description.label</source>
<target>Quelques mots sur vous</target>
</trans-unit>
<trans-unit id="profile.talent.tags">
<source>profile.talent.tags</source>
<target>Vos compétences.</target>
</trans-unit>
<trans-unit id="profile.talent.under.tags">
<source>profile.talent.under.tags</source>
<target>Définissez vos clés dans lordre dimportance. Vous pouvez indiquer jusqu’à 50 compétences.</target>
</trans-unit>
<trans-unit id="talent.menu.dashboard.label">
<source>talent.menu.dashboard.label</source>
<target>Mon profil</target>
</trans-unit>
<!-- ANNONCE-->
<trans-unit id="ad.company.add.label">
<source>ad.company.add.label</source>
@@ -333,82 +305,6 @@
<source>talent.menu.recommandations.label</source>
<target>Mes recommandations</target>
</trans-unit>
<trans-unit id="talent.profile.career.company.label">
<source>talent.profile.career.company.label</source>
<target>Entreprise</target>
</trans-unit>
<trans-unit id="talent.profile.career.job.label">
<source>talent.profile.career.job.label</source>
<target>Intitulé du poste</target>
</trans-unit>
<trans-unit id="talent.profile.career.begin.label">
<source>talent.profile.career.begin.label</source>
<target>Début</target>
</trans-unit>
<trans-unit id="talent.profile.career.end.label">
<source>talent.profile.career.end.label</source>
<target>Fin</target>
</trans-unit>
<trans-unit id="talent.profile.career.skills.label">
<source>talent.profile.career.skills.label</source>
<target>Vos compétences</target>
</trans-unit>
<trans-unit id="talent.profile.career.actualJob.label">
<source>talent.profile.career.actualJob.label</source>
<target>Toujours en poste</target>
</trans-unit>
<trans-unit id="talent.profile.career.place.label">
<source>talent.profile.career.place.label</source>
<target>Lieux</target>
</trans-unit>
<trans-unit id="talent.profile.formation.name.label">
<source>talent.profile.formation.name.label</source>
<target>Diplome</target>
</trans-unit>
<trans-unit id="talent.profile.formation.school.label">
<source>talent.profile.formation.school.label</source>
<target>Ecole</target>
</trans-unit>
<trans-unit id="talent.profile.formation.actual.label">
<source>talent.profile.formation.actual.label</source>
<target>Toujours en cours</target>
</trans-unit>
<trans-unit id="talent.profile.formation.obtention.label">
<source>talent.profile.formation.obtention.label</source>
<target>Année d'obtention</target>
</trans-unit>
<trans-unit id="talent.profile.language.skill.1.label">
<source>talent.profile.language.skill.1.label</source>
<target>Notions</target>
</trans-unit>
<trans-unit id="talent.profile.language.skill.2.label">
<source>talent.profile.language.skill.2.label</source>
<target>Compétence professionnelle limitée</target>
</trans-unit>
<trans-unit id="talent.profile.language.skill.3.label">
<source>talent.profile.language.skill.3.label</source>
<target>Compétence professionnelle complète</target>
</trans-unit>
<trans-unit id="talent.profile.language.skill.4.label">
<source>talent.profile.language.skill.4.label</source>
<target>Bilingue ou natif</target>
</trans-unit>
<trans-unit id="talent.profile.language.name.label">
<source>talent.profile.language.name.label</source>
<target>Langue</target>
</trans-unit>
<trans-unit id="talent.profile.situation.1.label">
<source>talent.profile.situation.1.label</source>
<target>En recherche demploi</target>
</trans-unit>
<trans-unit id="talent.profile.situation.2.label">
<source>talent.profile.situation.2.label</source>
<target>À l’écoute dopportunités</target>
</trans-unit>
<trans-unit id="talent.profile.situation.3.label">
<source>talent.profile.situation.3.label</source>
<target>En poste</target>
</trans-unit>
<!-- TALENT -->
<trans-unit id="ad.talent.answer.label">
<source>ad.talent.answer.label</source>
@@ -656,20 +552,8 @@
<source>label.answer.history.title</source>
<target>Historique des messages envoyés</target>
</trans-unit>
<!-- Territoires -->
<trans-unit id="message.territory.list.ads">
<source>message.territory.list.ads</source>
<target>offres d'emploi en cours sur ce territoire</target>
</trans-unit>
<trans-unit id="message.territory.list.ad">
<source>message.territory.list.ad</source>
<target>offre d'emploi en cours sur ce territoire</target>
</trans-unit>
<trans-unit id="message.territory.list.noads">
<source>message.territory.list.noads</source>
<target>Découvrez les entreprises qui recrutent sur ce territoire</target>
</trans-unit>
</body>
</file>
</xliff>
@@ -1,134 +0,0 @@
{% extends 'admin/base_admin.html.twig' %}
{% block contentHeader %}
<h1>
Liste des Candidatures
</h1>
<ol class="breadcrumb">
<li><a href="{{ path('admin_dashboard') }}"><i class="fa fa-dashboard"></i> Dashboard</a></li>
<li class="active">Annonces</li>
</ol>
{% endblock %}
{% block content %}
<div class="box box-primary">
<div class="box-body">
<table id="answer_list_table" class="table table-hover table-bordered">
<thead>
<tr>
<th class="col-xs-2">Date d'envoi</th>
<th>Utilisateur</th>
<th>Annonce / Entreprise</th>
<th>video</th>
<th>Status</th>
<th>action</th>
</tr>
</thead>
<tbody>
{% for answer in answers if answer.status != "DRAFT" %}
<tr>
<td data-order="{{ answer.sendTime|date('U') }}">{{ answer.sendTime|date('d/m/Y') }}</td>
<td>{{ answer.user.firstname }} {{ answer.user.lastname }}</td>
{% if answer.ad %}
<td>{{ answer.ad.company.brandname }} - {{ answer.ad.title }}</td>
{% else %}
<td>{{ answer.company.brandname }}</td>
{% endif %}
<td>
ID Candidature : {{ answer.id }}<br />
{% if answer.video.cdnUrl is defined %}
<iframe src="https://player.vimeo.com/video/{{ answer.video.cdnUrl|replace({ "/videos/": ""}) }}"
width="auto" height="auto" frameborder="0" webkitallowfullscreen mozallowfullscreen
allowfullscreen></iframe>
{% endif %}
</td>
<td class="status">{{ answer.status }}</td>
<td>
Actions :
<select class="changeStatus" name="changeStatus" data-id="{{ answer.id }}">
<option value="null">choisir</option>
<option value="SENDED">Envoyé</option>
<option value="DRAFT">Brouillon</option>
<option value="REFUSED">Refuser</option>
</select>
<br />
<a class="delete-answer" href='{{ path("admin_answer_delete",{'id':answer.id }) }}' data-toggle="tooltip" title="Supprimer">
Supprimer <i class="fa fa-trash"></i>
</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
{% endblock %}
{% block javascripts %}
<script>
$(function () {
$('.changeStatus').change(function(e){
e.preventDefault();
var idAnswer = $(this).data('id');
var value = $(this).val();
var route = '/app_dev.php/admin/config/answer/' + idAnswer + '/status/' + value;
var select = $(this);
$.ajax({
type: "POST",
url: route,
dataType: "json",
success: function (msg) {
console.log("ok");
select.parent().prev('.status').html(value);
}
});
});
$('#answer_list_table').DataTable({
"paging": true,
"lengthChange": true,
"searching": true,
"ordering": true,
"info": true,
"autoWidth": false,
"language": {
"url": "http://cdn.datatables.net/plug-ins/1.10.11/i18n/French.json"
},
"columnDefs": [
{"targets": 1, "searchable": true, "orderable": true},
{"targets": 2, "searchable": true, "orderable": true},
{"targets": 4, "searchable": true, "orderable": true, "className": "text-center"},
],
"order": [[ 0, "desc" ]]
});
$(".delete-answer").confirm({
title: "Êtes vous sûr de supprimer cette candidature ?",
content: "Supprimer cette candidature supprimera le média associé",
type: 'red',
boxWidth: '30%',
useBootstrap: false,
buttons: {
confirm: {
text: 'Confirmer',
action: function () {
console.log(this.$target);
location.href = this.$target.attr('href');
return true;
}
},
cancel: {
text: 'Annuler'
}
}
});
});
</script>
{% endblock %}
@@ -28,11 +28,6 @@
<i class="fa fa-file-video-o" aria-hidden="true"></i> <span>Vidéos Talent</span>
</a>
</li>
<li>
<a href="{{ path('admin_anwser_moderation_list') }}">
<i class="fa fa-file-video-o" aria-hidden="true"></i> <span>Candidatures</span>
</a>
</li>
</ul>
<ul class="sidebar-menu">
<li class="header">ENTITEES</li>
@@ -28,7 +28,6 @@
<i class="fa fa-star color-gold" aria-hidden="true"></i>
</span>
{% endif %}
<br/><i class="fa fa-link"></i>Url :<br /> https://www.talentstube.com{{ path("talent_show",{'alias':user.company.alias})}}<br />
</h3>
<br>
<span><a href="mailto:{{ user.email }}">{{ user.email }}</a></span>
@@ -1,13 +1,13 @@
<div id="modal-tuto" class="modal modal-fixed-footer">
<div id="modal-tuto" class="modal">
<div class="modal-content">
<div class="row">
<div class="col s12">
<h3 class="color-blue1 center-align title-tuto">Les conseils de Talents Tube</h3>
<div class="col-content">
<h3 class="color-blue1 center-align">Les conseils de Talents Tube</h3>
<div class="owl-carousel tuto-carousel">
<div class="item-tuto-webcam carousel-item">
<div class="row">
<div class="col s3 offset-s1 hide-on-med-and-down">
<div class="col s4 offset-s1 hide-on-med-and-down">
<img class="responsive-img" src="{{ asset('img/img_popupcv/cv_video_step_1.svg')}}" alt="">
</div>
<div class="col s11 m11 l6 offset-s1 left-align">
@@ -31,7 +31,7 @@
</div>
<div class="item-tuto-webcam carousel-item">
<div class="row">
<div class="col s3 offset-s1 hide-on-med-and-down">
<div class="col s4 offset-s1 hide-on-med-and-down">
<img class="responsive-img" src="{{ asset('img/img_popupcv/cv_video_step_2.svg')}}" alt="">
</div>
<div class="col s11 m11 l6 offset-s1 left-align">
@@ -51,7 +51,7 @@
</div>
<div class="item-tuto-webcam carousel-item">
<div class="row">
<div class="col s3 offset-s1 hide-on-med-and-down">
<div class="col s4 offset-s1 hide-on-med-and-down">
<img class="responsive-img" src="{{ asset('img/img_popupcv/cv_video_step_3.svg')}}" alt="">
</div>
<div class="col s11 m11 l6 offset-s1 left-align">
@@ -73,15 +73,12 @@
</div>
</div>
</div>
<div class="carousel-fixed-item right">
<a class="text close-tuto">Passer l'intro</a>
<a class="btn btn-default next-slide">suivant</a>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<div id="customDots" class="owl-dots"></div>
<div class="carousel-fixed-item right">
<a class="text close-tuto">Passer l'intro</a>
<a class="btn btn-default next-slide">suivant</a>
</div>
</div>
</div>
@@ -68,11 +68,11 @@
- {{ company.addresses.billing.country|country }}</p>
{% endif %}
</div>
<div class="col s12 profil-links center-align">
<div class="col s12 profil-links">
{% if company.website %}
<a target="_blank" href="{{ company.website }}" class="td-none">
<span class="fa-stack fa-lg">
<i class="fa fa-circle fa-stack-2x"></i>
<i class="fa fa-circle fa-stack-2x z-depth-2"></i>
<i class="fa fa-link fa-stack-1x fa-inverse"></i>
</span>
</a>
@@ -46,9 +46,9 @@
<span class="clearfix"></span>
<div class="keywords">
{% if a.publicTag %}
{% for tag in a.publicTag %}
{% for keyword in a.publicTag %}
<div class="chip">
<a href="{{ path('ad_search_result',{'tag':tag }) }}">{{ tag }}</a>
{{ keyword }}
</div>
{% endfor %}
{% endif %}
@@ -52,9 +52,7 @@
<div class="col s11 col-noPadding" style="position:relative;">
<div class="frame" id="basic">
<ul class="slidee">{% for tag in a.publicTag %}
<li class="chip">
<a href="{{ path('ad_search_result',{'tag':tag }) }}" class="hover-blue2">{{ tag }}</a>
</li>{% endfor %}</ul>
<li class="chip">{{ tag }}</li>{% endfor %}</ul>
</div>
<div class="controls center">
<a class="prev"><i class="fa fa-arrow-circle-left" aria-hidden="true"></i></a>
@@ -76,8 +76,9 @@
</div>
<div class="col s12">
{% for tag in ad.publicTag %}
<p class="chip"><a href="{{ path('ad_search_result',{'tag':tag }) }}" class="hover-blue2">{{ tag }}</a></p>
<p class="chip">{{ tag }}</p>
{% endfor %}
<div class="item-detail-description">
<h3 class="blue-text">Détails de l'offre d'emploi</h3>
<p>{{ ad.description|nl2br }}</p>
@@ -32,22 +32,15 @@
<div class="row row-tags row-noMargin">
<div class="col s11 col-noPadding" style="position:relative;">
<div class="chip center-align">
{% set nbAds = c.getPublishedAds|length %}
{% set fragment = "" %}
{% if nbAds > 0 %}
{% set fragment = "offers" %}
{% endif %}
<a class="td-none color-grey3"
href="{{ path('company_show',{'alias': c.alias, '_fragment': fragment }) }}">
href="{{ path('company_show',{'alias': c.alias, '_fragment':'offers' }) }}">
{% set nbAds = c.getPublishedAds|length %}
{% if nbAds > 1 %}
<strong>{{ c.getPublishedAds|length }} offres d'emploi en
cours</strong>
{% elseif nbAds == 1 %}
{% else %}
<strong>{{ c.getPublishedAds|length }} offre d'emploi en
cours</strong>
{% else %}
<strong>candidature spontanée</strong>
{% endif %}
</a>
</div>
@@ -98,9 +98,9 @@
<div class="container">
<div class="row center-align">
<div class="col s12">
<h2 class="blue-text no-margin-top">Les talents à la une</h2>
<h2 class="blue-text no-margin-top">Les talents</h2>
</div>
<h3 class="subtitles-homepage">Découvrez leur CV vidéo et vidéo de motivation.</h3>
<h3 class="subtitles-homepage">Découvrez leurs CV vidéo et vidéo de motivation.</h3>
</div>
<div class="row">
<div class="owl-carousel owl-carousel-home home-talent-carousel">
@@ -111,12 +111,6 @@
{% endif %}
</div>
</div>
<div class="row center-align">
<h2>Rejoignez une communauté de plus de <strong>500</strong> candidats</h2>
<div class="col s12 m-t-50">
<a href="#!" title="Créer Mon profil" class="btn btn-default btn-round btn-create-account">Créer mon profil</a>
</div>
</div>
</div>
</div>
{# TERRITOIRE #}
@@ -19,13 +19,13 @@
{{ user.firstname }} {{ user.lastname }}
</a>
</p>
{#{% if talent.publicTag %}
{% if talent.publicTag %}
{% for keyword in talent.publicTag %}
{% if keyword != "" %}
<div class="chip">{{ keyword }}</div>
{% endif %}
{% endfor %}
{% endif %}#}
{% endif %}
</div>
{% endif %}
{% endfor %}
@@ -12,12 +12,12 @@
<div class="row">
<div class="col s12">
{% if medias|length == 0 and is_granted('ROLE_TALENT') %}
<div class="col s12 center-align">
<div class="col s12 col-actions center-align">
<br/><br/>
<strong class="color-grey3">Vous ne possédez pas encore de CV vidéo!</strong><br/>
<span class="color-grey2">Cliquez sur le bouton pour ajouter votre première vidéo.</span>
<br/><br/>
<a class="btn btn-default modal-trigger" href="#addVideo">Ajouter une
<a class="waves-effect waves-light btn btn-default modal-trigger" href="#addVideo">Ajouter une
vidéo</a>
</div>
{% else %}
@@ -1,315 +0,0 @@
{% if is_granted('ROLE_COMPANY') %}
{% set extendTemplate='company/base_dashboard_company.html.twig' %}
{% elseif is_granted('ROLE_TERRITORY') %}
{% set extendTemplate='territory/base_dashboard_territory.html.twig' %}
{% else %}
{% set extendTemplate='talent/base_dashboard_talent.html.twig' %}
{% endif %}
{% extends extendTemplate %}
{% block dashContent %}
<div class="row">
<div class="col s12">
{#<a class="waves-effect waves-light btn btn-default modal-trigger left m-r-10" href="#addVideo">Créer une vidéo</a>#}
{% if medias|length > 0 %}
<a class="waves-effect waves-light btn btn-default modal-trigger left" href="#addVideo">Ajouter une vidéo</a>
<a class="btn btn-delete-video btn-round tooltipped red right" href="#!" data-position="top"
data-tooltip="Supprimer des vidéos"><i class="fa fa-trash" aria-hidden="true"></i>
</a>
{% endif %}
</div>
</div>
{% if medias|length == 0 %}
<div class="col s12 col-actions center-align" id="no-video-talents">
<br/><br/>
<strong class="color-grey3">Vous ne possédez pas encore de CV vidéo!</strong><br/>
<span class="color-grey2">Cliquez sur le bouton pour ajouter votre première vidéo.</span>
<br/><br/>
<a class="waves-effect waves-light btn btn-default modal-trigger" href="#addVideo">Ajouter une
vidéo</a>
</div>
{% else %}
{% if app.user.company.presentationVideo %}
{% set media = app.user.company.presentationVideo %}
{% endif %}
<div class="row video_premier z-depth-3">
{% if app.user.company.presentationVideo %}
<div class="col s4 video_col col-card">
<div class="preloader-wrapper small">
<div class="spinner-layer spinner-blue-only">
<div class="circle-clipper left">
<div class="circle"></div>
</div><div class="gap-patch">
<div class="circle"></div>
</div><div class="circle-clipper right">
<div class="circle"></div>
</div>
</div>
</div>
<div class="embed-responsive embed-responsive-16by9">
<iframe src="https://player.vimeo.com{{ media.getCdnUrl()|replace({ "videos": "video"}) }}"
width="100%" height="550" frameborder="0" webkitallowfullscreen
mozallowfullscreen allowfullscreen></iframe>
</div>
<a data-id="{{ media.getCdnUrl()|replace({ "/videos/": ""}) }}" href="#!" class="btn-floating left halfway-fab changeThumbnail"><i class="material-icons">image</i></a>
</div>
{% else %}
<div class="col s12 video_col">
<div class="no-presentation-video">
<strong>
Vous ne disposez pas de vidéo de présentation !
</strong><br/>
Cliquez sur le bouton ci-dessous pour la sélectionner dans votre bibliothèque.
</div>
</div>
{% endif %}
{% if media is defined %}
<div class="col s8 content_col">
<div class="col s12 video_col_content">
<h3>{{ media.title }}</h3>
</div>
<div class="video_col_actions">
<div class="col s6 video_col_link_share">
<a class="btn btn-default modal-trigger" href="#shareCv">Partager le profil
<i class="fa fa-share-alt" aria-hidden="true"></i>
</a>
</div>
<div class="col s6 video_col_edit_premier">
<a class="btn btn-cancel-premier red right" href="#!" data-position="top" data-tooltip="Annuler">
<span>Annuler</span> <i class="fa fa-ban" aria-hidden="true"></i>
</a>
<a class="btn btn-default btn-video-premier right">
<span>Remplacer la vidéo</span>
<i class="fa fa-pencil" aria-hidden="true"></i>
</a>
<div class="clearfix"></div>
</div>
</div>
</div>
{% endif %}
</div>
{% endif %}
<div class="row">
{% for media in medias %}
{% set classVideo = "" %}
{% if app.user.company.presentationVideo %}
{% set idPresentationVideo = app.user.company.presentationVideo.id %}
{% else %}
{% set idPresentationVideo = false %}
{% endif %}
{% if idPresentationVideo != media.id %}
<div class="col s12 m6 l4 col-card">
<div class="card card-video-action z-depth-1">
<div class="card-image">
<div class="preloader-wrapper small">
<div class="spinner-layer spinner-blue-only">
<div class="circle-clipper left">
<div class="circle"></div>
</div><div class="gap-patch">
<div class="circle"></div>
</div><div class="circle-clipper right">
<div class="circle"></div>
</div>
</div>
</div>
<div class="embed-responsive embed-responsive-16by9">
<iframe src="https://player.vimeo.com{{ media.getCdnUrl()|replace({ "videos": "video"}) }}"
width="100%" height="230px" frameborder="0" webkitallowfullscreen
mozallowfullscreen allowfullscreen></iframe>
</div>
<div class="card-fog choice-fog">
<div class="card-fog-container">
<a data-id="{{ media.getId() }}"
class="btn btn-default btn-default-video {{ classVideo }} tooltipped"
data-position="top"
data-tooltip="{{ 'global.video.defaultaction.label'|trans }}">
Choisir cette vidéo
</a>
</div>
</div>
{% set classFog ="" %}
{% set messageTooltipFog ="" %}
{% if media.getAds().toArray() %}
{% set classFog = "fogLight" %}
{% set messageTooltipFog ="Vidéo associée à une annonce" %}
{% endif %}
{% if media.getAnswers().toArray() %}
{% set classFog = "fogLight" %}
{% set messageTooltipFog ="Vidéo associée à une réponse" %}
{% endif %}
<div class="card-fog delete-fog {{ classFog }}">
<div class="card-fog-container">
{% if media.getAds().toArray() or media.getAnswers().toArray() %}
<div class="card-fog-message">
Vous ne pouvez pas supprimer cette vidéo.<br/>
<i data-position="top" data-tooltip="{{ messageTooltipFog }}"
class="fa fa-question-circle tooltipped" aria-hidden="true"></i>
</div>
{% else %}
<a class="btn btn-default halfway-fab waves-effect waves-light red delete_unattached_media tooltipped"
href="{{ path("delete_unattached_media",{"id" : media.getId()}) }}"
data-position="top" data-tooltip="{{ 'media.delete.video.label'|trans }}">Supprimer</a>
{% endif %}
</div>
</div>
<a data-id="{{ media.getCdnUrl()|replace({ "/videos/": ""}) }}" href="#!" class="btn-floating left halfway-fab changeThumbnail"><i class="material-icons">image</i></a>
</div>
<div class="card-content">
<p>
<strong><span data-id="{{ media.id }}" class="titleVideo truncate tooltipped"
data-position="top"
data-tooltip="{{ media.title }}">{{ media.title }}</span></strong>
</p>
</div>
</div>
</div>
{% endif %}
{% endfor %}
</div>
<div id="changeThumbnailVideo" class="modal modal-fixed-footer modal-fixed-header">
<div class="modal-header">
<h3 class="color-blue1">Modifier la vignette</h3>
<span class="right">
<a href="#!" class="modal-close">
<img src="{{ asset('/img/close-modal.svg') }}" >
</a>
</span>
</div>
<div class="modal-content">
<div class="row">
<div class="col s6">
<div class="embed-responsive embed-responsive-16by9">
<div class="col s12">
<div id="video-vimeo"></div>
</div>
</div>
</div>
<div class="col s6">
<p><strong>Lancez la vidéo</strong> , puis <strong>appuyer sur pause</strong> pour définir limage.
<br />Une fois votre vignette définie, cliquez sur le bouton
<strong>Sauvegarder</strong>.</p>
</div>
</div>
</div>
<div class="modal-footer">
<a href="#!" class="modal-action modal-close btn btn-default btn-round captur">Sauvegarder</a>
</div>
</div>
{% set video = null %}
<div id="addVideo" class="modal modal-fixed-footer">
<div class="modal-content">
<div class="row">
{{ form_start(form, {'attr': { 'id': 'form_media' } }) }}
<div class="input-field col s8">
{{ form_rest(form) }}
</div>
<div class="col s4 right-align">
<button id="submit" class="btn btn-default disabled" type="submit">Enregistrer</button>
{% set messageTooltiped = "Votre vidéo ne doit pas dépasser les 500Mo.\n
Les formats de vidéo acceptés sont les suivants : .mp4, .mov, .qt, .mkv, .avi, .m4v, .webm." %}
<i class="fa fa-question-circle tooltipped" data-position="top" data-delay="50"
data-tooltip="{{ messageTooltiped }}" aria-hidden="true"></i>
</div>
{{ form_end(form) }}
<div class="col s12">
{% include 'media/dropzone.html.twig' with {'deleting': 'false'} %}
</div>
</div>
</div>
<div class="modal-footer">
<a href="#!" class="modal-action modal-close btn btn-default btn-round">Fermer</a>
</div>
</div>
<div id="shareCv" class="modal modal-fixed-footer">
<div class="modal-content">
<div class="row">
<h2>Vous souhaitez partager votre profil à d'autres entreprises?</h2>
<h3>Copiez et ajoutez l'adresse ci-dessous lors de vos candidatures</h3>
<input id="linkToCopy" type="text" value="https://www.talentstube.com{{ path("talent_show", {"alias": app.user.company.alias }) }}">
<a class="btn btn-default btn-round" id="copyLink">Copier</a><br />
<a class="modal-action modal-close">Fermer</a>
</div>
</div>
</div>
{% endblock %}
{% block javascripts %}
{{ parent() }}
<script type="text/javascript">
var urlDropzone = '{{ path("upload_media_default", {"id": app.user.id }) }}';
var urlDelete = '';
var idObject = null;
var typeObject = null;
var videoExist = false;
var mediaDefaultUrl = '{{ path("media_default") }}';
var idUser = '{{ app.user.id }}';
var mediaEditTitleUrl = "{{ path('media_edit_title', {'id': 'id_video'})|escape('js') }}";
$(document).ready(function(){
$('.modal').modal();
});
</script>
<script src="{{ asset('/js/mediaListing.js') }}"></script>
<script src="{{ asset('/js/dropzone.js') }}"></script>
<script src="https://player.vimeo.com/api/player.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var options = {
id: null
};
var player = null;
$('.modal-close').on('click',function(){
$('#changeThumbnailVideo').modal('close');
});
$('.changeThumbnail').on('click',function(){
$('#changeThumbnailVideo').modal();
$('#changeThumbnailVideo').modal('open');
var idVideo = $(this).data('id');
options = {
id: idVideo
};
player = new Vimeo.Player('video-vimeo', options);
});
$('.captur').on('click',function(e){
e.preventDefault();
$('a.changeThumbnail').data('id',options.id).parents('.col-card').find('.preloader-wrapper').addClass('active');
player.getCurrentTime().then(function(seconds) {
var data = {'duration': seconds, 'id':options.id};
$.ajax({
url:"{{ path('video_changeThumbnail') }}",
type:"POST",
data: JSON.stringify(data),
success:function(response) {
$('a.changeThumbnail').data('id',options.id).parents('.col-card').each(function( index ) {
var iframe = $( this ).contents().find('iframe');
iframe[0].src = iframe[0].src;
});
},
error:function(error){
console.log(error)
}
});
}).catch(function(error) {
console.log(error);
});
});
$("iframe").on("load", function () {
$('.preloader-wrapper').removeClass('active');
});
});
</script>
{% endblock %}
@@ -38,16 +38,7 @@
<a href="{{ path('talent_answer_create',{id:a.ad.id}) }}">
<i class="fa fa-pencil-square-o" aria-hidden="true"></i>
</a>
{% elseif a.status == "DRAFT" and a.company != null %}
<a href="{{ path('talent_spontaneous_application_create',{id:a.company.id}) }}">
<i class="fa fa-pencil-square-o" aria-hidden="true"></i>
</a>
{% endif %}
{% if a.isViewed %}
{{ 'VIEWED'|trans }}
{% else %}
{{ a.status|trans }}
{% endif %}
{% endif %}{{ a.status|trans }}
</td>
</tr>
{% endfor %}
@@ -82,11 +73,4 @@
var player_vimeo = new Vimeo.Player('player_vimeo');
});
</script>
<script type="text/javascript">
(function ($) {
$(function () {
$('.modal').modal();
});
})(jQuery);
</script>
{% endblock %}
@@ -21,8 +21,27 @@
{% block javascripts %}
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDYV8IJGtIoWLfXJQQvIuDQ88n2aEuRgpg&libraries=places"></script>
{% javascripts
'@vendors'
'@global'
'@talents'
output='assetic/main.dashboard.talent.js' filter='?uglifyjs2' %}
output='assetic/main.dash.talent.js' filter='?uglifyjs2' %}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
<script type="text/javascript">
$.fn.datepicker.languages['fr-FR'] = {
format: 'dd/mm/yyyy',
days: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],
daysShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'],
daysMin: ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa'],
weekStart: 1,
months: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],
monthsShort: ['Jan', 'Fev', 'Mar', 'Avr', 'Mai', 'Jun', 'Jui', 'Aou', 'Sep', 'Oct', 'Nov', 'Dec']
};
$('.datepicker').datepicker({
language: 'fr-FR'
});
$('form[name="talent_profile"]').validate();
</script>
{% endblock %}
@@ -7,26 +7,26 @@
<img src="{{ app.user.webPath | imagine_filter('profile_square') }}"
alt="{{ app.user.firstname }} {{ app.user.lastname|first|upper }}"
class="circle responsive-img"/>
<a data-target="modalProfilePicture" class="modal-trigger" href="#modalProfilePicture">
<a href="#modalProfilePicture">
<i class="fa fa-pencil" aria-hidden="true"></i>
</a>
{% elseif app.user.socialPicture is not null %}
<img src="{{ app.user.socialPicture }}"
alt="{{ app.user.firstname }} {{ app.user.lastname|first|upper }}"
class="circle responsive-img"/>
<a data-target="modalProfilePicture" class="modal-trigger" href="#modalProfilePicture">
<a href="#modalProfilePicture">
<i class="fa fa-pencil" aria-hidden="true"></i>
</a>
{% else %}
<div class="circle-letters font-2">{{ app.user.firstname|first|upper }}{{ app.user.lastname|first|upper }}</div>
<a data-target="modalProfilePicture" class="modal-trigger" href="#modalProfilePicture">
<a href="#modalProfilePicture">
<i class="fa fa-pencil" aria-hidden="true"></i>
</a>
{% endif %}
</div>
<p class="profil-name">
<a href="https://www.talentstube.com{{ path("talent_show", {"alias": app.user.company.alias }) }}"><b>{{ app.user.firstname }} {{ app.user.lastname|upper }}</b></a>
<b>{{ app.user.firstname }} {{ app.user.lastname|upper }}</b>
</p>
{% if company.addresses.billing is defined %}
<p class="profil-city">{{ company.addresses.billing.city }}
@@ -41,7 +41,7 @@
<li>
<a href="{{ path('talent_dashboard') }}">
<i class="fa fa-user"></i>
{{ 'talent.menu.dashboard.label'|trans }}
{{ 'company.menu.dashboard.label'|trans }}
</a>
</li>
<li>
@@ -3,102 +3,13 @@
{% set video = null %}
{% block title %} Profil Talent{% endblock %}
{% macro printTalentRow(form, loop_index, typeform, add) %}
{% set loop_index = loop_index|default(1000) %}
{% set typeform = typeform|default('default') %}
{% set add = add|default('false') %}
<div class="modal modal-fixed-footer {{ "modal-" ~ typeform }} {{ "modal-" ~ typeform ~ "-" ~ (loop_index) }}">
<div class="modal-content">
<div id="modal-header" class="row">
<div class="col s12">
{% if typeform == "career" %}
<h4>Expériences</h4>
{% endif %}
{% if typeform == "formation" %}
<h4>Formations & certifications</h4>
{% endif %}
{% if typeform == "language" %}
<h4>Langues</h4>
{% endif %}
<span class="right">
<a href="#!" class="modal-close">
<img src="{{ asset('/img/close-modal.svg') }}" >
</a>
</span>
</div>
</div>
<div class="row {{ "form-container-" ~ typeform }}">
{% set index = loop_index %}
{% for row in form %}
{% set type = row.vars.block_prefixes.1 %}
{% if type == "choice" %}
{% if row.vars.name == "beginMonth" ~ typeform|capitalize %}
<div class="col s12"><h5 class="required">Dates</h5></div>
<div class="col s6"><span class="undertitle">Début</span></div>
<div class="col s6"><span class="undertitle">Fin</span></div>
{% endif %}
{% if row.vars.name == "skillLanguage" %}
<div class="col s12">
{% else %}
<div class="col s3">
{% endif %}
{% elseif type == "checkbox" %}
{% if typeform == "formation" %}
<div class="col s12">
{% else %}
<div class="col s6">
{% endif %}
{% else %}
<div class="col s12">
{% endif %}
{% if type == "checkbox" %}
<p>
{{ form_widget(row, { 'attr': {'class': 'checkbox-' ~ typeform,'data-index': (index)} }) }}
{{ form_label(row) }}
</p><br />
{% else %}
{% if type != "choice" %}
{% if row.vars.block_prefixes.2 matches '{^(.*)(_tagsComma)$}' %}
<div class="m-t-10 m-b-20">
{{ form_label(row) }}
<br />
<span class="small">{{ 'profile.talent.under.tags'|trans }}</span>
{{ form_widget(row) }}
<span class="xsmall">Insérez une virgule ou appuyez sur ENTRÉE pour séparer vos mots-clés.</span>
<br />
</div>
{% else %}
{{ form_label(row) }}
{% endif %}
{% endif %}
{{ form_widget(row) }}
{% endif %}
</div>
{% endfor %}
</div>
</div>
<div class="modal-footer">
{% if add == 'add' %}
<a class="btn btn-default {{ "cancel-" ~ typeform }} left">Annuler</a>
{% else %}
<a data-type="{{ typeform }}" class="btn btn-default {{ "delete-" ~ typeform }} left">Supprimer</a>
{% endif %}
<a href="#!" data-type="{{ typeform }}" class="btn btn-default {{ typeform ~ "-save-action " }} right">Sauvegarder</a>
</div>
</div>
{% endmacro %}
{% import _self as formMacros %}
{% block dashContent %}
{% include 'default/flash_message.html.twig' %}
{{ render(controller('AppBundle:Talent:profileProgression',{'talent':app.user.company.id})) }}
<div class="bg-bordered row m-b-10 p-20">
<div class="col s12">
<h4>CV Vidéo générique</h4>
<span class="bg-blue-1 text-gradient font-2 fs-20">CV Vidéo générique</span>
<div class="switch d-inblock pull-right">
<label>
Etre visible des recruteurs
@@ -138,145 +49,89 @@
<span><strong><a href="{{ path('talent_media') }}">Choisir depuis votre videothèque</a></strong></span>
</div>
</div>
{#
<div class="row">
<div class="col s6">
<div class="input-field">
{{ form_rest(formMedia) }}
</div>
</div>
<div class="col s6 ">
<button id="submit" class="btn btn-default disabled" type="submit">Enregistrer</button>
</div>
<div class="col s12">
<span><strong><a href="{{ path('talent_media') }}">Choisir depuis votre videothèque</a></strong></span>
</div>
</div>
#}
</div>
{{ form_end(formMedia) }}
{% endif %}
</div>
</div>
{{ form_start(formCompany, {'attr': {'id': 'form_profile_edit','novalidate': 'novalidate'}}) }}
<div class="bg-bordered professional-info row m-b-10 p-20">
{{ form_start(form) }}
<div class="bg-bordered row m-b-10 p-20">
<div class="col s12">
<h4>Information Professionnelles</h4>
<span class="bg-blue-1 text-gradient font-2 fs-20">Information Professionnelles</span>
</div>
<div class="col s12">
{{ form_row(formCompany.titleTalent) }}
{{ form_row(formCompany.situationTalent) }}
<div class="m-t-10 m-b-20">
{{ form_label(formCompany.tagsComma) }}
<br />
<span class="small">{{ 'profile.talent.under.tags'|trans }}</span>
<div class="m-t-10">
{{ form_label(form.company.tagsComma) }}
<i class="fa fa-question-circle-o fs-20 color-blue1 tooltipped" data-position="top"
data-tooltip="Les mots clés permettent la mise en relation des talents et des entreprises. Vous pourrez les changer à tout moment."></i>
{{ form_widget(formCompany.tagsComma) }}
<span class="xsmall">Insérez une virgule ou appuyez sur ENTRÉE pour séparer vos mots-clés.</span>
<br />
{{ form_widget(form.company.tagsComma) }}
</div>
{{ form_row(formCompany.descriptionTalent) }}
{{ form_row(formCompany.website) }}
{{ form_row(formCompany.twitter) }}
{{ form_row(formCompany.linkedin) }}
</div>
<div class="col s12">
<input class="btn btn-default btn-round pull-right m-t-15 m-b-20" type="submit"
value="{{ 'profile.edit.save'|trans }}"/>
{{ form_row(form.company.tagsComma) }}
{{ form_row(form.company.website) }}
{{ form_row(form.company.twitter) }}
{{ form_row(form.company.linkedin) }}
</div>
</div>
{{ form_end(formCompany) }}
{# Espace Experiences professionnelle #}
{{ form_start(formCareer, {'attr': {'id': 'form_profile_career','novalidate': 'novalidate'}}) }}
{% do formCareer.career.setRendered %}
<div class="bg-bordered row m-b-10 p-20">
<div class="col s12">
<h4>Experiences</h4>
<a class="btn btn-default right" id="add_career">Ajouter une experience professionnelle</a>
</div>
<div class="col s12" id="career_container">
{% include 'talent/profile_career.html.twig' with {'carrer': career, 'edit': true} %}
{{ form_errors(formCareer.career) }}
<span class="career-holder" data-prototype="{{ formMacros.printTalentRow(formCareer.career.vars.prototype, (formCareer.career|length + 1), 'career','add')|e('html_attr') }}"></span>
{% for careerField in formCareer.career %}
{{ formMacros.printTalentRow(careerField, (loop.index - 1), 'career') }}
{% endfor %}
</div>
</div>
{{ form_end(formCareer) }}
{{ form_start(formFormation, {'attr': {'id': 'form_profile_formation','novalidate': 'novalidate'}}) }}
{% do formFormation.formation.setRendered %}
{# Espace Formation #}
<div class="bg-bordered row m-b-10 p-20">
<div class="col s12">
<h4>Formations et certifications</h4>
<a class="btn btn-default right" id="add_formation">Ajouter une formation</a>
</div>
<div class="col s12" id="formation_container">
{% include 'talent/profile_formation.html.twig' with {'formation': formation, 'edit': true} %}
{{ form_errors(formFormation.formation) }}
<span class="formation-holder" data-prototype="{{ formMacros.printTalentRow(formFormation.formation.vars.prototype, (formFormation.formation|length + 1), 'formation','add')|e('html_attr') }}"></span>
{% for formationField in formFormation.formation %}
{{ formMacros.printTalentRow(formationField, (loop.index - 1), 'formation') }}
{% endfor %}
</div>
</div>
{{ form_end(formFormation) }}
{{ form_start(formLanguage, {'attr': {'id': 'form_profile_language','novalidate': 'novalidate'}}) }}
{% do formLanguage.language.setRendered %}
<div class="bg-bordered row m-b-10 p-20">
<div class="col s12">
<h4>Langues</h4>
<a class="btn btn-default right" id="add_language">Ajouter une langues</a>
</div>
<div class="col s12" id="language_container">
{% include 'talent/profile_language.html.twig' with {'language': language, 'edit': true} %}
{{ form_errors(formLanguage.language) }}
<span class="language-holder" data-prototype="{{ formMacros.printTalentRow(formLanguage.language.vars.prototype, (formLanguage.language|length + 1 ), 'language','add')|e('html_attr') }}"></span>
{% for languageField in formLanguage.language %}
{{ formMacros.printTalentRow(languageField, (loop.index - 1), 'language') }}
{% endfor %}
</div>
</div>
{{ form_end(formLanguage) }}
{{ form_start(formProfile, {'attr': {'id': 'form_profile_edit2','novalidate': 'novalidate'}}) }}
<div class="bg-bordered personal-info row m-b-10 p-20">
<div class="col s12">
<h4>Information personnelles</h4>
<span class="bg-blue-1 text-gradient font-2 fs-20">Information personnelles</span>
</div>
<div class="col s12">
<div class="p-t-10">
<div class="col s6 p-r-10">
{{ form_row(formProfile.firstname) }}
{{ form_row(form.firstname) }}
</div>
<div class="col s6">
{{ form_row(formProfile.lastname) }}
{{ form_row(form.lastname) }}
</div>
<div class="col s6">
{{ form_row(formProfile.birthday) }}
{{ form_row(form.birthday) }}
</div>
<div class="col s6">
{{ form_row(formProfile.gender) }}
{{ form_row(form.gender) }}
</div>
<div class="col s12">
{{ form_row(formProfile.company.address) }}
{{ form_row(formProfile.company.addressComp) }}
{{ form_row(form.company.address) }}
{{ form_row(form.company.addressComp) }}
</div>
<div class="col s6 p-r-10">
{{ form_row(formProfile.company.city) }}
{{ form_row(form.company.city) }}
</div>
<div class="col s6">
{{ form_row(formProfile.company.zipcode) }}
{{ form_row(form.company.zipcode) }}
</div>
<div class="col s12">
{{ form_row(formProfile.company.country) }}
{{ form_row(form.company.country) }}
</div>
</div>
</div>
<div class="col s12">
<input class="btn btn-default btn-round pull-right m-t-15 m-b-20" type="submit"
value="{{ 'profile.edit.save'|trans }}"/>
</div>
</div>
{{ form_end(formProfile) }}
<div class="row">
<input class="btn btn-default btn-round pull-right m-t-15" type="submit"
value="{{ 'profile.edit.submit'|trans }}"/>
</div>
{{ form_end(form) }}
<div id="liste-offres" class="bg-bordered row m-t-20 m-b-10 p-20">
<div class="col s12">
<h4>Mes dernières offres consultées</h4>
<span class="bg-blue-1 text-gradient font-2 fs-20">Mes dernières offres consultées</span>
</div>
<div class="owl-carousel owl-carousel-ptalent">
{% for historyAd in historyAds %}
@@ -310,8 +165,8 @@
{% endblock %}
{% block javascripts %}
{{ parent() }}
{% if app.user.company.presentationVideo is null %}
<script type="text/javascript">
var urlDropzone = '{{ path("upload_media_presentation") }}';
var urlDelete = '';
@@ -323,14 +178,25 @@
var mediaEditTitleUrl = "{{ path('media_edit_title', {'id': 'id_video'})|escape('js') }}";
</script>
<script src="{{ asset('/js/dropzone.js') }}"></script>
{% endif %}
<script src="{{ asset('/js/profileTalent.js') }}"></script>
<script type="text/javascript">
(function ($) {
$(function () {
$('.modal').modal();
<script>
$(document).ready(function () {
$('.tooltipster').tooltipster({
theme: 'tooltipster-ttube',
side: 'bottom',
});
})(jQuery);
});
</script>
<script>
$('#searchableToggle').change(function () {
var route = '/talent/me/searchable/toggle';
$.ajax({
type: "POST",
url: route,
dataType: "json",
success: function (msg) {
console.log(msg);
}
});
});
</script>
{% endblock %}
@@ -1,44 +0,0 @@
{% for c in career %}
<div class="row row-career">
<div class="col s12">
<span class="titleCompanyCareer">{{c.companyCareer}}</span>
{% if edit is defined %}
<span class="right">
<a class="edit-career" data-index="{{ loop.index - 1 }}">
<i class="fa fa-pencil" aria-hidden="true"></i>
</a>
</span>
{% endif %}
</div>
<div class="col s12">
<span class="titleJobCareer">{{c.jobCareer}}</span>
</div>
<div class="col s12 titleDateCareer">
{% if c.beginMonthCareer is defined %}
{% set fullDate = '2018-' ~ c.beginMonthCareer ~ '-01' %}
{% if c.beginMonthCareer matches '/^\\d+$/' %}
<span>{{ fullDate|datetime }} {{ c.beginYearCareer }}</span>
{% endif %}
{% endif %}
<span>-
{% if c.actualJobCareer is defined and c.actualJobCareer == true %}
Aujourd'hui{% else %} {% set fullDateEnd = '2018-' ~ c.endMonthCareer ~ '-01' %} {% if c.endMonthCareer matches '/^\\d+$/' %}{{ fullDateEnd|datetime }}{% endif %} {{ c.endYearCareer }}{% endif %}, {{ c.placeCareer }}
</span>
</div>
<div class="col s12">
<span class="titleDescriptionCareer">{{c.descriptionCareer|nl2br}}</span>
</div>
<div class="col s12">
<div class="keywords">
{% if c.tagsComma %}
{% for keyword in c.tagsComma|split(',') %}
<div class="chip">
{{ keyword }}
</div>
{% endfor %}
{% endif %}
</div>
<hr />
</div>
</div>
{% endfor %}
@@ -1,29 +0,0 @@
{% for f in formation %}
<div class="row row-formation">
<div class="col s12">
<span class="titleCompanyCareer">{{f.nameFormation}}</span>
{% if edit is defined %}
<span class="right">
<a class="edit-formation" data-index="{{ loop.index - 1 }}">
<i class="fa fa-pencil" aria-hidden="true"></i>
</a>
</span>
{% endif %}
</div>
<div class="col s12 titleDateCareer">
<span>
{% if f.actualJobFormation is defined and f.actualJobFormation == true %}
En cours
{% else %}
{{ f.beginYearFormation }}
{% endif %}
</span>
</div>
<div class="col s12">
<span class="titleDescriptionCareer">{{f.descriptionFormation|nl2br}}</span>
</div>
<div class="col s12">
<hr />
</div>
</div>
{% endfor %}
@@ -1,17 +0,0 @@
{% for l in language %}
<div class="row row-language">
<div class="col s12">
<span class="titleCompanyCareer">{{l.nameLanguage}}</span>
{% if edit is defined %}
<span class="right">
<a class="edit-language" data-index="{{ loop.index - 1 }}">
<i class="fa fa-pencil" aria-hidden="true"></i>
</a>
</span>
{% endif %}
</div>
<div class="col s12">
<span class="titleJobCareer">{{ l.skillLanguage|trans }}</span>
</div>
</div>
{% endfor %}
@@ -35,6 +35,32 @@
{{ company.addresses.billing.country|country }}</p>
{% endif %}
</div>
<div class="col s12 profil-links">
{% if talent.extra.linkedin %}
<a target="_blank" href="{{ talent.extra.linkedin }}" class="td-none">
<span class="fa-stack fa-lg">
<i class="fa fa-circle fa-stack-2x z-depth-2"></i>
<i class="fa fa-linkedin fa-stack-1x fa-inverse"></i>
</span>
</a>
{% endif %}
{% if talent.extra.twitter %}
<a target="_blank" href="{{ talent.extra.twitter }}" class="td-none">
<span class="fa-stack fa-lg">
<i class="fa fa-circle fa-stack-2x z-depth-2"></i>
<i class="fa fa-twitter fa-stack-1x fa-inverse"></i>
</span>
</a>
{% endif %}
{% if talent.website %}
<a target="_blank" href="{{ talent.website }}" class="td-none">
<span class="fa-stack fa-lg">
<i class="fa fa-circle fa-stack-2x z-depth-2"></i>
<i class="fa fa-link fa-stack-1x fa-inverse"></i>
</span>
</a>
{% endif %}
</div>
<div class="col s12 center-align">
<div class="divider"></div>
<br/>
@@ -53,64 +79,17 @@
{% endif %}
</div>
</div>
<div class="row bg-bordered talent-profile">
<div class="col s8">
<h3 class="no-margin-top">{{ user.company.extra.titleTalent }}</h3>
<span>{{ user.company.extra.situationTalent|trans }}</span>
</div>
<div class="col s4 talent-border-left">
<h3 class="no-margin-top talent-profile-title">DÉCOUVRIR SON PROFIL</h3>
<div class="profil-links">
{% if talent.extra.linkedin %}
<a target="_blank" href="{{ talent.extra.linkedin }}" >
<i class="fa fa-linkedin fa-inverse"></i>
</a>
{% endif %}
{% if talent.extra.twitter %}
<a target="_blank" href="{{ talent.extra.twitter }}" >
<i class="fa fa-twitter fa-inverse"></i>
</a>
{% endif %}
{% if talent.website %}
<a target="_blank" href="{{ talent.website }}" >
<i class="fa fa-globe-africa fa-inverse"></i>
</a>
{% endif %}
</div>
</div>
<div class="col s12 talent-border-top">
{% for tag in talent.publicTag if talent.publicTag[0] is not empty %}
<div class="chip {% if loop.index > 5 %}chip-invisible{% endif %}">{{ tag }}</div>
<div class="row bg-bordered">
<div class="col s12">
<h3 class="blue-text no-margin-top">
Le Cv vidéo de
{{ user.firstname }}
{{ user.lastname }}</h3>
{% for tag in talent.publicTag %}
<div class="chip">{{ tag }}</div>
{% endfor %}
{% if talent.publicTag|length > 5 %}
<div class="chip chip-more">+ {{ talent.publicTag|length - 5 }}</div>
{% endif %}
</div>
</div>
{% if user.company.extra.descriptionTalent %}
<div class="row bg-bordered">
<div class="col s12">
<h3 class="blue-text no-margin-top">{{ user.firstname }} {% trans %}en quelques mots{% endtrans %}</h3>
</div>
<div class="col s12">
<p>
{{ user.company.extra.descriptionTalent|raw|nl2br }}
</p>
</div>
</div>
{% endif %}
{% if user.career %}
<div class="row bg-bordered">
<div class="col s12">
<h3 class="blue-text no-margin-top">Expériences</h3>
</div>
<div class="col s12">
<div class="col s12" id="career_container">
{% include 'talent/profile_career.html.twig' with {'career': user.career } %}
</div>
</div>
</div>
{% endif %}
<div class="row bg-bordered">
<div class="col s12 header-recommendations">
<h3 class="blue-text no-margin-top">{% trans %}label.recommendations{% endtrans %}</h3>
@@ -150,30 +129,6 @@
</div>
{% endif %}
</div>
{% if user.formation %}
<div class="row bg-bordered">
<div class="col s12">
<h3 class="blue-text no-margin-top">Formations & Certifications </h3>
</div>
<div class="col s12">
<div class="col s12" id="formation_container">
{% include 'talent/profile_formation.html.twig' with {'formation': user.formation } %}
</div>
</div>
</div>
{% endif %}
{% if user.language %}
<div class="row bg-bordered">
<div class="col s12">
<h3 class="blue-text no-margin-top">Langues </h3>
</div>
<div class="col s12">
<div class="col s12" id="formation_container">
{% include 'talent/profile_language.html.twig' with {'language': user.language } %}
</div>
</div>
</div>
{% endif %}
</div>
</div>
</div>
@@ -240,11 +195,6 @@
});
$('#modal-recommendation').modal('open');
}
$(".chip-more").on('click',function(){
$(this).fadeOut();
$(".chip-invisible").css('display','inline-block');
});
});
</script>
{% endblock %}
@@ -65,21 +65,18 @@
<div class="col s11 col-noPadding" style="position:relative;">
<div class="chip center-align">
<p class="m-0">
{% set nbAds = 0 %}
{% set fragment = "companies" %}
{% for territoryAd in c.getTerritoryAds if territoryAd.ad != null %}
{% set nbAds = nbAds + 1 %}
{% set fragment = "offers" %}
{% endfor %}
<a class="td-none color-grey3"
href="{{ path('territory_show',{'alias': c.alias, '_fragment': fragment }) }}">
href="{{ path('territory_show',{'alias': c.alias, '_fragment':'offers' }) }}">
{% set nbAds = 0 %}
{% for territoryAd in c.getTerritoryAds if territoryAd.ad != null %}
{% set nbAds = nbAds + 1 %}
{% endfor %}
{% if nbAds > 1 %}
<strong>{{ nbAds }} {{ 'message.territory.list.ads'|trans }}</strong>
{% elseif nbAds == 1 %}
<strong>{{ nbAds }} {{ 'message.territory.list.ad'|trans }}</strong>
<strong>{{ nbAds }} offres d'emploi en
cours sur ce territoire</strong>
{% else %}
<strong>{{ 'message.territory.list.noads'|trans }}</strong>
<strong>{{ nbAds }} offre d'emploi en
cours sur ce territoire</strong>
{% endif %}
</a>
</p>
@@ -71,11 +71,11 @@
- {{ company.addresses.billing.country|country }}</p>
{% endif %}
</div>
<div class="col s12 profil-links center-align">
<div class="col s12 profil-links">
{% if company.website %}
<a target="_blank" href="{{ company.website }}" class="td-none">
<span class="fa-stack fa-lg">
<i class="fa fa-circle fa-stack-2x"></i>
<i class="fa fa-circle fa-stack-2x z-depth-2"></i>
<i class="fa fa-link fa-stack-1x fa-inverse"></i>
</span>
</a>
@@ -32,16 +32,8 @@ assetic:
- 'js/vendors/jquery.daterangepicker.min.js'
talents:
inputs:
- 'js/vendors/jquery-3.1.1.min.js'
- 'js/vendors/dropzone.js'
- 'js/vendors/materialize.min.js'
- 'js/vendors/materialize-tags.min.js'
- 'js/vendors/typeahead.js'
- 'js/vendors/jquery-confirm.min.js'
- 'js/vendors/tooltipster.bundle.min.js'
- 'js/vendors/datepicker.min.js'
- 'js/vendors/jquery.validate.min.js'
- 'js/talent.js'
admin:
inputs:
- 'admin/AdminLTE/plugins/jQuery/jquery-2.2.3.min.js'
+25 -1
View File
@@ -227,4 +227,28 @@ monolog:
level: debug
type: rotating_file
max_files: 15
path: '%kernel.logs_dir%/%kernel.environment%_debug.log'
path: '%kernel.logs_dir%/%kernel.environment%_debug.log'
#Api
fos_rest:
zone:
- { path: ^/api/* }
body_converter:
enabled: true
view:
formats: { json: true, xml: false, rss: false }
view_response_listener: true
mime_types:
json: ['application/json', 'application/json;version=1.0', 'application/json;version=2.0']
serializer:
serialize_null: true
format_listener:
rules:
- { path: '^/api/', priorities: ['json'], fallback_format: 'json' }
param_fetcher_listener: true
lexik_jwt_authentication:
secret_key: '%kernel.root_dir%/../app/config/jwt/private.pem' # required for token creation
public_key: '%kernel.root_dir%/../app/config/jwt/public.pem' # required for token verification
pass_phrase: 'talentstubeforever' # required for token creation, usage of an environment variable is recommended
token_ttl: 3600
@@ -2,18 +2,6 @@ fos_elastica:
clients:
default: { host: %elastic_host%, port: %elastic_port% }
indexes:
tags:
types:
tagsfr:
mappings:
publicTag:
analyzer: keyword
type: text
persistence:
driver: orm
model: AppBundle\Entity\Ad
provider: ~
finder: ~
ads:
settings:
index:
@@ -0,0 +1,54 @@
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-256-CBC,1B8B1CB3A64B49F820DD713907974037
0/ahxIYlJ0RiiOqRz78LbR7g+UvBC8r4RrMWFCIOuh/FPbTYyIc0VxRMObrTqvHv
B4oUMnTzHzkOimvLWncZSIA39TL2OuQMTT7g/Cp8uh7Exnf29js7Ywv8EAQA2trw
EsLXjH5St3vLhWLQdxVUBY6tWc5yuqTJ3ze9rFojiJ0mbIoeid7L8sI4mQAocfX2
2/aMWwhQX83AJaRC7liU18nZAP4gAxYjvLAaC6zj7M3wxPv1r3Ox2PuSUfYZFkYA
HbVYq6pi/Dw32CmCniufccSr2wd0f78fZdI/E20tdAviLN6awqrjM2aFgzqZ6zw/
UCD3L1hLfGxRk6uYAFgEiFQB7dT4ZzqjopKNsVuho+DTc55kmx8iPD3xXuTMbeUY
SgiV4KcGCbHRt1HGWWbJgyOkSaPQQQk5Bf63glS4nLVNqzIqzJmpVCKuwOpKCSnK
DTeWpw9MIHLHM4SD2OM8Hh8S8l6v+Y4ash6mEtUNh6a7N+TQ1vEn/wyt8wyM7/Fh
UY/97loUyu0HC2Ox89sP1y6VcNaRQlhNj9hZzLC/q5K+Z4zAQRnGPuTowZL7ztxZ
BD+MTnNZc+Akrti+3c1vAHxzuUoBd7h8NX2pnNNUY2Wme9JqfZnCx9fV4AwVOvx6
8mvTQL5YHOv8HpsGnDoOak1r+QzHM8IrL8SSrJ/DBXMIWmFefhcIDgrXZG8LV+ck
RlSuP5Lsyy3e8AQ6hrM06DXkhjGi7gCeHIHySbzw0AiFERQz0d7XgU75DL/ALPqh
0lyqlXdrx/+qqTc0wwjYIerNLNdVqN9kvLg+aqFSwZrfiZyEy6rYdUoqYXoInwle
QBt2uqcjVUhMwdQYaDWiqHidSpIMP5nuTKDm6Z8J/SLf4iy+It1qXUEcoRKhDavm
fy+dw3JvthpoNjP3Bq+moygP8J8msS5Ti3UgVug21Fsp89fmvUO8FO2JRXLXP8+U
3HG1Ij/KKk1dxC6PT7qu9gVeoKM+W8maCVV/O84Qx/N3aXY+sHm1HsSssg0cLEC7
zaEai16xhVGI8aagYwxBHVkVVXk/CBS7zq1JYBnZOIw56d1NTjvJ3YmTx619Hyek
PJuMNjGV4mM0jONzHJbI6deE2B+f1/ej1JwoeGyBhynrZjwtTCd3JAtwRK9WO1fq
owdoCAnDOV7yDcwfFEYaNV2ie/R/kQo/fIIanykQs59Op2M0yhLvmch+C3RghLVg
qfR3Jngbqjwz/uh5ZQShZtHFirdAyer/eLD0CteDt4TrAiQxiHqrEOdqwF/G/STq
+3SSkChf6uhqUUqfmJFwxaF6AiNTkdk0YyxucWY2JXYf3qyz7ADGnI/KZZ+1LchF
2bLUKjyjnFKQoaFtDd7qMGxrTD80egN/fFV4Nybt+DTsGjdUjvCFS69j+YvZ0vIP
8rZHK7etISTfiauP9SrIR9UKpNA8fGrUgJGOMo/5Wkz4YS6LmMceQkpDxj46p8Ia
Iv+pOKez6NsckP1OiDfTxLtXL1S3xQHP3V0dYI5UcWt8Bczi2VylZCcS8JiV8Cqy
+EYRaIB9Qi1X5uLQsbiyS70rJp9mJ3xUR2dIzD70njCIDtLPA2b9dXqXm1IyqdkB
46W0MOnyI699XgiywvPovwhzTH8uO5Xn5gnjEgD92pHdJ2iTVQDTC9qtKhODrhbC
ouOCbS/LPAnQMwlLD1rWAeJcBJ3PL1KdAlaxWq3Jd/iMhDh/hSboS88Lm88RYtBh
3DhMCyxY1gu6jyzuWN2pHKzCvZ1Aqqm1SMS/8nAPe/KtPJO7zTRQJIrrfPK1pt2B
u5tu1zupVKihoRkLZtV4FUwDBo8DE9V65b/LAJZtuId77ci7aWRoD5b1Lc9X9iyH
cFJTQbMxzA76/8F9/Y1h8D9mdP+N9Tfw6iOvRxszqciGAsUasqo4Xm3ZOQqCcOo5
djoywGnzqsfxrV733i2KHRqz7XUkLf8n6URloH2i1tSbHWl7fmYAC0N85IUs1PxQ
DB0LUtQgS03gjE4pRJSlgf8JX/0KrG8sYpcvz9R5CqMKrkM6rDy6ehe4P5xVQ+3m
WNCZFfGjCTcuEVLFDNx8CdF8qIV/BCcUSty7KXXoC3AMOAsVlZSwskmKN61GJmBS
Sz1bDwZO6QCZgXR2fH0UMEnCkpksS4xf3f0oq5/WzWzC4ZaDHnwt5NqKE8XXeYpn
isulqUFmCK2VhkqRX1rwND8E45yDG8+U5lyJSHp4y8Fe+AEQjxXUxXDefc80s09i
LMXM7iNUtESFge3BZvocdRrqvp21tkPElzaDoW0nMb0VoNI4Xfe113vBeBdEq0Hr
yuGvM8ZgvKjzl1T4h9PTaBu97kR1QjBSiY0PeEeSMtq/W1XbFO5jU4g/utVRluBm
z64kldtRW1RC8vosrN4sNbdVDAvL43Dynl0wYMI+jgIN3HP2QnOTDH1MLQ5BJZg4
aZFSMZ70e9kF2HXpFnfp+SsuT0lMhzZrSrLvKg0pkuD8jc7FtP/HoLcay2doBufd
fS4VheiaGm7om9Ggmkowld1CUpuzfyi7NDcymWH6J37Ypcvprn1Ts9iBcBDaOsbZ
T3pP0mU4glmRPFRq2IRZXOgTQFXIJKYFpnt0LCC2IuzbQLTKy0LVr6Ksc6ZD21j5
AR/xblSp8dZDS4ltrN44r+rtcio7dN9KlDctURpoqdw8oatwpk5QLFfYeMKPRn6j
yQA4tatWlTxr/UR8Xy8JNcJfg7JQIYjdf36atxpv5xYvnkf6Gs56xVnRthwNYawn
h44emyq/Tuflc9FZqptUDwEPKzLvH0NWxVkNvGG92H0OtES3q9OpGPTnqhIPUTme
Jrbu7knwD5sdzYRh64BhbXem8glPStYnW7B0dSdvyvGpArF1W2cKKURgnr7XokrB
DqbeSpdRf7fE5bw9jHJgcpUJOZ3o6kGA3l309Cdcbigm7gnK0KiY0y/P8MSWEu00
C4WZOFLxuaO1iVav+spACFbFkdVmLoRBPE2hFUc6BA3E/7qNHAjlVYXbUrIR3NA+
iioXf1XFM7K0LG02mMKEFSuWIpZacDyAfjHUlrid7cFBBXLk/EWcwNyGSlRdQl7w
rn7V+QfAdTxmk2FAyO80odbrdZQaBR6oLZaFgz/MzkT6dLJXwCjKG/qJrwwV/2sv
-----END RSA PRIVATE KEY-----
@@ -0,0 +1,14 @@
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0emZKHHTXLKphYp1XLeh
YApXdcWoZenqaFeE9pa3yzP888bsvka7t41JZy7+LOACkjnZj8VQNhMl/JIwtuv8
L276Tox94l1CeLSDvH0vxGAvCyZzpW4pgx2xAJk1xWndkEWcx/6A7/kgdePOFNJt
41JdDsefqRMlsMjw5vCxxX4V1mlebi6owKkxVBXii476xheX1M2k3cfVbC95h++h
Yd7h10DwA17SPbmIDN07QygKqRH7RGkEU5gK2Psc+NFstmYaYj4ew1NF4X9e2Erj
5M3RnYoUfkQBaigv+GSjefL6zdp+yZwjrPtZo+YDC/M1SQLEPAsoxQZvOISrLtkH
usqdvLB8rsVysZOipJyO3OClI+Vvqy9p4CggM3rHlpzMu+e+sgpZersaNxDEz/rX
J/rMXpPTfkVSRMddkQ/s0e0w4oop/tr2Zi4fYfmaJ2Ha49PFBPT7buZeyabLyAOk
utwRBkaGiUGmfVidlb0TMK2fQQOS5WottAJJOhEDzl7woCtCBgCeclsuM6v/EDd/
9KCeMcWrx7/PHBH2I8RGSfoqTKrZ8plOOPccaY2G6zZjvceExyBjewlzOm5zXI7Z
c/L5H9mghOdLjEJ+eRLZIYL9yw1LSDjY3Q0ENkxdvkMdVnZxmsf+UFMFdxBU3VjB
hqeH8T9lC2ZWC8OJ5kA4y4ECAwEAAQ==
-----END PUBLIC KEY-----
@@ -24,4 +24,4 @@ parameters:
media_photo_dir: '%kernel.root_dir%/../web/uploads/photos/'
elastic_host: tt-website.elasticsearch.dev
elastic_port: 9200
delivery_addresses: thomas@e-declic.com
delivery_addresses: maxime.thevenot@e-declic.com
@@ -38,4 +38,6 @@ parameters:
# Elastic
elastic_host: tt.search_db
elastic_port: 9200
elastic_port: 9200
delivery_addresses: maxime.thevenot@e-declic.com
@@ -22,4 +22,7 @@ hwi_oauth_redirect:
prefix: /login
fairlane_cookie_consent:
resource: "@FairlaneCookieConsentBundle/Resources/config/routing.yml"
resource: "@FairlaneCookieConsentBundle/Resources/config/routing.yml"
api_login_check:
path: /api/login_check
+26 -1
View File
@@ -5,12 +5,31 @@ security:
fos_userbundle:
#id: fos_user.user_provider.username_email
id: app.user_provider
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
api_login:
pattern: ^/api/login_check
stateless: true
anonymous: true
provider: fos_userbundle
json_login:
check_path: /api/login_check
success_handler: lexik_jwt_authentication.handler.authentication_success
failure_handler: lexik_jwt_authentication.handler.authentication_failure
api:
pattern: ^/api
stateless: true
anonymous: true
provider: fos_userbundle
guard:
authenticators:
- lexik_jwt_authentication.jwt_token_authenticator
main:
pattern: ^/
remember_me:
@@ -33,6 +52,8 @@ security:
anonymous: true
switch_user:
provider: fos_userbundle
access_control:
- { path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, roles: IS_AUTHENTICATED_ANONYMOUSLY }
@@ -44,6 +65,10 @@ security:
- { path: ^/talent/recherche/, roles: ROLE_COMPANY }
- { path: ^/entreprise/me/, roles: ROLE_COMPANY }
- { path: ^/territoire/me/, roles: ROLE_TERRITORY }
- { path: ^/api/login_check, roles: IS_AUTHENTICATED_ANONYMOUSLY}
- { path: ^/api/login_check_oauth, roles: IS_AUTHENTICATED_ANONYMOUSLY}
- { path: ^/api, roles: IS_AUTHENTICATED_FULLY, methods: [POST, PUT, DELETE, PATCH] }
- { path: ^/api, roles: IS_AUTHENTICATED_ANONYMOUSLY, methods: [GET]}
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt
@@ -19,10 +19,6 @@ services:
class: AppBundle\Utils\Services\AdSearcher
arguments: ['@fos_elastica.finder.ads.adfr']
app.ad_tags_searcher:
class: AppBundle\Utils\Services\AdSearcher
arguments: ['@fos_elastica.finder.tags.tagsfr']
# Twig Extensions
twig.country_extension:
class: AppBundle\Twig\CountryExtension
@@ -83,3 +79,6 @@ services:
app.user_provider:
class: AppBundle\Security\Core\User\FOSUBUserProvider
arguments: ["@fos_user.user_manager","@doctrine.orm.entity_manager","@mt.slug","@service_container", { facebook: facebookId, linkedin: linkedinId}]
app.api_key_authenticator:
class: AppBundle\Security\ApiKeyAuthenticator
+9 -4
View File
@@ -23,8 +23,8 @@
},
"require": {
"php": ">=5.5.9",
"symfony/symfony": "3.2.*",
"doctrine/orm": "2.6.*@dev",
"symfony/symfony": "3.4.*",
"doctrine/orm": "^2.6.2",
"doctrine/doctrine-bundle": "^1.6",
"doctrine/doctrine-cache-bundle": "^1.2",
"symfony/swiftmailer-bundle": "^2.3.10",
@@ -37,7 +37,6 @@
"friendsofsymfony/user-bundle": "~2.0",
"doctrine/mongodb-odm-bundle": "^3.0",
"doctrine/mongodb-odm": "^1.0",
"alcaeus/mongo-php-adapter": "^1.0",
"dunglas/doctrine-json-odm": "dev-master",
"php-ffmpeg/php-ffmpeg": "^0.5",
"requestlab/vimeo-bundle": "^0.0.3",
@@ -52,7 +51,13 @@
"friendsofsymfony/elastica-bundle": "4.1.*",
"liip/imagine-bundle": "^1.9",
"twig/extensions": "^1.5",
"fairlane/cookie-consent-bundle": "^1.0"
"fairlane/cookie-consent-bundle": "^1.0",
"jms/serializer-bundle": "^2.4",
"friendsofsymfony/rest-bundle": "^2.4",
"symfony/twig-bundle": "^4.1",
"white-october/pagerfanta-bundle": "^1.2",
"willdurand/hateoas-bundle": "^1.4",
"lexik/jwt-authentication-bundle": "^2.5"
},
"require-dev": {
"sensio/generator-bundle": "^3.0",
+1946 -349
View File
File diff suppressed because it is too large Load Diff
@@ -298,6 +298,7 @@ class AdController extends Controller
if ($form->isSubmitted() && $form->isValid()) {
$data = $form->getData();
if (is_null($data['job'])) {
//return $this->redirectToRoute('homepage');
$session->remove('jobSearch');
unset($data['job']);
} else {
@@ -329,13 +330,8 @@ class AdController extends Controller
]);
} else {
if($request->get('tag')){
$data['tag'] = $request->get('tag');
$adSearcher = $this->get('app.ad_tags_searcher');
$ads = $adSearcher->process($data,'tag');
} else {
$ads = $this->getPublishedAds($promoted);
}
$ads = $this->getPublishedAds($promoted);
}
return $this->render('default/ad_search_result.html.twig', [
@@ -1,68 +0,0 @@
<?php
namespace AppBundle\Controller\Admin;
use AppBundle\Entity\Answer;
use AppBundle\Entity\Ad;
use AppBundle\Form\Admin\AdType;
use AppBundle\Form\Admin\ModerationDeclineType;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\JsonResponse;
class AnswerController extends Controller
{
/***********************
* MODERATION
***********************/
/**
* @Route("/admin/moderation/anwser/list", name="admin_anwser_moderation_list")
*/
public function adminAnswerModerationListAction()
{
$em = $this->getDoctrine()->getManager();
$answers = $em->getRepository('AppBundle:Answer')->findAll();
return $this->render('admin/answer_list_moderation.html.twig', array(
'answers' => $answers,
));
}
/**
* @Route("/admin/config/answer/{id}/status/{status}", name="admin_answer_status")
*/
public function adminStatusAnswerAction(Answer $answer, $status)
{
$em = $this->getDoctrine()->getManager();
$answer->setStatus($status);
$em->persist($answer);
$em->flush();
$result = array("msg" => "toggle ok");
return new JsonResponse($result);
}
/**
* @Route("/admin/config/answer/{id}/delete", name="admin_answer_delete")
*/
public function adminAnswerDeleteAction(Answer $answer)
{
$em = $this->getDoctrine()->getManager();
$t = $em->getRepository('AppBundle:User')->findByRole('ROLE_TALENT');
$media = $answer->getVideo();
$answer->setVideo(null);
$em->remove($answer);
$mediaManager = $this->get('media_manager');
if($media){
$mediaManager->delete($media);
$em->remove($media);
}
$em->flush();
return $this->redirectToRoute('admin_anwser_moderation_list');
}
}
@@ -0,0 +1,86 @@
<?php
namespace AppBundle\Controller\Api;
use AppBundle\Entity\Ad;
use AppBundle\Representation\Ads;
use AppBundle\Representation\SingleAd;
use FOS\RestBundle\Controller\Annotations as Rest;
use FOS\RestBundle\Controller\Annotations\Get;
use FOS\RestBundle\Controller\Annotations\Post;
use FOS\RestBundle\Controller\Annotations\View;
use FOS\RestBundle\Controller\FOSRestController;
use FOS\RestBundle\Request\ParamFetcherInterface;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
class AdController extends FOSRestController
{
/**
* @Rest\Get(path="/api/ads/{id}", name="api_ad_show", requirements={"id"="\d+"})
* @Rest\View
*
*/
public function showAction(Ad $ad)
{
// return $ad;
return new SingleAd($ad);
}
/**
* @Rest\Get("/api/ads", name="api_ad_list")
* @Rest\QueryParam(
* name="keyword",
* requirements="[a-zA-Z0-9]",
* nullable=true,
* description="The keyword to search for."
* )
* @Rest\QueryParam(
* name="order",
* requirements="asc|desc",
* default="asc",
* description="Sort order (asc or desc)"
* )
* @Rest\QueryParam(
* name="limit",
* requirements="\d+",
* default="15",
* description="Max number of ads per page."
* )
* @Rest\QueryParam(
* name="offset",
* requirements="\d+",
* default="1",
* description="The pagination offset"
* )
* @Rest\View(StatusCode = 200)
*/
public function listAction(ParamFetcherInterface $paramFetcher)
{
$pager = $this->getDoctrine()->getRepository('AppBundle:Ad')->search(
$paramFetcher->get('keyword'),
$paramFetcher->get('order'),
$paramFetcher->get('limit'),
$paramFetcher->get('offset')
);
return new Ads($pager);
}
/**
* @Rest\Post("/api/ads", name="api_ad_create")
* @Rest\View(StatusCode = 201)
* @ParamConverter("ad", converter="fos_rest.request_body")
*/
public function createAction(Ad $ad)
{
$em = $this->getDoctrine()->getManager();
$em->persist($ad);
$em->flush();
return $this->view(
new SingleAd($ad),
Response::HTTP_CREATED,
['Location' => $this->generateUrl('api_ad_show', ['id' => $ad->getId(), UrlGeneratorInterface::ABSOLUTE_URL])]);
}
}
@@ -0,0 +1,79 @@
<?php
namespace AppBundle\Controller\Api;
use AppBundle\Entity\Answer;
use AppBundle\Representation\Answers;
use AppBundle\Representation\SingleAnswer;
use FOS\RestBundle\Controller\Annotations as Rest;
use FOS\RestBundle\Controller\Annotations\Get;
use FOS\RestBundle\Controller\Annotations\Post;
use FOS\RestBundle\Controller\Annotations\View;
use FOS\RestBundle\Controller\FOSRestController;
use FOS\RestBundle\Request\ParamFetcherInterface;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
class AnswerController extends FOSRestController
{
/**
* @Rest\Get(path="/api/answers/{id}", name="api_answer_show", requirements={"id"="\d+"})
* @Rest\View
*
*/
public function showAction(Answer $answer)
{
// return $answer;
return new SingleAnswer($answer);
}
/**
* @Rest\Get("/api/answers", name="api_answer_list")
* @Rest\QueryParam(
* name="order",
* requirements="asc|desc",
* default="asc",
* description="Sort order (asc or desc)"
* )
* @Rest\QueryParam(
* name="limit",
* requirements="\d+",
* default="15",
* description="Max number of answers per page."
* )
* @Rest\QueryParam(
* name="offset",
* requirements="\d+",
* default="1",
* description="The pagination offset"
* )
* @Rest\View(StatusCode = 200)
*/
public function listAction(ParamFetcherInterface $paramFetcher)
{
$pager = $this->getDoctrine()->getRepository('AppBundle:Answer')->search(
$paramFetcher->get('order'),
$paramFetcher->get('limit'),
$paramFetcher->get('offset')
);
return new Answers($pager);
}
/**
* @Rest\Post("/api/answers", name="api_answer_create")
* @Rest\View(StatusCode = 201)
* @ParamConverter("answer", converter="fos_rest.request_body")
*/
public function createAction(Answer $answer)
{
$em = $this->getDoctrine()->getManager();
$em->persist($answer);
$em->flush();
return $this->view(
new SingleAnswer($answer),
Response::HTTP_CREATED,
['Location' => $this->generateUrl('api_answer_show', ['id' => $answer->getId(), UrlGeneratorInterface::ABSOLUTE_URL])]);
}
}
@@ -0,0 +1,79 @@
<?php
namespace AppBundle\Controller\Api;
use AppBundle\Entity\Company;
use AppBundle\Representation\Companys;
use AppBundle\Representation\SingleCompany;
use FOS\RestBundle\Controller\Annotations as Rest;
use FOS\RestBundle\Controller\Annotations\Get;
use FOS\RestBundle\Controller\Annotations\Post;
use FOS\RestBundle\Controller\Annotations\View;
use FOS\RestBundle\Controller\FOSRestController;
use FOS\RestBundle\Request\ParamFetcherInterface;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
class CompanyController extends FOSRestController
{
/**
* @Rest\Get(path="/api/companies/{id}", name="api_company_show", requirements={"id"="\d+"})
* @Rest\View
*
*/
public function showAction(Company $company)
{
// return $company;
return new SingleCompany($company);
}
/**
* @Rest\Get("/api/companies", name="api_company_list")
* @Rest\QueryParam(
* name="order",
* requirements="asc|desc",
* default="asc",
* description="Sort order (asc or desc)"
* )
* @Rest\QueryParam(
* name="limit",
* requirements="\d+",
* default="15",
* description="Max number of companys per page."
* )
* @Rest\QueryParam(
* name="offset",
* requirements="\d+",
* default="1",
* description="The pagination offset"
* )
* @Rest\View(StatusCode = 200)
*/
public function listAction(ParamFetcherInterface $paramFetcher)
{
$pager = $this->getDoctrine()->getRepository('AppBundle:Company')->search(
$paramFetcher->get('order'),
$paramFetcher->get('limit'),
$paramFetcher->get('offset')
);
return new Companys($pager);
}
/**
* @Rest\Post("/api/companies", name="api_company_create")
* @Rest\View(StatusCode = 201)
* @ParamConverter("company", converter="fos_rest.request_body")
*/
public function createAction(Company $company)
{
$em = $this->getDoctrine()->getManager();
$em->persist($company);
$em->flush();
return $this->view(
new SingleCompany($company),
Response::HTTP_CREATED,
['Location' => $this->generateUrl('api_company_show', ['id' => $company->getId(), UrlGeneratorInterface::ABSOLUTE_URL])]);
}
}
@@ -0,0 +1,33 @@
<?php
namespace AppBundle\Controller\Api;
use FOS\RestBundle\Controller\Annotations as Rest;
use FOS\RestBundle\Controller\Annotations\Post;
use FOS\RestBundle\Controller\Annotations\View;
use FOS\RestBundle\Controller\FOSRestController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
class SecurityController extends FOSRestController
{
/**
* @Rest\Post(path="/api/login_check_oauth", name="api_oauth_login")
* @Rest\View
*/
public function OAuthLoginAction(Request $request)
{
$jwtManager = $this->container->get('lexik_jwt_authentication.jwt_manager');
$token = $request->request->get('oauth-token');
$type = $request->request->get('oauth-type');
if ($type == "facebook") {
$em = $this->getDoctrine()->getManager();
$user = $em->getRepository('AppBundle:User')->findOneByFacebookId($token);
}
return new JsonResponse(['token' => $jwtManager->create($user)]);
}
}
@@ -18,7 +18,7 @@ class DefaultController extends Controller
if (!$ads) {
$ads = $em->getRepository('AppBundle:Ad')->findBy(array("status" => "PUBLISHED", "isPromoted" => false), array('id' => 'DESC'));
}
$talents = $em->getRepository('AppBundle:Company')->findBy(array("type" => "TALENT", "emphasis" => true), array('emphasisOrder' => 'DESC'));
$talents = $em->getRepository('AppBundle:Company')->findBy(array("type" => "TALENT", "emphasis" => true), array('emphasisOrder' => 'ASC'));
$companies = $em->getRepository('AppBundle:Company')->findBy(array("type" => "COMPANY", "emphasis" => true), array('emphasisOrder' => 'ASC'));
$territories = $em->getRepository('AppBundle:Company')->findBy(array("type" => "TERRITORY", "emphasis" => true), array('emphasisOrder' => 'ASC'));
@@ -97,7 +97,7 @@ class MediaController extends Controller
return $this->redirectToRoute('talent_media');
}
return $this->render('media/media_list_talent.html.twig', [
return $this->render('media/media_list.html.twig', [
'form' => $form->createView(),
'medias' => $medias,
]);
@@ -144,18 +144,6 @@ class MediaController extends Controller
* Ajax & Webservices
***********************/
/**
* @Route("/media/changeThumbnail", name="video_changeThumbnail")
*/
public function changeThumbnailAction(Request $request)
{
$data = json_decode($request->getContent());
$mediaManager = $this->get('media_manager');
$message = $mediaManager->changeThumbnail($data->duration, $data->id);
return new JsonResponse($message);
}
/**
* @Route("/media/upload/{id}", name="upload_media")
*/
@@ -10,10 +10,6 @@ use AppBundle\Entity\Recommendation;
use AppBundle\Form\ContactTalentType;
use AppBundle\Form\MediaType;
use AppBundle\Form\TalentProfileType;
use AppBundle\Form\TalentType;
use AppBundle\Form\CareersType;
use AppBundle\Form\FormationsType;
use AppBundle\Form\LanguagesType;
use Edeclic\PrestashopBridgeBundle\Event\PrestashopBridgeEvents;
use Edeclic\PrestashopBridgeBundle\Event\UserEvent;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
@@ -42,28 +38,11 @@ class TalentController extends Controller
]);
}
private static function sortByBeginYearCareer($x, $y) {
return strcasecmp($y['beginYearCareer'], $x['beginYearCareer']);
}
private static function sortByBeginYearFormation($x, $y) {
return strcasecmp($y['beginYearFormation'], $x['beginYearFormation']);
}
private static function sortByLanguageName($x, $y) {
return strcasecmp($y['nameLanguage'], $x['nameLanguage']);
}
/**
* @Route("/talent/me/", name="talent_dashboard")
*/
public function talentProfileAction(Request $request)
{
setlocale(LC_TIME, 'fr_FR.UTF8', 'fr.UTF8', 'fr_FR.UTF-8', 'fr.UTF-8');
$em = $this->getDoctrine()->getManager();
$history = $this->get('edeclic.history.record');
$records = $history->recordShow($this->getUser()->getId(), "r", 'AppBundle\Entity\Ad', null);
@@ -74,10 +53,11 @@ class TalentController extends Controller
$historyAds[$objRecord->getId()] = $existAnswer;
}
$user = $this->getUser();
$formProfile = $this->createForm(TalentProfileType::class, $user);
$formProfile->handleRequest($request);
if ($formProfile->isSubmitted() && $formProfile->isValid()) {
$form = $this->createForm(TalentProfileType::class, $user);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$birthday = new \DateTime($form->getData()->getBirthday());
$user->setBirthday($birthday);
$companyManager = $this->get('app.company_manager');
$companyManager->updateTalent($user);
$event = new UserEvent($user);
@@ -87,59 +67,6 @@ class TalentController extends Controller
$this->get('translator')->trans('company.profile.save.title')
);
}
$formCompany = $this->createForm(TalentType::class, $user->getCompany());
$formCompany->handleRequest($request);
if ($formCompany->isSubmitted() && $formCompany->isValid()) {
$companyManager = $this->get('app.company_manager');
$companyManager->updateTalent($user);
$this->addFlash(
'notice',
$this->get('translator')->trans('company.profile.save.title')
);
}
$formCareer = $this->createForm(CareersType::class, $user);
$formCareer->handleRequest($request);
if ($formCareer->isSubmitted() && $formCareer->isValid()) {
$careers = $formCareer->getData()->getCareer();
usort($careers, "static::sortByBeginYearCareer");
$user->setCareer($careers);
$em->persist($user);
$em->flush();
$this->addFlash(
'notice',
$this->get('translator')->trans('company.profile.save.title')
);
}
$formFormation = $this->createForm(FormationsType::class, $user);
$formFormation->handleRequest($request);
if ($formFormation->isSubmitted() && $formFormation->isValid()) {
$formations = $formFormation->getData()->getFormation();
usort($formations, "static::sortByBeginYearFormation");
$user->setFormation($formations);
$em->persist($user);
$em->flush();
$this->addFlash(
'notice',
$this->get('translator')->trans('company.profile.save.title')
);
}
$formLanguage = $this->createForm(LanguagesType::class, $user);
$formLanguage->handleRequest($request);
if ($formLanguage->isSubmitted() && $formLanguage->isValid()) {
$languages = $formLanguage->getData()->getLanguage();
$user->setLanguage($languages);
$em->persist($user);
$em->flush();
$this->addFlash(
'notice',
$this->get('translator')->trans('company.profile.save.title')
);
}
$formMedia = $this->createForm(MediaType::class);
$formMedia->handleRequest($request);
if ($formMedia->isSubmitted() && $formMedia->isValid()) {
@@ -153,16 +80,10 @@ class TalentController extends Controller
return $this->redirectToRoute('talent_media');
}
return $this->render('talent/profile.html.twig', [
'formProfile' => $formProfile->createView(),
'formCompany' => $formCompany->createView(),
'formCareer' => $formCareer->createView(),
'formFormation' => $formFormation->createView(),
'formLanguage' => $formLanguage->createView(),
'form' => $form->createView(),
'formMedia' => $formMedia->createView(),
'career' => $user->getCareer(),
'formation' => $user->getFormation(),
'language' => $user->getLanguage(),
'historyAds' => $historyAds
]);
}
@@ -8,6 +8,9 @@ use AppBundle\Utils\Traits\StatusTrait;
use AppBundle\Utils\Traits\TimestampableTrait;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use JMS\Serializer\Annotation\ExclusionPolicy;
use JMS\Serializer\Annotation\Expose;
use Hateoas\Configuration\Annotation as Hateoas;
/**
* Ad
@@ -15,6 +18,27 @@ use Symfony\Component\Validator\Constraints as Assert;
* @ORM\Table(name="ad")
* @ORM\Entity(repositoryClass="AppBundle\Repository\AdRepository")
* @ORM\HasLifecycleCallbacks()
*
* @ExclusionPolicy("all")
*
* @Hateoas\Relation(
* "self",
* href = @Hateoas\Route(
* "api_ad_show",
* parameters = { "id" = "expr(object.getId())" },
* absolute=true
* )
* )
*
* @Hateoas\Relation(
* "company",
* embedded = @Hateoas\Embedded("expr(object.getCompany())")
* )
*
* @Hateoas\Relation(
* "creator",
* embedded = @Hateoas\Embedded("expr(object.getCreator())")
* )
*/
class Ad
{
@@ -30,6 +54,7 @@ class Ad
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @Expose
*/
private $id;
@@ -37,6 +62,7 @@ class Ad
* @var string
*
* @ORM\Column(name="reference", type="string", length=255)
* @Expose
*/
private $reference;
@@ -44,6 +70,7 @@ class Ad
* @var string
*
* @ORM\Column(name="reference_tt", type="string", length=255)
* @Expose
*/
private $referenceTt;
@@ -51,6 +78,7 @@ class Ad
* @var string
*
* @ORM\Column(name="title", type="string", length=255)
* @Expose
*/
private $title;
@@ -58,6 +86,7 @@ class Ad
* @var string
*
* @ORM\Column(name="alias", type="string", length=255, unique=true, nullable=true)
* @Expose
*/
private $alias;
@@ -65,6 +94,7 @@ class Ad
* @var string
*
* @ORM\Column(name="description", type="text", nullable=true)
* @Expose
*/
private $description;
@@ -73,6 +103,7 @@ class Ad
*
* @ORM\Column(name="published_at", type="datetime", nullable=true)
* @Assert\GreaterThanOrEqual("today", groups={"dates"})
* @Expose
*/
private $publishedAt;
@@ -80,6 +111,7 @@ class Ad
* @var \DateTime
*
* @ORM\Column(name="unpublished_at", type="datetime", nullable=true)
* @Expose
*/
private $unpublishedAt;
@@ -87,6 +119,7 @@ class Ad
* @var boolean
*
* @ORM\Column(name="is_verified", type="boolean", nullable=true, options={"comment":"Etat de vérification"})
* @Expose
*/
private $isVerified;
@@ -94,6 +127,7 @@ class Ad
* @var boolean
*
* @ORM\Column(name="is_promoted", type="boolean", nullable=true, options={"comment":"Peux t'on répondre"})
* @Expose
*/
private $isPromoted;
@@ -101,6 +135,7 @@ class Ad
* @var boolean
*
* @ORM\Column(name="is_private", type="boolean", nullable=true, options={"comment":"Annonce privé, non listée en front"})
* @Expose
*/
private $isPrivate;
@@ -108,6 +143,7 @@ class Ad
* @var boolean
*
* @ORM\Column(name="is_answerable", type="boolean", nullable=true, options={"comment":"Annonce promu ?"})
* @Expose
*/
private $isAnswerable;
@@ -115,6 +151,7 @@ class Ad
* @var integer
*
* @ORM\Column(name="defcon", type="smallint", nullable=true, options={"comment":"Etat d'alerte de modération"})
*
*/
private $defcon;
@@ -122,6 +159,7 @@ class Ad
* @var array
*
* @ORM\Column(name="public_tag", type="json_document", nullable=true, options={"jsonb":true})
* @Expose
*/
private $publicTag;
@@ -129,6 +167,7 @@ class Ad
* @var array
*
* @ORM\Column(name="private_tag", type="json_document", nullable=true, options={"jsonb":true})
* @Expose
*/
private $privateTag;
@@ -136,6 +175,7 @@ class Ad
* @var array
*
* @ORM\Column(name="extra", type="json_document", nullable=true, options={"jsonb":true})
* @Expose
*/
private $extra;
@@ -148,6 +188,7 @@ class Ad
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Media", inversedBy="ads", cascade={"persist"})
* @Expose
*/
private $video;
@@ -158,6 +199,7 @@ class Ad
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\User", inversedBy="ads")
*
*/
private $creator;
@@ -165,6 +207,7 @@ class Ad
* @var string
*
* @ORM\Column(name="emphasis", type="boolean", options={"comment":"A la une"}, nullable=true)
* @Expose
*/
private $emphasis;
@@ -172,6 +215,7 @@ class Ad
* @var string
*
* @ORM\Column(name="emphasis_order", type="integer", options={"comment":"Ordre"}, nullable=true)
* @Expose
*/
private $emphasisOrder;
@@ -7,6 +7,9 @@ use AppBundle\Utils\Traits\StatusTrait;
use AppBundle\Utils\Traits\TimestampableTrait;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\Criteria as Criteria;
use JMS\Serializer\Annotation\ExclusionPolicy;
use JMS\Serializer\Annotation\Expose;
use Hateoas\Configuration\Annotation as Hateoas;
/**
* Answer
@@ -14,6 +17,32 @@ use Doctrine\Common\Collections\Criteria as Criteria;
* @ORM\Table(name="answer")
* @ORM\Entity(repositoryClass="AppBundle\Repository\AnswerRepository")
* @ORM\HasLifecycleCallbacks()
*
* @ExclusionPolicy("all")
*
* @Hateoas\Relation(
* "self",
* href = @Hateoas\Route(
* "api_answer_show",
* parameters = { "id" = "expr(object.getId())" },
* absolute=true
* )
* )
*
* @Hateoas\Relation(
* "ad",
* embedded = @Hateoas\Embedded("expr(object.getAd())")
* )
*
* @Hateoas\Relation(
* "user",
* embedded = @Hateoas\Embedded("expr(object.getUser())")
* )
*
* @Hateoas\Relation(
* "company",
* embedded = @Hateoas\Embedded("expr(object.getCompany())")
* )
*/
class Answer
{
@@ -28,6 +57,7 @@ class Answer
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @Expose
*/
private $id;
@@ -50,6 +80,7 @@ class Answer
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Media", inversedBy="answers", cascade={"persist"})
* @Expose
*/
private $video;
@@ -57,6 +88,7 @@ class Answer
* @var int
*
* @ORM\Column(name="vote", type="smallint", nullable=true)
* @Expose
*/
private $vote;
@@ -64,6 +96,7 @@ class Answer
* @var string
*
* @ORM\Column(name="comment", type="text", nullable=true)
* @Expose
*/
private $comment;
@@ -71,6 +104,7 @@ class Answer
* @var \DateTime $sendTime
*
* @ORM\Column(name="send_time", type="datetime", nullable=true)
* @Expose
*/
private $sendTime;
@@ -140,7 +174,7 @@ class Answer
}
public function getIsViewed(){
if($this->messages->count() >= 1){
if($this->messages->count() <= 1){
return $this->messages->last();
} else {
@@ -8,6 +8,9 @@ use AppBundle\Utils\Traits\IsVisibleTrait;
use AppBundle\Utils\Traits\TagsJsonTrait;
use AppBundle\Utils\Traits\TimestampableTrait;
use Doctrine\ORM\Mapping as ORM;
use Hateoas\Configuration\Annotation as Hateoas;
use JMS\Serializer\Annotation\ExclusionPolicy;
use JMS\Serializer\Annotation\Expose;
use Symfony\Component\HttpFoundation\File\UploadedFile;
/**
@@ -16,6 +19,18 @@ use Symfony\Component\HttpFoundation\File\UploadedFile;
* @ORM\Table(name="company")
* @ORM\Entity(repositoryClass="AppBundle\Repository\CompanyRepository")
* @ORM\HasLifecycleCallbacks()
*
* @ExclusionPolicy("all")
*
* @Hateoas\Relation(
* "self",
* href = @Hateoas\Route(
* "api_company_show",
* parameters = { "id" = "expr(object.getId())" },
* absolute=true
* )
* )
*
*/
class Company
{
@@ -32,6 +47,7 @@ class Company
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @Expose
*/
private $id;
@@ -39,6 +55,7 @@ class Company
* @var string
*
* @ORM\Column(name="brand_name", type="string", length=255, options={"comment":"Nom commercial"}, nullable=true)
* @Expose
*/
private $brandName;
@@ -46,6 +63,7 @@ class Company
* @var string
*
* @ORM\Column(name="business_name", type="string", length=255, options={"comment":"Raison sociale"}, nullable=true)
* @Expose
*/
private $businessName;
@@ -53,6 +71,7 @@ class Company
* @var text
*
* @ORM\Column(name="description", type="text", length=255, nullable=true)
* @Expose
*/
private $description;
@@ -60,6 +79,7 @@ class Company
* @var text
*
* @ORM\Column(name="description_admin", type="text", length=255, nullable=true)
* @Expose
*/
private $descriptionAdmin;
@@ -67,6 +87,7 @@ class Company
* @var string
*
* @ORM\Column(name="logo", type="string", nullable=true)
* @Expose
*/
private $logo;
@@ -74,6 +95,7 @@ class Company
* @var string
*
* @ORM\Column(name="website", type="string", nullable=true)
* @Expose
*/
private $website;
@@ -81,12 +103,14 @@ class Company
* @var string
*
* @ORM\Column(name="alias", type="string", length=255, unique=true)
* @Expose
*/
private $alias;
/**
* @ORM\OneToOne(targetEntity="AppBundle\Entity\Media", cascade={"persist", "remove"})
* @ORM\JoinColumn(name="presentation_video_id", nullable=true)
* @Expose
*/
private $presentationVideo;
@@ -94,6 +118,7 @@ class Company
* @var string
*
* @ORM\Column(name="type", type="string", nullable=true)
* @Expose
*/
private $type;
@@ -103,6 +128,7 @@ class Company
* @var string
*
* @ORM\Column(name="emphasis", type="boolean", options={"comment":"A la une"}, nullable=true)
* @Expose
*/
private $emphasis;
@@ -110,6 +136,7 @@ class Company
* @var string
*
* @ORM\Column(name="emphasis_order", type="integer", options={"comment":"Ordre"}, nullable=true)
* @Expose
*/
private $emphasisOrder;
@@ -117,6 +144,7 @@ class Company
* @var bool
*
* @ORM\Column(name="searchable", type="boolean", nullable=true)
* @Expose
*/
private $searchable;
@@ -124,6 +152,7 @@ class Company
* @var boolean
*
* @ORM\Column(name="is_private", type="boolean", nullable=true, options={"comment":"Company privé, non listée en front"})
* @Expose
*/
private $isPrivate;
@@ -6,10 +6,15 @@ use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use FOS\UserBundle\Model\User as BaseUser;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use AppBundle\Utils\Traits\CareerJsonTrait;
use JMS\Serializer\Annotation\ExclusionPolicy;
use JMS\Serializer\Annotation\Expose;
use Hateoas\Configuration\Annotation as Hateoas;
/**
* @ORM\Entity(repositoryClass="AppBundle\Repository\UserRepository")
* @ORM\Table(name="fos_user")
*
* @ExclusionPolicy("all")
*/
class User extends BaseUser
{
@@ -24,6 +29,7 @@ class User extends BaseUser
* @var string
*
* @ORM\Column(name="firstname", type="string", length=255, nullable=true)
* @Expose
*/
private $firstname;
@@ -31,6 +37,7 @@ class User extends BaseUser
* @var string
*
* @ORM\Column(name="lastname", type="string", length=255, nullable=true)
* @Expose
*/
private $lastname;
@@ -38,6 +45,7 @@ class User extends BaseUser
* @var \DateTime
*
* @ORM\Column(name="birthday", type="datetime", length=255, nullable=true)
* @Expose
*/
private $birthday;
@@ -52,6 +60,7 @@ class User extends BaseUser
* @var string
*
* @ORM\Column(name="gender", type="string", length=255, nullable=true)
* @Expose
*/
private $gender;
@@ -160,28 +169,6 @@ class User extends BaseUser
*/
private $socialPicture;
/**
* @var array
*
* @ORM\Column(name="career", type="json_document", nullable=true)
*/
private $career;
/**
* @var array
*
* @ORM\Column(name="formation", type="json_document", nullable=true)
*/
private $formation;
/**
* @var array
*
* @ORM\Column(name="language", type="json_document", nullable=true)
*/
private $language;
/***********************
* Constructor
***********************/
@@ -371,16 +358,8 @@ class User extends BaseUser
*
* @return User
*/
public function setBirthday($birthday = null, $isSocial = false)
public function setBirthday($birthday = null)
{
if($birthday != null){
if($isSocial){
$birthday = \DateTime::createFromFormat('m/d/Y', $birthday);
} else {
$birthday = \DateTime::createFromFormat('d/m/Y', $birthday);
}
}
$this->birthday = $birthday;
return $this;
@@ -393,12 +372,7 @@ class User extends BaseUser
*/
public function getBirthday()
{
if ($this->birthday == null) {
return $this->birthday;
}
return $this->birthday->format('d/m/Y');
return $this->birthday;
}
/**
@@ -970,102 +944,4 @@ class User extends BaseUser
{
return $this->sendedRecommendations->removeElement($reco);
}
/**
* Set career.
*
* @param json_document|null $career
*
* @return User
*/
public function setCareer($career = null)
{
$this->career = $career;
return $this;
}
/**
* Get career.
*
* @return json_document|null
*/
public function getCareer()
{
return $this->career;
}
/**
* Add sendedRecommendation.
*
* @param \AppBundle\Entity\Recommendation $sendedRecommendation
*
* @return User
*/
public function addSendedRecommendation(\AppBundle\Entity\Recommendation $sendedRecommendation)
{
$this->sendedRecommendations[] = $sendedRecommendation;
return $this;
}
/**
* Remove sendedRecommendation.
*
* @param \AppBundle\Entity\Recommendation $sendedRecommendation
*
* @return boolean TRUE if this collection contained the specified element, FALSE otherwise.
*/
public function removeSendedRecommendation(\AppBundle\Entity\Recommendation $sendedRecommendation)
{
return $this->sendedRecommendations->removeElement($sendedRecommendation);
}
/**
* Set formation.
*
* @param json_document|null $formation
*
* @return User
*/
public function setFormation($formation = null)
{
$this->formation = $formation;
return $this;
}
/**
* Get formation.
*
* @return json_document|null
*/
public function getFormation()
{
return $this->formation;
}
/**
* Set language.
*
* @param json_document|null $language
*
* @return User
*/
public function setLanguage($language = null)
{
$this->language = $language;
return $this;
}
/**
* Get language.
*
* @return json_document|null
*/
public function getLanguage()
{
return $this->language;
}
}
@@ -1,111 +0,0 @@
<?php
/*
* This file is part of the FOSUserBundle package.
*
* (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace AppBundle\Form;
use AppBundle\Entity\User;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CountryType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\UrlType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
class CareerType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('companyCareer', TextType::class, array(
'label' => 'talent.profile.career.company.label',
))
->add('jobCareer', TextType::class, array(
'label' => 'talent.profile.career.job.label',
))
->add('placeCareer', TextType::class, array(
'label' => 'talent.profile.career.place.label',
))
->add('beginMonthCareer', ChoiceType::class, array(
'label' => 'talent.profile.career.begin.label',
'choices' => $this->getMonths(),
'placeholder' => 'Mois'
))
->add('beginYearCareer', ChoiceType::class, array(
'label' => 'talent.profile.career.begin.label',
'choices' => $this->getYears(1960),
'placeholder' => 'Année',
'attr' => array(
'class' => 'beginYearCareer'
)
))
->add('endMonthCareer', ChoiceType::class, array(
'label' => 'talent.profile.career.end.label',
'choices' => $this->getMonths(),
'required' => false,
'placeholder' => 'Mois'
))
->add('endYearCareer', ChoiceType::class, array(
'label' => 'talent.profile.career.end.label',
'choices' => $this->getYears(1960),
'required' => false,
'placeholder' => 'Année',
'attr' => array(
'class' => 'endYearCareer'
)
))
->add('actualJobCareer', CheckboxType::class, array(
'label' => 'talent.profile.career.actualJob.label',
'required' => false
))
->add('descriptionCareer', TextareaType::class, array(
'label' => 'profile.company.description',
'required' => false,
'attr' => array(
'class' => 'materialize-textarea'
)
))
->add('tagsComma', TextType::class, array(
'label' => 'talent.profile.career.skills.label',
'required' => false,
'attr' => array(
'data-role'=>"materialtags"
)
));
}
private function getYears($min, $max='current')
{
$years = range($min, ($max === 'current' ? date('Y') : $max));
$resultYears = array_combine($years, $years);
arsort($resultYears);
return $resultYears;
}
private function getMonths()
{
$months = array();
for ($m=1; $m<=12; $m++) {
$month = strftime('%B', mktime(0,0,0,$m, 1, date('Y')));
$months[$month] = $m;
}
return $months;
}
public function getName()
{
return 'career';
}
}
@@ -1,65 +0,0 @@
<?php
/*
* This file is part of the FOSUserBundle package.
*
* (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace AppBundle\Form;
use AppBundle\Entity\User;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
use Symfony\Component\Form\FormEvents;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormView;
class CareersType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('career', CollectionType::class, array(
'entry_type'=> CareerType::class,
'prototype'=>true,
'allow_add'=>true,
'allow_delete'=>true
));
$builder->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) {
$submittedData = $event->getData();
if (empty($submittedData['career'])) {
return;
}
usort($submittedData['career'], "static::sortByBeginYearCareer");
$event->setData($submittedData);
});
}
private static function sortByBeginYearCareer($x, $y) {
return strcasecmp($y['beginYearCareer'], $x['beginYearCareer']);
}
public function getName()
{
return 'careers';
}
public function setDefaultOptions(OptionsResolverInterface $resolver) {
$resolver->setDefaults(array(
'restore_input_order' => false,
));
}
}
@@ -1,84 +0,0 @@
<?php
/*
* This file is part of the FOSUserBundle package.
*
* (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace AppBundle\Form;
use AppBundle\Entity\User;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CountryType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\UrlType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
class FormationType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('nameFormation', TextType::class, array(
'label' => 'talent.profile.formation.name.label',
'required' => true
))
->add('schoolFormation', TextType::class, array(
'label' => 'talent.profile.formation.school.label',
'required' => true
))
->add('beginYearFormation', ChoiceType::class, array(
'label' => 'talent.profile.formation.begin.label',
'choices' => $this->getYears(1960),
'placeholder' => 'Année',
'attr' => array(
'class' => 'beginYearFormation'
)
))
->add('actualFormation', CheckboxType::class, array(
'label' => 'talent.profile.formation.actual.label',
'required' => false,
))
->add('descriptionFormation', TextareaType::class, array(
'label' => 'profile.company.description',
'required' => false,
'attr' => array(
'class' => 'materialize-textarea'
)
));
}
private function getYears($min, $max='current')
{
$years = range($min, ($max === 'current' ? date('Y') : $max));
$resultYears = array_combine($years, $years);
arsort($resultYears);
return $resultYears;
}
private function getMonths()
{
setlocale(LC_TIME, "fr_FR");
$months = array();
for ($m=1; $m<=12; $m++) {
$month = utf8_encode(strftime('%B', mktime(0,0,0,$m, 1, date('Y'))));
$months[] = $month;
}
return array_combine($months, $months);
}
public function getName()
{
return 'formation';
}
}
@@ -1,52 +0,0 @@
<?php
/*
* This file is part of the FOSUserBundle package.
*
* (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace AppBundle\Form;
use AppBundle\Entity\User;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
use Symfony\Component\Form\FormEvents;
use Symfony\Component\Form\FormEvent;
class FormationsType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('formation', CollectionType::class, array(
'entry_type'=> FormationType::class,
'prototype'=>true,
'allow_add'=>true,
'allow_delete'=>true
));
$builder->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) {
$submittedData = $event->getData();
if (!array_key_exists('formation', $submittedData)) {
return;
}
usort($submittedData['formation'], "static::sortByBeginYearFormation");
$event->setData($submittedData);
});
}
private static function sortByBeginYearFormation($x, $y) {
return strcasecmp($y['beginYearFormation'], $x['beginYearFormation']);
}
public function getName()
{
return 'formations';
}
}
@@ -1,56 +0,0 @@
<?php
/*
* This file is part of the FOSUserBundle package.
*
* (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace AppBundle\Form;
use AppBundle\Entity\User;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CountryType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\UrlType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
class LanguageType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('nameLanguage', TextType::class, array(
'label' => 'talent.profile.language.name.label',
))
->add('skillLanguage', ChoiceType::class, array(
'label' => 'talent.profile.language.skill.label',
'choices' => $this->getSkills(),
'placeholder' => 'Niveau',
'required' => true
));
}
private function getSkills()
{
$skills = array(
'talent.profile.language.skill.1.label' => 'talent.profile.language.skill.1.label',
'talent.profile.language.skill.2.label' =>'talent.profile.language.skill.2.label',
'talent.profile.language.skill.3.label' => 'talent.profile.language.skill.3.label',
'talent.profile.language.skill.4.label' => 'talent.profile.language.skill.4.label',
);
return $skills;
}
public function getName()
{
return 'language';
}
}
@@ -1,37 +0,0 @@
<?php
/*
* This file is part of the FOSUserBundle package.
*
* (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace AppBundle\Form;
use AppBundle\Entity\User;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
class LanguagesType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('language', CollectionType::class, array(
'entry_type'=> LanguageType::class,
'prototype'=>true,
'allow_add'=>true,
'allow_delete'=>true
));
}
public function getName()
{
return 'languages';
}
}
@@ -1,53 +0,0 @@
<?php
/*
* This file is part of the FOSUserBundle package.
*
* (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace AppBundle\Form;
use AppBundle\Entity\Company;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\CountryType;
use Symfony\Component\OptionsResolver\OptionsResolver;
class TalentProfileAddressType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('address', TextType::class, array(
'label' => 'Adresse',
))
->add('addressComp', TextType::class, array(
'label' => 'Complément Adresse',
'required' => false
))
->add('zipcode', TextType::class, array(
'label' => 'Code postal',
))
->add('city', TextType::class, array(
'label' => 'Ville',
))
->add('country', CountryType::class, array(
'label' => 'Pays',
));
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => Company::class,
));
}
}
@@ -14,23 +14,23 @@ namespace AppBundle\Form;
use AppBundle\Entity\User;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use AppBundle\Form\TalentProfileAddressType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\CountryType;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
class TalentProfileType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$user = $options['data'];
$user->getCompany()->init();
$birthday = $options['data']->getBirthday();
if(!empty($birthday)){
$options['data']->setBirthday($birthday->format('d/m/Y'));
}
$builder
->add('firstname', null, array(
'label' => 'Prénom',
@@ -57,13 +57,15 @@ class TalentProfileType extends AbstractType
),
'label' => 'Sexe'
));
$builder->add('company', TalentProfileAddressType::class);
$builder
->add('company',TalentType::class, array(
'label'=>false
));
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => User::class,
));
@@ -13,10 +13,8 @@ namespace AppBundle\Form;
use AppBundle\Entity\Company;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CountryType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\UrlType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
@@ -25,27 +23,30 @@ class TalentType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('titleTalent', TextType::class, array(
'label' => 'talent.profile.title.label',
->add('address', TextType::class, array(
'label' => 'Adresse',
))
->add('situationTalent', ChoiceType::class, array(
'label' => 'talent.profile.situation.label',
'choices' => $this->getSituations()
->add('addressComp', TextType::class, array(
'label' => 'Complément Adresse',
'required' => false
))
->add('zipcode', TextType::class, array(
'label' => 'Code postal',
))
->add('city', TextType::class, array(
'label' => 'Ville',
))
->add('country', CountryType::class, array(
'label' => 'Pays',
));
$builder
->add('tagsComma', TextType::class, array(
'label' => 'profile.talent.tags',
'label' => 'profile.company.tags',
'attr' => array(
'data-role'=>"materialtags"
)
))
->add('descriptionTalent', TextareaType::class, array(
'label' => 'talent.profile.description.label',
'required' => false,
'attr' => array(
'class' => 'materialize-textarea',
'placeholder' => '...'
)
));
$builder
->add('website', UrlType::class, array('label' => 'Site internet',
@@ -74,14 +75,4 @@ class TalentType extends AbstractType
'data_class' => Company::class,
));
}
public function getSituations(){
$situations = array(
'talent.profile.situation.1.label' => 'talent.profile.situation.1.label',
'talent.profile.situation.2.label' =>'talent.profile.situation.2.label',
'talent.profile.situation.3.label' => 'talent.profile.situation.3.label'
);
return $situations;
}
}
@@ -0,0 +1,25 @@
<?php
namespace AppBundle\Repository;
use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\QueryBuilder;
use Pagerfanta\Pagerfanta;
use Pagerfanta\Adapter\DoctrineORMAdapter;
abstract class AbstractRepository extends EntityRepository
{
protected function paginate(QueryBuilder $qb, $limit = 20, $offset = 0)
{
if (0 == $limit || 0 == $offset) {
throw new \LogicException('$limit & $offstet must be greater than 0.');
}
$pager = new Pagerfanta(new DoctrineORMAdapter($qb));
$currentPage = ceil(($offset + 1) / $limit);
$pager->setCurrentPage($currentPage);
$pager->setMaxPerPage((int) $limit);
return $pager;
}
}
@@ -2,14 +2,30 @@
namespace AppBundle\Repository;
use Doctrine\ORM\EntityRepository;
/**
* AdRepository
*
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
class AdRepository extends EntityRepository
class AdRepository extends AbstractRepository
{
public function search($term, $order = 'asc', $limit = 20, $offset = 0)
{
$qb = $this
->createQueryBuilder('a')
->select('a')
->orderBy('a.title', $order)
;
if ($term) {
$qb
->where('a.title LIKE ?1')
->setParameter(1, '%' . $term . '%')
;
}
return $this->paginate($qb, $limit, $offset);
}
}
@@ -8,9 +8,19 @@ namespace AppBundle\Repository;
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
class AnswerRepository extends \Doctrine\ORM\EntityRepository
class AnswerRepository extends AbstractRepository
{
public function search($order = 'asc', $limit = 20, $offset = 0)
{
$qb = $this
->createQueryBuilder('a')
->select('a')
->orderBy('a.id', $order)
;
return $this->paginate($qb, $limit, $offset);
}
public function getAnswerByCompany($id)
{
$qb = $this
@@ -10,7 +10,7 @@ use Doctrine\ORM\EntityRepository;
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
class CompanyRepository extends EntityRepository
class CompanyRepository extends AbstractRepository
{
public function getCompanySortByAds()
{
@@ -75,4 +75,21 @@ class CompanyRepository extends EntityRepository
return $qb;
}
public function search($term, $order = 'asc', $limit = 20, $offset = 0)
{
$qb = $this
->createQueryBuilder('c')
->select('c')
->orderBy('c.id', $order)
;
if ($term) {
$qb
->where('c.title LIKE ?1')
->setParameter(1, '%' . $term . '%')
;
}
return $this->paginate($qb, $limit, $offset);
}
}
@@ -0,0 +1,46 @@
<?php
namespace AppBundle\Representation;
use Hateoas\Configuration\Annotation as Hateoas;
use JMS\Serializer\Annotation\Type;
use Pagerfanta\Pagerfanta;
/**
* @Hateoas\Relation(
* "authenticated_user",
* embedded = @Hateoas\Embedded("expr(service('security.token_storage').getToken().getUser())")
* )
*/
class Ads
{
/**
* @Type("array<AppBundle\Entity\Ad>")
*/
public $data;
public $meta;
public function __construct(Pagerfanta $data)
{
$this->data = $data;
$this->addMeta('limit', $data->getMaxPerPage());
$this->addMeta('current_items', count($data->getCurrentPageResults()));
$this->addMeta('total_items', $data->getNbResults());
$this->addMeta('offset', $data->getCurrentPageOffsetStart());
}
public function addMeta($name, $value)
{
if (isset($this->meta[$name])) {
throw new \LogicException(sprintf('This meta already exists. You are trying to override this meta, use the setMeta method instead for the %s meta.', $name));
}
$this->setMeta($name, $value);
}
public function setMeta($name, $value)
{
$this->meta[$name] = $value;
}
}
@@ -0,0 +1,46 @@
<?php
namespace AppBundle\Representation;
use Hateoas\Configuration\Annotation as Hateoas;
use JMS\Serializer\Annotation\Type;
use Pagerfanta\Pagerfanta;
/**
* @Hateoas\Relation(
* "authenticated_user",
* embedded = @Hateoas\Embedded("expr(service('security.token_storage').getToken().getUser())")
* )
*/
class Answers
{
/**
* @Type("array<AppBundle\Entity\Answer>")
*/
public $data;
public $meta;
public function __construct(Pagerfanta $data)
{
$this->data = $data;
$this->addMeta('limit', $data->getMaxPerPage());
$this->addMeta('current_items', count($data->getCurrentPageResults()));
$this->addMeta('total_items', $data->getNbResults());
$this->addMeta('offset', $data->getCurrentPageOffsetStart());
}
public function addMeta($name, $value)
{
if (isset($this->meta[$name])) {
throw new \LogicException(sprintf('This meta already exists. You are trying to override this meta, use the setMeta method instead for the %s meta.', $name));
}
$this->setMeta($name, $value);
}
public function setMeta($name, $value)
{
$this->meta[$name] = $value;
}
}
@@ -0,0 +1,46 @@
<?php
namespace AppBundle\Representation;
use Hateoas\Configuration\Annotation as Hateoas;
use JMS\Serializer\Annotation\Type;
use Pagerfanta\Pagerfanta;
/**
* @Hateoas\Relation(
* "authenticated_user",
* embedded = @Hateoas\Embedded("expr(service('security.token_storage').getToken().getUser())")
* )
*/
class Companies
{
/**
* @Type("array<AppBundle\Entity\Company>")
*/
public $data;
public $meta;
public function __construct(Pagerfanta $data)
{
$this->data = $data;
$this->addMeta('limit', $data->getMaxPerPage());
$this->addMeta('current_items', count($data->getCurrentPageResults()));
$this->addMeta('total_items', $data->getNbResults());
$this->addMeta('offset', $data->getCurrentPageOffsetStart());
}
public function addMeta($name, $value)
{
if (isset($this->meta[$name])) {
throw new \LogicException(sprintf('This meta already exists. You are trying to override this meta, use the setMeta method instead for the %s meta.', $name));
}
$this->setMeta($name, $value);
}
public function setMeta($name, $value)
{
$this->meta[$name] = $value;
}
}
@@ -0,0 +1,27 @@
<?php
namespace AppBundle\Representation;
use Hateoas\Configuration\Annotation as Hateoas;
use JMS\Serializer\Annotation\Type;
use AppBundle\Entity\Ad;
/**
* @Hateoas\Relation(
* "authenticated_user",
* embedded = @Hateoas\Embedded("expr(service('security.token_storage').getToken().getUser())")
* )
*/
class SingleAd
{
/**
* @Type("AppBundle\Entity\Ad")
*/
public $data;
public function __construct(Ad $data)
{
$this->data = $data;
}
}
@@ -0,0 +1,27 @@
<?php
namespace AppBundle\Representation;
use AppBundle\Entity\Answer;
use Hateoas\Configuration\Annotation as Hateoas;
use JMS\Serializer\Annotation\Type;
/**
* @Hateoas\Relation(
* "authenticated_user",
* embedded = @Hateoas\Embedded("expr(service('security.token_storage').getToken().getUser())")
* )
*/
class SingleAnswer
{
/**
* @Type("AppBundle\Entity\Answer")
*/
public $data;
public function __construct(Answer $data)
{
$this->data = $data;
}
}
@@ -0,0 +1,27 @@
<?php
namespace AppBundle\Representation;
use AppBundle\Entity\Company;
use Hateoas\Configuration\Annotation as Hateoas;
use JMS\Serializer\Annotation\Type;
/**
* @Hateoas\Relation(
* "authenticated_user",
* embedded = @Hateoas\Embedded("expr(service('security.token_storage').getToken().getUser())")
* )
*/
class SingleCompany
{
/**
* @Type("AppBundle\Entity\Company")
*/
public $data;
public function __construct(Company $data)
{
$this->data = $data;
}
}
@@ -0,0 +1,66 @@
<?php
namespace AppBundle\Security;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Security\Core\Authentication\Token\PreAuthenticatedToken;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use Symfony\Component\Security\Core\Exception\AuthenticationException;
use Symfony\Component\Security\Core\Exception\BadCredentialsException;
use Symfony\Component\Security\Core\Exception\CustomUserMessageAuthenticationException;
use Symfony\Component\Security\Core\User\UserProviderInterface;
use Symfony\Component\Security\Http\Authentication\SimplePreAuthenticatorInterface;
// NOT USED AT THE MOMENT
class ApiKeyAuthenticator implements SimplePreAuthenticatorInterface
{
public function createToken(Request $request, $providerKey)
{
$bearer = $request->headers->get('Authorization');
if (!$bearer) {
throw new BadCredentialsException();
}
return new PreAuthenticatedToken(
'anon.',
$bearer,
$providerKey
);
}
public function authenticateToken(TokenInterface $token, UserProviderInterface $userProvider, $providerKey)
{
$accessToken = $token->getCredentials();
$username = $userProvider->getUsernameForApiKey($accessToken);
if (!$username) {
// CAUTION: this message will be returned to the client
// (so don't put any un-trusted messages / error strings here)
throw new CustomUserMessageAuthenticationException(
sprintf('API Key "%s" does not exist.', $apiKey)
);
}
$user = $userProvider->loadUserByUsername($username);
return new PreAuthenticatedToken(
$user,
$accessToken,
$providerKey,
$user->getRoles()
);
}
public function supportsToken(TokenInterface $token, $providerKey)
{
return $token instanceof PreAuthenticatedToken && $token->getProviderKey() === $providerKey;
}
public function onAuthenticationFailure(Request $request, AuthenticationException $exception)
{
return new Response("Authentication Failed :(", 401);
}
}
@@ -0,0 +1,47 @@
<?php
namespace AppBundle\Security;
use Symfony\Component\Security\Core\User\UserProviderInterface;
use Symfony\Component\Security\Core\User\User;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Security\Core\Exception\UnsupportedUserException;
// NOT USED AT THE MOMENT
class ApiKeyUserProvider implements UserProviderInterface
{
public function getUsernameForApiKey($apiKey)
{
// Look up the username based on the token in the database, via
// an API call, or do something entirely different
// $username = ...;
return $username;
}
public function loadUserByUsername($username)
{
return new User(
$username,
null,
// the roles for the user - you may choose to determine
// these dynamically somehow based on the user
array('ROLE_API')
);
}
public function refreshUser(UserInterface $user)
{
// this is used for storing authentication in the session
// but in this example, the token is sent in each request,
// so authentication can be stateless. Throwing this exception
// is proper to make things stateless
throw new UnsupportedUserException();
}
public function supportsClass($class)
{
return User::class === $class;
}
}
@@ -148,7 +148,7 @@ class FOSUBUserProvider extends BaseFOSUBProvider
} else {
$userPhoto = 'https://graph.facebook.com/'.$data['id'].'/picture?height=200';
if(isset($data['birthday'])){
$birthday = $data['birthday'];
$birthday = \DateTime::createFromFormat ('m/d/Y', $data['birthday']);
} else {
$birthday = null;
}
@@ -227,4 +227,11 @@ class FOSUBUserProvider extends BaseFOSUBProvider
$user->$setter($response->getAccessToken());
return $user;
}
public function getUsernameForApiKey($apiKey)
{
$username = 'test';
return $username;
}
}
@@ -25,38 +25,12 @@ class AdSearcher
{
if ($param == 'lite') {
$ads = $this->searchLite($data);
} elseif ($param == 'tag') {
$ads = $this->searchTag($data);
} else {
return null;
}
return $ads;
}
/**
* @param $data
* @return mixed
*
* ElasticSearch query for ad search
*/
public function searchTag($data)
{
$query = new \Elastica\Query();
$boolQuery = new \Elastica\Query\BoolQuery();
$fieldQuery = new \Elastica\Query\MultiMatch();
if(isset($data['tag'])){
$fieldQuery->setQuery($data['tag']);
$fieldQuery->setFields(['publicTag']);
//$fieldQuery->setFieldQuery('publicTag', $data['tag']);
$boolQuery->addMust($fieldQuery);
}
$query->setQuery($boolQuery);
$result = $this->finder->find($query);
$ads = $this->filterStatus($result);
return $ads;
}
/**
* @param $data
* @return mixed
@@ -72,6 +72,7 @@ class CompanyManager
$talent = $user->getCompany();
$alias = $this->slugService->slugify($user->getId() . "-" . $user->getFirstname() . "-" . $user->getLastname());
$talent->setAlias($alias);
if ($talent->getAddress() != null) {
$billing = array(
'address1' => $talent->getAddress(),
@@ -82,20 +83,16 @@ class CompanyManager
);
$addrs['billing'] = $billing;
$talent->setAddresses($addrs);
$publicTags = explode(',', $talent->getTagsComma());
$talent->setPublicTag($publicTags);
$extra = array(
'linkedin' => $talent->getLinkedin(),
'twitter' => $talent->getTwitter(),
);
$talent->setExtra($extra);
}
$publicTags = explode(',', $talent->getTagsComma());
$talent->setPublicTag($publicTags);
$extra = array(
'linkedin' => $talent->getLinkedin(),
'twitter' => $talent->getTwitter(),
'titleTalent' => $talent->getTitleTalent(),
'situationTalent' => $talent->getSituationTalent(),
'descriptionTalent' => $talent->getDescriptionTalent(),
);
$talent->setExtra($extra);
$this->em->persist($talent);
$this->em->persist($user);
$this->em->flush();
}
@@ -84,34 +84,20 @@ class MediaManager
*/
public function delete($entity)
{
if ($this->env != "dev") {
$video = $entity;
if (unlink($this->mediaVideoDir . $video->getOriginalUrl())) {
$video = $entity;
if (unlink($this->mediaVideoDir . $video->getOriginalUrl())) {
if ($this->env != "dev") {
$response = $this->vimeo->request($video->getCdnUrl(), [], 'DELETE');
$this->em->remove($video);
$this->em->flush();
return array('success' => "true");
} else {
return array('success' => "false");
}
} else {
$this->em->remove($video);
$this->em->flush();
return array('success' => "true");
} else {
return array('success' => "false");
}
}
/**
* @param $entity
* @return array
*/
public function changeThumbnail($duration, $id)
{
$response = $this->vimeo->request('/videos/'.$id.'/pictures', array('active' => true, 'time' => $duration), 'POST');
return array('success' => $response);
}
/**
* @param $entity
* @return array
@@ -22,11 +22,6 @@ trait ExtraJsonTrait
private $size;
private $siren;
private $titleTalent;
private $situationTalent;
private $descriptionTalent;
/***********************
* Custom Functions
***********************/
@@ -39,9 +34,6 @@ trait ExtraJsonTrait
isset($extra['linkedin']) ? $this->linkedin = $extra['linkedin'] : null;
isset($extra['size']) ? $this->size = $extra['size'] : null;
isset($extra['siren']) ? $this->siren = $extra['siren'] : null;
isset($extra['titleTalent']) ? $this->titleTalent = $extra['titleTalent'] : null;
isset($extra['situationTalent']) ? $this->situationTalent = $extra['situationTalent'] : null;
isset($extra['descriptionTalent']) ? $this->descriptionTalent = $extra['descriptionTalent'] : null;
}
/***********************
@@ -113,40 +105,4 @@ trait ExtraJsonTrait
return $this->siren;
}
public function setTitleTalent($titleTalent)
{
$this->titleTalent = $titleTalent;
return $this;
}
public function getTitleTalent()
{
return $this->titleTalent;
}
public function setSituationTalent($situationTalent)
{
$this->situationTalent = $situationTalent;
return $this;
}
public function getSituationTalent()
{
return $this->situationTalent;
}
public function setDescriptionTalent($descriptionTalent)
{
$this->descriptionTalent = $descriptionTalent;
return $this;
}
public function getDescriptionTalent()
{
return $this->descriptionTalent;
}
}
@@ -1,9 +1,12 @@
<?php
namespace Tests\AppBundle;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
use Doctrine\Common\Persistence\ObjectManager;
use Doctrine\Common\Persistence\ObjectRepository;
use AppBundle\Entity\Ad;
use Symfony\Bundle\FrameworkBundle\TestCase;
class AdControllerTest extends WebTestCase
class AdControllerTest extends TestCase
{
/**
* @var EntityManager
@@ -13,7 +16,7 @@ class AdControllerTest extends WebTestCase
public function testAdShowAction()
{
/*$ad = new Ad();
$ad = new Ad();
$ad->setReference('test');
$adRepository = $this->createMock(ObjectRepository::class);
@@ -25,7 +28,7 @@ class AdControllerTest extends WebTestCase
$objectManager->expects($this->any())
->method('getRepository')
->willReturn($adRepository);
*/
$client = static::createClient();
$crawler = $client->request('GET', '/annonce/32-chef-de-projet-industriel-h-f');
@@ -1,45 +0,0 @@
<?php
namespace Tests\AppBundle\Form;
use AppBundle\Form\Type\CareersType;
use AppBundle\Entity\User;
use Symfony\Component\Form\Test\TypeTestCase;
class CareersTypeTest extends TypeTestCase
{
public function testSubmitValidData()
{
$formData = array(
'companyCareer' => 'UnitTest',
'jobCareer' => 'UnitTest',
"placeCareer" => "UnitTest",
"beginMonthCareer" => "avril",
"beginYearCareer" => 2018,
"endMonthCareer" => "juillet",
"endYearCareer" => 2014,
"actualJobCareer" => true,
"descriptionCareer" => "Ouais c'etait pas super passionnant",
"tagsComma" => "UnitTest"
);
$objectToCompare = new User();
// $objectToCompare will retrieve data from the form submission; pass it as the second argument
$form = $this->factory->create(CareersType::class, $objectToCompare);
$object = new User();
$form->submit($formData);
$this->assertTrue($form->isSynchronized());
// check that $objectToCompare was modified as expected when the form was submitted
$this->assertEquals($object, $objectToCompare);
$view = $form->createView();
$children = $view->children;
foreach (array_keys($formData) as $key) {
$this->assertArrayHasKey($key, $children);
}
}
}
@@ -389,7 +389,7 @@ class SymfonyRequirements extends RequirementCollection
{
/* mandatory requirements follow */
$installedPhpVersion = phpversion();
$installedPhpVersion = PHP_VERSION;
$requiredPhpVersion = $this->getPhpRequiredVersion();
$this->addRecommendation(
@@ -448,15 +448,8 @@ class SymfonyRequirements extends RequirementCollection
}
if (false !== $requiredPhpVersion && version_compare($installedPhpVersion, $requiredPhpVersion, '>=')) {
$timezones = array();
foreach (DateTimeZone::listAbbreviations() as $abbreviations) {
foreach ($abbreviations as $abbreviation) {
$timezones[$abbreviation['timezone_id']] = true;
}
}
$this->addRequirement(
isset($timezones[@date_default_timezone_get()]),
in_array(@date_default_timezone_get(), DateTimeZone::listIdentifiers(), true),
sprintf('Configured default timezone "%s" must be supported by your installation of PHP', @date_default_timezone_get()),
'Your default timezone is not supported by PHP. Check for typos in your <strong>php.ini</strong> file and have a look at the list of deprecated timezones at <a href="http://php.net/manual/en/timezones.others.php">http://php.net/manual/en/timezones.others.php</a>.'
);
@@ -731,7 +724,7 @@ class SymfonyRequirements extends RequirementCollection
'Install and/or enable a <strong>PHP accelerator</strong> (highly recommended).'
);
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
if ('WIN' === strtoupper(substr(PHP_OS, 0, 3))) {
$this->addRecommendation(
$this->getRealpathCacheSize() >= 5 * 1024 * 1024,
'realpath_cache_size should be at least 5M in php.ini',
-1
View File
@@ -1 +0,0 @@
../doctrine/orm/bin/doctrine
-1
View File
@@ -1 +0,0 @@
../doctrine/dbal/bin/doctrine-dbal
-1
View File
@@ -1 +0,0 @@
../sensiolabs/security-checker/security-checker
-1
View File
@@ -1 +0,0 @@
../symfony/phpunit-bridge/bin/simple-phpunit
+1 -1
View File
@@ -377,7 +377,7 @@ class ClassLoader
$subPath = $class;
while (false !== $lastPos = strrpos($subPath, '\\')) {
$subPath = substr($subPath, 0, $lastPos);
$search = $subPath . '\\';
$search = $subPath.'\\';
if (isset($this->prefixDirsPsr4[$search])) {
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
foreach ($this->prefixDirsPsr4[$search] as $dir) {
@@ -20,4 +20,5 @@ return array(
'SessionUpdateTimestampHandlerInterface' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/SessionUpdateTimestampHandlerInterface.php',
'SqlFormatter' => $vendorDir . '/jdorn/sql-formatter/lib/SqlFormatter.php',
'TypeError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/TypeError.php',
'WhiteOctober\\PagerfantaBundle\\WhiteOctoberPagerfantaBundle' => $vendorDir . '/white-october/pagerfanta-bundle/WhiteOctoberPagerfantaBundle.php',
);
+5 -4
View File
@@ -9,17 +9,18 @@ return array(
'3a37ebac017bc098e9a86b35401e7a68' => $vendorDir . '/mongodb/mongodb/src/functions.php',
'06dd8487319ccd8403765f5b8c9f2d61' => $vendorDir . '/alcaeus/mongo-php-adapter/lib/Mongo/functions.php',
'92c8763cd6170fce6fcfe7e26b4e8c10' => $vendorDir . '/symfony/phpunit-bridge/bootstrap.php',
'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php',
'320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php',
'ddc0a4d7e61c0286f0f8593b1903e894' => $vendorDir . '/clue/stream-filter/src/functions.php',
'8cff32064859f4559445b89279f3199c' => $vendorDir . '/php-http/message/src/filters.php',
'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php',
'37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php',
'8cff32064859f4559445b89279f3199c' => $vendorDir . '/php-http/message/src/filters.php',
'2c102faa651ef8ea5874edb585946bce' => $vendorDir . '/swiftmailer/swiftmailer/lib/swift_required.php',
'5255c38a0faeba867671b61dfda6d864' => $vendorDir . '/paragonie/random_compat/lib/random.php',
'ce89ac35a6c330c55f4710717db9ff78' => $vendorDir . '/kriswallsmith/assetic/src/functions.php',
'bd9634f2d41831496de0d3dfe4c94881' => $vendorDir . '/symfony/polyfill-php56/bootstrap.php',
'32dcc8afd4335739640db7d200c1971d' => $vendorDir . '/symfony/polyfill-apcu/bootstrap.php',
'6a47392539ca2329373e0d33e1dba053' => $vendorDir . '/symfony/polyfill-intl-icu/bootstrap.php',
'bd9634f2d41831496de0d3dfe4c94881' => $vendorDir . '/symfony/polyfill-php56/bootstrap.php',
'023d27dca8066ef29e6739335ea73bad' => $vendorDir . '/symfony/polyfill-php70/bootstrap.php',
'ce89ac35a6c330c55f4710717db9ff78' => $vendorDir . '/kriswallsmith/assetic/src/functions.php',
);
@@ -11,9 +11,17 @@ return array(
'SensioLabs\\Security' => array($vendorDir . '/sensiolabs/security-checker'),
'RequestLab\\VimeoBundle' => array($vendorDir . '/requestlab/vimeo-bundle'),
'ProxyManager\\' => array($vendorDir . '/ocramius/proxy-manager/src'),
'PhpOption\\' => array($vendorDir . '/phpoption/phpoption/src'),
'PhpCollection' => array($vendorDir . '/phpcollection/phpcollection/src'),
'Pagerfanta\\' => array($vendorDir . '/pagerfanta/pagerfanta/src'),
'Neutron' => array($vendorDir . '/neutron/temporary-filesystem/src'),
'Mongo' => array($vendorDir . '/alcaeus/mongo-php-adapter/lib/Mongo'),
'Metadata\\' => array($vendorDir . '/jms/metadata/src'),
'JsonpCallbackValidator' => array($vendorDir . '/willdurand/jsonp-callback-validator/src'),
'JMS\\Serializer' => array($vendorDir . '/jms/serializer/src'),
'JMS\\' => array($vendorDir . '/jms/parser-lib/src'),
'Imagine' => array($vendorDir . '/imagine/imagine/lib'),
'Hateoas' => array($vendorDir . '/willdurand/hateoas/src'),
'FFMpeg' => array($vendorDir . '/php-ffmpeg/php-ffmpeg/src'),
'Evenement' => array($vendorDir . '/evenement/evenement/src'),
'Doctrine\\ODM\\MongoDB' => array($vendorDir . '/doctrine/mongodb-odm/lib'),
+19 -1
View File
@@ -8,6 +8,10 @@ $baseDir = dirname($vendorDir);
return array(
'Zend\\EventManager\\' => array($vendorDir . '/zendframework/zend-eventmanager/src'),
'Zend\\Code\\' => array($vendorDir . '/zendframework/zend-code/src'),
'WhiteOctober\\PagerfantaBundle\\View\\' => array($vendorDir . '/white-october/pagerfanta-bundle/View'),
'WhiteOctober\\PagerfantaBundle\\Twig\\' => array($vendorDir . '/white-october/pagerfanta-bundle/Twig'),
'WhiteOctober\\PagerfantaBundle\\EventListener\\' => array($vendorDir . '/white-october/pagerfanta-bundle/EventListener'),
'WhiteOctober\\PagerfantaBundle\\DependencyInjection\\' => array($vendorDir . '/white-october/pagerfanta-bundle/DependencyInjection'),
'Vimeo\\' => array($vendorDir . '/vimeo/vimeo-api/src/Vimeo'),
'Twig\\Extensions\\' => array($vendorDir . '/twig/extensions/src'),
'Twig\\' => array($vendorDir . '/twig/twig/src'),
@@ -16,8 +20,10 @@ return array(
'Symfony\\Polyfill\\Php70\\' => array($vendorDir . '/symfony/polyfill-php70'),
'Symfony\\Polyfill\\Php56\\' => array($vendorDir . '/symfony/polyfill-php56'),
'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'),
'Symfony\\Polyfill\\Apcu\\' => array($vendorDir . '/symfony/polyfill-apcu'),
'Symfony\\Component\\' => array($vendorDir . '/symfony/symfony/src/Symfony/Component'),
'Symfony\\Bundle\\TwigBundle\\' => array($vendorDir . '/symfony/twig-bundle'),
'Symfony\\Bundle\\SwiftmailerBundle\\' => array($vendorDir . '/symfony/swiftmailer-bundle'),
'Symfony\\Bundle\\MonologBundle\\' => array($vendorDir . '/symfony/monolog-bundle'),
'Symfony\\Bundle\\AsseticBundle\\' => array($vendorDir . '/symfony/assetic-bundle'),
@@ -30,15 +36,23 @@ return array(
'Sensio\\Bundle\\GeneratorBundle\\' => array($vendorDir . '/sensio/generator-bundle'),
'Sensio\\Bundle\\FrameworkExtraBundle\\' => array($vendorDir . '/sensio/framework-extra-bundle'),
'Sensio\\Bundle\\DistributionBundle\\' => array($vendorDir . '/sensio/distribution-bundle'),
'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'),
'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
'Psr\\Link\\' => array($vendorDir . '/psr/link/src'),
'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src'),
'Psr\\Container\\' => array($vendorDir . '/psr/container/src'),
'Psr\\Cache\\' => array($vendorDir . '/psr/cache/src'),
'PackageVersions\\' => array($vendorDir . '/ocramius/package-versions/src/PackageVersions'),
'Nmure\\CrawlerDetectBundle\\' => array($vendorDir . '/nmure/crawler-detect-bundle'),
'Negotiation\\' => array($vendorDir . '/willdurand/negotiation/src/Negotiation'),
'Namshi\\JOSE\\' => array($vendorDir . '/namshi/jose/src/Namshi/JOSE'),
'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'),
'MongoDB\\' => array($vendorDir . '/mongodb/mongodb/src'),
'Liip\\ImagineBundle\\' => array($vendorDir . '/liip/imagine-bundle'),
'Lexik\\Bundle\\JWTAuthenticationBundle\\' => array($vendorDir . '/lexik/jwt-authentication-bundle'),
'Lcobucci\\JWT\\' => array($vendorDir . '/lcobucci/jwt/src'),
'Jaybizzle\\CrawlerDetect\\' => array($vendorDir . '/jaybizzle/crawler-detect/src'),
'JMS\\SerializerBundle\\' => array($vendorDir . '/jms/serializer-bundle'),
'Incenteev\\ParameterHandler\\' => array($vendorDir . '/incenteev/composer-parameter-handler'),
'Http\\Promise\\' => array($vendorDir . '/php-http/promise/src'),
'Http\\Message\\' => array($vendorDir . '/php-http/message/src', $vendorDir . '/php-http/message-factory/src'),
@@ -52,25 +66,29 @@ return array(
'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'),
'GuzzleHttp\\Promise\\' => array($vendorDir . '/guzzlehttp/promises/src'),
'GuzzleHttp\\' => array($vendorDir . '/guzzlehttp/guzzle/src'),
'Fig\\Link\\' => array($vendorDir . '/fig/link-util/src'),
'Fairlane\\CookieConsentBundle\\' => array($vendorDir . '/fairlane/cookie-consent-bundle'),
'FOS\\UserBundle\\' => array($vendorDir . '/friendsofsymfony/user-bundle'),
'FOS\\RestBundle\\' => array($vendorDir . '/friendsofsymfony/rest-bundle'),
'FOS\\ElasticaBundle\\' => array($vendorDir . '/friendsofsymfony/elastica-bundle'),
'Elastica\\' => array($vendorDir . '/ruflin/elastica/lib/Elastica'),
'Dunglas\\DoctrineJsonOdm\\' => array($vendorDir . '/dunglas/doctrine-json-odm/src'),
'Dubture\\FFmpegBundle\\' => array($vendorDir . '/pulse00/ffmpeg-bundle'),
'Doctrine\\ORM\\' => array($vendorDir . '/doctrine/orm/lib/Doctrine/ORM'),
'Doctrine\\Migrations\\' => array($vendorDir . '/doctrine/migrations/lib/Doctrine/Migrations'),
'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'),
'Doctrine\\DBAL\\Migrations\\' => array($vendorDir . '/doctrine/migrations/lib/Doctrine/DBAL/Migrations'),
'Doctrine\\Common\\Inflector\\' => array($vendorDir . '/doctrine/inflector/lib/Doctrine/Common/Inflector'),
'Doctrine\\Common\\Cache\\' => array($vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache'),
'Doctrine\\Common\\Annotations\\' => array($vendorDir . '/doctrine/annotations/lib/Doctrine/Common/Annotations'),
'Doctrine\\Common\\' => array($vendorDir . '/doctrine/common/lib/Doctrine/Common'),
'Doctrine\\Common\\' => array($vendorDir . '/doctrine/common/lib/Doctrine/Common', $vendorDir . '/doctrine/event-manager/lib/Doctrine/Common', $vendorDir . '/doctrine/persistence/lib/Doctrine/Common', $vendorDir . '/doctrine/reflection/lib/Doctrine/Common'),
'Doctrine\\Bundle\\MongoDBBundle\\' => array($vendorDir . '/doctrine/mongodb-odm-bundle'),
'Doctrine\\Bundle\\MigrationsBundle\\' => array($vendorDir . '/doctrine/doctrine-migrations-bundle'),
'Doctrine\\Bundle\\DoctrineCacheBundle\\' => array($vendorDir . '/doctrine/doctrine-cache-bundle'),
'Doctrine\\Bundle\\DoctrineBundle\\' => array($vendorDir . '/doctrine/doctrine-bundle'),
'Composer\\CaBundle\\' => array($vendorDir . '/composer/ca-bundle/src'),
'Clue\\StreamFilter\\' => array($vendorDir . '/clue/stream-filter/src'),
'Bazinga\\Bundle\\HateoasBundle\\' => array($vendorDir . '/willdurand/hateoas-bundle'),
'Alcaeus\\MongoDbAdapter\\' => array($vendorDir . '/alcaeus/mongo-php-adapter/lib/Alcaeus/MongoDbAdapter'),
'' => array($baseDir . '/src'),
);
+143 -4
View File
@@ -10,19 +10,20 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
'3a37ebac017bc098e9a86b35401e7a68' => __DIR__ . '/..' . '/mongodb/mongodb/src/functions.php',
'06dd8487319ccd8403765f5b8c9f2d61' => __DIR__ . '/..' . '/alcaeus/mongo-php-adapter/lib/Mongo/functions.php',
'92c8763cd6170fce6fcfe7e26b4e8c10' => __DIR__ . '/..' . '/symfony/phpunit-bridge/bootstrap.php',
'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php',
'320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php',
'ddc0a4d7e61c0286f0f8593b1903e894' => __DIR__ . '/..' . '/clue/stream-filter/src/functions.php',
'8cff32064859f4559445b89279f3199c' => __DIR__ . '/..' . '/php-http/message/src/filters.php',
'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php',
'37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php',
'8cff32064859f4559445b89279f3199c' => __DIR__ . '/..' . '/php-http/message/src/filters.php',
'2c102faa651ef8ea5874edb585946bce' => __DIR__ . '/..' . '/swiftmailer/swiftmailer/lib/swift_required.php',
'5255c38a0faeba867671b61dfda6d864' => __DIR__ . '/..' . '/paragonie/random_compat/lib/random.php',
'ce89ac35a6c330c55f4710717db9ff78' => __DIR__ . '/..' . '/kriswallsmith/assetic/src/functions.php',
'bd9634f2d41831496de0d3dfe4c94881' => __DIR__ . '/..' . '/symfony/polyfill-php56/bootstrap.php',
'32dcc8afd4335739640db7d200c1971d' => __DIR__ . '/..' . '/symfony/polyfill-apcu/bootstrap.php',
'6a47392539ca2329373e0d33e1dba053' => __DIR__ . '/..' . '/symfony/polyfill-intl-icu/bootstrap.php',
'bd9634f2d41831496de0d3dfe4c94881' => __DIR__ . '/..' . '/symfony/polyfill-php56/bootstrap.php',
'023d27dca8066ef29e6739335ea73bad' => __DIR__ . '/..' . '/symfony/polyfill-php70/bootstrap.php',
'ce89ac35a6c330c55f4710717db9ff78' => __DIR__ . '/..' . '/kriswallsmith/assetic/src/functions.php',
);
public static $prefixLengthsPsr4 = array (
@@ -31,6 +32,13 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
'Zend\\EventManager\\' => 18,
'Zend\\Code\\' => 10,
),
'W' =>
array (
'WhiteOctober\\PagerfantaBundle\\View\\' => 35,
'WhiteOctober\\PagerfantaBundle\\Twig\\' => 35,
'WhiteOctober\\PagerfantaBundle\\EventListener\\' => 44,
'WhiteOctober\\PagerfantaBundle\\DependencyInjection\\' => 50,
),
'V' =>
array (
'Vimeo\\' => 6,
@@ -47,8 +55,10 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
'Symfony\\Polyfill\\Php70\\' => 23,
'Symfony\\Polyfill\\Php56\\' => 23,
'Symfony\\Polyfill\\Mbstring\\' => 26,
'Symfony\\Polyfill\\Ctype\\' => 23,
'Symfony\\Polyfill\\Apcu\\' => 22,
'Symfony\\Component\\' => 18,
'Symfony\\Bundle\\TwigBundle\\' => 26,
'Symfony\\Bundle\\SwiftmailerBundle\\' => 33,
'Symfony\\Bundle\\MonologBundle\\' => 29,
'Symfony\\Bundle\\AsseticBundle\\' => 29,
@@ -64,14 +74,19 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
),
'P' =>
array (
'Psr\\SimpleCache\\' => 16,
'Psr\\Log\\' => 8,
'Psr\\Link\\' => 9,
'Psr\\Http\\Message\\' => 17,
'Psr\\Container\\' => 14,
'Psr\\Cache\\' => 10,
'PackageVersions\\' => 16,
),
'N' =>
array (
'Nmure\\CrawlerDetectBundle\\' => 26,
'Negotiation\\' => 12,
'Namshi\\JOSE\\' => 12,
),
'M' =>
array (
@@ -81,10 +96,13 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
'L' =>
array (
'Liip\\ImagineBundle\\' => 19,
'Lexik\\Bundle\\JWTAuthenticationBundle\\' => 37,
'Lcobucci\\JWT\\' => 13,
),
'J' =>
array (
'Jaybizzle\\CrawlerDetect\\' => 24,
'JMS\\SerializerBundle\\' => 21,
),
'I' =>
array (
@@ -110,8 +128,10 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
),
'F' =>
array (
'Fig\\Link\\' => 9,
'Fairlane\\CookieConsentBundle\\' => 29,
'FOS\\UserBundle\\' => 15,
'FOS\\RestBundle\\' => 15,
'FOS\\ElasticaBundle\\' => 19,
),
'E' =>
@@ -123,6 +143,7 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
'Dunglas\\DoctrineJsonOdm\\' => 24,
'Dubture\\FFmpegBundle\\' => 21,
'Doctrine\\ORM\\' => 13,
'Doctrine\\Migrations\\' => 20,
'Doctrine\\Instantiator\\' => 22,
'Doctrine\\DBAL\\Migrations\\' => 25,
'Doctrine\\Common\\Inflector\\' => 26,
@@ -139,6 +160,10 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
'Composer\\CaBundle\\' => 18,
'Clue\\StreamFilter\\' => 18,
),
'B' =>
array (
'Bazinga\\Bundle\\HateoasBundle\\' => 29,
),
'A' =>
array (
'Alcaeus\\MongoDbAdapter\\' => 23,
@@ -154,6 +179,22 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
array (
0 => __DIR__ . '/..' . '/zendframework/zend-code/src',
),
'WhiteOctober\\PagerfantaBundle\\View\\' =>
array (
0 => __DIR__ . '/..' . '/white-october/pagerfanta-bundle/View',
),
'WhiteOctober\\PagerfantaBundle\\Twig\\' =>
array (
0 => __DIR__ . '/..' . '/white-october/pagerfanta-bundle/Twig',
),
'WhiteOctober\\PagerfantaBundle\\EventListener\\' =>
array (
0 => __DIR__ . '/..' . '/white-october/pagerfanta-bundle/EventListener',
),
'WhiteOctober\\PagerfantaBundle\\DependencyInjection\\' =>
array (
0 => __DIR__ . '/..' . '/white-october/pagerfanta-bundle/DependencyInjection',
),
'Vimeo\\' =>
array (
0 => __DIR__ . '/..' . '/vimeo/vimeo-api/src/Vimeo',
@@ -186,6 +227,10 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
array (
0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring',
),
'Symfony\\Polyfill\\Ctype\\' =>
array (
0 => __DIR__ . '/..' . '/symfony/polyfill-ctype',
),
'Symfony\\Polyfill\\Apcu\\' =>
array (
0 => __DIR__ . '/..' . '/symfony/polyfill-apcu',
@@ -194,6 +239,10 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
array (
0 => __DIR__ . '/..' . '/symfony/symfony/src/Symfony/Component',
),
'Symfony\\Bundle\\TwigBundle\\' =>
array (
0 => __DIR__ . '/..' . '/symfony/twig-bundle',
),
'Symfony\\Bundle\\SwiftmailerBundle\\' =>
array (
0 => __DIR__ . '/..' . '/symfony/swiftmailer-bundle',
@@ -242,14 +291,26 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
array (
0 => __DIR__ . '/..' . '/sensio/distribution-bundle',
),
'Psr\\SimpleCache\\' =>
array (
0 => __DIR__ . '/..' . '/psr/simple-cache/src',
),
'Psr\\Log\\' =>
array (
0 => __DIR__ . '/..' . '/psr/log/Psr/Log',
),
'Psr\\Link\\' =>
array (
0 => __DIR__ . '/..' . '/psr/link/src',
),
'Psr\\Http\\Message\\' =>
array (
0 => __DIR__ . '/..' . '/psr/http-message/src',
),
'Psr\\Container\\' =>
array (
0 => __DIR__ . '/..' . '/psr/container/src',
),
'Psr\\Cache\\' =>
array (
0 => __DIR__ . '/..' . '/psr/cache/src',
@@ -262,6 +323,14 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
array (
0 => __DIR__ . '/..' . '/nmure/crawler-detect-bundle',
),
'Negotiation\\' =>
array (
0 => __DIR__ . '/..' . '/willdurand/negotiation/src/Negotiation',
),
'Namshi\\JOSE\\' =>
array (
0 => __DIR__ . '/..' . '/namshi/jose/src/Namshi/JOSE',
),
'Monolog\\' =>
array (
0 => __DIR__ . '/..' . '/monolog/monolog/src/Monolog',
@@ -274,10 +343,22 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
array (
0 => __DIR__ . '/..' . '/liip/imagine-bundle',
),
'Lexik\\Bundle\\JWTAuthenticationBundle\\' =>
array (
0 => __DIR__ . '/..' . '/lexik/jwt-authentication-bundle',
),
'Lcobucci\\JWT\\' =>
array (
0 => __DIR__ . '/..' . '/lcobucci/jwt/src',
),
'Jaybizzle\\CrawlerDetect\\' =>
array (
0 => __DIR__ . '/..' . '/jaybizzle/crawler-detect/src',
),
'JMS\\SerializerBundle\\' =>
array (
0 => __DIR__ . '/..' . '/jms/serializer-bundle',
),
'Incenteev\\ParameterHandler\\' =>
array (
0 => __DIR__ . '/..' . '/incenteev/composer-parameter-handler',
@@ -333,6 +414,10 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
array (
0 => __DIR__ . '/..' . '/guzzlehttp/guzzle/src',
),
'Fig\\Link\\' =>
array (
0 => __DIR__ . '/..' . '/fig/link-util/src',
),
'Fairlane\\CookieConsentBundle\\' =>
array (
0 => __DIR__ . '/..' . '/fairlane/cookie-consent-bundle',
@@ -341,6 +426,10 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
array (
0 => __DIR__ . '/..' . '/friendsofsymfony/user-bundle',
),
'FOS\\RestBundle\\' =>
array (
0 => __DIR__ . '/..' . '/friendsofsymfony/rest-bundle',
),
'FOS\\ElasticaBundle\\' =>
array (
0 => __DIR__ . '/..' . '/friendsofsymfony/elastica-bundle',
@@ -361,6 +450,10 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
array (
0 => __DIR__ . '/..' . '/doctrine/orm/lib/Doctrine/ORM',
),
'Doctrine\\Migrations\\' =>
array (
0 => __DIR__ . '/..' . '/doctrine/migrations/lib/Doctrine/Migrations',
),
'Doctrine\\Instantiator\\' =>
array (
0 => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator',
@@ -384,6 +477,9 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
'Doctrine\\Common\\' =>
array (
0 => __DIR__ . '/..' . '/doctrine/common/lib/Doctrine/Common',
1 => __DIR__ . '/..' . '/doctrine/event-manager/lib/Doctrine/Common',
2 => __DIR__ . '/..' . '/doctrine/persistence/lib/Doctrine/Common',
3 => __DIR__ . '/..' . '/doctrine/reflection/lib/Doctrine/Common',
),
'Doctrine\\Bundle\\MongoDBBundle\\' =>
array (
@@ -409,6 +505,10 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
array (
0 => __DIR__ . '/..' . '/clue/stream-filter/src',
),
'Bazinga\\Bundle\\HateoasBundle\\' =>
array (
0 => __DIR__ . '/..' . '/willdurand/hateoas-bundle',
),
'Alcaeus\\MongoDbAdapter\\' =>
array (
0 => __DIR__ . '/..' . '/alcaeus/mongo-php-adapter/lib/Alcaeus/MongoDbAdapter',
@@ -451,6 +551,18 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
array (
0 => __DIR__ . '/..' . '/ocramius/proxy-manager/src',
),
'PhpOption\\' =>
array (
0 => __DIR__ . '/..' . '/phpoption/phpoption/src',
),
'PhpCollection' =>
array (
0 => __DIR__ . '/..' . '/phpcollection/phpcollection/src',
),
'Pagerfanta\\' =>
array (
0 => __DIR__ . '/..' . '/pagerfanta/pagerfanta/src',
),
),
'N' =>
array (
@@ -465,6 +577,25 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
array (
0 => __DIR__ . '/..' . '/alcaeus/mongo-php-adapter/lib/Mongo',
),
'Metadata\\' =>
array (
0 => __DIR__ . '/..' . '/jms/metadata/src',
),
),
'J' =>
array (
'JsonpCallbackValidator' =>
array (
0 => __DIR__ . '/..' . '/willdurand/jsonp-callback-validator/src',
),
'JMS\\Serializer' =>
array (
0 => __DIR__ . '/..' . '/jms/serializer/src',
),
'JMS\\' =>
array (
0 => __DIR__ . '/..' . '/jms/parser-lib/src',
),
),
'I' =>
array (
@@ -473,6 +604,13 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
0 => __DIR__ . '/..' . '/imagine/imagine/lib',
),
),
'H' =>
array (
'Hateoas' =>
array (
0 => __DIR__ . '/..' . '/willdurand/hateoas/src',
),
),
'F' =>
array (
'FFMpeg' =>
@@ -546,6 +684,7 @@ class ComposerStaticInit1b32d02bd8fea2d524bf79b36ada5830
'SessionUpdateTimestampHandlerInterface' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/SessionUpdateTimestampHandlerInterface.php',
'SqlFormatter' => __DIR__ . '/..' . '/jdorn/sql-formatter/lib/SqlFormatter.php',
'TypeError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/TypeError.php',
'WhiteOctober\\PagerfantaBundle\\WhiteOctoberPagerfantaBundle' => __DIR__ . '/..' . '/white-october/pagerfanta-bundle/WhiteOctoberPagerfantaBundle.php',
);
public static function getInitializer(ClassLoader $loader)
@@ -27,7 +27,7 @@
"php": "^5.3.2 || ^7.0"
},
"require-dev": {
"phpunit/phpunit": "^4.8.35",
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5",
"psr/log": "^1.0",
"symfony/process": "^2.5 || ^3.0 || ^4.0"
},
+211 -543
View File
@@ -1,7 +1,7 @@
##
## Bundle of CA Root Certificates
##
## Certificate data from Mozilla as of: Wed Sep 20 03:12:05 2017 GMT
## Certificate data from Mozilla as of: Wed Jun 20 03:12:06 2018 GMT
##
## This is a bundle of X.509 certificates of public Certificate Authorities
## (CA). These were automatically extracted from Mozilla's root certificates
@@ -14,7 +14,7 @@
## Just configure this file as the SSLCACertificateFile.
##
## Conversion done with mk-ca-bundle.pl version 1.27.
## SHA256: 2b2dbe5244e0047e088c597998883a913f6c5fffd1cb5c0fe5a368c8466cb2ec
## SHA256: c80f571d9f4ebca4a91e0ad3a546f263153d71afffc845c6f8f52ce9d1a2e8ec
##
@@ -283,25 +283,6 @@ YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
398znM/jra6O1I7mT1GvFpLgXPYHDw==
-----END CERTIFICATE-----
Certum Root CA
==============
-----BEGIN CERTIFICATE-----
MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK
ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla
Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u
by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x
wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL
kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ
89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K
Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P
NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq
hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+
GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg
GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/
0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS
qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw==
-----END CERTIFICATE-----
Comodo AAA Services root
========================
-----BEGIN CERTIFICATE-----
@@ -465,60 +446,6 @@ EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH
llpwrN9M
-----END CERTIFICATE-----
Camerfirma Chambers of Commerce Root
====================================
-----BEGIN CERTIFICATE-----
MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx
NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp
cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn
MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC
AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU
xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH
NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW
DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV
d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud
EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v
cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P
AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh
bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD
VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz
aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi
fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD
L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN
UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n
ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1
erfutGWaIZDgqtCYvDi1czyL+Nw=
-----END CERTIFICATE-----
Camerfirma Global Chambersign Root
==================================
-----BEGIN CERTIFICATE-----
MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe
QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i
ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx
NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt
YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg
MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw
ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J
1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O
by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl
6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c
8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/
BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j
aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B
Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj
aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y
ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh
bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA
PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y
gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ
PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4
IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes
t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
-----END CERTIFICATE-----
XRamp Global CA Root
====================
-----BEGIN CERTIFICATE-----
@@ -591,47 +518,6 @@ KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3
QBFGmh95DmK/D5fs4C8fF5Q=
-----END CERTIFICATE-----
StartCom Certification Authority
================================
-----BEGIN CERTIFICATE-----
MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0
Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj
YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH
AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw
Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg
U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5
LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl
cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh
cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT
dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC
AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh
3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm
vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk
fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3
fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ
EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl
1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/
lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro
g14=
-----END CERTIFICATE-----
Taiwan GRCA
===========
-----BEGIN CERTIFICATE-----
@@ -770,30 +656,6 @@ RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS
fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
-----END CERTIFICATE-----
DST ACES CA X6
==============
-----BEGIN CERTIFICATE-----
MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG
EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT
MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha
MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE
CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI
DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa
pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow
GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy
MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud
EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu
Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy
dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU
CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2
5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t
Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq
nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs
vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3
oKfN5XozNmr6mis=
-----END CERTIFICATE-----
SwissSign Gold CA - G2
======================
-----BEGIN CERTIFICATE-----
@@ -1036,27 +898,6 @@ FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA
U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
-----END CERTIFICATE-----
Security Communication EV RootCA1
=================================
-----BEGIN CERTIFICATE-----
MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh
dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE
BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl
Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO
/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX
WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z
ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4
bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK
9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm
iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG
Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW
mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW
T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490
-----END CERTIFICATE-----
OISTE WISeKey Global Root GA CA
===============================
-----BEGIN CERTIFICATE-----
@@ -1177,34 +1018,6 @@ sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD
BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw=
-----END CERTIFICATE-----
T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3
=============================================================================================================================
-----BEGIN CERTIFICATE-----
MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH
DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q
aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry
b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV
BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg
S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4
MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl
IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF
n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl
IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft
dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl
cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO
Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1
xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR
6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL
hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd
BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4
N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT
y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh
LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M
dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI=
-----END CERTIFICATE-----
certSIGN ROOT CA
================
-----BEGIN CERTIFICATE-----
@@ -1452,37 +1265,6 @@ y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061
lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I=
-----END CERTIFICATE-----
ACEDICOM Root
=============
-----BEGIN CERTIFICATE-----
MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UEAwwNQUNFRElD
T00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMB4XDTA4
MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEWMBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoG
A1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEF
AAOCAg8AMIICCgKCAgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHk
WLn709gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7XBZXehuD
YAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5PGrjm6gSSrj0RuVFCPYew
MYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAKt0SdE3QrwqXrIhWYENiLxQSfHY9g5QYb
m8+5eaA9oiM/Qj9r+hwDezCNzmzAv+YbX79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbk
HQl/Sog4P75n/TSW9R28MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTT
xKJxqvQUfecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI2Sf2
3EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyHK9caUPgn6C9D4zq9
2Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEaeZAwUswdbxcJzbPEHXEUkFDWug/Fq
TYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz
4SsrSbbXc6GqlPUB53NlTKxQMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU
9QHnc2VMrFAwRAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv
bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWImfQwng4/F9tqg
aHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3gvoFNTPhNahXwOf9jU8/kzJP
eGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKeI6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1Pwk
zQSulgUV1qzOMPPKC8W64iLgpq0i5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1
ThCojz2GuHURwCRiipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oI
KiMnMCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZo5NjEFIq
nxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6zqylfDJKZ0DcMDQj3dcE
I2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacNGHk0vFQYXlPKNFHtRQrmjseCNj6nOGOp
MCwXEGCSn1WHElkQwg9naRHMTh5+Spqtr0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3o
tkYNbn5XOmeUwssfnHdKZ05phkOTOPu220+DkdRgfks+KzgHVZhepA==
-----END CERTIFICATE-----
Microsec e-Szigno Root CA 2009
==============================
-----BEGIN CERTIFICATE-----
@@ -1843,37 +1625,6 @@ Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
-----END CERTIFICATE-----
Certinomis - Autorité Racine
============================
-----BEGIN CERTIFICATE-----
MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg
LSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkG
A1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYw
JAYDVQQDDB1DZXJ0aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQAD
ggIPADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jYF1AMnmHa
wE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N8y4oH3DfVS9O7cdxbwly
Lu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWerP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw
2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92N
jMD2AR5vpTESOH2VwnHu7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9q
c1pkIuVC28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6lSTC
lrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1Enn1So2+WLhl+HPNb
xxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB0iSVL1N6aaLwD4ZFjliCK0wi1F6g
530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql095gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna
4NH4+ej9Uji29YnfAgMBAAGjWzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
A1UdDgQWBBQNjLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ
KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9sov3/4gbIOZ/x
WqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZMOH8oMDX/nyNTt7buFHAAQCva
R6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40
nJ+U8/aGH88bc62UeYdocMMzpXDn2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1B
CxMjidPJC+iKunqjo3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjv
JL1vnxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG5ERQL1TE
qkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWqpdEdnV1j6CTmNhTih60b
WfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZbdsLLO7XSAPCjDuGtbkD326C00EauFddE
wk01+dIL8hf2rGbVJLJP0RyZwG71fet0BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/
vgt2Fl43N+bYdJeimUV5
-----END CERTIFICATE-----
TWCA Root Certification Authority
=================================
-----BEGIN CERTIFICATE-----
@@ -2022,75 +1773,6 @@ l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl
iB6XzCGcKQENZetX2fNXlrtIzYE=
-----END CERTIFICATE-----
StartCom Certification Authority
================================
-----BEGIN CERTIFICATE-----
MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu
ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0
NjM3WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk
LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg
U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y
o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/
Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d
eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt
2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z
6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ
osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/
untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc
UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
37uMdBNSSwIDAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQ
Qa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCCATgwLgYIKwYBBQUHAgEWImh0
dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu
c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENv
bW1lcmNpYWwgKFN0YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0
aGUgc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0
aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t
L3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBG
cmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5
fPGFf59Jb2vKXfuM/gTFwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWm
N3PH/UvSTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst0OcN
Org+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNcpRJvkrKTlMeIFw6T
tn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKlCcWw0bdT82AUuoVpaiF8H3VhFyAX
e2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVFP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA
2MFrLH9ZXF2RsXAiV+uKa0hK1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBs
HvUwyKMQ5bLmKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE
JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ8dCAWZvLMdib
D4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnmfyWl8kgAwKQB2j8=
-----END CERTIFICATE-----
StartCom Certification Authority G2
===================================
-----BEGIN CERTIFICATE-----
MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
U3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
RzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UE
ChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3Jp
dHkgRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8O
o1XJJZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsDvfOpL9HG
4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnooD/Uefyf3lLE3PbfHkffi
Aez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/Q0kGi4xDuFby2X8hQxfqp0iVAXV16iul
Q5XqFYSdCI0mblWbq9zSOdIxHWDirMxWRST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbs
O+wmETRIjfaAKxojAuuKHDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8H
vKTlXcxNnw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM0D4L
nMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/iUUjXuG+v+E5+M5iS
FGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9Ha90OrInwMEePnWjFqmveiJdnxMa
z6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHgTuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8E
BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJ
KoZIhvcNAQELBQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K
2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfXUfEpY9Z1zRbk
J4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl6/2o1PXWT6RbdejF0mCy2wl+
JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG
/+gyRr61M3Z3qAFdlsHB1b6uJcDJHgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTc
nIhT76IxW1hPkWLIwpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/Xld
blhYXzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5lIxKVCCIc
l85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoohdVddLHRDiBYmxOlsGOm
7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulrso8uBtjRkcfGEvRM/TAXw8HaOFvjqerm
obp573PYtlNXLfbQ4ddI
-----END CERTIFICATE-----
Buypass Class 2 Root CA
=======================
-----BEGIN CERTIFICATE-----
@@ -2197,31 +1879,6 @@ uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU
dcGWxZ0=
-----END CERTIFICATE-----
TURKTRUST Certificate Services Provider Root 2007
=================================================
-----BEGIN CERTIFICATE-----
MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP
MA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4X
DTA3MTIyNTE4MzcxOVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxl
a3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMCVFIxDzAN
BgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4gKGMpIEFyYWzEsWsgMjAwNzCCASIw
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9N
YvDdE3ePYakqtdTyuTFYKTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQv
KUmi8wUG+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveGHtya
KhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6PIzdezKKqdfcYbwnT
rqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M733WB2+Y8a+xwXrXgTW4qhe04MsC
AwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHkYb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAP
BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/s
Px+EnWVUXKgWAkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I
aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5mxRZNTZPz/OO
Xl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsaXRik7r4EW5nVcV9VZWRi1aKb
BFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZqxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAK
poRq0Tl9
-----END CERTIFICATE-----
D-TRUST Root Class 3 CA 2 2009
==============================
-----BEGIN CERTIFICATE-----
@@ -2271,84 +1928,6 @@ NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv
w9y4AyHqnxbxLFS1
-----END CERTIFICATE-----
PSCProcert
==========
-----BEGIN CERTIFICATE-----
MIIJhjCCB26gAwIBAgIBCzANBgkqhkiG9w0BAQsFADCCAR4xPjA8BgNVBAMTNUF1dG9yaWRhZCBk
ZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9sYW5vMQswCQYDVQQGEwJWRTEQ
MA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlzdHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lz
dGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBl
cmludGVuZGVuY2lhIGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUw
IwYJKoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTEwMTIyODE2NTEwMFoXDTIw
MTIyNTIzNTk1OVowgdExJjAkBgkqhkiG9w0BCQEWF2NvbnRhY3RvQHByb2NlcnQubmV0LnZlMQ8w
DQYDVQQHEwZDaGFjYW8xEDAOBgNVBAgTB01pcmFuZGExKjAoBgNVBAsTIVByb3ZlZWRvciBkZSBD
ZXJ0aWZpY2Fkb3MgUFJPQ0VSVDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZp
Y2FjaW9uIEVsZWN0cm9uaWNhMQswCQYDVQQGEwJWRTETMBEGA1UEAxMKUFNDUHJvY2VydDCCAiIw
DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANW39KOUM6FGqVVhSQ2oh3NekS1wwQYalNo97BVC
wfWMrmoX8Yqt/ICV6oNEolt6Vc5Pp6XVurgfoCfAUFM+jbnADrgV3NZs+J74BCXfgI8Qhd19L3uA
3VcAZCP4bsm+lU/hdezgfl6VzbHvvnpC2Mks0+saGiKLt38GieU89RLAu9MLmV+QfI4tL3czkkoh
RqipCKzx9hEC2ZUWno0vluYC3XXCFCpa1sl9JcLB/KpnheLsvtF8PPqv1W7/U0HU9TI4seJfxPmO
EO8GqQKJ/+MMbpfg353bIdD0PghpbNjU5Db4g7ayNo+c7zo3Fn2/omnXO1ty0K+qP1xmk6wKImG2
0qCZyFSTXai20b1dCl53lKItwIKOvMoDKjSuc/HUtQy9vmebVOvh+qBa7Dh+PsHMosdEMXXqP+UH
0quhJZb25uSgXTcYOWEAM11G1ADEtMo88aKjPvM6/2kwLkDd9p+cJsmWN63nOaK/6mnbVSKVUyqU
td+tFjiBdWbjxywbk5yqjKPK2Ww8F22c3HxT4CAnQzb5EuE8XL1mv6JpIzi4mWCZDlZTOpx+FIyw
Bm/xhnaQr/2v/pDGj59/i5IjnOcVdo/Vi5QTcmn7K2FjiO/mpF7moxdqWEfLcU8UC17IAggmosvp
r2uKGcfLFFb14dq12fy/czja+eevbqQ34gcnAgMBAAGjggMXMIIDEzASBgNVHRMBAf8ECDAGAQH/
AgEBMDcGA1UdEgQwMC6CD3N1c2NlcnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAz
Ni0wMB0GA1UdDgQWBBRBDxk4qpl/Qguk1yeYVKIXTC1RVDCCAVAGA1UdIwSCAUcwggFDgBStuyId
xuDSAaj9dlBSk+2YwU2u06GCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0b3JpZGFkIGRlIENlcnRp
ZmljYWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xhbm8xCzAJBgNVBAYTAlZFMRAwDgYDVQQH
EwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0cml0byBDYXBpdGFsMTYwNAYDVQQKEy1TaXN0ZW1hIE5h
Y2lvbmFsIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5k
ZW5jaWEgZGUgU2VydmljaW9zIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkqhkiG
9w0BCQEWFmFjcmFpekBzdXNjZXJ0ZS5nb2IudmWCAQowDgYDVR0PAQH/BAQDAgEGME0GA1UdEQRG
MESCDnByb2NlcnQubmV0LnZloBUGBWCGXgIBoAwMClBTQy0wMDAwMDKgGwYFYIZeAgKgEgwQUklG
LUotMzE2MzUzNzMtNzB2BgNVHR8EbzBtMEagRKBChkBodHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52
ZS9sY3IvQ0VSVElGSUNBRE8tUkFJWi1TSEEzODRDUkxERVIuY3JsMCOgIaAfhh1sZGFwOi8vYWNy
YWl6LnN1c2NlcnRlLmdvYi52ZTA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9v
Y3NwLnN1c2NlcnRlLmdvYi52ZTBBBgNVHSAEOjA4MDYGBmCGXgMBAjAsMCoGCCsGAQUFBwIBFh5o
dHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52ZS9kcGMwDQYJKoZIhvcNAQELBQADggIBACtZ6yKZu4Sq
T96QxtGGcSOeSwORR3C7wJJg7ODU523G0+1ng3dS1fLld6c2suNUvtm7CpsR72H0xpkzmfWvADmN
g7+mvTV+LFwxNG9s2/NkAZiqlCxB3RWGymspThbASfzXg0gTB1GEMVKIu4YXx2sviiCtxQuPcD4q
uxtxj7mkoP3YldmvWb8lK5jpY5MvYB7Eqvh39YtsL+1+LrVPQA3uvFd359m21D+VJzog1eWuq2w1
n8GhHVnchIHuTQfiSLaeS5UtQbHh6N5+LwUeaO6/u5BlOsju6rEYNxxik6SgMexxbJHmpHmJWhSn
FFAFTKQAVzAswbVhltw+HoSvOULP5dAssSS830DD7X9jSr3hTxJkhpXzsOfIt+FTvZLm8wyWuevo
5pLtp4EJFAv8lXrPj9Y0TzYS3F7RNHXGRoAvlQSMx4bEqCaJqD8Zm4G7UaRKhqsLEQ+xrmNTbSjq
3TNWOByyrYDT13K9mmyZY+gAu0F2BbdbmRiKw7gSXFbPVgx96OLP7bx0R/vu0xdOIk9W/1DzLuY5
poLWccret9W6aAjtmcz9opLLabid+Qqkpj5PkygqYWwHJgD/ll9ohri4zspV4KuxPX+Y1zMOWj3Y
eMLEYC/HYvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km
-----END CERTIFICATE-----
CA Disig Root R1
================
-----BEGIN CERTIFICATE-----
MIIFaTCCA1GgAwIBAgIJAMMDmu5QkG4oMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNVBAYTAlNLMRMw
EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp
ZyBSb290IFIxMB4XDTEyMDcxOTA5MDY1NloXDTQyMDcxOTA5MDY1NlowUjELMAkGA1UEBhMCU0sx
EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp
c2lnIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqw3j33Jijp1pedxiy
3QRkD2P9m5YJgNXoqqXinCaUOuiZc4yd39ffg/N4T0Dhf9Kn0uXKE5Pn7cZ3Xza1lK/oOI7bm+V8
u8yN63Vz4STN5qctGS7Y1oprFOsIYgrY3LMATcMjfF9DCCMyEtztDK3AfQ+lekLZWnDZv6fXARz2
m6uOt0qGeKAeVjGu74IKgEH3G8muqzIm1Cxr7X1r5OJeIgpFy4QxTaz+29FHuvlglzmxZcfe+5nk
CiKxLU3lSCZpq+Kq8/v8kiky6bM+TR8noc2OuRf7JT7JbvN32g0S9l3HuzYQ1VTW8+DiR0jm3hTa
YVKvJrT1cU/J19IG32PK/yHoWQbgCNWEFVP3Q+V8xaCJmGtzxmjOZd69fwX3se72V6FglcXM6pM6
vpmumwKjrckWtc7dXpl4fho5frLABaTAgqWjR56M6ly2vGfb5ipN0gTco65F97yLnByn1tUD3AjL
LhbKXEAz6GfDLuemROoRRRw1ZS0eRWEkG4IupZ0zXWX4Qfkuy5Q/H6MMMSRE7cderVC6xkGbrPAX
ZcD4XW9boAo0PO7X6oifmPmvTiT6l7Jkdtqr9O3jw2Dv1fkCyC2fg69naQanMVXVz0tv/wQFx1is
XxYb5dKj6zHbHzMVTdDypVP1y+E9Tmgt2BLdqvLmTZtJ5cUoobqwWsagtQIDAQABo0IwQDAPBgNV
HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUiQq0OJMa5qvum5EY+fU8PjXQ
04IwDQYJKoZIhvcNAQEFBQADggIBADKL9p1Kyb4U5YysOMo6CdQbzoaz3evUuii+Eq5FLAR0rBNR
xVgYZk2C2tXck8An4b58n1KeElb21Zyp9HWc+jcSjxyT7Ff+Bw+r1RL3D65hXlaASfX8MPWbTx9B
LxyE04nH4toCdu0Jz2zBuByDHBb6lM19oMgY0sidbvW9adRtPTXoHqJPYNcHKfyyo6SdbhWSVhlM
CrDpfNIZTUJG7L399ldb3Zh+pE3McgODWF3vkzpBemOqfDqo9ayk0d2iLbYq/J8BjuIQscTK5Gfb
VSUZP/3oNn6z4eGBrxEWi1CXYBmCAMBrTXO40RMHPuq2MU/wQppt4hF05ZSsjYSVPCGvxdpHyN85
YmLLW1AL14FABZyb7bq2ix4Eb5YgOe2kfSnbSM6C3NQCjR0EMVrHS/BsYVLXtFHCgWzN4funodKS
ds+xDzdYpPJScWc/DIh4gInByLUfkmO+p3qKViwaqKactV2zY9ATIKHrkWzQjX2v3wvkF7mGnjix
lAxYjOBVqjtjbZqJYLhkKpLGN/R+Q0O3c+gB53+XD9fyexn9GtePyfqFa3qdnom2piiZk4hA9z7N
UaPK6u95RyG1/jLix8NRb76AdPCkwzryT+lf3xkK8jsTQ6wxpLPn6/wY1gGp8yqPNg7rtLG8t0zJ
a7+h89n07eLw4+1knj0vllJPgFOL
-----END CERTIFICATE-----
CA Disig Root R2
================
-----BEGIN CERTIFICATE-----
@@ -2752,66 +2331,6 @@ G48BtieVU+i2iW1bvGjUI+iLUaJW+fCmgKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP
82Z+
-----END CERTIFICATE-----
WoSign
======
-----BEGIN CERTIFICATE-----
MIIFdjCCA16gAwIBAgIQXmjWEXGUY1BWAGjzPsnFkTANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQG
EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxKjAoBgNVBAMTIUNlcnRpZmljYXRpb24g
QXV0aG9yaXR5IG9mIFdvU2lnbjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMFUxCzAJ
BgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEqMCgGA1UEAxMhQ2VydGlmaWNh
dGlvbiBBdXRob3JpdHkgb2YgV29TaWduMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
vcqNrLiRFVaXe2tcesLea9mhsMMQI/qnobLMMfo+2aYpbxY94Gv4uEBf2zmoAHqLoE1UfcIiePyO
CbiohdfMlZdLdNiefvAA5A6JrkkoRBoQmTIPJYhTpA2zDxIIFgsDcSccf+Hb0v1naMQFXQoOXXDX
2JegvFNBmpGN9J42Znp+VsGQX+axaCA2pIwkLCxHC1l2ZjC1vt7tj/id07sBMOby8w7gLJKA84X5
KIq0VC6a7fd2/BVoFutKbOsuEo/Uz/4Mx1wdC34FMr5esAkqQtXJTpCzWQ27en7N1QhatH/YHGkR
+ScPewavVIMYe+HdVHpRaG53/Ma/UkpmRqGyZxq7o093oL5d//xWC0Nyd5DKnvnyOfUNqfTq1+ez
EC8wQjchzDBwyYaYD8xYTYO7feUapTeNtqwylwA6Y3EkHp43xP901DfA4v6IRmAR3Qg/UDaruHqk
lWJqbrDKaiFaafPz+x1wOZXzp26mgYmhiMU7ccqjUu6Du/2gd/Tkb+dC221KmYo0SLwX3OSACCK2
8jHAPwQ+658geda4BmRkAjHXqc1S+4RFaQkAKtxVi8QGRkvASh0JWzko/amrzgD5LkhLJuYwTKVY
yrREgk/nkR4zw7CT/xH8gdLKH3Ep3XZPkiWvHYG3Dy+MwwbMLyejSuQOmbp8HkUff6oZRZb9/D0C
AwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOFmzw7R
8bNLtwYgFP6HEtX2/vs+MA0GCSqGSIb3DQEBBQUAA4ICAQCoy3JAsnbBfnv8rWTjMnvMPLZdRtP1
LOJwXcgu2AZ9mNELIaCJWSQBnfmvCX0KI4I01fx8cpm5o9dU9OpScA7F9dY74ToJMuYhOZO9sxXq
T2r09Ys/L3yNWC7F4TmgPsc9SnOeQHrAK2GpZ8nzJLmzbVUsWh2eJXLOC62qx1ViC777Y7NhRCOj
y+EaDveaBk3e1CNOIZZbOVtXHS9dCF4Jef98l7VNg64N1uajeeAz0JmWAjCnPv/So0M/BVoG6kQC
2nz4SNAzqfkHx5Xh9T71XXG68pWpdIhhWeO/yloTunK0jF02h+mmxTwTv97QRCbut+wucPrXnbes
5cVAWubXbHssw1abR80LzvobtCHXt2a49CUwi1wNuepnsvRtrtWhnk/Yn+knArAdBtaP4/tIEp9/
EaEQPkxROpaw0RPxx9gmrjrKkcRpnd8BKWRRb2jaFOwIQZeQjdCygPLPwj2/kWjFgGcexGATVdVh
mVd8upUPYUk6ynW8yQqTP2cOEvIo4jEbwFcW3wh8GcF+Dx+FHgo2fFt+J7x6v+Db9NpSvd4MVHAx
kUOVyLzwPt0JfjBkUO1/AaQzZ01oT74V77D2AhGiGxMlOtzCWfHjXEa7ZywCRuoeSKbmW9m1vFGi
kpbbqsY3Iqb+zCB0oy2pLmvLwIIRIbWTee5Ehr7XHuQe+w==
-----END CERTIFICATE-----
WoSign China
============
-----BEGIN CERTIFICATE-----
MIIFWDCCA0CgAwIBAgIQUHBrzdgT/BtOOzNy0hFIjTANBgkqhkiG9w0BAQsFADBGMQswCQYDVQQG
EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMMEkNBIOayg+mAmuagueiv
geS5pjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMEYxCzAJBgNVBAYTAkNOMRowGAYD
VQQKExFXb1NpZ24gQ0EgTGltaXRlZDEbMBkGA1UEAwwSQ0Eg5rKD6YCa5qC56K+B5LmmMIICIjAN
BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0EkhHiX8h8EqwqzbdoYGTufQdDTc7WU1/FDWiD+k
8H/rD195L4mx/bxjWDeTmzj4t1up+thxx7S8gJeNbEvxUNUqKaqoGXqW5pWOdO2XCld19AXbbQs5
uQF/qvbW2mzmBeCkTVL829B0txGMe41P/4eDrv8FAxNXUDf+jJZSEExfv5RxadmWPgxDT74wwJ85
dE8GRV2j1lY5aAfMh09Qd5Nx2UQIsYo06Yms25tO4dnkUkWMLhQfkWsZHWgpLFbE4h4TV2TwYeO5
Ed+w4VegG63XX9Gv2ystP9Bojg/qnw+LNVgbExz03jWhCl3W6t8Sb8D7aQdGctyB9gQjF+BNdeFy
b7Ao65vh4YOhn0pdr8yb+gIgthhid5E7o9Vlrdx8kHccREGkSovrlXLp9glk3Kgtn3R46MGiCWOc
76DbT52VqyBPt7D3h1ymoOQ3OMdc4zUPLK2jgKLsLl3Az+2LBcLmc272idX10kaO6m1jGx6KyX2m
+Jzr5dVjhU1zZmkR/sgO9MHHZklTfuQZa/HpelmjbX7FF+Ynxu8b22/8DU0GAbQOXDBGVWCvOGU6
yke6rCzMRh+yRpY/8+0mBe53oWprfi1tWFxK1I5nuPHa1UaKJ/kR8slC/k7e3x9cxKSGhxYzoacX
GKUN5AXlK8IrC6KVkLn9YDxOiT7nnO4fuwECAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1Ud
EwEB/wQFMAMBAf8wHQYDVR0OBBYEFOBNv9ybQV0T6GTwp+kVpOGBwboxMA0GCSqGSIb3DQEBCwUA
A4ICAQBqinA4WbbaixjIvirTthnVZil6Xc1bL3McJk6jfW+rtylNpumlEYOnOXOvEESS5iVdT2H6
yAa+Tkvv/vMx/sZ8cApBWNromUuWyXi8mHwCKe0JgOYKOoICKuLJL8hWGSbueBwj/feTZU7n85iY
r83d2Z5AiDEoOqsuC7CsDCT6eiaY8xJhEPRdF/d+4niXVOKM6Cm6jBAyvd0zaziGfjk9DgNyp115
j0WKWa5bIW4xRtVZjc8VX90xJc/bYNaBRHIpAlf2ltTW/+op2znFuCyKGo3Oy+dCMYYFaA6eFN0A
kLppRQjbbpCBhqcqBT/mhDn4t/lXX0ykeVoQDF7Va/81XwVRHmyjdanPUIPTfPRm94KNPQx96N97
qA4bLJyuQHCH2u2nFoJavjVsIE4iYdm8UXrNemHcSxH5/mc0zy4EZmFcV5cjjPOGG0jfKq+nwf/Y
jj4Du9gqsPoUJbJRa4ZDhS4HIxaAjUz7tGM7zMN07RujHv41D198HRaG9Q7DlfEvr10lO1Hm13ZB
ONFLAzkopR6RctR9q5czxNM+4Gm2KHmgCY0c0f9BckgG/Jou5yD5m6Leie2uPAmvylezkolwQOQv
T8Jwg0DXJCxr5wkf09XHwQj02w47HAcLQxGEIYbpgNR12KvxAmLBsX5VYc8T1yaw15zLKYs4SgsO
kI26oQ==
-----END CERTIFICATE-----
COMODO RSA Certification Authority
==================================
-----BEGIN CERTIFICATE-----
@@ -3116,30 +2635,6 @@ kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C
ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
-----END CERTIFICATE-----
TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5
====================================================
-----BEGIN CERTIFICATE-----
MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UEBhMCVFIxDzAN
BgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4xQjBABgNVBAMMOVTDnFJLVFJVU1Qg
RWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSBINTAeFw0xMzA0MzAw
ODA3MDFaFw0yMzA0MjgwODA3MDFaMIGxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0w
SwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnE
n2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBFbGVrdHJvbmlrIFNlcnRp
ZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEApCUZ4WWe60ghUEoI5RHwWrom/4NZzkQqL/7hzmAD/I0Dpe3/a6i6zDQGn1k19uwsu537
jVJp45wnEFPzpALFp/kRGml1bsMdi9GYjZOHp3GXDSHHmflS0yxjXVW86B8BSLlg/kJK9siArs1m
ep5Fimh34khon6La8eHBEJ/rPCmBp+EyCNSgBbGM+42WAA4+Jd9ThiI7/PS98wl+d+yG6w8z5UNP
9FR1bSmZLmZaQ9/LXMrI5Tjxfjs1nQ/0xVqhzPMggCTTV+wVunUlm+hkS7M0hO8EuPbJbKoCPrZV
4jI3X/xml1/N1p7HIL9Nxqw/dV8c7TKcfGkAaZHjIxhT6QIDAQABo0IwQDAdBgNVHQ4EFgQUVpkH
HtOsDGlktAxQR95DLL4gwPswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI
hvcNAQELBQADggEBAJ5FdnsXSDLyOIspve6WSk6BGLFRRyDN0GSxDsnZAdkJzsiZ3GglE9Rc8qPo
BP5yCccLqh0lVX6Wmle3usURehnmp349hQ71+S4pL+f5bFgWV1Al9j4uPqrtd3GqqpmWRgqujuwq
URawXs3qZwQcWDD1YIq9pr1N5Za0/EKJAWv2cMhQOQwt1WbZyNKzMrcbGW3LM/nfpeYVhDfwwvJl
lpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CFYv4HAqGEVka+lgqaE9chTLd8
B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW+qtB4Uu2NQvAmxU=
-----END CERTIFICATE-----
Certinomis - Root CA
====================
-----BEGIN CERTIFICATE-----
@@ -3193,42 +2688,6 @@ HZeeevJuQHHfaPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic
Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM=
-----END CERTIFICATE-----
Certification Authority of WoSign G2
====================================
-----BEGIN CERTIFICATE-----
MIIDfDCCAmSgAwIBAgIQayXaioidfLwPBbOxemFFRDANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQG
EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxLTArBgNVBAMTJENlcnRpZmljYXRpb24g
QXV0aG9yaXR5IG9mIFdvU2lnbiBHMjAeFw0xNDExMDgwMDU4NThaFw00NDExMDgwMDU4NThaMFgx
CzAJBgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEtMCsGA1UEAxMkQ2VydGlm
aWNhdGlvbiBBdXRob3JpdHkgb2YgV29TaWduIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEAvsXEoCKASU+/2YcRxlPhuw+9YH+v9oIOH9ywjj2X4FA8jzrvZjtFB5sg+OPXJYY1kBai
XW8wGQiHC38Gsp1ij96vkqVg1CuAmlI/9ZqD6TRay9nVYlzmDuDfBpgOgHzKtB0TiGsOqCR3A9Du
W/PKaZE1OVbFbeP3PU9ekzgkyhjpJMuSA93MHD0JcOQg5PGurLtzaaNjOg9FD6FKmsLRY6zLEPg9
5k4ot+vElbGs/V6r+kHLXZ1L3PR8du9nfwB6jdKgGlxNIuG12t12s9R23164i5jIFFTMaxeSt+BK
v0mUYQs4kI9dJGwlezt52eJ+na2fmKEG/HgUYFf47oB3sQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC
AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU+mCp62XF3RYUCE4MD42b4Pdkr2cwDQYJKoZI
hvcNAQELBQADggEBAFfDejaCnI2Y4qtAqkePx6db7XznPWZaOzG73/MWM5H8fHulwqZm46qwtyeY
P0nXYGdnPzZPSsvxFPpahygc7Y9BMsaV+X3avXtbwrAh449G3CE4Q3RM+zD4F3LBMvzIkRfEzFg3
TgvMWvchNSiDbGAtROtSjFA9tWwS1/oJu2yySrHFieT801LYYRf+epSEj3m2M1m6D8QL4nCgS3gu
+sif/a+RZQp4OBXllxcU3fngLDT4ONCEIgDAFFEYKwLcMFrw6AF8NTojrwjkr6qOKEJJLvD1mTS+
7Q9LGOHSJDy7XUe3IfKN0QqZjuNuPq1w4I+5ysxugTH2e5x6eeRncRg=
-----END CERTIFICATE-----
CA WoSign ECC Root
==================
-----BEGIN CERTIFICATE-----
MIICCTCCAY+gAwIBAgIQaEpYcIBr8I8C+vbe6LCQkDAKBggqhkjOPQQDAzBGMQswCQYDVQQGEwJD
TjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMTEkNBIFdvU2lnbiBFQ0MgUm9v
dDAeFw0xNDExMDgwMDU4NThaFw00NDExMDgwMDU4NThaMEYxCzAJBgNVBAYTAkNOMRowGAYDVQQK
ExFXb1NpZ24gQ0EgTGltaXRlZDEbMBkGA1UEAxMSQ0EgV29TaWduIEVDQyBSb290MHYwEAYHKoZI
zj0CAQYFK4EEACIDYgAE4f2OuEMkq5Z7hcK6C62N4DrjJLnSsb6IOsq/Srj57ywvr1FQPEd1bPiU
t5v8KB7FVMxjnRZLU8HnIKvNrCXSf4/CwVqCXjCLelTOA7WRf6qU0NGKSMyCBSah1VES1ns2o0Iw
QDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUqv3VWqP2h4syhf3R
MluARZPzA7gwCgYIKoZIzj0EAwMDaAAwZQIxAOSkhLCB1T2wdKyUpOgOPQB0TKGXa/kNUTyh2Tv0
Daupn75OcsqF1NnstTJFGG+rrQIwfcf3aWMvoeGY7xMQ0Xk/0f7qO3/eVvSQsRUR2LIiFdAvwyYu
a/GRspBl9JrmkO5K
-----END CERTIFICATE-----
SZAFIR ROOT CA2
===============
-----BEGIN CERTIFICATE-----
@@ -3644,3 +3103,212 @@ lNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4lzwDGrpDxpa5RXI4s6ehlj2R
e37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0j
q5Rm+K37DwhuJi1/FwcJsoz7UMCflo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM=
-----END CERTIFICATE-----
GDCA TrustAUTH R5 ROOT
======================
-----BEGIN CERTIFICATE-----
MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMCQ04xMjAw
BgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8wHQYDVQQD
DBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0MTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVow
YjELMAkGA1UEBhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ
IENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0B
AQEFAAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJjDp6L3TQs
AlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBjTnnEt1u9ol2x8kECK62p
OqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+uKU49tm7srsHwJ5uu4/Ts765/94Y9cnrr
pftZTqfrlYwiOXnhLQiPzLyRuEH3FMEjqcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ
9Cy5WmYqsBebnh52nUpmMUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQ
xXABZG12ZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloPzgsM
R6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3GkL30SgLdTMEZeS1SZ
D2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeCjGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4
oR24qoAATILnsn8JuLwwoC8N9VKejveSswoAHQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx
9hoh49pwBiFYFIeFd3mqgnkCAwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlR
MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg
p8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZmDRd9FBUb1Ov9
H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5COmSdI31R9KrO9b7eGZONn35
6ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ryL3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd
+PwyvzeG5LuOmCd+uh8W4XAR8gPfJWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQ
HtZa37dG/OaG+svgIHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBD
F8Io2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV09tL7ECQ
8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQXR4EzzffHqhmsYzmIGrv
/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrqT8p+ck0LcIymSLumoRT2+1hEmRSuqguT
aaApJUqlyyvdimYHFngVV3Eb7PVHhPOeMTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g==
-----END CERTIFICATE-----
TrustCor RootCert CA-1
======================
-----BEGIN CERTIFICATE-----
MIIEMDCCAxigAwIBAgIJANqb7HHzA7AZMA0GCSqGSIb3DQEBCwUAMIGkMQswCQYDVQQGEwJQQTEP
MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig
U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp
dHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0IENBLTEwHhcNMTYwMjA0MTIzMjE2WhcNMjkx
MjMxMTcyMzE2WjCBpDELMAkGA1UEBhMCUEExDzANBgNVBAgMBlBhbmFtYTEUMBIGA1UEBwwLUGFu
YW1hIENpdHkxJDAiBgNVBAoMG1RydXN0Q29yIFN5c3RlbXMgUy4gZGUgUi5MLjEnMCUGA1UECwwe
VHJ1c3RDb3IgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MR8wHQYDVQQDDBZUcnVzdENvciBSb290Q2Vy
dCBDQS0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv463leLCJhJrMxnHQFgKq1mq
jQCj/IDHUHuO1CAmujIS2CNUSSUQIpidRtLByZ5OGy4sDjjzGiVoHKZaBeYei0i/mJZ0PmnK6bV4
pQa81QBeCQryJ3pS/C3Vseq0iWEk8xoT26nPUu0MJLq5nux+AHT6k61sKZKuUbS701e/s/OojZz0
JEsq1pme9J7+wH5COucLlVPat2gOkEz7cD+PSiyU8ybdY2mplNgQTsVHCJCZGxdNuWxu72CVEY4h
gLW9oHPY0LJ3xEXqWib7ZnZ2+AYfYW0PVcWDtxBWcgYHpfOxGgMFZA6dWorWhnAbJN7+KIor0Gqw
/Hqi3LJ5DotlDwIDAQABo2MwYTAdBgNVHQ4EFgQU7mtJPHo/DeOxCbeKyKsZn3MzUOcwHwYDVR0j
BBgwFoAU7mtJPHo/DeOxCbeKyKsZn3MzUOcwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
AYYwDQYJKoZIhvcNAQELBQADggEBACUY1JGPE+6PHh0RU9otRCkZoB5rMZ5NDp6tPVxBb5UrJKF5
mDo4Nvu7Zp5I/5CQ7z3UuJu0h3U/IJvOcs+hVcFNZKIZBqEHMwwLKeXx6quj7LUKdJDHfXLy11yf
ke+Ri7fc7Waiz45mO7yfOgLgJ90WmMCV1Aqk5IGadZQ1nJBfiDcGrVmVCrDRZ9MZyonnMlo2HD6C
qFqTvsbQZJG2z9m2GM/bftJlo6bEjhcxwft+dtvTheNYsnd6djtsL1Ac59v2Z3kf9YKVmgenFK+P
3CghZwnS1k1aHBkcjndcw5QkPTJrS37UeJSDvjdNzl/HHk484IkzlQsPpTLWPFp5LBk=
-----END CERTIFICATE-----
TrustCor RootCert CA-2
======================
-----BEGIN CERTIFICATE-----
MIIGLzCCBBegAwIBAgIIJaHfyjPLWQIwDQYJKoZIhvcNAQELBQAwgaQxCzAJBgNVBAYTAlBBMQ8w
DQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQwIgYDVQQKDBtUcnVzdENvciBT
eXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0
eTEfMB0GA1UEAwwWVHJ1c3RDb3IgUm9vdENlcnQgQ0EtMjAeFw0xNjAyMDQxMjMyMjNaFw0zNDEy
MzExNzI2MzlaMIGkMQswCQYDVQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5h
bWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U
cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0
IENBLTIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnIG7CKqJiJJWQdsg4foDSq8Gb
ZQWU9MEKENUCrO2fk8eHyLAnK0IMPQo+QVqedd2NyuCb7GgypGmSaIwLgQ5WoD4a3SwlFIIvl9Nk
RvRUqdw6VC0xK5mC8tkq1+9xALgxpL56JAfDQiDyitSSBBtlVkxs1Pu2YVpHI7TYabS3OtB0PAx1
oYxOdqHp2yqlO/rOsP9+aij9JxzIsekp8VduZLTQwRVtDr4uDkbIXvRR/u8OYzo7cbrPb1nKDOOb
XUm4TOJXsZiKQlecdu/vvdFoqNL0Cbt3Nb4lggjEFixEIFapRBF37120Hapeaz6LMvYHL1cEksr1
/p3C6eizjkxLAjHZ5DxIgif3GIJ2SDpxsROhOdUuxTTCHWKF3wP+TfSvPd9cW436cOGlfifHhi5q
jxLGhF5DUVCcGZt45vz27Ud+ez1m7xMTiF88oWP7+ayHNZ/zgp6kPwqcMWmLmaSISo5uZk3vFsQP
eSghYA2FFn3XVDjxklb9tTNMg9zXEJ9L/cb4Qr26fHMC4P99zVvh1Kxhe1fVSntb1IVYJ12/+Ctg
rKAmrhQhJ8Z3mjOAPF5GP/fDsaOGM8boXg25NSyqRsGFAnWAoOsk+xWq5Gd/bnc/9ASKL3x74xdh
8N0JqSDIvgmk0H5Ew7IwSjiqqewYmgeCK9u4nBit2uBGF6zPXQIDAQABo2MwYTAdBgNVHQ4EFgQU
2f4hQG6UnrybPZx9mCAZ5YwwYrIwHwYDVR0jBBgwFoAU2f4hQG6UnrybPZx9mCAZ5YwwYrIwDwYD
VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBAJ5Fngw7tu/h
Osh80QA9z+LqBrWyOrsGS2h60COXdKcs8AjYeVrXWoSK2BKaG9l9XE1wxaX5q+WjiYndAfrs3fnp
kpfbsEZC89NiqpX+MWcUaViQCqoL7jcjx1BRtPV+nuN79+TMQjItSQzL/0kMmx40/W5ulop5A7Zv
2wnL/V9lFDfhOPXzYRZY5LVtDQsEGz9QLX+zx3oaFoBg+Iof6Rsqxvm6ARppv9JYx1RXCI/hOWB3
S6xZhBqI8d3LT3jX5+EzLfzuQfogsL7L9ziUwOHQhQ+77Sxzq+3+knYaZH9bDTMJBzN7Bj8RpFxw
PIXAz+OQqIN3+tvmxYxoZxBnpVIt8MSZj3+/0WvitUfW2dCFmU2Umw9Lje4AWkcdEQOsQRivh7dv
DDqPys/cA8GiCcjl/YBeyGBCARsaU1q7N6a3vLqE6R5sGtRk2tRD/pOLS/IseRYQ1JMLiI+h2IYU
RpFHmygk71dSTlxCnKr3Sewn6EAes6aJInKc9Q0ztFijMDvd1GpUk74aTfOTlPf8hAs/hCBcNANE
xdqtvArBAs8e5ZTZ845b2EzwnexhF7sUMlQMAimTHpKG9n/v55IFDlndmQguLvqcAFLTxWYp5KeX
RKQOKIETNcX2b2TmQcTVL8w0RSXPQQCWPUouwpaYT05KnJe32x+SMsj/D1Fu1uwJ
-----END CERTIFICATE-----
TrustCor ECA-1
==============
-----BEGIN CERTIFICATE-----
MIIEIDCCAwigAwIBAgIJAISCLF8cYtBAMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYDVQQGEwJQQTEP
MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig
U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp
dHkxFzAVBgNVBAMMDlRydXN0Q29yIEVDQS0xMB4XDTE2MDIwNDEyMzIzM1oXDTI5MTIzMTE3Mjgw
N1owgZwxCzAJBgNVBAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5
MSQwIgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29y
IENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOVHJ1c3RDb3IgRUNBLTEwggEiMA0GCSqG
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPj+ARtZ+odnbb3w9U73NjKYKtR8aja+3+XzP4Q1HpGjOR
MRegdMTUpwHmspI+ap3tDvl0mEDTPwOABoJA6LHip1GnHYMma6ve+heRK9jGrB6xnhkB1Zem6g23
xFUfJ3zSCNV2HykVh0A53ThFEXXQmqc04L/NyFIduUd+Dbi7xgz2c1cWWn5DkR9VOsZtRASqnKmc
p0yJF4OuowReUoCLHhIlERnXDH19MURB6tuvsBzvgdAsxZohmz3tQjtQJvLsznFhBmIhVE5/wZ0+
fyCMgMsq2JdiyIMzkX2woloPV+g7zPIlstR8L+xNxqE6FXrntl019fZISjZFZtS6mFjBAgMBAAGj
YzBhMB0GA1UdDgQWBBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAfBgNVHSMEGDAWgBREnkj1zG1I1KBL
f/5ZJC+Dl5mahjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
AAOCAQEABT41XBVwm8nHc2FvcivUwo/yQ10CzsSUuZQRg2dd4mdsdXa/uwyqNsatR5Nj3B5+1t4u
/ukZMjgDfxT2AHMsWbEhBuH7rBiVDKP/mZb3Kyeb1STMHd3BOuCYRLDE5D53sXOpZCz2HAF8P11F
hcCF5yWPldwX8zyfGm6wyuMdKulMY/okYWLW2n62HGz1Ah3UKt1VkOsqEUc8Ll50soIipX1TH0Xs
J5F95yIW6MBoNtjG8U+ARDL54dHRHareqKucBK+tIA5kmE2la8BIWJZpTdwHjFGTot+fDz2LYLSC
jaoITmJF4PkL0uDgPFveXHEnJcLmA4GLEFPjx1WitJ/X5g==
-----END CERTIFICATE-----
SSL.com Root Certification Authority RSA
========================================
-----BEGIN CERTIFICATE-----
MIIF3TCCA8WgAwIBAgIIeyyb0xaAMpkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxDjAM
BgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24x
MTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYw
MjEyMTczOTM5WhcNNDEwMjEyMTczOTM5WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMx
EDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NM
LmNvbSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJKoZIhvcNAQEBBQAD
ggIPADCCAgoCggIBAPkP3aMrfcvQKv7sZ4Wm5y4bunfh4/WvpOz6Sl2RxFdHaxh3a3by/ZPkPQ/C
Fp4LZsNWlJ4Xg4XOVu/yFv0AYvUiCVToZRdOQbngT0aXqhvIuG5iXmmxX9sqAn78bMrzQdjt0Oj8
P2FI7bADFB0QDksZ4LtO7IZl/zbzXmcCC52GVWH9ejjt/uIZALdvoVBidXQ8oPrIJZK0bnoix/ge
oeOy3ZExqysdBP+lSgQ36YWkMyv94tZVNHwZpEpox7Ko07fKoZOI68GXvIz5HdkihCR0xwQ9aqkp
k8zruFvh/l8lqjRYyMEjVJ0bmBHDOJx+PYZspQ9AhnwC9FwCTyjLrnGfDzrIM/4RJTXq/LrFYD3Z
fBjVsqnTdXgDciLKOsMf7yzlLqn6niy2UUb9rwPW6mBo6oUWNmuF6R7As93EJNyAKoFBbZQ+yODJ
gUEAnl6/f8UImKIYLEJAs/lvOCdLToD0PYFH4Ih86hzOtXVcUS4cK38acijnALXRdMbX5J+tB5O2
UzU1/Dfkw/ZdFr4hc96SCvigY2q8lpJqPvi8ZVWb3vUNiSYE/CUapiVpy8JtynziWV+XrOvvLsi8
1xtZPCvM8hnIk2snYxnP/Okm+Mpxm3+T/jRnhE6Z6/yzeAkzcLpmpnbtG3PrGqUNxCITIJRWCk4s
bE6x/c+cCbqiM+2HAgMBAAGjYzBhMB0GA1UdDgQWBBTdBAkHovV6fVJTEpKV7jiAJQ2mWTAPBgNV
HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFN0ECQei9Xp9UlMSkpXuOIAlDaZZMA4GA1UdDwEB/wQE
AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAIBgRlCn7Jp0cHh5wYfGVcpNxJK1ok1iOMq8bs3AD/CUr
dIWQPXhq9LmLpZc7tRiRux6n+UBbkflVma8eEdBcHadm47GUBwwyOabqG7B52B2ccETjit3E+ZUf
ijhDPwGFpUenPUayvOUiaPd7nNgsPgohyC0zrL/FgZkxdMF1ccW+sfAjRfSda/wZY52jvATGGAsl
u1OJD7OAUN5F7kR/q5R4ZJjT9ijdh9hwZXT7DrkT66cPYakylszeu+1jTBi7qUD3oFRuIIhxdRjq
erQ0cuAjJ3dctpDqhiVAq+8zD8ufgr6iIPv2tS0a5sKFsXQP+8hlAqRSAUfdSSLBv9jra6x+3uxj
MxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90IH37hVZkLId6Tngr75qNJ
vTYw/ud3sqB1l7UtgYgXZSD32pAAn8lSzDLKNXz1PQ/YK9f1JmzJBjSWFupwWRoyeXkLtoh/D1JI
Pb9s2KJELtFOt3JY04kTlf5Eq/jXixtunLwsoFvVagCvXzfh1foQC5ichucmj87w7G6KVwuA406y
wKBjYZC6VWg3dGq2ktufoYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NI
WuuA8ShYIc2wBlX7Jz9TkHCpBB5XJ7k=
-----END CERTIFICATE-----
SSL.com Root Certification Authority ECC
========================================
-----BEGIN CERTIFICATE-----
MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMCVVMxDjAMBgNV
BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xMTAv
BgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEy
MTgxNDAzWhcNNDEwMjEyMTgxNDAzWjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAO
BgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv
bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuBBAAiA2IA
BEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI7Z4INcgn64mMU1jrYor+
8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPgCemB+vNH06NjMGEwHQYDVR0OBBYEFILR
hXMw5zUE044CkvvlpNHEIejNMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTT
jgKS++Wk0cQh6M0wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCW
e+0F+S8Tkdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+gA0z
5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl
-----END CERTIFICATE-----
SSL.com EV Root Certification Authority RSA R2
==============================================
-----BEGIN CERTIFICATE-----
MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNVBAYTAlVTMQ4w
DAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9u
MTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy
MB4XDTE3MDUzMTE4MTQzN1oXDTQyMDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQI
DAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYD
VQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMIICIjAN
BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvqM0fNTPl9fb69LT3w23jh
hqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssufOePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7w
cXHswxzpY6IXFJ3vG2fThVUCAtZJycxa4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTO
Zw+oz12WGQvE43LrrdF9HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+
B6KjBSYRaZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcAb9Zh
CBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQGp8hLH94t2S42Oim
9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQVPWKchjgGAGYS5Fl2WlPAApiiECto
RHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMOpgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+Slm
JuwgUHfbSguPvuUCYHBBXtSuUDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48
+qvWBkofZ6aYMBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV
HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa49QaAJadz20Zp
qJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBWs47LCp1Jjr+kxJG7ZhcFUZh1
++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nx
Y/hoLVUE0fKNsKTPvDxeH3jnpaAgcLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2G
guDKBAdRUNf/ktUM79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDz
OFSz/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXtll9ldDz7
CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEmKf7GUmG6sXP/wwyc5Wxq
lD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKKQbNmC1r7fSOl8hqw/96bg5Qu0T/fkreR
rwU7ZcegbLHNYhLDkBvjJc40vG93drEQw/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1
hlMYegouCRw2n5H9gooiS9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX
9hwJ1C07mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w==
-----END CERTIFICATE-----
SSL.com EV Root Certification Authority ECC
===========================================
-----BEGIN CERTIFICATE-----
MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMCVVMxDjAMBgNV
BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xNDAy
BgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYw
MjEyMTgxNTIzWhcNNDEwMjEyMTgxNTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMx
EDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NM
LmNvbSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB
BAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMAVIbc/R/fALhBYlzccBYy
3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1KthkuWnBaBu2+8KGwytAJKaNjMGEwHQYDVR0O
BBYEFFvKXuXe0oGqzagtZFG22XKbl+ZPMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe
5d7SgarNqC1kUbbZcpuX5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJ
N+vp1RPZytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZgh5Mm
m7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg==
-----END CERTIFICATE-----
File diff suppressed because it is too large Load Diff
@@ -1,42 +0,0 @@
language: php
sudo: false
cache:
directories:
- vendor
- $HOME/.composer/cache
php:
- 5.5
- 5.6
- 7.0
- hhvm
services:
- riak
- mongodb
- memcached
- redis-server
before_install:
- if [[ $TRAVIS_PHP_VERSION != 'hhvm' ]] ; then pecl channel-update pecl.php.net; fi;
- if [[ $TRAVIS_PHP_VERSION != 'hhvm' && $TRAVIS_PHP_VERSION != '7.0' ]]; then pecl install riak-beta; fi;
- if [[ $TRAVIS_PHP_VERSION =~ 5.[56] ]] ; then echo yes | pecl install apcu-4.0.10; fi;
- if [[ $TRAVIS_PHP_VERSION = 7.* ]] ; then pecl config-set preferred_state beta; echo yes | pecl install apcu; fi;
- if [[ $TRAVIS_PHP_VERSION != 'hhvm' ]]; then phpenv config-add ./tests/travis/php.ini; fi;
install:
- travis_retry composer install
script:
- ./vendor/bin/phpunit -c ./tests/travis/phpunit.travis.xml -v
after_script:
- php vendor/bin/coveralls -v
matrix:
fast_finish: true
allow_failures:
- php: hhvm
- php: 7.0
View File
+5 -4
View File
@@ -1,9 +1,10 @@
# Doctrine Cache
[![Build Status](https://secure.travis-ci.org/doctrine/cache.png?branch=master)](http://travis-ci.org/doctrine/cache)
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/doctrine/cache/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/doctrine/cache/?branch=master)
[![Code Coverage](https://scrutinizer-ci.com/g/doctrine/cache/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/doctrine/cache/?branch=master)
[![Build Status](https://img.shields.io/travis/doctrine/cache/master.svg?style=flat-square)](http://travis-ci.org/doctrine/cache)
[![Scrutinizer Code Quality](https://img.shields.io/scrutinizer/g/doctrine/cache/master.svg?style=flat-square)](https://scrutinizer-ci.com/g/doctrine/cache/?branch=master)
[![Code Coverage](https://img.shields.io/scrutinizer/coverage/g/doctrine/cache/master.svg?style=flat-square)](https://scrutinizer-ci.com/g/doctrine/cache/?branch=master)
[![Latest Stable Version](https://poser.pugx.org/doctrine/cache/v/stable.png)](https://packagist.org/packages/doctrine/cache) [![Total Downloads](https://poser.pugx.org/doctrine/cache/downloads.png)](https://packagist.org/packages/doctrine/cache)
[![Latest Stable Version](https://img.shields.io/packagist/v/doctrine/cache.svg?style=flat-square)](https://packagist.org/packages/doctrine/cache)
[![Total Downloads](https://img.shields.io/packagist/dt/doctrine/cache.svg?style=flat-square)](https://packagist.org/packages/doctrine/cache)
Cache component extracted from the Doctrine Common project. [Documentation](http://doctrine-orm.readthedocs.io/projects/doctrine-orm/en/latest/reference/caching.html)
View File
@@ -1,3 +0,0 @@
# Version class and file
project.version_class = Doctrine\\Common\\Cache\\Version
project.version_file = lib/Doctrine/Common/Cache/Version.php
-110
View File
@@ -1,110 +0,0 @@
<?xml version="1.0"?>
<project name="DoctrineCommonCache" default="build" basedir=".">
<property file="build.properties" />
<target name="php">
<exec executable="which" outputproperty="php_executable">
<arg value="php" />
</exec>
</target>
<target name="prepare">
<mkdir dir="build" />
</target>
<target name="build" depends="check-git-checkout-clean,prepare,php,composer">
<exec executable="${php_executable}">
<arg value="build/composer.phar" />
<arg value="archive" />
<arg value="--dir=build" />
</exec>
</target>
<target name="composer" depends="php,composer-check,composer-download">
<exec executable="${php_executable}">
<arg value="build/composer.phar" />
<arg value="install" />
</exec>
</target>
<target name="composer-check" depends="prepare">
<available file="build/composer.phar" property="composer.present"/>
</target>
<target name="composer-download" unless="composer.present">
<exec executable="wget">
<arg value="-Obuild/composer.phar" />
<arg value="http://getcomposer.org/composer.phar" />
</exec>
</target>
<target name="make-release" depends="check-git-checkout-clean,prepare,php">
<replace file="${project.version_file}" token="-DEV" value="" failOnNoReplacements="true" />
<exec executable="git" failonerror="true" outputproperty="current_git_branch">
<arg value="rev-parse" />
<arg value="--abbrev-ref" />
<arg value="HEAD" />
</exec>
<exec executable="${php_executable}" outputproperty="doctrine.current_version" failonerror="true">
<arg value="-r" />
<arg value="require_once '${project.version_file}';echo ${project.version_class}::VERSION;" />
</exec>
<exec executable="${php_executable}" outputproperty="doctrine.next_version" failonerror="true">
<arg value="-r" />
<arg value="$parts = explode('.', str_ireplace(array('-DEV', '-ALPHA', '-BETA'), '', '${doctrine.current_version}'));
if (count($parts) != 3) {
throw new \InvalidArgumentException('Version is assumed in format x.y.z, ${doctrine.current_version} given');
}
if ('${current_git_branch}' === 'master') {
$parts[1]++;
} else {
$parts[2]++;
}
echo implode('.', $parts);
" />
</exec>
<git-commit file="${project.version_file}" message="Release ${doctrine.current_version}" />
<git-tag version="${doctrine.current_version}" />
<replace file="${project.version_file}" token="${doctrine.current_version}" value="${doctrine.next_version}-DEV" />
<git-commit file="${project.version_file}" message="Bump version to ${doctrine.next_version}" />
</target>
<target name="check-git-checkout-clean">
<exec executable="git" failonerror="true">
<arg value="diff-index" />
<arg value="--quiet" />
<arg value="HEAD" />
</exec>
</target>
<macrodef name="git-commit">
<attribute name="file" default="NOT SET"/>
<attribute name="message" default="NOT SET"/>
<sequential>
<exec executable="git">
<arg value="add" />
<arg value="@{file}" />
</exec>
<exec executable="git">
<arg value="commit" />
<arg value="-m" />
<arg value="@{message}" />
</exec>
</sequential>
</macrodef>
<macrodef name="git-tag">
<attribute name="version" default="NOT SET" />
<sequential>
<exec executable="git">
<arg value="tag" />
<arg value="-m" />
<arg value="v@{version}" />
<arg value="v@{version}" />
</exec>
</sequential>
</macrodef>
</project>
+5 -4
View File
@@ -3,7 +3,7 @@
"type": "library",
"description": "Caching library offering an object-oriented API for many cache backends",
"keywords": ["cache", "caching"],
"homepage": "http://www.doctrine-project.org",
"homepage": "https://www.doctrine-project.org",
"license": "MIT",
"authors": [
{"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"},
@@ -18,8 +18,9 @@
"require-dev": {
"alcaeus/mongo-php-adapter": "^1.1",
"mongodb/mongodb": "^1.1",
"phpunit/phpunit": "^5.7",
"predis/predis": "~1.0"
"phpunit/phpunit": "^7.0",
"predis/predis": "~1.0",
"doctrine/coding-standard": "^4.0"
},
"suggest": {
"alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver"
@@ -35,7 +36,7 @@
},
"extra": {
"branch-alias": {
"dev-master": "1.7.x-dev"
"dev-master": "1.8.x-dev"
}
}
}

Some files were not shown because too many files have changed in this diff Show More