public static function _doUpdateMember() { // user attempting to make changes $respUser = User::find(intval($_SESSION['userid'])); $respMember = Member::find(intval($_SESSION['memberid'])); // member being changed $memberData = $_POST['memberData']; $member = Member::findByMemberId($memberData['member_id']); $user = User::findByMemberId(Member::findId($memberData['member_id'])); // only update values allowed by role if (!User::isDev()) { if ($respUser->role < 2) { unset($memberData['squad_id'], $memberData['position_id'], $memberData['platoon_id']); } if ($respUser->role < 3) { unset($memberData['platoon_id']); } } // only continue if we have permission to edit the user if (User::canEdit($memberData['member_id'], $respUser, $member) == true) { // don't log if user edits their own profile if ($respMember->member_id != $member->member_id) { UserAction::create(array('type_id' => 3, 'date' => date("Y-m-d H:i:s"), 'user_id' => $respMember->member_id, 'target_id' => $member->member_id)); } // validate recruiter if ($memberData['recruiter'] != 0 && !Member::exists($memberData['recruiter'])) { $data = array('success' => false, 'message' => "Recruiter id is invalid."); // validate squad leader / squad_id setting } else { if ($respMember->member_id != $member->member_id && $memberData['position_id'] == 5 && $memberData['squad_id'] != 0) { $data = array('success' => false, 'message' => "Squad leaders cannot be in a squad."); } else { // update member info Member::modify($memberData); } } // update games if (isset($_POST['played_games'])) { $games = $_POST['played_games']; foreach ($games as $game) { $params = new stdClass(); $params->member_id = $member->id; $params->game_id = $game; MemberGame::add($params); } } // update user if (isset($_POST['userData'])) { $userData = $_POST['userData']; // wish I had a better way to do this... yuck $userData['developer'] = isset($userData['developer']) ? $userData['developer'] : 0; if (!User::isDev()) { unset($userData['developer']); } if ($respMember->member_id != $member->member_id && $user->role >= $respUser->role && !User::isDev()) { $data = array('success' => false, 'message' => "You are not authorized to make that change."); } else { User::modify($userData); } } // update aliases if (isset($_POST['userAliases'])) { $aliases = $_POST['userAliases']; foreach ($aliases as $type => $value) { $type = Handle::findByName($type)->id; if ($value != '') { $params = array('member_id' => $memberData['id'], 'handle_type' => $type, 'handle_value' => trim($value), 'handle_account_id' => '0', 'invalid' => '0', 'invalid_date' => '0000-00-00'); $id = MemberHandle::hasAlias($type, $memberData['id']); if ($id) { $params['id'] = $id; MemberHandle::modify($params); } else { MemberHandle::add($params); } } } } } else { $data = array('success' => false, 'message' => 'You do not have permission to modify this player.'); } if (!isset($data['success'])) { $data = array('success' => true, 'message' => "Member information updated!"); } // print out a pretty response echo json_encode($data); }
public static function hasAlias($type, $member_id) { $handle_type = Handle::findByName($type); $params = self::find(array('handle_type' => $handle_type->id, 'member_id' => $member_id)); return count($params) ? $params->id : false; }