Exemplo n.º 1
0
 /**
  * @param array $schema
  */
 protected static function prepareConfigSchemaField(array &$schema)
 {
     parent::prepareConfigSchemaField($schema);
     $roleList = [['label' => '', 'name' => null]];
     $emailSvcList = [['label' => '', 'name' => null]];
     $templateList = [['label' => '', 'name' => null]];
     switch ($schema['name']) {
         case 'open_reg_role_id':
             $roles = Role::whereIsActive(1)->get();
             foreach ($roles as $role) {
                 $roleList[] = ['label' => $role->name, 'name' => $role->id];
             }
             $schema['type'] = 'picklist';
             $schema['values'] = $roleList;
             $schema['label'] = 'Open Reg Role';
             $schema['description'] = 'Select a role for self registered users.';
             break;
         case 'open_reg_email_service_id':
         case 'invite_email_service_id':
         case 'password_email_service_id':
             $label = substr($schema['label'], 0, strlen($schema['label']) - 11);
             $services = Service::whereIsActive(1)->whereIn('type', ['aws_ses', 'smtp_email', 'mailgun_email', 'mandrill_email', 'local_email'])->get();
             foreach ($services as $service) {
                 $emailSvcList[] = ['label' => $service->label, 'name' => $service->id];
             }
             $schema['type'] = 'picklist';
             $schema['values'] = $emailSvcList;
             $schema['label'] = $label . ' Service';
             $schema['description'] = 'Select an Email service for sending out ' . $label . '.';
             break;
         case 'open_reg_email_template_id':
         case 'invite_email_template_id':
         case 'password_email_template_id':
             $label = substr($schema['label'], 0, strlen($schema['label']) - 11);
             $templates = EmailTemplate::get();
             foreach ($templates as $template) {
                 $templateList[] = ['label' => $template->name, 'name' => $template->id];
             }
             $schema['type'] = 'picklist';
             $schema['values'] = $templateList;
             $schema['label'] = $label . ' Template';
             $schema['description'] = 'Select an Email template to use for ' . $label . '.';
             break;
     }
 }