28 lines
1.1 KiB
PHP
28 lines
1.1 KiB
PHP
<?php
|
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
|
|
|
class Migration_Add_technician_attachment_permission extends CI_Migration
|
|
{
|
|
public function up()
|
|
{
|
|
if (!$this->db->table_exists('roles')) return;
|
|
foreach ($this->db->get('roles')->result() as $role) {
|
|
$permissions = json_decode((string) $role->permissions, true);
|
|
if (!is_array($permissions) || isset($permissions['technician_attachment'])) continue;
|
|
$source = $permissions['technician_equipment'] ?? ($permissions['items'] ?? array());
|
|
if (in_array('can_view', (array) $source, true)) {
|
|
$permissions['technician_attachment'] = array('can_view');
|
|
$this->db->where('id', $role->id)->update('roles', array(
|
|
'permissions' => json_encode($permissions),
|
|
'updated_at' => date('Y-m-d H:i:s')
|
|
));
|
|
}
|
|
}
|
|
}
|
|
|
|
public function down()
|
|
{
|
|
throw new RuntimeException('Permission lampiran peralatan teknisi dipertahankan.');
|
|
}
|
|
}
|