Я хочу некоторые предложения или обходной путь для ситуации, которая у меня есть. Я создаю Систему управления доступом , где я должен определить разрешения Создание, чтение, обновление и Удаление для каждого модуля. Определив разрешения для каждого модуля, администратор создаст роль , которая будет назначена пользователю позже. У меня есть около 14 модулей, и каждый модуль имеет четыре разрешения, как я упоминал ранее. Я получаю ввод каждого разрешения с помощью флажка, поэтому у меня есть несколько флажков с родительским полем, имеющим id
каждого модуля. Вот некоторый код, чтобы лучше понять, чего я хочу достичь и каков мой подход к нему.
HTML:
<!-- Iteration loop starts here for rendering each module along with it's checkboxes -->
<tr>
<th scope="row">{{$mod->m_name}}</th>
<input type="hidden" name="module_id" value="{{$mod->m_id}}">
<td><input type="checkbox" name="p_read" value="1"></td>
<td><input type="checkbox" name="p_create" value="1"></td>
<td><input type="checkbox" name="p_update" value="1"></td>
<td><input type="checkbox" name="p_delete" value="1"></td>
</tr>
<!-- Loop ends here -->
Просмотр:
JavaScript:
var foo = $('#formAddRole').serializeArray();
var json = {"module" : []};
$.each(foo, (key, obj)=>{
var arr = {
"module_id" : 0,
"permissions" : {
"create" : 0,
"read" : 0,
"update" : 0,
"delete" : 0,
}
};
if(obj.name == "p_read"){
arr.permissions.read = 1;
json.module.push(arr);
}
// conditions for 'p_create', 'p_update', 'p_delete' goes here...
if(obj.name == "module_id"){
arr.module_id = obj.value;
json.module.push(arr);
}
});
Структура JSON, которую я хочу отправить на сервер :
{"modules" : [
{
"module_id" : 1,
"permissions" : {
"create" : 1,
"read" : 1,
"update" : 1,
"delete" : 0,
}
},
{
"module_id" : 2,
"permissions" : {
"create" : 0,
"read" : 1,
"update" : 1,
"delete" : 0,
}
},
// so on...
]}
Я застрял в этой точке. Логика c, которую я использую, не совсем полезна для меня. Что может быть лучшим подходом, Как я могу достичь этого наилучшим образом? Любая помощь или предложения будут оценены. Спасибо!