mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-12 04:23:19 +00:00
add reset user rights from admin panel
This commit is contained in:
@@ -61,6 +61,30 @@ class Users implements ControllerProviderInterface
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$controllers->post('/rights/reset/', function(Application $app, Request $request)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
$core = $app['Core'];
|
||||||
|
$datas = array('error' => false);
|
||||||
|
|
||||||
|
$helper = new UserHelper\Edit($core, $request);
|
||||||
|
$helper->resetRights();
|
||||||
|
}
|
||||||
|
catch (\Exception $e)
|
||||||
|
{
|
||||||
|
$datas['error'] = true;
|
||||||
|
$datas['message'] = $e->getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Response(
|
||||||
|
$core->getSerializer()->serialize($datas, 'json')
|
||||||
|
, 200
|
||||||
|
, array('Content-Type' => 'application/json')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
$controllers->post('/delete/', function(Application $app)
|
$controllers->post('/delete/', function(Application $app)
|
||||||
{
|
{
|
||||||
$module = new UserHelper\Edit($app['Core'], $app['request']);
|
$module = new UserHelper\Edit($app['Core'], $app['request']);
|
||||||
|
@@ -671,4 +671,41 @@ class Edit extends \Alchemy\Phrasea\Helper\Helper
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function resetRights()
|
||||||
|
{
|
||||||
|
$authUser = $this->core->getAuthenticatedUser();
|
||||||
|
$adminACL = $authUser->ACL();
|
||||||
|
$base_ids = array_keys($adminACL->get_granted_base(array('canadmin')));
|
||||||
|
|
||||||
|
foreach ($this->users as $usr_id)
|
||||||
|
{
|
||||||
|
$user = \User_Adapter::getInstance($usr_id, \appbox::get_instance($this->core));
|
||||||
|
$ACL = $user->ACL();
|
||||||
|
|
||||||
|
if ($user->is_template())
|
||||||
|
{
|
||||||
|
$template = $user;
|
||||||
|
|
||||||
|
if ($template->get_template_owner()->get_id() !== $authUser->get_id())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($base_ids as $base_id)
|
||||||
|
{
|
||||||
|
if (!$ACL->has_access_to_base($base_id))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$ACL->set_limits($base_id, false);
|
||||||
|
$ACL->set_masks_on_base($base_id, 0, 0, 0, 0);
|
||||||
|
$ACL->remove_quotas_on_base($base_id);
|
||||||
|
}
|
||||||
|
$ACL->revoke_access_from_bases($base_ids);
|
||||||
|
$ACL->revoke_unused_sbas_rights();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -303,5 +303,54 @@ class ControllerUsersTest extends \PhraseanetWebTestCaseAuthenticatedAbstract
|
|||||||
$this->assertEquals("attachment; filename=export.txt", $response->headers->get("content-disposition"));
|
$this->assertEquals("attachment; filename=export.txt", $response->headers->get("content-disposition"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function testResetRights()
|
||||||
|
{
|
||||||
|
$appbox = \appbox::get_instance(self::$core);
|
||||||
|
$username = uniqid('user_');
|
||||||
|
$user = User_Adapter::create($appbox, $username, "test", $username . "@email.com", false);
|
||||||
|
|
||||||
|
$user->ACL()->give_access_to_sbas(array_keys($appbox->get_databoxes()));
|
||||||
|
|
||||||
|
foreach ($appbox->get_databoxes() as $databox)
|
||||||
|
{
|
||||||
|
|
||||||
|
$rights = array(
|
||||||
|
'bas_manage' => '1'
|
||||||
|
, 'bas_modify_struct' => '1'
|
||||||
|
, 'bas_modif_th' => '1'
|
||||||
|
, 'bas_chupub' => '1'
|
||||||
|
);
|
||||||
|
|
||||||
|
$user->ACL()->update_rights_to_sbas($databox->get_sbas_id(), $rights);
|
||||||
|
|
||||||
|
foreach ($databox->get_collections() as $collection)
|
||||||
|
{
|
||||||
|
$base_id = $collection->get_base_id();
|
||||||
|
$user->ACL()->give_access_to_base(array($base_id));
|
||||||
|
|
||||||
|
$rights = array(
|
||||||
|
'canputinalbum' => '1'
|
||||||
|
, 'candwnldhd' => '1'
|
||||||
|
, 'candwnldsubdef' => '1'
|
||||||
|
, 'nowatermark' => '1'
|
||||||
|
);
|
||||||
|
|
||||||
|
$user->ACL()->update_rights_to_base($collection->get_base_id(), $rights);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//
|
||||||
|
|
||||||
|
$this->client->request('POST', '/users/rights/reset/', array('users' => $user->get_id()));
|
||||||
|
$response = $this->client->getResponse();
|
||||||
|
$this->assertTrue($response->isOK());
|
||||||
|
$this->assertEquals("application/json", $response->headers->get("content-type"));
|
||||||
|
$datas = json_decode($response->getContent());
|
||||||
|
$this->assertTrue(is_object($datas));
|
||||||
|
$this->assertFalse($datas->error);
|
||||||
|
$this->assertFalse($user->ACL()->has_access_to_base($base_id));
|
||||||
|
$user->delete();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -453,7 +453,7 @@ abstract class PhraseanetPHPUnitAbstract extends WebTestCase
|
|||||||
//init core
|
//init core
|
||||||
if (null === self::$core)
|
if (null === self::$core)
|
||||||
{
|
{
|
||||||
self::$core = bootstrap::getCore();
|
self::$core = \bootstrap::getCore();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -152,6 +152,7 @@
|
|||||||
<option value="{{ template.get_id() }}">{{ template.get_display_name() }}</option>
|
<option value="{{ template.get_id() }}">{{ template.get_display_name() }}</option>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</select>
|
</select>
|
||||||
|
<button type='button' id='reset_rights'>{% trans 'reset users rights' %}</button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
@@ -572,3 +573,50 @@
|
|||||||
<a href="/admin/users/search/" class="users_rights_cancel">{% trans 'boutton::retour' %}</a>
|
<a href="/admin/users/search/" class="users_rights_cancel">{% trans 'boutton::retour' %}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<script type='text/javascript'>
|
||||||
|
$('#users_rights_form button#reset_rights').bind('click', function(){
|
||||||
|
if(confirm("{% trans'are you sure you want reset rights ?' %}"))
|
||||||
|
{
|
||||||
|
var users = $('#users_rights_form input[name="users"]').val();
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type: 'POST',
|
||||||
|
url: '/admin/users/rights/reset/',
|
||||||
|
dataType:'json',
|
||||||
|
data: {
|
||||||
|
users : users
|
||||||
|
},
|
||||||
|
success: function(data){
|
||||||
|
|
||||||
|
if(!data.error)
|
||||||
|
{
|
||||||
|
if(users === '')
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#right-ajax').empty().addClass('loading');
|
||||||
|
p4.users.sel = [];
|
||||||
|
$.ajax({
|
||||||
|
type: 'GET',
|
||||||
|
url: '/admin/users/rights/',
|
||||||
|
data: {
|
||||||
|
users : users
|
||||||
|
},
|
||||||
|
success: function(data){
|
||||||
|
$('#right-ajax').removeClass('loading').html(data);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
alert(data.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
@@ -34,7 +34,7 @@
|
|||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
<input type="hidden" value="{{invite_user.get_id()}}" name="invite_user_id"/>
|
<input type="hidden" value="{{invite_user.get_id()}}" name="invite_user_id"/>
|
||||||
|
|
||||||
<a class="autoregister_modifier" href="#">
|
<a class="autoregister_modifier" href="#">
|
||||||
<span>
|
<span>
|
||||||
{% trans 'Reglages:: reglages d inscitpition automatisee' %}
|
{% trans 'Reglages:: reglages d inscitpition automatisee' %}
|
||||||
@@ -59,7 +59,7 @@
|
|||||||
<button type="submit">{% trans 'boutton::chercher' %}</button>
|
<button type="submit">{% trans 'boutton::chercher' %}</button>
|
||||||
</p>
|
</p>
|
||||||
</form>
|
</form>
|
||||||
<form id="users_apply_template" method="post" action="/admin/users/apply_template/" target="_self">
|
<form id="users_apply_template" method="post" action="/admin/users/apply_template/" target="_self" style="float:left">
|
||||||
<p class="admin_head_opts">
|
<p class="admin_head_opts">
|
||||||
{% trans 'Apply a template' %}
|
{% trans 'Apply a template' %}
|
||||||
<select name="template_chooser">
|
<select name="template_chooser">
|
||||||
@@ -72,235 +72,279 @@
|
|||||||
</p>
|
</p>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<table id="users" cellspacing="0" cellpadding="0" border="0" class="admintable">
|
<form id="users_reset_rights" method="post" action="/admin/users/rights/reset/" target="_self" style="float:right">
|
||||||
<thead>
|
<input type="hidden" value="" name="users">
|
||||||
<tr>
|
<button type='button'>{% trans 'reset users rights' %}</button>
|
||||||
<th style="text-align: center;" class="sortable {{ parm.srt == 'usr_id' ? 'sorted' : '' }} {{ parm.ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
|
</form>
|
||||||
{% trans 'admin::compte-utilisateur id utilisateur' %}
|
|
||||||
<span class="ord_notifier">
|
<table id="users" cellspacing="0" cellpadding="0" border="0" class="admintable">
|
||||||
{{ parm.ord == 'asc' ? '▼' : '▲' }}
|
<thead>
|
||||||
</span>
|
<tr>
|
||||||
<input type="hidden" name="srt" value="usr_id" />
|
<th style="text-align: center;" class="sortable {{ parm.srt == 'usr_id' ? 'sorted' : '' }} {{ parm.ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
|
||||||
</th>
|
{% trans 'admin::compte-utilisateur id utilisateur' %}
|
||||||
<th class="sortable {{ parm.srt == 'usr_login' ? 'sorted' : '' }} ">
|
<span class="ord_notifier">
|
||||||
<span>
|
{{ parm.ord == 'asc' ? '▼' : '▲' }}
|
||||||
{% trans 'admin::compte-utilisateur identifiant' %}
|
</span>
|
||||||
</span>
|
<input type="hidden" name="srt" value="usr_id" />
|
||||||
<span class="ord_notifier">
|
</th>
|
||||||
{{ parm.ord == 'asc' ? '▼' : '▲' }}
|
<th class="sortable {{ parm.srt == 'usr_login' ? 'sorted' : '' }} ">
|
||||||
</span>
|
<span>
|
||||||
<input type="hidden" name="srt" value="usr_login" />
|
{% trans 'admin::compte-utilisateur identifiant' %}
|
||||||
</th>
|
</span>
|
||||||
<th class="sortable {{ parm.srt == 'usr_nom' ? 'sorted' : '' }} {{ parm.ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
|
<span class="ord_notifier">
|
||||||
<span>
|
{{ parm.ord == 'asc' ? '▼' : '▲' }}
|
||||||
{% trans 'admin::compte-utilisateur nom/prenom' %}
|
</span>
|
||||||
</span>
|
<input type="hidden" name="srt" value="usr_login" />
|
||||||
<span class="ord_notifier">
|
</th>
|
||||||
{{ parm.ord == 'asc' ? '▼' : '▲' }}
|
<th class="sortable {{ parm.srt == 'usr_nom' ? 'sorted' : '' }} {{ parm.ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
|
||||||
</span>
|
<span>
|
||||||
<input type="hidden" name="srt" value="usr_nom" />
|
{% trans 'admin::compte-utilisateur nom/prenom' %}
|
||||||
</th>
|
</span>
|
||||||
<th class="sortable {{ parm.srt == 'societe' ? 'sorted' : '' }} {{ parm.ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
|
<span class="ord_notifier">
|
||||||
<span>
|
{{ parm.ord == 'asc' ? '▼' : '▲' }}
|
||||||
{% trans 'admin::compte-utilisateur societe' %}
|
</span>
|
||||||
</span>
|
<input type="hidden" name="srt" value="usr_nom" />
|
||||||
<span class="ord_notifier">
|
</th>
|
||||||
{{ parm.ord == 'asc' ? '▼' : '▲' }}
|
<th class="sortable {{ parm.srt == 'societe' ? 'sorted' : '' }} {{ parm.ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
|
||||||
</span>
|
<span>
|
||||||
<input type="hidden" name="srt" value="societe" />
|
{% trans 'admin::compte-utilisateur societe' %}
|
||||||
</th>
|
</span>
|
||||||
<th class="sortable {{ parm.srt == 'usr_mail' ? 'sorted' : '' }} {{ parm.ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
|
<span class="ord_notifier">
|
||||||
<span>
|
{{ parm.ord == 'asc' ? '▼' : '▲' }}
|
||||||
{% trans 'admin::compte-utilisateur email' %}
|
</span>
|
||||||
</span>
|
<input type="hidden" name="srt" value="societe" />
|
||||||
<span class="ord_notifier">
|
</th>
|
||||||
{{ parm.ord == 'asc' ? '▼' : '▲' }}
|
<th class="sortable {{ parm.srt == 'usr_mail' ? 'sorted' : '' }} {{ parm.ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
|
||||||
</span>
|
<span>
|
||||||
<input type="hidden" name="srt" value="usr_mail" />
|
{% trans 'admin::compte-utilisateur email' %}
|
||||||
</th>
|
</span>
|
||||||
<th class="sortable {{ parm.srt == 'pays' ? 'sorted' : '' }} {{ parm.ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
|
<span class="ord_notifier">
|
||||||
<span>
|
{{ parm.ord == 'asc' ? '▼' : '▲' }}
|
||||||
{% trans 'admin::compte-utilisateur pays' %}
|
</span>
|
||||||
</span>
|
<input type="hidden" name="srt" value="usr_mail" />
|
||||||
<span class="ord_notifier">
|
</th>
|
||||||
{{ parm.ord == 'asc' ? '▼' : '▲' }}
|
<th class="sortable {{ parm.srt == 'pays' ? 'sorted' : '' }} {{ parm.ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
|
||||||
</span>
|
<span>
|
||||||
<input type="hidden" name="srt" value="pays" />
|
{% trans 'admin::compte-utilisateur pays' %}
|
||||||
</th>
|
</span>
|
||||||
<th class="sortable {{ parm.srt == 'lastModel' ? 'sorted' : '' }} {{ parm.ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
|
<span class="ord_notifier">
|
||||||
<span>
|
{{ parm.ord == 'asc' ? '▼' : '▲' }}
|
||||||
{% trans 'admin::compte-utilisateur dernier modele applique' %}
|
</span>
|
||||||
</span>
|
<input type="hidden" name="srt" value="pays" />
|
||||||
<span class="ord_notifier">
|
</th>
|
||||||
{{ parm.ord == 'asc' ? '▼' : '▲' }}
|
<th class="sortable {{ parm.srt == 'lastModel' ? 'sorted' : '' }} {{ parm.ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
|
||||||
</span>
|
<span>
|
||||||
<input type="hidden" name="srt" value="lastModel" />
|
{% trans 'admin::compte-utilisateur dernier modele applique' %}
|
||||||
</th>
|
</span>
|
||||||
<th class="sortable {{ parm.srt == 'usr_creationdate' ? 'sorted' : '' }} {{ parm.ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
|
<span class="ord_notifier">
|
||||||
<span>
|
{{ parm.ord == 'asc' ? '▼' : '▲' }}
|
||||||
{% trans 'admin::compte-utilisateur date de creation' %}
|
</span>
|
||||||
</span>
|
<input type="hidden" name="srt" value="lastModel" />
|
||||||
<span class="ord_notifier">
|
</th>
|
||||||
{{ parm.ord == 'asc' ? '▼' : '▲' }}
|
<th class="sortable {{ parm.srt == 'usr_creationdate' ? 'sorted' : '' }} {{ parm.ord == 'asc' ? 'sort_asc' : 'sort_desc' }}">
|
||||||
</span>
|
<span>
|
||||||
<input type="hidden" name="srt" value="usr_creationdate" />
|
{% trans 'admin::compte-utilisateur date de creation' %}
|
||||||
</th>
|
</span>
|
||||||
</tr>
|
<span class="ord_notifier">
|
||||||
</thead>
|
{{ parm.ord == 'asc' ? '▼' : '▲' }}
|
||||||
<tbody>
|
</span>
|
||||||
{% for usr in users.get_results %}
|
<input type="hidden" name="srt" value="usr_creationdate" />
|
||||||
<tr class="{% if loop.index is odd %}odd{% else %}even{% endif %}" id="user_{{usr.get_id()}}">
|
</th>
|
||||||
<td style="text-align: center;">
|
</tr>
|
||||||
{% if usr.is_template() %}
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for usr in users.get_results %}
|
||||||
|
<tr class="{% if loop.index is odd %}odd{% else %}even{% endif %}" id="user_{{usr.get_id()}}">
|
||||||
|
<td style="text-align: center;">
|
||||||
|
{% if usr.is_template() %}
|
||||||
<img title="{% trans 'This is a template' %}" src="/skins/icons/template.png"/>
|
<img title="{% trans 'This is a template' %}" src="/skins/icons/template.png"/>
|
||||||
{% else %}
|
{% else %}
|
||||||
{% if usr.ACL().is_phantom() %}
|
{% if usr.ACL().is_phantom() %}
|
||||||
<img title="{% trans 'This user has no rights' %}" src="/skins/admin/ghost.png"/>
|
<img title="{% trans 'This user has no rights' %}" src="/skins/admin/ghost.png"/>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{{usr.get_id()}}
|
{{usr.get_id()}}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{{usr.get_login()}}
|
{{usr.get_login()}}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{{usr.get_firstname()}} {{usr.get_lastname()}}
|
{{usr.get_firstname()}} {{usr.get_lastname()}}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{{usr.get_company()}}
|
{{usr.get_company()}}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{{usr.get_email()}}
|
{{usr.get_email()}}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{{usr.get_country()}}
|
{{usr.get_country()}}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{{usr.get_applied_template()}}
|
{{usr.get_applied_template()}}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{{usr.get_creation_date()|getDate}}
|
{{usr.get_creation_date()|getDate}}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|
||||||
<form id="export_form" method="post" target="exportwindow" action="/admin/users/search/export/">
|
|
||||||
<input name="srt" value="{{parm['srt']}}" type="hidden" />
|
|
||||||
<input name="ord" value="{{parm.ord}}" type="hidden" />
|
|
||||||
{% for sbas_id in parm.sbas_id %}
|
|
||||||
<input name="sbas_id[]" value="{{sbas_id}}" type="hidden" />
|
|
||||||
{% endfor %}
|
|
||||||
{% for base_id in parm.base_id %}
|
|
||||||
<input name="base_id[]" value="{{base_id}}" type="hidden" />
|
|
||||||
{% endfor %}
|
|
||||||
{% if parm['usr_ids'] is defined %}
|
|
||||||
<input name="usr_ids" value="{{parm.usr_ids}}" type="hidden" />
|
|
||||||
{% endif %}
|
|
||||||
<input name="like_value" value="{{parm.like_value}}" type="hidden" />
|
|
||||||
<input name="like_field" value="{{parm.like_field}}" type="hidden" />
|
|
||||||
<input name="inactives" value="{{parm.inactives}}" type="hidden" />
|
|
||||||
</form>
|
|
||||||
|
|
||||||
<form id="users_page_form" method="post" target="_self" action="/admin/users/search/">
|
|
||||||
{{users.get_total}} resultats
|
|
||||||
|
|
||||||
{% set pages = users.get_total() / parm['per_page'] %}
|
|
||||||
{% set modulo = users.get_total() % parm['per_page'] %}
|
|
||||||
|
|
||||||
{% if modulo > 0 %}{% set pages = pages + 1 %}{% endif %}
|
|
||||||
{{pages|floor}} pages
|
|
||||||
{% if users.get_page > 2 %}
|
|
||||||
<button class="pager first"><<</button>
|
|
||||||
{% endif %}
|
|
||||||
{% if users.get_page > 1 %}
|
|
||||||
<button class="pager prev"><</button>
|
|
||||||
{% endif %}
|
|
||||||
<input type="text" value="{{users.get_page}}" />
|
|
||||||
{% if users.get_page < pages -1 %}
|
|
||||||
<button class="pager next">></button>
|
|
||||||
{% endif %}
|
|
||||||
{% if users.get_page < pages - 2 %}
|
|
||||||
<button class="pager last">>></button>
|
|
||||||
{% endif %}
|
|
||||||
<select name="per_page">
|
|
||||||
{% set n_par_page = 10 %}
|
|
||||||
<option value="10" {% if parm['per_page'] == 10%}selected="selected"{% endif %}>{% trans %}{{n_par_page}} par page {% endtrans %}</option>
|
|
||||||
{% set n_par_page = 20 %}
|
|
||||||
<option value="20" {% if parm['per_page'] == 20%}selected="selected"{% endif %}>{% trans %}{{n_par_page}} par page {% endtrans %}</option>
|
|
||||||
{% set n_par_page = 50 %}
|
|
||||||
<option value="50" {% if parm['per_page'] == 50%}selected="selected"{% endif %}>{% trans %}{{n_par_page}} par page {% endtrans %}</option>
|
|
||||||
</select>
|
|
||||||
<button class="user_modifier">{% trans 'boutton::modifier' %}</button>
|
|
||||||
<button class="user_deleter">{% trans 'Supprimer' %}</button>
|
|
||||||
|
|
||||||
|
|
||||||
<input type="hidden" name="total_results" value="{{users.get_total()}}"/>
|
<form id="export_form" method="post" target="exportwindow" action="/admin/users/search/export/">
|
||||||
<input type="hidden" name="page" value="{{users.get_page()}}"/>
|
<input name="srt" value="{{parm['srt']}}" type="hidden" />
|
||||||
<input name="srt" value="{{parm['srt']}}" type="hidden" />
|
<input name="ord" value="{{parm.ord}}" type="hidden" />
|
||||||
<input name="ord" value="{{parm.ord}}" type="hidden" />
|
|
||||||
{% if parm['act'] is defined %}
|
|
||||||
<input name="act" value="{{parm.act}}" type="hidden" />
|
|
||||||
{% endif %}
|
|
||||||
{% for sbas_id in parm.sbas_id %}
|
|
||||||
<input name="sbas_id[]" value="{{sbas_id}}" type="hidden" />
|
|
||||||
{% endfor %}
|
|
||||||
{% for base_id in parm.base_id %}
|
|
||||||
<input name="base_id[]" value="{{base_id}}" type="hidden" />
|
|
||||||
{% endfor %}
|
|
||||||
{% if parm['usr_ids'] is defined %}
|
|
||||||
<input name="usr_ids" value="{{parm.usr_ids}}" type="hidden" />
|
|
||||||
{% endif %}
|
|
||||||
<input name="like_value" value="{{parm.like_value}}" type="hidden" />
|
|
||||||
<input name="like_field" value="{{parm.like_field}}" type="hidden" />
|
|
||||||
<input name="inactives" value="{{parm.inactives}}" type="hidden" />
|
|
||||||
<input name="offset_start" value="{{parm.offset_start}}" type="hidden" />
|
|
||||||
|
|
||||||
</form>
|
|
||||||
<form target="_blank" method="post" action="/admin/users/export/csv/">
|
|
||||||
{% if parm.base_id is not empty %}
|
|
||||||
{% for base_id in parm.base_id %}
|
|
||||||
<input name="base_id[]" value="{{base_id}}" type="hidden" />
|
|
||||||
{% endfor %}
|
|
||||||
{% endif %}
|
|
||||||
{% if parm.sbas_id is not empty %}
|
|
||||||
{% for sbas_id in parm.sbas_id %}
|
{% for sbas_id in parm.sbas_id %}
|
||||||
<input name="sbas_id[]" value="{{sbas_id}}" type="hidden" />
|
<input name="sbas_id[]" value="{{sbas_id}}" type="hidden" />
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% for base_id in parm.base_id %}
|
||||||
<input name="like_value" value="{{parm.like_value}}" type="hidden" />
|
<input name="base_id[]" value="{{base_id}}" type="hidden" />
|
||||||
<input name="like_field" value="{{parm.like_field}}" type="hidden" />
|
{% endfor %}
|
||||||
<button>{% trans 'boutton::exporter' %}</button>
|
{% if parm['usr_ids'] is defined %}
|
||||||
</form>
|
<input name="usr_ids" value="{{parm.usr_ids}}" type="hidden" />
|
||||||
<script type="text/javascript">
|
{% endif %}
|
||||||
$(document).ready(function(){
|
<input name="like_value" value="{{parm.like_value}}" type="hidden" />
|
||||||
$.each(p4.users.sel, function(i,n){
|
<input name="like_field" value="{{parm.like_field}}" type="hidden" />
|
||||||
var el = $('#user_'+n);
|
<input name="inactives" value="{{parm.inactives}}" type="hidden" />
|
||||||
if(el.length > 0)
|
</form>
|
||||||
{
|
|
||||||
el.addClass('selected');
|
<form id="users_page_form" method="post" target="_self" action="/admin/users/search/">
|
||||||
}
|
{{users.get_total}} resultats
|
||||||
});
|
|
||||||
$('#users_page_form select[name="per_page"]').bind('change', function(){
|
{% set pages = users.get_total() / parm['per_page'] %}
|
||||||
$(this).closest('form').submit();
|
{% set modulo = users.get_total() % parm['per_page'] %}
|
||||||
});
|
|
||||||
|
{% if modulo > 0 %}{% set pages = pages + 1 %}{% endif %}
|
||||||
|
{{pages|floor}} pages
|
||||||
|
{% if users.get_page > 2 %}
|
||||||
|
<button class="pager first"><<</button>
|
||||||
|
{% endif %}
|
||||||
|
{% if users.get_page > 1 %}
|
||||||
|
<button class="pager prev"><</button>
|
||||||
|
{% endif %}
|
||||||
|
<input type="text" value="{{users.get_page}}" />
|
||||||
|
{% if users.get_page < pages -1 %}
|
||||||
|
<button class="pager next">></button>
|
||||||
|
{% endif %}
|
||||||
|
{% if users.get_page < pages - 2 %}
|
||||||
|
<button class="pager last">>></button>
|
||||||
|
{% endif %}
|
||||||
|
<select name="per_page">
|
||||||
|
{% set n_par_page = 10 %}
|
||||||
|
<option value="10" {% if parm['per_page'] == 10%}selected="selected"{% endif %}>{% trans %}{{n_par_page}} par page {% endtrans %}</option>
|
||||||
|
{% set n_par_page = 20 %}
|
||||||
|
<option value="20" {% if parm['per_page'] == 20%}selected="selected"{% endif %}>{% trans %}{{n_par_page}} par page {% endtrans %}</option>
|
||||||
|
{% set n_par_page = 50 %}
|
||||||
|
<option value="50" {% if parm['per_page'] == 50%}selected="selected"{% endif %}>{% trans %}{{n_par_page}} par page {% endtrans %}</option>
|
||||||
|
</select>
|
||||||
|
<button class="user_modifier">{% trans 'boutton::modifier' %}</button>
|
||||||
|
<button class="user_deleter">{% trans 'Supprimer' %}</button>
|
||||||
|
|
||||||
|
|
||||||
|
<input type="hidden" name="total_results" value="{{users.get_total()}}"/>
|
||||||
|
<input type="hidden" name="page" value="{{users.get_page()}}"/>
|
||||||
|
<input name="srt" value="{{parm['srt']}}" type="hidden" />
|
||||||
|
<input name="ord" value="{{parm.ord}}" type="hidden" />
|
||||||
|
{% if parm['act'] is defined %}
|
||||||
|
<input name="act" value="{{parm.act}}" type="hidden" />
|
||||||
|
{% endif %}
|
||||||
|
{% for sbas_id in parm.sbas_id %}
|
||||||
|
<input name="sbas_id[]" value="{{sbas_id}}" type="hidden" />
|
||||||
|
{% endfor %}
|
||||||
|
{% for base_id in parm.base_id %}
|
||||||
|
<input name="base_id[]" value="{{base_id}}" type="hidden" />
|
||||||
|
{% endfor %}
|
||||||
|
{% if parm['usr_ids'] is defined %}
|
||||||
|
<input name="usr_ids" value="{{parm.usr_ids}}" type="hidden" />
|
||||||
|
{% endif %}
|
||||||
|
<input name="like_value" value="{{parm.like_value}}" type="hidden" />
|
||||||
|
<input name="like_field" value="{{parm.like_field}}" type="hidden" />
|
||||||
|
<input name="inactives" value="{{parm.inactives}}" type="hidden" />
|
||||||
|
<input name="offset_start" value="{{parm.offset_start}}" type="hidden" />
|
||||||
|
|
||||||
|
</form>
|
||||||
|
<form target="_blank" method="post" action="/admin/users/export/csv/">
|
||||||
|
{% if parm.base_id is not empty %}
|
||||||
|
{% for base_id in parm.base_id %}
|
||||||
|
<input name="base_id[]" value="{{base_id}}" type="hidden" />
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% if parm.sbas_id is not empty %}
|
||||||
|
{% for sbas_id in parm.sbas_id %}
|
||||||
|
<input name="sbas_id[]" value="{{sbas_id}}" type="hidden" />
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
<input name="like_value" value="{{parm.like_value}}" type="hidden" />
|
||||||
|
<input name="like_field" value="{{parm.like_field}}" type="hidden" />
|
||||||
|
<button>{% trans 'boutton::exporter' %}</button>
|
||||||
|
</form>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function(){
|
||||||
|
$.each(p4.users.sel, function(i,n){
|
||||||
|
var el = $('#user_'+n);
|
||||||
|
if(el.length > 0)
|
||||||
|
{
|
||||||
|
el.addClass('selected');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$('#users_page_form select[name="per_page"]').bind('change', function(){
|
||||||
|
$(this).closest('form').submit();
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#users_reset_rights button').bind('click', function(){
|
||||||
|
var selectedUsers = $("#users tr.selected");
|
||||||
|
|
||||||
|
if(selectedUsers.length === 0)
|
||||||
|
{
|
||||||
|
alert("{% trans 'select at least one user' %}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var users = '';
|
||||||
|
$.each(selectedUsers, function(i,n){
|
||||||
|
users += $(n).attr("id").split("_").pop() + ';';
|
||||||
|
});
|
||||||
|
|
||||||
|
if(confirm("{% trans 'are you sure you want reset rights ?' %}"))
|
||||||
|
{
|
||||||
|
$("#users_reset_rights input[name='users']").val(users);
|
||||||
|
|
||||||
|
var form = $(this).closest('form');
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: form.attr("action"),
|
||||||
|
dataType: 'json',
|
||||||
|
type : form.attr('method'),
|
||||||
|
data: form.serializeArray(),
|
||||||
|
success: function(data){
|
||||||
|
if(data.error)
|
||||||
|
{
|
||||||
|
alert("{% trans 'an error occured' %}");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
alert("{% trans 'users rights have been reseted' %}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
function importlist()
|
function importlist()
|
||||||
{
|
{
|
||||||
var myObj = new Object();
|
var myObj = new Object();
|
||||||
myObj.myOpener = self;
|
myObj.myOpener = self;
|
||||||
window.showModalDialog ('/admin/import0.php?rand='+Math.random(),myObj, 'dialogWidth:550px;dialogHeight:330px;center:yes;help:no;status:no;scrollbars:no' );
|
window.showModalDialog ('/admin/import0.php?rand='+Math.random(),myObj, 'dialogWidth:550px;dialogHeight:330px;center:yes;help:no;status:no;scrollbars:no' );
|
||||||
|
|
||||||
}
|
}
|
||||||
function exportlist()
|
function exportlist()
|
||||||
{
|
{
|
||||||
$('#export_form').submit();
|
$('#export_form').submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
@@ -74,13 +74,13 @@ function ini_edit_usrs(){
|
|||||||
$('#users_rights_form div.switch_right').bind('click', function(event){
|
$('#users_rights_form div.switch_right').bind('click', function(event){
|
||||||
user_click_box(event, $(this));
|
user_click_box(event, $(this));
|
||||||
});
|
});
|
||||||
$('#right-ajax button.users_rights_valid').bind('click', function(){
|
$('#right-ajax button.users_rights_valid').bind('click', function(){
|
||||||
var datas = {
|
var datas = {
|
||||||
users:$('#users_rights_form input[name="users"]').val(),
|
users:$('#users_rights_form input[name="users"]').val(),
|
||||||
values:$('#users_rights_form').serialize(),
|
values:$('#users_rights_form').serialize(),
|
||||||
template:$('#users_rights_form select[name="template"]').val(),
|
template:$('#users_rights_form select[name="template"]').val(),
|
||||||
user_infos:$('#user_infos_form').serialize()
|
user_infos:$('#user_infos_form').serialize()
|
||||||
};
|
};
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
url: '/admin/users/rights/apply/',
|
url: '/admin/users/rights/apply/',
|
||||||
|
Reference in New Issue
Block a user