mirror of https://github.com/MISP/MISP
chg: Made the role add/edit forms a bit more sane
- allow for some permissions to be given out to read only users - hide the permissions that can't be selected for the given access levelpull/2002/head
parent
3c558c653d
commit
65e0a31f61
|
@ -46,7 +46,7 @@ class AppController extends Controller {
|
|||
|
||||
public $helpers = array('Utility');
|
||||
|
||||
private $__jsVersion = '2.4.66';
|
||||
private $__jsVersion = '2.4.67';
|
||||
public $pyMispVersion = '2.4.65';
|
||||
public $phpmin = '5.6.5';
|
||||
public $phprec = '7.0.0';
|
||||
|
|
|
@ -8,11 +8,17 @@
|
|||
<div class = 'input clear'></div>
|
||||
<?php
|
||||
$counter = 1;
|
||||
foreach ($permFlags as $k => $flag) {
|
||||
echo $this->Form->input($k, array('type' => 'checkbox', 'checked' => false));
|
||||
if ($counter%3 == 0) echo "<div class = 'input clear'></div>";
|
||||
$counter++;
|
||||
}
|
||||
foreach ($permFlags as $k => $flag):
|
||||
?>
|
||||
<div class="permFlags<?php echo ' ' . ($flag['readonlyenabled'] ? 'readonlyenabled' : 'readonlydisabled'); ?>">
|
||||
<?php
|
||||
echo $this->Form->input($k, array('type' => 'checkbox', 'class' => 'checkbox ' . ($flag['readonlyenabled'] ? 'readonlyenabled' : 'readonlydisabled'), 'checked' => false));
|
||||
if ($counter%3 == 0) echo "<div class = 'input clear'></div>";
|
||||
$counter++;
|
||||
?>
|
||||
</div>
|
||||
<?php
|
||||
endforeach;
|
||||
?>
|
||||
</fieldset>
|
||||
<?php
|
||||
|
@ -22,48 +28,14 @@ echo $this->Form->end();
|
|||
</div>
|
||||
<?php
|
||||
echo $this->element('side_menu', array('menuList' => 'admin', 'menuItem' => 'addRole'));
|
||||
$this->Js->get('#RolePermission')->event('change', 'deactivateActions()');
|
||||
foreach ($permFlags as $k => $flag) {
|
||||
if ($k !== 'perm_site_admin') $this->Js->get('#' . $flag['id'])->event('change', 'checkPerms("' . $flag['id'] . '")');
|
||||
else $this->Js->get('#RolePermSiteAdmin')->event('change', 'checkPerms("RolePermSiteAdmin");activateAll();');
|
||||
}
|
||||
?>
|
||||
|
||||
<script type="text/javascript">
|
||||
// only be able to tick perm_sync if manage org events and above.
|
||||
|
||||
function deactivateActions() {
|
||||
var e = document.getElementById("RolePermission");
|
||||
if (e.options[e.selectedIndex].value == '0' || e.options[e.selectedIndex].value == '1') {
|
||||
<?php
|
||||
foreach ($permFlags as $k => $flag):
|
||||
?>
|
||||
document.getElementById("<?php echo $flag['id']; ?>").checked = false;
|
||||
<?php
|
||||
endforeach;
|
||||
?>
|
||||
}
|
||||
}
|
||||
|
||||
function activateAll() {
|
||||
if (document.getElementById("RolePermSiteAdmin").checked) {
|
||||
<?php
|
||||
foreach ($permFlags as $k => $flag):
|
||||
if ($k !== 'perm_site_admin'):
|
||||
?>
|
||||
document.getElementById("<?php echo $flag['id']; ?>").checked = true;
|
||||
<?php
|
||||
endif;
|
||||
endforeach;
|
||||
?>
|
||||
}
|
||||
}
|
||||
|
||||
function checkPerms(id) {
|
||||
var e = document.getElementById("RolePermission");
|
||||
if (e.options[e.selectedIndex].value == '0' || e.options[e.selectedIndex].value == '1') {
|
||||
document.getElementById(id).checked = false;
|
||||
}
|
||||
}
|
||||
$(document).ready(function() {
|
||||
checkRolePerms();
|
||||
$(".checkbox, #RolePermission").change(function() {
|
||||
checkRolePerms();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<?php echo $this->Js->writeBuffer();
|
||||
|
|
|
@ -8,11 +8,17 @@
|
|||
<div class = 'input clear'></div>
|
||||
<?php
|
||||
$counter = 1;
|
||||
foreach ($permFlags as $k => $flag) {
|
||||
echo $this->Form->input($k, array('type' => 'checkbox'));
|
||||
if ($counter%3 == 0) echo "<div class = 'input clear'></div>";
|
||||
$counter++;
|
||||
}
|
||||
foreach ($permFlags as $k => $flag):
|
||||
?>
|
||||
<div class="permFlags<?php echo ' ' . ($flag['readonlyenabled'] ? 'readonlyenabled' : 'readonlydisabled'); ?>">
|
||||
<?php
|
||||
echo $this->Form->input($k, array('type' => 'checkbox', 'class' => 'checkbox ' . ($flag['readonlyenabled'] ? 'readonlyenabled' : 'readonlydisabled')));
|
||||
if ($counter%3 == 0) echo "<div class = 'input clear'></div>";
|
||||
$counter++;
|
||||
?>
|
||||
</div>
|
||||
<?php
|
||||
endforeach;
|
||||
?>
|
||||
</fieldset>
|
||||
<?php
|
||||
|
@ -22,49 +28,14 @@
|
|||
</div>
|
||||
<?php
|
||||
echo $this->element('side_menu', array('menuList' => 'admin', 'menuItem' => 'editRole'));
|
||||
$this->Js->get('#RolePermission')->event('change', 'deactivateActions()');
|
||||
foreach ($permFlags as $k => $flag) {
|
||||
if ($k !== 'perm_site_admin') $this->Js->get('#' . $flag['id'])->event('change', 'checkPerms("' . $flag['id'] . '")');
|
||||
else $this->Js->get('#RolePermSiteAdmin')->event('change', 'checkPerms("RolePermSiteAdmin");activateAll();');
|
||||
}
|
||||
?>
|
||||
|
||||
<script type="text/javascript">
|
||||
// only be able to tick perm_sync if manage org events and above.
|
||||
// only be able to tick perm_sync if manage org events and above.
|
||||
|
||||
function deactivateActions() {
|
||||
var e = document.getElementById("RolePermission");
|
||||
if (e.options[e.selectedIndex].value == '0' || e.options[e.selectedIndex].value == '1') {
|
||||
<?php
|
||||
foreach ($permFlags as $k => $flag):
|
||||
?>
|
||||
document.getElementById("<?php echo $flag['id']; ?>").checked = false;
|
||||
<?php
|
||||
endforeach;
|
||||
?>
|
||||
}
|
||||
}
|
||||
|
||||
function activateAll() {
|
||||
if (document.getElementById("RolePermSiteAdmin").checked) {
|
||||
<?php
|
||||
foreach ($permFlags as $k => $flag):
|
||||
if ($k !== 'perm_site_admin'):
|
||||
?>
|
||||
document.getElementById("<?php echo $flag['id']; ?>").checked = true;
|
||||
<?php
|
||||
endif;
|
||||
endforeach;
|
||||
?>
|
||||
}
|
||||
}
|
||||
|
||||
function checkPerms(id) {
|
||||
var e = document.getElementById("RolePermission");
|
||||
if (e.options[e.selectedIndex].value == '0' || e.options[e.selectedIndex].value == '1') {
|
||||
document.getElementById(id).checked = false;
|
||||
}
|
||||
}
|
||||
$(document).ready(function() {
|
||||
checkRolePerms();
|
||||
$(".checkbox, #RolePermission").change(function() {
|
||||
checkRolePerms();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<?php echo $this->Js->writeBuffer();
|
||||
|
|
|
@ -2937,3 +2937,16 @@ function loadSightingGraph(id, scope) {
|
|||
$("#sightingsData").html(data);
|
||||
});
|
||||
}
|
||||
|
||||
function checkRolePerms() {
|
||||
if ($("#RolePermission").val() == '0' || $("#RolePermission").val() == '1') {
|
||||
$('.readonlydisabled').prop('checked', false);
|
||||
$('.readonlydisabled').hide();
|
||||
} else {
|
||||
$('.readonlydisabled').show();
|
||||
$('.permFlags').show();
|
||||
}
|
||||
if ($("#RolePermSiteAdmin").prop('checked')) {
|
||||
$('.checkbox').prop('checked', true);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue