/** * [policyRBACEditedAction this action take after edit form will delete all of rabc relate with policy id * and insert the new one] * @param [integer] $id [policy id] * @return [array] [description] */ public function policyRBACEditedAction($id) { $data = Input::all(); //var_dump($data);exit(); //Step 1. remove each rbac in table $role_obj = new RolePolicy(); $role_obj->delDataById($id); $data_obj = new DataPolicy(); $data_obj->delDataById($id); $cond_obj = new ConditionPolicy(); $cond_obj->delDataById($id); $purp_obj = new PurposePolicy(); $purp_obj->delDataById($id); $obl_obj = new ObligationPolicy(); $obl_obj->delDataById($id); $action_obj = new ActionPolicy(); $action_obj->delDataById($id); //Step 2. insert new rbac //For Role foreach ($data['rbac_role'] as $key => $value) { $role_data['role_id'] = $value; $role_data['policy_id'] = $id; $datas_role[] = $role_data; } RolePolicy::insert($datas_role); //For Data foreach ($data['rbac_data'] as $key => $value) { $_data['data_id'] = $value; $_data['policy_id'] = $id; $datas[] = $_data; } DataPolicy::insert($datas); //For Condition foreach ($data['rbac_condition'] as $key => $value) { $cond_data['cond_id'] = $value; $cond_data['policy_id'] = $id; $datas_cond[] = $cond_data; } ConditionPolicy::insert($datas_cond); //For Purpose foreach ($data['rbac_purpose'] as $key => $value) { $purp_data['purp_id'] = $value; $purp_data['policy_id'] = $id; $datas_purp[] = $purp_data; } PurposePolicy::insert($datas_purp); //For Obligation foreach ($data['rbac_obligation'] as $key => $value) { $obl_data['obl_id'] = $value; $obl_data['policy_id'] = $id; $datas_obl[] = $obl_data; } ObligationPolicy::insert($datas_obl); //For Action foreach ($data['rbac_action'] as $key => $value) { $action_data['action_id'] = $value; $action_data['policy_id'] = $id; $datas_action[] = $action_data; } ActionPolicy::insert($datas_action); return Redirect::to('/policy-rbac/' . $id)->with('success', 'อาร์บีเอซี:มีนโยบายคลังฯรหัส = ' . $id . ' แก้ไขสำเร็จ.')->with('rbac_data', self::policyRBACEditAction($id)); }