$this->string($member->sfullname)->isIdenticalTo('DOE Johny Console.log("anything");');
$this->string($member->others_infos)->isIdenticalTo('Any console.log("useful"); information');
}
+
+ /**
+ * Test can* methods
+ *
+ * @return void
+ */
+ public function testCan()
+ {
+ $this->getMemberOne();
+ //load member from db
+ $member = new \Galette\Entity\Adherent($this->zdb, $this->adh->id);
+
+ $this->boolean($member->canShow($this->login))->isFalse();
+ $this->boolean($member->canCreate($this->login))->isFalse();
+ $this->boolean($member->canEdit($this->login))->isFalse();
+
+ //Superadmin can fully change members
+ $this->login->logAdmin('superadmin', $this->preferences);
+ $this->boolean($this->login->isLogged())->isTrue();
+ $this->boolean($this->login->isSuperAdmin())->isTrue();
+
+ $this->boolean($member->canShow($this->login))->isTrue();
+ $this->boolean($member->canCreate($this->login))->isTrue();
+ $this->boolean($member->canEdit($this->login))->isTrue();
+
+ //logout
+ $this->login->logOut();
+ $this->boolean($this->login->isLogged())->isFalse();
+
+ //Member can fully change its own information
+ $mdata = $this->dataAdherentOne();
+ $this->boolean($this->login->login($mdata['login_adh'], $mdata['mdp_adh']))->isTrue();
+ $this->boolean($this->login->isLogged())->isTrue();
+ $this->boolean($this->login->isAdmin())->isFalse();
+ $this->boolean($this->login->isStaff())->isFalse();
+
+ $this->boolean($member->canShow($this->login))->isTrue();
+ $this->boolean($member->canCreate($this->login))->isTrue();
+ $this->boolean($member->canEdit($this->login))->isTrue();
+
+ //logout
+ $this->login->logOut();
+ $this->boolean($this->login->isLogged())->isFalse();
+
+ //Another member has no access
+ $this->getMemberTwo();
+ $mdata = $this->dataAdherentTwo();
+ $this->boolean($this->login->login($mdata['login_adh'], $mdata['mdp_adh']))->isTrue();
+ $this->boolean($this->login->isLogged())->isTrue();
+ $this->boolean($this->login->isAdmin())->isFalse();
+ $this->boolean($this->login->isStaff())->isFalse();
+
+ $this->boolean($member->canShow($this->login))->isFalse();
+ $this->boolean($member->canCreate($this->login))->isFalse();
+ $this->boolean($member->canEdit($this->login))->isFalse();
+
+ //parents can fully change children information
+ $this->getMemberOne();
+ $mdata = $this->dataAdherentOne();
+ global $login;
+ $login = $this->login;
+ $this->login->logAdmin('superadmin', $this->preferences);
+ $this->boolean($this->login->isLogged())->isTrue();
+ $this->boolean($this->login->isSuperAdmin())->isTrue();
+
+ $child_data = [
+ 'nom_adh' => 'Doe',
+ 'prenom_adh' => 'Johny',
+ 'parent_id' => $member->id,
+ 'attach' => true,
+ 'login_adh' => 'child.johny.doe',
+ 'fingerprint' => 'FAKER' . $this->seed
+ ];
+ $child = $this->createMember($child_data);
+ $cid = $child->id;
+ $this->login->logOut();
+
+ //load child from db
+ $child = new \Galette\Entity\Adherent($this->zdb);
+ $child->enableDep('parent');
+ $this->boolean($child->load($cid))->isTrue();
+
+ $this->string($child->name)->isIdenticalTo($child_data['nom_adh']);
+ $this->object($child->parent)->isInstanceOf('\Galette\Entity\Adherent');
+ $this->integer($child->parent->id)->isIdenticalTo($member->id);
+ $this->boolean($this->login->login($mdata['login_adh'], $mdata['mdp_adh']))->isTrue();
+
+ $mdata = $this->dataAdherentOne();
+ $this->boolean($this->login->login($mdata['login_adh'], $mdata['mdp_adh']))->isTrue();
+ $this->boolean($this->login->isLogged())->isTrue();
+ $this->boolean($this->login->isAdmin())->isFalse();
+ $this->boolean($this->login->isStaff())->isFalse();
+
+ $this->boolean($child->canShow($this->login))->isTrue();
+ $this->boolean($child->canCreate($this->login))->isFalse();
+ $this->boolean($child->canEdit($this->login))->isTrue();
+
+ //logout
+ $this->login->logOut();
+ $this->boolean($this->login->isLogged())->isFalse();
+ }
}
*/
public function createMember(array $data)
{
- $adh = $this->adh;
- $check = $adh->check($data, [], []);
+ $this->adh = new \Galette\Entity\Adherent($this->zdb);
+ $this->adh->setDependencies(
+ $this->preferences,
+ $this->members_fields,
+ $this->history
+ );
+
+ $check = $this->adh->check($data, [], []);
if (is_array($check)) {
var_dump($check);
}
$this->boolean($check)->isTrue();
- $store = $adh->store();
+ $store = $this->adh->store();
$this->boolean($store)->isTrue();
- return $adh;
+ return $this->adh;
}
/**
*/
protected function adhOneExists()
{
+ $mdata = $this->dataAdherentOne();
$select = $this->zdb->select(\Galette\Entity\Adherent::TABLE, 'a');
- $select->where(array('a.fingerprint' => 'FAKER' . $this->seed));
+ $select->where(
+ array(
+ 'a.fingerprint' => 'FAKER' . $this->seed,
+ 'a.login_adh' => $mdata['login_adh']
+ )
+ );
+
+ $results = $this->zdb->execute($select);
+ if ($results->count() === 0) {
+ return false;
+ } else {
+ return $results;
+ }
+ }
+
+ /**
+ * Look in database if test member already exists
+ *
+ * @return false|ResultSet
+ */
+ protected function adhTwoExists()
+ {
+ $mdata = $this->dataAdherentTwo();
+ $select = $this->zdb->select(\Galette\Entity\Adherent::TABLE, 'a');
+ $select->where(
+ array(
+ 'a.fingerprint' => 'FAKER' . $this->seed,
+ 'a.login_adh' => $mdata['login_adh']
+ )
+ );
$results = $this->zdb->execute($select);
if ($results->count() === 0) {
*/
protected function getMemberTwo()
{
- $rs = $this->adhOneExists();
+ $rs = $this->adhTwoExists();
if ($rs === false) {
$this->createMember($this->dataAdherentTwo());
} else {