Merge branch 'master' into dist/envole/6/master

This commit is contained in:
Arnaud Fornerot 2021-07-12 12:49:59 +02:00
commit 9a260e6ae5
6 changed files with 63 additions and 28 deletions

View File

@ -88,6 +88,7 @@
<variable type='string' name='ninegate_ssoreqgroup' description="Attribut SSO associé à la notion de groupe" mandatory='True'><value>user_groups</value></variable> <variable type='string' name='ninegate_ssoreqgroup' description="Attribut SSO associé à la notion de groupe" mandatory='True'><value>user_groups</value></variable>
<variable type='oui/non' name='ninegate_ssosynchroitem' description="Associer automatiquement les items en fonction d'un attribut SSO"><value>non</value></variable> <variable type='oui/non' name='ninegate_ssosynchroitem' description="Associer automatiquement les items en fonction d'un attribut SSO"><value>non</value></variable>
<variable type='string' name='ninegate_ssoreqitem' description="Attribut SSO associé à la notion d'item" mandatory='True'><value></value></variable> <variable type='string' name='ninegate_ssoreqitem' description="Attribut SSO associé à la notion d'item" mandatory='True'><value></value></variable>
<variable type='string' name='ninegate_typesso' description="Mode de connexion SSO (Client ou Proxy)" mandatory='True'><value>client</value></variable>
<variable type='oui/non' name='ninegate_syncldap' description="Synchroniser Ninegate vers votre Annuaire CadolesLDAP"><value>non</value></variable> <variable type='oui/non' name='ninegate_syncldap' description="Synchroniser Ninegate vers votre Annuaire CadolesLDAP"><value>non</value></variable>
<variable type='string' name='ninegate_ldaptemplate' description="Modèle d'annuaire"><value>scribe</value></variable> <variable type='string' name='ninegate_ldaptemplate' description="Modèle d'annuaire"><value>scribe</value></variable>
@ -463,6 +464,7 @@
<target type='variable'>ninegate_ssoreqgroup</target> <target type='variable'>ninegate_ssoreqgroup</target>
<target type='variable'>ninegate_ssosynchroitem</target> <target type='variable'>ninegate_ssosynchroitem</target>
<target type='variable'>ninegate_ssoreqitem</target> <target type='variable'>ninegate_ssoreqitem</target>
<target type='variable'>ninegate_typesso</target>
<target type='variable'>ninegate_syncldap</target> <target type='variable'>ninegate_syncldap</target>
<target type='variable'>ninegate_ldaptemplate</target> <target type='variable'>ninegate_ldaptemplate</target>
@ -565,6 +567,14 @@
<target type='variable'>ninegate_ssoreqitem</target> <target type='variable'>ninegate_ssoreqitem</target>
</condition> </condition>
<condition name='hidden_if_in' source='ninegate_mode_auth'>
<param>SQL</param>
<param>LDAP</param>
<param>SAML</param>
<target type='variable'>ninegate_typesso</target>
</condition>
<condition name='hidden_if_in' source='ninegate_syncldap'> <condition name='hidden_if_in' source='ninegate_syncldap'>
<param>non</param> <param>non</param>
@ -1636,6 +1646,10 @@
<param>['CAS', 'SAML', 'SQL', 'LDAP']</param> <param>['CAS', 'SAML', 'SQL', 'LDAP']</param>
</check> </check>
<check name='valid_enum' target='ninegate_typesso'>
<param>['client', 'proxy']</param>
</check>
<check name='valid_enum' target='ninegate_moderegistration'> <check name='valid_enum' target='ninegate_moderegistration'>
<param>['none', 'byuser', 'byadmin']</param> <param>['none', 'byuser', 'byadmin']</param>
</check> </check>

View File

@ -30,6 +30,9 @@ class SecurityController extends Controller
// Init Client CAS // Init Client CAS
\phpCAS::setDebug("/var/log/phpcas/phpCAS-ninegate.log"); \phpCAS::setDebug("/var/log/phpcas/phpCAS-ninegate.log");
if($this->getParameter("cas_type")=="client")
@\phpCAS::client(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), false);
else
@\phpCAS::proxy(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), false); @\phpCAS::proxy(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), false);
\phpCAS::setNoCasServerValidation(); \phpCAS::setNoCasServerValidation();
@ -195,6 +198,9 @@ class SecurityController extends Controller
public function logoutAction() { public function logoutAction() {
// Init Client CAS // Init Client CAS
\phpCAS::setDebug(false); \phpCAS::setDebug(false);
if($this->getParameter("cas_type")=="client")
@\phpCAS::client(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), true);
else
@\phpCAS::proxy(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), true); @\phpCAS::proxy(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), true);
\phpCAS::setNoCasServerValidation(); \phpCAS::setNoCasServerValidation();
@ -209,6 +215,9 @@ class SecurityController extends Controller
// Init Client CAS // Init Client CAS
\phpCAS::setDebug("/var/log/phpcas/phpCAS-ninegate.log"); \phpCAS::setDebug("/var/log/phpcas/phpCAS-ninegate.log");
if($this->getParameter("cas_type")=="client")
@\phpCAS::client(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), false);
else
@\phpCAS::proxy(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), false); @\phpCAS::proxy(CAS_VERSION_2_0, $this->getParameter('cas_host'), $this->getParameter('cas_port'), is_null($this->getParameter('cas_path')) ? '' : $this->getParameter('cas_path'), false);
\phpCAS::setNoCasServerValidation(); \phpCAS::setNoCasServerValidation();
@ -297,7 +306,7 @@ class SecurityController extends Controller
} }
function imapunreadAction() { function imapunreadAction() {
if($this->getParameter("active_imapunread")) { if($this->getParameter("active_imapunread")&&$this->getParameter("cas_type")=="proxy") {
$ip=$this->getParameter("imapundread_ip"); $ip=$this->getParameter("imapundread_ip");
// Init Client CAS // Init Client CAS

View File

@ -973,7 +973,12 @@ class InitDataCommand extends ContainerAwareCommand
$entityItem->addGroup($groupall); $entityItem->addGroup($groupall);
} }
$entityItem->setUrl($widroundcube_url); $entityItem->setUrl($widroundcube_url);
if($this->getContainer()->getParameter('cas_type')=="proxy")
$entityItem->setBadgeurl("/ninegate/cas/imapunread"); $entityItem->setBadgeurl("/ninegate/cas/imapunread");
else
$entityItem->setBadgeurl(null);
$em->persist($entityItem); $em->persist($entityItem);
} }

View File

@ -180,7 +180,7 @@
{%endif%} {%endif%}
<div class="grid-item {{ stylegrid }}" data-idcategory="bookmark" data-title="{{ bookmark.item.title|lower }}"> <div class="grid-item {{ stylegrid }}" data-idcategory="bookmark" data-title="{{ bookmark.item.title|lower }}">
<div class="grid-item-content" style="background-color: {{ bookmark.color ? "#"~bookmark.color : '#'~colormain }};"> <div class="grid-item-content" style="background-color: {{ bookmark.item.color ? "#"~bookmark.item.color : '#'~colormain }};">
{% if bookmark.item.content %} {% if bookmark.item.content %}
<a style="cursor:pointer" class="item-preview"><i style="color: #FFF" class="fa fa-info" title="Informations sur ce service"></i></a> <a style="cursor:pointer" class="item-preview"><i style="color: #FFF" class="fa fa-info" title="Informations sur ce service"></i></a>
{% endif %} {% endif %}
@ -207,10 +207,10 @@
<div class="grid-item-title"> <div class="grid-item-title">
<h2>{{ bookmark.item.title }}</h2> <h2>{{ bookmark.item.title }}</h2>
<span>{{ bookmark.item.subtitle|nl2br }}</span>
{% if not bookmark.item.badgeurl is empty %} {% if not bookmark.item.badgeurl is empty %}
<div class="itembadgeurl badge badge-pill" data-url="{{bookmark.item.badgeurl}}" style="background-color: #449d44;"></div> <div class="itembadgeurl badge badge-pill" data-url="{{bookmark.item.badgeurl}}" style="background-color: #ffffff; color: {{ bookmark.item.color ? "#"~bookmark.item.color : '#'~colormain }};"></div>
{% endif %} {% endif %}
<span>{{ bookmark.item.subtitle|nl2br }}</<span>
</div> </div>
</div> </div>
</a> </a>
@ -236,7 +236,7 @@
{% for bookmark in bookmarks %} {% for bookmark in bookmarks %}
{% if bookmark.item %} {% if bookmark.item %}
<div class="grid-item {{ stylegrid }}" data-idcategory="bookmark" data-title="{{ bookmark.item.title|lower }}"> <div class="grid-item {{ stylegrid }}" data-idcategory="bookmark" data-title="{{ bookmark.item.title|lower }}">
<div class="grid-item-content" style="background-color: {{ bookmark.color ? "#"~bookmark.color : '#'~colormain }};"> <div class="grid-item-content" style="background-color: {{ bookmark.item.color ? "#"~bookmark.item.color : '#'~colormain }};">
{% if bookmark.item.content %} {% if bookmark.item.content %}
<a style="cursor:pointer" class="item-preview"><i style="color: #FFF" class="fa fa-info" title="Informations sur ce service"></i></a> <a style="cursor:pointer" class="item-preview"><i style="color: #FFF" class="fa fa-info" title="Informations sur ce service"></i></a>
{% endif %} {% endif %}
@ -263,10 +263,12 @@
<div class="grid-item-title"> <div class="grid-item-title">
<h2>{{ bookmark.item.title }}</h2> <h2>{{ bookmark.item.title }}</h2>
<span>{{ bookmark.item.subtitle|nl2br }}</span>
{% if not bookmark.item.badgeurl is empty %} {% if not bookmark.item.badgeurl is empty %}
<div class="itembadgeurl badge badge-pill" data-url="{{bookmark.item.badgeurl}}" style="background-color: #449d44;"></div> <div style="margin-top:5px;text-align:center;{% if stylegrid == "grid-list"%} float: right;position: absolute;top: 10px;right: -50px; {%endif%}">
<div class="itembadgeurl badge badge-pill" data-url="{{bookmark.item.badgeurl}}" style="background-color: #ffffff; color: {{ bookmark.color ? "#"~bookmark.color : '#'~colormain }};"></div>
</div>
{% endif %} {% endif %}
<span>{{ bookmark.item.subtitle|nl2br }}</<span>
</div> </div>
</div> </div>
</a> </a>
@ -301,7 +303,7 @@
<div class="grid-item-title"> <div class="grid-item-title">
<h2>{{ bookmark.title }}</h2> <h2>{{ bookmark.title }}</h2>
<span>{{ bookmark.subtitle|nl2br }}</<span> <span>{{ bookmark.subtitle|nl2br }}</span>
</div> </div>
</div> </div>
</a> </a>
@ -412,10 +414,12 @@
<div class="grid-item-title"> <div class="grid-item-title">
<h2>{{ item.title }}</h2> <h2>{{ item.title }}</h2>
<span>{{ item.subtitle|nl2br }}</span>
{% if not item.badgeurl is empty %} {% if not item.badgeurl is empty %}
<div class="itembadgeurl badge badge-pill" data-url="{{item.badgeurl}}" style="background-color: #449d44;"></div> <div style="margin-top:5px;text-align:center;{% if stylegrid == "grid-list"%} float: right;position: absolute;top: 10px;right: -50px; {%endif%}">
<div class="itembadgeurl badge badge-pill" data-url="{{item.badgeurl}}" style="background-color: #ffffff; color: {{ item.color ? "#"~item.color : '#'~colormain }};"></div>
</div>
{% endif %} {% endif %}
<span>{{ item.subtitle|nl2br }}</<span>
</div> </div>
</div> </div>
</a> </a>

View File

@ -89,7 +89,7 @@
{% for bookmark in bookmarks %} {% for bookmark in bookmarks %}
{% if bookmark.item %} {% if bookmark.item %}
<div class="grid-item {{ stylegrid }}" data-idcategory="bookmark" data-title="{{ bookmark.item.title|lower }}"> <div class="grid-item {{ stylegrid }}" data-idcategory="bookmark" data-title="{{ bookmark.item.title|lower }}">
<div class="grid-item-content" style="background-color: {{ bookmark.color ? "#"~bookmark.color : '#'~colormain }};"> <div class="grid-item-content" style="background-color: {{ bookmark.item.color ? "#"~bookmark.item.color : '#'~colormain }};">
{% if bookmark.item.content %} {% if bookmark.item.content %}
<a style="cursor:pointer" class="item-preview"><i style="color: #FFF" class="fa fa-info" title="Informations sur ce service"></i></a> <a style="cursor:pointer" class="item-preview"><i style="color: #FFF" class="fa fa-info" title="Informations sur ce service"></i></a>
{% endif %} {% endif %}
@ -106,9 +106,6 @@
{% endif %} {% endif %}
<div class="item-link clearfix"> <div class="item-link clearfix">
{% if not bookmark.item.badgeurl is empty %}
<span class="badge badge-primary">3</span>
{% endif %}
<div class="grid-item-logo" title="{{ bookmark.item.subtitle|nl2br }}"> <div class="grid-item-logo" title="{{ bookmark.item.subtitle|nl2br }}">
{% if bookmark.item.icon %} {% if bookmark.item.icon %}
<img class="grid-item-img" src="/{{ alias }}/{{ bookmark.item.icon.label }}"> <img class="grid-item-img" src="/{{ alias }}/{{ bookmark.item.icon.label }}">
@ -119,10 +116,12 @@
<div class="grid-item-title"> <div class="grid-item-title">
<h2>{{ bookmark.item.title }}</h2> <h2>{{ bookmark.item.title }}</h2>
<span>{{ bookmark.item.subtitle|nl2br }}</span>
{% if not bookmark.item.badgeurl is empty %} {% if not bookmark.item.badgeurl is empty %}
<div class="itembadgeurl badge badge-pill" data-url="{{bookmark.item.badgeurl}}" style="background-color: #449d44;"></div> <div style="margin-top:5px;text-align:center;{% if stylegrid == "grid-list"%} float: right;position: absolute;top: 10px;right: -50px; {%endif%}">
<div class="itembadgeurl badge badge-pill" data-url="{{bookmark.item.badgeurl}}" style="background-color: #ffffff; color: {{ bookmark.item.color ? "#"~bookmark.item.color : '#'~colormain }};"></div>
</div>
{% endif %} {% endif %}
<span>{{ bookmark.item.subtitle|nl2br }}</<span>
</div> </div>
</div> </div>
</a> </a>
@ -207,10 +206,12 @@
<div class="grid-item-title"> <div class="grid-item-title">
<h2>{{ item.title }}</h2> <h2>{{ item.title }}</h2>
<span>{{ item.subtitle|nl2br }}</span>
{% if not item.badgeurl is empty %} {% if not item.badgeurl is empty %}
<div class="itembadgeurl badge badge-pill" data-url="{{item.badgeurl}}" style="background-color: #449d44;"></div> <div style="margin-top:5px;text-align:center;{% if stylegrid == "grid-list"%} float: right;position: absolute;top: 10px;right: -50px; {%endif%}">
<div class="itembadgeurl badge badge-pill" data-url="{{item.badgeurl}}" style="background-color: #ffffff; color: {{ item.color ? "#"~item.color : '#'~colormain }};"></div>
</div>
{% endif %} {% endif %}
<span>{{ item.subtitle|nl2br }}</<span>
</div> </div>
</div> </div>
</a> </a>

View File

@ -540,6 +540,8 @@ parameters:
cas_host: %%eolesso_adresse cas_host: %%eolesso_adresse
cas_path: %%getVar("eolesso_cas_folder", '') cas_path: %%getVar("eolesso_cas_folder", '')
cas_port: %%eolesso_port cas_port: %%eolesso_port
cas_type: %%getVar("ninegate_typesso", 'client')
# Si mode_aut = SAML # Si mode_aut = SAML
saml_entityid: 'http://dev.nuonet.cadoles' saml_entityid: 'http://dev.nuonet.cadoles'