function editlotowner_POST(Web $w) { list($lotId, $lotOwnerId) = $w->pathMatch("lotId", "lotOwnerId"); if (empty($lotId)) { $w->out("no lot id provide"); return; } $lot = $w->Bend->getLotForId($lotId); $lotOwner = new BendLotOwner($w); $user = new User($w); $contact = new Contact($w); if (!empty($lotOwnerId)) { $lotOwner = $w->Bend->getBendLotOwnerForId($lotOwnerId); } $lotOwner->fill($_POST); $lotOwner->bend_lot_id = $lotId; $lotOwner->insertOrUpdate(); if ($lotOwner->user_id) { $user = $lotOwner->getUser(); $contact = $user->getContact(); } $contact->fill($_POST); $contact->insertOrUpdate(); // create a new user if necessary if (empty($user->id)) { $user->contact_id = $contact->id; $user->login = $contact->email; $user->is_active = 1; $user->redirect_url = "bend"; $user->insert(); // assign to bend users group $group = $w->Auth->getUserForLogin("Bend Users"); if (empty($group)) { // create the group! $group = new User($w); $group->is_group = 1; $group->login = "******"; $group->insert(); } $gu = new GroupUser($w); $gu->group_id = $group->id; $gu->user_id = $user->id; $gu->role = "member"; $gu->insert(); $lotOwner->user_id = $user->id; $lotOwner->update(); } $w->msg("Lot Owner updated", "/bend-lot/showlot/{$lotId}"); }
function editoccupant_POST(Web $w) { list($householdid, $occupantid) = $w->pathMatch("a", "b"); if (empty($householdid)) { $w->out("no household id provide"); return; } $household = $w->Bend->getHouseholdForId($householdid); $oc = new BendHouseholdOccupant($w); $user = new User($w); $contact = new Contact($w); if (!empty($occupantid)) { $oc = $w->Bend->getHouseholdOccupantForId($occupantid); } $oc->fill($_POST); $oc->bend_household_id = $householdid; $oc->insertOrUpdate(); if (!empty($oc->user_id)) { $user = $oc->getUser(); $contact = $user->getContact(); } $contact->fill($_POST); $contact->insertOrUpdate(); // create a new user if necessary if (empty($user->id)) { $user->contact_id = $contact->id; $user->login = $contact->email; $user->is_active = 1; $user->redirect_url = "bend"; $user->insert(); // assign to bend users group $group = $w->Auth->getUserForLogin("Bend Users"); if (empty($group)) { // create the group! $group = new User($w); $group->is_group = 1; $group->login = "******"; $group->insert(); } $gu = new GroupUser($w); $gu->group_id = $group->id; $gu->user_id = $user->id; $gu->role = "member"; $gu->insert(); $oc->user_id = $user->id; $oc->update(); } $w->msg("Occupant updated", "/bend-household/show/{$household->bend_lot_id}/{$householdid}"); }
function groupmember_POST(Web $w) { $p = $w->pathMatch("group_id"); $member_id = $w->request('member_id'); $group_id = $p['group_id']; $is_owner = $w->request('is_owner'); $exceptions = array(); // store all parent groups in session $groupUsers = $w->Auth->getUser($group_id)->isInGroups(); if ($groupUsers) { foreach ($groupUsers as $groupUser) { $groupUser->getParents(); } } // add member to the group only if it isn't already in there // this logic should move to the model! $existUser = $w->Auth->getUser($member_id)->isInGroups($group_id); if (!$existUser) { if (!$w->session('parents') || !in_array($member_id, $w->session('parents'))) { $groupMember = new GroupUser($w); $groupMember->group_id = $group_id; $groupMember->user_id = $member_id; $groupMember->role = $is_owner && $is_owner == 1 ? "owner" : "member"; $groupMember->insert(); } if ($w->session('parents') && in_array($member_id, $w->session('parents'))) { $exceptions[] = $w->Auth->getUser($member_id)->login; } } else { $user = $existUser[0]->getUser(); $exceptions[] = $user->is_group == 1 ? $user->login : $user->getContact()->getFullName(); } $w->sessionUnset('parents'); if (!empty($exceptions)) { $w->error(implode(", ", $exceptions) . " can not be added!", "/admin/moreInfo/" . $group_id); } else { $w->msg("New members are added!", "/admin/moreInfo/" . $group_id); } }