Added default access level

* added summit seeds ( CHAT, IN_PERSON, VIRTUAL)
* fixed is default functionallity

Change-Id: Ic0a8b3fb7254a1b8c45dbdea402e2d09f0bedd32
Signed-off-by: smarcet <smarcet@gmail.com>
This commit is contained in:
smarcet 2021-07-01 12:24:45 -03:00
parent e43331e77f
commit 3f65bff6cd
4 changed files with 54 additions and 2 deletions

View File

@ -3403,6 +3403,14 @@ SQL;
return $attr === false ? null : $attr;
}
public function getDefaultBadgeAccessLevelTypes(){
$criteria = Criteria::create();
$criteria->where(Criteria::expr()->eq('is_default', true));
return $this->badge_access_level_types->matching($criteria);
}
/**
* @param string $level_name
* @return SummitAccessLevelType|null
@ -4636,6 +4644,36 @@ SQL;
return $list;
}
/**
* this define the default access level types
* that need to be seeded when a new show is created
*/
public function seedDefaultAccessLevelTypes():void{
$defaults = [
[
'name' => 'CHAT',
'description'=> 'Enables Chat Feature.'
],
[
'name' => 'IN_PERSON',
'description'=> 'Allows in person show access.'
],
[
'name' => 'VIRTUAL',
'description'=> 'Allows virtual show access.'
]
];
foreach($defaults as $default) {
$a = new SummitAccessLevelType();
$a->setName($default['name']);
$a->setDescription($default['description']);
$a->setIsDefault(true);
$this->addBadgeAccessLevelType($a);
}
}
/**
* @return string
*/

View File

@ -67,6 +67,12 @@ implements ISummitAccessLevelTypeService
$summit->addBadgeAccessLevelType($access_level);
if($access_level->isDefault()){
// add to all existent badge types
foreach($summit->getBadgeTypes() as $badgeType){
$badgeType->addAccessLevel($access_level);
}
}
return $access_level;
});
@ -96,9 +102,7 @@ implements ISummitAccessLevelTypeService
throw new ValidationException(sprintf("access level with name %s already exists!", $name));
}
}
return SummitAccessLevelTypeFactory::populate($access_level, $data);
});
}

View File

@ -50,6 +50,11 @@ final class SummitBadgeTypeService extends AbstractService
throw new ValidationException("there is already a default badge type");
}
$badge_type = SummitBadgeTypeFactory::build($data);
// add default access levels
foreach($summit->getDefaultBadgeAccessLevelTypes() as $default_access_level){
$badge_type->addAccessLevel($default_access_level);
}
$summit->addBadgeType($badge_type);
return $badge_type;
});
@ -77,6 +82,7 @@ final class SummitBadgeTypeService extends AbstractService
throw new ValidationException("badge type name already exists");
}
}
if(isset($data['is_default'])) {
$is_default = boolval($data['is_default']);
if ($is_default && $summit->hasDefaultBadgeType() && !$badge_type->isDefault()) {

View File

@ -1597,7 +1597,11 @@ final class SummitService extends AbstractService implements ISummitService
foreach ($this->default_event_types_repository->getAll() as $default_event_type) {
$summit->addEventType($default_event_type->buildType($summit));
}
$summit->seedDefaultEmailFlowEvents();
$summit->seedDefaultAccessLevelTypes();
$this->summit_repository->add($summit);
return $summit;