示例#1
0
 /**
  * Execute the job.
  *
  * @return void
  */
 public function handle()
 {
     set_time_limit(0);
     \Log::debug('Set PHP time limit to zero (no limit)');
     //Create the Duo Admin Client and set the timeout higher than default
     $duoAdmin = new DuoAdmin();
     $duoAdmin->setRequesterOption('timeout', '6000000');
     \Log::debug('Created new DuoAdmin object', [$duoAdmin]);
     $response = $duoAdmin->groups();
     $groups = $response['response']['response'];
     \Log::debug('Obtained Groups from Duo API - ', [count($groups)]);
     //Loop Duo Groups
     foreach ($groups as $group) {
         \Log::debug('Processing Duo Group', [$group]);
         //Get an existing Duo Group or create a new one
         $duoGroup = Group::firstOrCreate(['group_id' => $group['group_id']]);
         //Update Duo Group Settings
         $duoGroup->name = $group['name'];
         $duoGroup->desc = $group['desc'];
         $duoGroup->status = $group['status'];
         $duoGroup->mobile_otp_enabled = $group['mobile_otp_enabled'];
         $duoGroup->push_enabled = $group['push_enabled'];
         $duoGroup->sms_enabled = $group['sms_enabled'];
         $duoGroup->voice_enabled = $group['voice_enabled'];
         //Save Duo Group
         $duoGroup->touch();
         $duoGroup->save();
     }
     \Log::debug('Completed FetchDuoGroups Job');
 }