/** * [getPolicyById fetch policy by policy id] * @param [integer] $id [policy id] * @return [array] [collect of policy] */ public function getPolicyById($id) { // $policy = Policy::where('id','=',$id) // ->toSql(); $policy = Policy::find($id); return $policy; }
public static function generate($input) { $res = []; $plan = Plan::findOrFail($input['plan_id']); $voucher['expires_on'] = self::_makeExpiry($input['validity'], $input['validity_unit']); $voucher['created_at'] = time(); $voucher['plan_name'] = $plan->name; $voucher['plan_type'] = $plan->plan_type; $voucher['sim_sessions'] = $plan->sim_sessions; $voucher['interim_updates'] = $plan->interim_updates; $voucher['price'] = $plan->price; $voucher['validity'] = $plan->validity; $voucher['validity_unit'] = $plan->validity_unit; $voucher['policy_type'] = $plan->policy_type; if ($plan->plan_type == 1) { //if limited $limit = $plan->limit->toArray(); if ($plan->limit->aq_access == 1) { // $limit['aq_access'] = 1; $aq_policy = Policy::findOrFail($plan->limit->aq_policy); $limit['aq_policy'] = mikrotikRateLimit($aq_policy->toArray()); } $voucher_limit = VoucherLimit::create($limit); $voucher['limit_id'] = $voucher_limit->id; } if ($plan->policy_type == 'Policy') { $policy = new VoucherPolicy(['bw_policy' => mikrotikRateLimit($plan->policy->toArray())]); $policy->save(); } elseif ($plan->policy_type == 'PolicySchema') { $days = ['mo' => 'monday', 'tu' => 'tuesday', 'we' => 'wednesday', 'th' => 'thursday', 'fr' => 'friday', 'sa' => 'saturday', 'su' => 'sunday']; foreach ($days as $d => $day) { $tpl = $plan->policy->{$day}->toArray(); $type = ['bw_policy', 'pr_policy', 'sec_policy']; foreach ($type as $t) { if (!is_null($tpl[$t])) { $policy = Policy::find($tpl[$t])->toArray(); $tpl[$t] = mikrotikRateLimit($policy); } } $template = VoucherPolicySchemaTemplate::create($tpl); $schema[$d] = $template->id; } $policy = VoucherPolicySchema::create($schema); } $voucher['policy_id'] = $policy->id; for ($i = 0; $i < $input['count']; $i++) { $voucher['pin'] = self::generatePin(); $voucher['expires_on'] = self::_makeExpiry($input['validity'], $input['validity_unit']); $v = new Voucher($voucher); if (!$v->save()) { return FALSE; } $res[] = $v->pin; } return $res; }
public static function AssignPlan($user_id, $plan_id, $price = NULL) { DB::transaction(function () use($user_id, $plan_id, $price) { $oldPlan = APActivePlan::where('user_id', $user_id)->first(); if (!is_null($oldPlan)) { self::updatePlanHistory($oldPlan); } else { $oldPlan = new ApActivePlan(); } $plan = Plan::findOrFail($plan_id); $newPlan = ['user_id' => $user_id, 'plan_name' => $plan->name, 'plan_type' => $plan->plan_type, 'policy_type' => $plan->policy_type, 'sim_sessions' => $plan->sim_sessions, 'interim_updates' => $plan->interim_updates, 'aq_invocked' => 0, 'price' => $plan->price, 'time_balance' => NULL, 'data_balance' => NULL, 'assigned_on' => date("Y-m-d H:i:s"), 'validity' => $plan->validity, 'validity_unit' => $plan->validity_unit]; if ($price != NULL) { $newPlan['price'] = $price; } if ($plan->plan_type == LIMITED) { $limit = $plan->limit; if ($limit->limit_type == TIME_LIMIT || $limit->limit_type == BOTH_LIMITS) { $newPlan['time_balance'] = $limit->time_limit * constant($limit->time_unit); } if ($limit->limit_type == DATA_LIMIT || $limit->limit_type == BOTH_LIMITS) { $newPlan['data_balance'] = $limit->data_limit * constant($limit->data_unit); } if ($limit->aq_access == ALLOWED) { $aq_policy = Policy::findOrFail($limit->aq_policy); $limit->aq_policy = mikrotikRateLimit($aq_policy->toArray()); } $planLimit = APLimit::create($limit->toArray()); $newPlan['limit_id'] = $planLimit->id; } if ($plan->policy_type == 'Policy') { $policy = APPolicy::create(['bw_policy' => mikrotikRateLimit($plan->policy->toArray())]); } elseif ($plan->policy_type == 'PolicySchema') { $days = ['mo' => 'monday', 'tu' => 'tuesday', 'we' => 'wednesday', 'th' => 'thursday', 'fr' => 'friday', 'sa' => 'saturday', 'su' => 'sunday']; foreach ($days as $d) { $tpl = $plan->policy->{$day}->toArray(); $types = ['bw_policy', 'pr_policy', 'sec_policy']; foreach ($types as $t) { if (!is_null($tpl[$t])) { $policy = Policy::find($tpl[$t])->toArray(); $tpl[$t] = mikrotikRateLimit($policy); } } $template = APPolicySchemaTemplate::create($tpl); $schema[$d] = $template->id; } $policy = APPolicySchema::create($schema); } $newPlan['policy_id'] = $policy->id; $oldPlan->fill($newPlan); $oldPlan->save(); return TRUE; }); }
public static function updateFreePlan($user_id) { $free_balance = Freebalance::where('user_id', $user_id)->first(); if (!is_null($free_balance)) { return; } $free_balance = new Freebalance(['user_id' => $user_id]); $free_plan = FRINTERNET::select('plan_type', 'limit_type', 'time_limit', 'time_unit', 'data_limit', 'data_unit', 'validity', 'validity_unit', 'policy_id', 'limit_type', 'aq_access', 'aq_policy', 'sim_sessions', 'interim_updates', 'reset_every', 'reset_unit')->first(); $new_balance = ['last_reset_on' => date('Y-m-d H:i:s'), 'expiration' => makeExpiry($free_plan->validity, $free_plan->validity_unit, 'd M Y H:i'), 'bw_policy' => mikrotikRateLimit(Policy::find($free_plan->policy_id)->toArray()), 'plan_type' => $free_plan->plan_type, 'limit_type' => $free_plan->limit_type, 'time_limit' => $free_plan->time_limit, 'time_unit' => $free_plan->time_unit, 'data_limit' => $free_plan->data_limit, 'data_unit' => $free_plan->data_unit, 'aq_access' => $free_plan->aq_access, 'sim_sessions' => $free_plan->sim_sessions, 'interim_updates' => $free_plan->interim_updates, 'reset_every' => $free_plan->reset_every, 'reset_unit' => $free_plan->reset_unit, 'aq_invocked' => 0, 'time_balance' => NULL, 'data_balance' => NULL]; if ($free_plan->plan_type == LIMITED) { if ($free_plan->aq_access) { $new_balance['aq_policy'] = mikrotikRateLimit(Policy::find($free_plan->aq_policy)->toArray()); } if ($free_plan->limit_type == TIME_LIMIT || $free_plan->limit_type == BOTH_LIMITS) { $new_balance['time_balance'] = $free_plan->time_limit * constant($free_plan->time_unit); } if ($free_plan->limit_type == DATA_LIMIT || $free_plan->limit_type == BOTH_LIMITS) { $new_balance['data_balance'] = $free_plan->data_limit * constant($free_plan->data_unit); } } $free_balance->fill($new_balance); $free_balance->save(); }
public function postEdit() { $input = Input::all(); $rules = Config::get('validations.policies'); $v = Validator::make($input, $rules); $v->setAttributeNames(Config::get('attributes.policies')); if ($v->fails()) { return Redirect::back()->withErrors($v)->withInput(); } try { if (!($policy = Policy::find($input['id']))) { throw new Exception("No such policy."); } $policy->fill($input); if (!$policy->save()) { throw new Exception("Failed to save bandwidth policy: {$input['name']}"); } $this->notifySuccess("Successfully updated Bandwidth Policy: <b>{$input['name']}</b>"); } catch (Exception $e) { $this->notifyError($e->getMessage()); return Redirect::route(self::HOME); } return Redirect::route(self::HOME); }
/** * [policyRBACEditFrmAction Show form for edit rbac-policy] * @param [integer] $id policy id * @return [none] redirect to view */ public function policyRBACEditFrmAction($id) { $data['policy'] = Policy::find($id); $data['role'] = Roles::all(); $data['data'] = Data::all(); $data['condition'] = Condition::all(); $data['action'] = Action::all(); $data['purpose'] = Purpose::all(); $data['obligation'] = Obligation::all(); // print '<pre>'; // print_r(self::policyRBACEditAction($id)); // exit(); return View::make('rbac.editrbac')->with('results', $data)->with('rbac_data', self::policyRBACEditAction($id)); }