/** * @param array $data * @return mixed */ public function createSuperuser(array $data) { /* @var $role RoleEntity */ $role = $this->getAccessControl()->createRole(['name' => 'admin']); $entity = new UserEntity(); $entity->setInsertedBy(1); $entity->setUpdatedBy(1); $data['active'] = true; $data['roleId'] = $role->getId(); $entity = $this->populateData($entity, $data); $bcrypt = new Bcrypt(); $bcrypt->setCost($this->getUserOptions()->getPasswordCost()); $entity->setPassword($bcrypt->create($data['credential'])); if ($this->getUserOptions()->isEnableUserStatus()) { $entity->setStatus($this->getUserOptions()->getDefaultUserStatus()); } return $this->getUserMapper()->insert($entity); }