mirror of
https://github.com/wavelog/wavelog.git
synced 2026-03-22 02:14:13 +00:00
Logic for act/deact/all implemented
This commit is contained in:
@@ -44,4 +44,20 @@ class Usermode extends CI_Controller {
|
||||
return;
|
||||
}
|
||||
|
||||
public function activateAll() {
|
||||
$this->load->model('usermodes');
|
||||
$this->usermodes->activateAll();
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('message' => 'OK'));
|
||||
return;
|
||||
}
|
||||
|
||||
public function deactivateAll() {
|
||||
$this->load->model('usermodes');
|
||||
$this->usermodes->deactivateAll();
|
||||
header('Content-Type: application/json');
|
||||
echo json_encode(array('message' => 'OK'));
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ class Usermodes extends CI_Model {
|
||||
$retmodes=[];
|
||||
foreach ($modes->result() as $row) {
|
||||
if (count($usermodes)>0) {
|
||||
if (in_array($row->mode.'/'.($row_submode ?? ''), $usermodes)) {
|
||||
if (in_array($row->mode.'~'.($row->submode ?? ''), $usermodes)) {
|
||||
$row->active=1;
|
||||
} else {
|
||||
$row->active=0;
|
||||
@@ -32,14 +32,14 @@ class Usermodes extends CI_Model {
|
||||
$modes=$this->db->get('adif_modes');
|
||||
$retmodes=[];
|
||||
foreach ($modes->result() as $row) {
|
||||
if (count($usermodes)>0) {
|
||||
if (in_array($row->mode.'/'.($row_submode ?? ''), $usermodes)) {
|
||||
if (count($usermodes)>0) { // Something explicitly allowed, push it to array
|
||||
if (in_array($row->mode.'~'.($row->submode ?? ''), $usermodes)) {
|
||||
$row->active=1;
|
||||
$retmodes[]=$row;
|
||||
} else {
|
||||
$row->active=0;
|
||||
}
|
||||
} else {
|
||||
} else { // Default-Status? Nothing in array: So everything is allowed
|
||||
$retmodes[]=$row;
|
||||
}
|
||||
}
|
||||
@@ -55,22 +55,43 @@ class Usermodes extends CI_Model {
|
||||
}
|
||||
|
||||
function activate($id) {
|
||||
// Clean ID
|
||||
$clean_id = $this->security->xss_clean($id);
|
||||
$options_object = $this->user_options_model->get_options('usermodes', array('option_name' => 'enabled_usermodes', 'option_key' => 'json_modes'))->result();
|
||||
$usermodes = json_decode($options_object[0]->option_value ?? '[]');
|
||||
$mode2act=$this->mode($id)->result()->mode.'/'.($this->mode($id)->result()->submode ?? '');
|
||||
return $mode2act;
|
||||
$mode2act=$this->mode($clean_id)->result()[0]->mode.'~'.($this->mode($clean_id)->result()[0]->submode ?? '');
|
||||
|
||||
$modes=[];
|
||||
$raw_modes=$this->all();
|
||||
foreach ($raw_modes as $row) {
|
||||
if (($row->id == $clean_id) || ($row->active == 1)) {
|
||||
$modes[]=$row->mode.'~'.($row->submode ?? '');
|
||||
}
|
||||
}
|
||||
$this->user_options_model->set_option('usermodes', 'enabled_usermodes', array('json_modes' => json_encode($modes)));
|
||||
return true;
|
||||
}
|
||||
|
||||
function deactivate($id) {
|
||||
// Clean ID
|
||||
$clean_id = $this->security->xss_clean($id);
|
||||
$data = array(
|
||||
'active' => '0',
|
||||
);
|
||||
$this->db->where('id', $clean_id);
|
||||
$this->db->update('adif_modes', $data);
|
||||
$mode2act=$this->mode($clean_id)->result()[0]->mode.'~'.($this->mode($clean_id)->result()[0]->submode ?? '');
|
||||
|
||||
$modes=[];
|
||||
$raw_modes=$this->all();
|
||||
foreach ($raw_modes as $row) {
|
||||
if (($row->id != $clean_id) && ($row->active == 1)) {
|
||||
$modes[]=$row->mode.'~'.($row->submode ?? '');
|
||||
}
|
||||
}
|
||||
$this->user_options_model->set_option('usermodes', 'enabled_usermodes', array('json_modes' => json_encode($modes)));
|
||||
return true;
|
||||
}
|
||||
|
||||
function activateAll() {
|
||||
// Clean ID
|
||||
$this->user_options_model->set_option('usermodes', 'enabled_usermodes', array('json_modes' => '[]')); // Empty/Nothing is default (prevents migration)
|
||||
return true;
|
||||
}
|
||||
|
||||
function deactivateAll() {
|
||||
$this->user_options_model->set_option('usermodes', 'enabled_usermodes', array('json_modes' => '[""]')); // Put at least one senseless element to array, to deactivate all on userlevel
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user