/**
  * sVerifierLevel function returns the current verification level of member
  * @IdMember (optional) the Id of the member to obtaon verification level, if not provided current member in session will be use
  * returns : a string with the member level
  * a member can be a "Normal" member (one who was not veridied)
  *                   "VerifiedByNormal" member (if he was verified by a normal member)
  *                   "VerifiedByVerified" member (if he was verified by an approved verifier)
  *                   "VerifiedByApproved" member (if he has right to be a verifier)
  *
  */
 public function sVerifierLevel($member_id = -1)
 {
     $member_id = (int) $member_id;
     $sRet = "Normal";
     if ($member_id > 0) {
         // everything is cool
     } else {
         if (isset($_SESSION["IdMember"])) {
             // use the member who is currently logged in.
             $member_id = $_SESSION["IdMember"];
         } else {
             // can't help it, so we return false.
             return false;
         }
     }
     $rr = $this->SingleLookup("\nSELECT  max(Type) AS Type\nFROM    verifiedmembers\nWHERE   IdVerified = {$member_id}\n            ");
     if ($rr) {
         if ("Buggy" == $rr->Type) {
             // problem
             throw new PException('Buggy Value in verifiedmembers for IdMember=".$IdMember." !');
         } else {
             if (!empty($rr->Type)) {
                 $sRet = $rr->Type;
             }
         }
     }
     // if the member is a verifier and has ApprovedVerifier scope, this information will supersed all others
     // comment by lemon-head: Better do this in the controller?
     if (MOD_right::get()->hasRight("Verifier", "ApprovedVerifier")) {
         // TODO: HasRight does only check the currently logged-in user, not the given argument!
         $sRet = "VerifiedByApproved";
     }
     return $sRet;
 }
Example #2
0
 /**
  * Returns the number of people due to be checked to problems or what.
  * The number depends on the scope of the person logged on.
  *
  * $_GroupScope="" is an optional value for group Scope which can be used for performance if it was already fetched from database
  * @return integer indicating the number of people wiche need to be accepted 
  * in a Group if the current member has right to accept them
  */
 public function getNumberPersonsToAcceptInGroup($_GroupScope = "")
 {
     $R = MOD_right::get();
     if ($_GroupScope != "") {
         $GroupScope = $_GroupScope;
     } else {
         $GroupScope = $R->RightScope('Group');
     }
     if ($GroupScope == "") {
         return 0;
     }
     if ($R->hasRight('Group', 'All')) {
         $where = "";
     } else {
         $tt = explode(",", $GroupScope);
         $where = "(";
         foreach ($tt as $Scope) {
             if ($where != "(") {
                 $where .= ",";
             }
             $where = $where . $Scope;
         }
         $where = " and `groups`.`Name` in " . $where . ")";
     }
     $query = 'SELECT SQL_CACHE COUNT(*) AS cnt FROM `membersgroups`,`groups` where `membersgroups`.`Status`="WantToBeIn" and `groups`.`id`=`membersgroups`.`IdGroup`' . $where;
     //   die($query) ;
     $result = $this->dao->query($query);
     $record = $result->fetch(PDB::FETCH_OBJ);
     if (isset($record->cnt)) {
         return $record->cnt;
     } else {
         return 0;
     }
 }
Example #3
0
 public function render()
 {
     $this->_init();
     $this->_model = new VolunteerbarModel();
     if (empty($_SESSION['IdMember'])) {
         return;
         // Do nothing if user is not identified (thi cannot be a volunteer)
     }
     $R = MOD_right::get();
     $mayViewBar = $R->hasRightAny();
     if ($mayViewBar) {
         $numberPersonsToBeAccepted = 0;
         $numberPersonsToBeChecked = 0;
         if ($R->hasRight("Accepter")) {
             $numberPersonsToBeAccepted = $this->_model->getNumberPersonsToBeAccepted();
             $AccepterScope = $R->rightScope('Accepter');
             $numberPersonsToBeChecked = $this->_model->getNumberPersonsToBeChecked($AccepterScope);
         }
         $numberPersonsToAcceptInGroup = 0;
         if ($R->hasRight("Group")) {
             $numberPersonsToAcceptInGroup = $this->_model->getNumberPersonsToAcceptInGroup($R->rightScope('Group'));
         }
         $numberMessagesToBeChecked = 0;
         $numberSpamToBeChecked = 0;
         if ($R->hasRight("Checker")) {
             $numberMessagesToBeChecked = $this->_model->getNumberMessagesToBeChecked();
             $numberSpamToBeChecked = $this->_model->getNumberSpamToBeChecked();
         }
         require $this->getTemplatePath();
     }
 }
Example #4
0
 function index($args = false)
 {
     $request = $args->request;
     if (!MOD_right::get()->hasRight('Debug')) {
         return new PublicStartpage();
     } else {
         switch (isset($request[0]) ? $request[0] : false) {
             case 'sqltest':
                 $page = new SqltestPage();
                 $page->model = new SqltestModel();
                 return $page;
             case 'debug':
             default:
                 switch (isset($request[1]) ? $request[1] : false) {
                     case 'inicache':
                         return new DebugInicachePage();
                     case 'sqltest':
                         $page = new SqltestPage();
                         $page->model = new SqltestModel();
                         return $page;
                     case 'dbsummary':
                         $page = new DatabaseSummaryPage();
                         $page->model = new DatabaseSummaryModel();
                         foreach (@$args->get as $key => $value) {
                             // set filters
                             $page->{$key} = $value;
                         }
                         return $page;
                     default:
                         return new DebugPage();
                 }
         }
     }
 }
Example #5
0
 /**
  * Get donations (max. 25, all if user has Treasurer rights)
  *
  * @param recent Get only the results since the start of the current campaign
  * @return array List of donations as objects with string properties
  *
  * TODO: Add parameter for limit and do permission check elsewhere
  */
 public function getDonations($recent = false)
 {
     $rights = MOD_right::get();
     $where = "";
     list($dummy, $campaignStart) = $this->getCampaignValues();
     if ($rights->hasRight('Treasurer')) {
         $limitClause = "";
         if ($recent) {
             $where = "WHERE created >= '" . $campaignStart . "'";
         }
     } else {
         $limitClause = "LIMIT 25";
     }
     $query = "\r\n            SELECT\r\n                *\r\n            FROM\r\n                donations\r\n            " . $where . "\r\n            ORDER BY\r\n                created DESC\r\n            {$limitClause}\r\n            ";
     $result = $this->dao->query($query);
     $donations = array();
     while ($row = $result->fetch(PDB::FETCH_OBJ)) {
         if ($row->IdCountry == 0) {
             $countryName = "Unknown country";
         } else {
             $idCountry = intval($row->IdCountry);
             $resultcountry = $this->dao->query("\r\n                    SELECT\r\n                        name\r\n                    FROM\r\n                        geonames_cache\r\n                    WHERE\r\n                        geonameId = {$idCountry}\r\n                    ");
             $country = $resultcountry->fetch(PDB::FETCH_OBJ);
             $countryName = $country->name;
         }
         $row->CountryName = $countryName;
         array_push($donations, $row);
     }
     return $donations;
 }
Example #6
0
 public function index()
 {
     $request = PRequest::get()->request;
     if (!isset($request[1])) {
         $this->_redirect('');
     }
     switch ($request[1]) {
         case 'admin':
             $BW_Rights = new MOD_right();
             if (!$BW_Rights->hasRight('Admin') || !$BW_Rights->hasRight('Notify')) {
                 $this->_redirect('');
             }
             $page = new NotifyAdminPage();
             $page->setModel($this->_model);
             if (isset($_GET['sort'])) {
                 $page->sortorder = $_GET['sort'];
             }
             $page->active_page = $this->getPageNumber($request, 2);
             return $page;
             break;
         case 'search':
             $terms = isset($_GET['GroupsSearchInput']) ? $_GET['GroupsSearchInput'] : '';
             $resultpage = isset($_GET['Page']) ? $_GET['Page'] : 0;
             $order = isset($_GET['Order']) ? $_GET['Order'] : 'nameasc';
             $page = new GroupsSearchPage();
             $page->search_result = $this->_model->findGroups($terms, $resultpage, $order);
             $page->result_page = $resultpage;
             $page->result_order = $order;
             $page->search_terms = $terms;
             break;
         default:
             // check wether there's a note with id = $request[1]
             if ($note = $this->_model->findNote($request[1])) {
                 switch ($request[2]) {
                     case 'check':
                         // Ajax function
                         $this->checkNote($note);
                         PPHP::PExit();
                     default:
                         break;
                 }
             }
     }
     $page->member = $this->_model->getLoggedInMember();
     $page->model = $this->_model;
     return $page;
 }
 /**
  * configure the page title (what appears in your browser's title bar)
  * @return string the page title
  */
 protected function getPageTitle()
 {
     $words = new MOD_words();
     if (MOD_right::get()->hasRight("Verifier", "ApprovedVerifier")) {
         echo $words->getFormatted("verifymembers_approvedverifier");
     } else {
         echo $words->getFormatted("verifymembers_teaser");
     }
 }
 /**
  * configure the teaser (the content of the orange bar)
  */
 protected function teaserHeadline()
 {
     $words = $this->getWords();
     if (MOD_right::get()->hasRight("Verifier", "ApprovedVerifier")) {
         echo $words->getFormatted("verifymembers_approvedverifier");
     } else {
         echo $words->getFormatted("verifymembers_teaser");
     }
 }
Example #9
0
 public function __construct()
 {
     parent::__construct();
     $this->_model = new Forums();
     $this->_view = new ForumsView($this->_model);
     //                $this->_view->page=new RoxGenericPage();
     $this->BW_Right = MOD_right::get();
     $this->BW_Flag = MOD_flag::get();
     $this->request = PRequest::get()->request;
     $this->forums_uri = $this->get_forums_uri();
     $this->_model->forums_uri = $this->forums_uri;
 }
Example #10
0
function getShowCondition($com, $login)
{
    // show comment when marked as display in public (default situation)
    if ($com->DisplayInPublic == 1) {
        return 1;
    }
    // show comment to Safety team
    if (MOD_right::get()->HasRight('Comments')) {
        return 2;
    }
    // show comment to writer
    if ($com->UsernameFromMember == $login) {
        return 3;
    }
    // do not show comment
    return false;
}
Example #11
0
 public function GetGuests()
 {
     global $_SYSHCVOL;
     $Rights = MOD_right::get();
     $TGuest = array();
     // Case of members who can see additional information about members last activity
     if ($Rights->hasRight("Debug", "ShowLastActivity")) {
         $query = "select appearance,lastactivity,now()-updated as NbSec from guestsonline where guestsonline.updated>DATE_SUB(now(),interval " . $_SYSHCVOL['WhoIsOnlineDelayInMinutes'] . " minute) order by guestsonline.updated  desc";
         $s = $this->dao->query($query);
         if (!$s) {
             throw new PException('Failed to get online guests!');
         }
         while ($row = $s->fetch(PDB::FETCH_OBJ)) {
             array_push($TGuest, $row);
         }
     }
     return $TGuest;
 }
Example #12
0
 protected function topmenu()
 {
     $words = $this->getWords();
     $menu_items = $this->getTopmenuItems();
     $active_menu_item = $this->getTopmenuActiveItem();
     $logged_in = APP_User::isBWLoggedIn('NeedMore,Pending');
     if (!$logged_in) {
         $request = PRequest::get()->request;
         if (!isset($request[0])) {
             $login_url = 'login';
         } else {
             switch ($request[0]) {
                 case 'login':
                 case 'main':
                 case 'start':
                     $login_url = 'login';
                     break;
                 default:
                     $login_url = 'login/' . htmlspecialchars(implode('/', $request), ENT_QUOTES);
             }
         }
     } else {
         $username = isset($_SESSION['Username']) ? $_SESSION['Username'] : '';
     }
     $rights = new MOD_right();
     $volunteer = $rights->hasRightAny();
     if (isset($_SESSION["IdMember"])) {
         $IdMember = intval($_SESSION["IdMember"]);
         $roxmodel = new Rox();
         $numberOfNewMessagees = $roxmodel->getNewMessagesNumber($IdMember);
     }
     require TEMPLATE_DIR . 'shared/roxpage/topmenu.php';
 }
Example #13
0
 /**
  * configure the sidebar
  */
 protected function leftSidebar()
 {
     $words = $this->getWords();
     echo '<ul class="linklist">';
     echo '<li><a href="http://www.bevolunteer.org/wiki/How_pollsworks">Wiki Doc</a></li>';
     echo '<li><a href="polls/listall">', $words->getFormatted("polls_listlink"), '</a></li>';
     if (MOD_right::get()->HasRight("Poll", "create")) {
         echo '<li><a href="polls/create">', $words->getFormatted("polls_createlink"), '</a></li>';
     }
     echo "</ul>";
 }
Example #14
0
 /**
  * Update Member's Profile
  *
  * @param unknown_type $vars
  * @return unknown
  */
 public function updateProfile(&$vars)
 {
     $IdMember = (int) $vars['memberid'];
     $words = new MOD_words();
     $rights = new MOD_right();
     $m = $vars['member'];
     // fantastic ... love the implementation. Fake
     $CanTranslate = false;
     // $CanTranslate = CanTranslate($vars["memberid"], $_SESSION['IdMember']);
     $ReadCrypted = "MemberReadCrypted";
     // This might be changed in the future
     if ($rights->hasRight('Admin') || $rights->hasRight('SafetyTeam')) {
         // admin or CanTranslate can alter other profiles
         $ReadCrypted = "AdminReadCrypted";
         // In this case the AdminReadCrypted will be used
     }
     $m->removeLanguages();
     foreach ($vars['languages_selected'] as $lang) {
         if ($language = $this->createEntity('Language')->findById($lang->IdLanguage)) {
             $ml = $this->createEntity('MemberLanguage');
             $ml->setSpokenLanguage($m, $language, $lang->Level);
         }
     }
     // Set the language that ReplaceinMTrad uses for writing
     $words->setlangWrite($vars['profile_language']);
     // refactoring to use member entity
     //        $m->LastLogin = '******' ? 'Never' : $layoutbits->ago(strtotime($TM->LastLogin)); // Members lastlogin is no to be updated here
     if (isset($vars['Status']) && !empty($vars['Status'])) {
         // this can only happen when an admin or the safety team edits a profile
         $m->Status = $vars['Status'];
     }
     $m->Gender = $vars['gender'];
     $m->HideGender = $vars['HideGender'];
     $m->BirthDate = $vars['BirthYear'] . '-' . $vars['BirthMonth'] . '-' . $vars['BirthDay'];
     $m->bday = $vars['BirthDay'];
     $m->bmonth = $vars['BirthMonth'];
     $m->byear = $vars['BirthYear'];
     $m->HideBirthDate = $vars['HideBirthDate'];
     $m->HideGender = $vars['HideGender'];
     $m->ProfileSummary = $words->ReplaceInMTrad($vars['ProfileSummary'], "members.ProfileSummary", $IdMember, $m->ProfileSummary, $IdMember);
     $m->WebSite = strip_tags($vars['WebSite']);
     $m->Accomodation = $vars['Accomodation'];
     $m->Organizations = $words->ReplaceInMTrad($vars['Organizations'], "members.Organizations", $IdMember, $m->Organizations, $IdMember);
     $m->Occupation = $words->ReplaceInMTrad(strip_tags($vars['Occupation']), "members.Occupation", $IdMember, $m->Occupation, $IdMember);
     $m->ILiveWith = $words->ReplaceInMTrad($vars['ILiveWith'], "members.ILiveWith", $IdMember, $m->ILiveWith, $IdMember);
     $m->MaxGuest = strip_tags($vars['MaxGuest']);
     $m->MaxLenghtOfStay = $words->ReplaceInMTrad($vars['MaxLenghtOfStay'], "members.MaxLenghtOfStay", $IdMember, $m->MaxLenghtOfStay, $IdMember);
     $m->AdditionalAccomodationInfo = $words->ReplaceInMTrad($vars['AdditionalAccomodationInfo'], "members.AdditionalAccomodationInfo", $IdMember, $m->AdditionalAccomodationInfo, $IdMember);
     $m->TypicOffer = strip_tags($vars['TypicOffer']);
     $m->Restrictions = strip_tags($vars['Restrictions']);
     $m->OtherRestrictions = $words->ReplaceInMTrad($vars['OtherRestrictions'], "members.OtherRestrictions", $IdMember, $m->OtherRestrictions, $IdMember);
     $m->Hobbies = $words->ReplaceInMTrad($vars['Hobbies'], "members.Hobbies", $IdMember, $m->Hobbies, $IdMember);
     $m->Books = $words->ReplaceInMTrad($vars['Books'], "members.Books", $IdMember, $m->Books, $IdMember);
     $m->Music = $words->ReplaceInMTrad($vars['Music'], "members.Music", $IdMember, $m->Music, $IdMember);
     $m->Movies = $words->ReplaceInMTrad($vars['Movies'], "members.Movies", $IdMember, $m->Movies, $IdMember);
     $m->PastTrips = $words->ReplaceInMTrad($vars['PastTrips'], "members.PastTrips", $IdMember, $m->PastTrips, $IdMember);
     $m->PlannedTrips = $words->ReplaceInMTrad($vars['PlannedTrips'], "members.PlannedTrips", $IdMember, $m->PlannedTrips, $IdMember);
     $m->PleaseBring = $words->ReplaceInMTrad($vars['PleaseBring'], "members.PleaseBring", $IdMember, $m->PleaseBring, $IdMember);
     $m->OfferGuests = $words->ReplaceInMTrad($vars['OfferGuests'], "members.OfferGuests", $IdMember, $m->OfferGuests, $IdMember);
     $m->OfferHosts = $words->ReplaceInMTrad($vars['OfferHosts'], "members.OfferHosts", $IdMember, $m->OfferHosts, $IdMember);
     $m->PublicTransport = $words->ReplaceInMTrad($vars['PublicTransport'], "members.PublicTransport", $IdMember, $m->PublicTransport, $IdMember);
     // as $CanTranslate is set explicitly above, this is disabled
     // if (!$CanTranslate) { // a volunteer translator will not be allowed to update crypted data
     if ($vars["HouseNumber"] != $m->get_housenumber()) {
         $this->logWrite("Housenumber updated", "Address Update");
     }
     if ($vars["Street"] != $m->get_street()) {
         $this->logWrite("Street updated", "Address Update");
     }
     if ($vars["Zip"] != $m->get_zip()) {
         $this->logWrite("Zip updated", "Address Update");
     }
     if ($vars["Email"] == "cryptedhidden") {
         $this->logWrite("members.model updateprofile email keeps previous value (cryptedhidden detected)", "Debug");
     } else {
         if ($vars["Email"] != $m->email) {
             $this->logWrite("Email updated (previous was " . $m->email . ")", "Email Update");
             // Sticking to old BW, the previous email is stored in logs,
             // this might be discussed, but if the member fills a bad email,
             // there is no more way to retrieve him
             // Todo : get rid with this, but implement a confimmation mail
             $m->Email = MOD_crypt::NewReplaceInCrypted(strip_tags($vars['Email']), "members.Email", $IdMember, $m->Email, $IdMember, $this->ShallICrypt($vars, "Email"));
         }
     }
     if ($vars["HomePhoneNumber"] != "cryptedhidden") {
         $m->HomePhoneNumber = MOD_crypt::NewReplaceInCrypted(addslashes(strip_tags($vars['HomePhoneNumber'])), "members.HomePhoneNumber", $IdMember, $m->HomePhoneNumber, $IdMember, $this->ShallICrypt($vars, "HomePhoneNumber"));
     }
     if ($vars["CellPhoneNumber"] != "cryptedhidden") {
         $m->CellPhoneNumber = MOD_crypt::NewReplaceInCrypted(addslashes(strip_tags($vars['CellPhoneNumber'])), "members.CellPhoneNumber", $IdMember, $m->CellPhoneNumber, $IdMember, $this->ShallICrypt($vars, "CellPhoneNumber"));
     }
     if ($vars["WorkPhoneNumber"] != "cryptedhidden") {
         $m->WorkPhoneNumber = MOD_crypt::NewReplaceInCrypted(addslashes(strip_tags($vars['WorkPhoneNumber'])), "members.WorkPhoneNumber", $IdMember, $m->WorkPhoneNumber, $IdMember, $this->ShallICrypt($vars, "WorkPhoneNumber"));
     }
     if ($vars["chat_SKYPE"] != "cryptedhidden") {
         $m->chat_SKYPE = MOD_crypt::NewReplaceInCrypted(addslashes(strip_tags($vars['chat_SKYPE'])), "members.chat_SKYPE", $IdMember, $m->chat_SKYPE, $IdMember, $this->ShallICrypt($vars, "chat_SKYPE"));
     }
     if ($vars["chat_AOL"] != "cryptedhidden") {
         $m->chat_AOL = MOD_crypt::NewReplaceInCrypted(addslashes(strip_tags($vars['chat_AOL'])), "members.chat_AOL", $IdMember, $m->chat_AOL, $IdMember, $this->ShallICrypt($vars, "chat_AOL"));
     }
     if ($vars["chat_YAHOO"] != "cryptedhidden") {
         $m->chat_YAHOO = MOD_crypt::NewReplaceInCrypted(addslashes(strip_tags($vars['chat_YAHOO'])), "members.chat_YAHOO", $IdMember, $m->chat_YAHOO, $IdMember, $this->ShallICrypt($vars, "chat_YAHOO"));
     }
     if ($vars["chat_ICQ"] != "cryptedhidden") {
         $m->chat_ICQ = MOD_crypt::NewReplaceInCrypted(addslashes(strip_tags($vars['chat_ICQ'])), "members.chat_ICQ", $IdMember, $m->chat_ICQ, $IdMember, $this->ShallICrypt($vars, "chat_ICQ"));
     }
     if ($vars["chat_Others"] != "cryptedhidden") {
         $m->chat_Others = MOD_crypt::NewReplaceInCrypted(addslashes(strip_tags($vars['chat_Others'])), "members.chat_Others", $IdMember, $m->chat_Others, $IdMember, $this->ShallICrypt($vars, "chat_Others"));
     }
     if ($vars["chat_GOOGLE"] != "cryptedhidden") {
         $m->chat_GOOGLE = MOD_crypt::NewReplaceInCrypted(addslashes(strip_tags($vars['chat_GOOGLE'])), "members.chat_GOOGLE", $IdMember, $m->chat_GOOGLE, $IdMember, $this->ShallICrypt($vars, "chat_GOOGLE"));
     }
     $firstname = MOD_crypt::AdminReadCrypted($m->FirstName);
     $secondname = MOD_crypt::AdminReadCrypted($m->SecondName);
     $lastname = MOD_crypt::AdminReadCrypted($m->LastName);
     if ($firstname != strip_tags($vars['FirstName']) || $secondname != strip_tags($vars['SecondName']) || $lastname != strip_tags($vars['LastName'])) {
         $this->logWrite("{$m->Username} changed name. Firstname: {$firstname} -> " . strip_tags($vars['FirstName']) . ", second name: {$secondname} -> " . strip_tags($vars['SecondName']) . ", second name: {$lastname} -> " . strip_tags($vars['LastName']), 'Profile update');
     }
     if ($vars["FirstName"] != "cryptedhidden") {
         MOD_crypt::NewReplaceInCrypted($this->dao->escape(strip_tags($vars['FirstName'])), "members.FirstName", $IdMember, $m->FirstName, $IdMember, $this->ShallICrypt($vars, "FirstName"));
     }
     if ($vars["SecondName"] != "cryptedhidden") {
         $cryptId = MOD_crypt::NewReplaceInCrypted($this->dao->escape(strip_tags($vars['SecondName'])), "members.SecondName", $IdMember, $m->SecondName, $IdMember, $this->ShallICrypt($vars, "SecondName"));
         // Update member if a new crypted SecondName value was added
         if ($cryptId != $m->SecondName) {
             $m->SecondName = $cryptId;
         }
     }
     if ($vars["LastName"] != "cryptedhidden") {
         MOD_crypt::NewReplaceInCrypted($this->dao->escape(strip_tags($vars['LastName'])), "members.LastName", $IdMember, $m->LastName, $IdMember, $this->ShallICrypt($vars, "LastName"));
     }
     if ($vars["Zip"] != "cryptedhidden") {
         $this->logWrite("in members.model updateprofile() Before Zip update addresss.Zip=" . $m->address->Zip, "Debug");
         $cryptId = MOD_crypt::NewReplaceInCrypted($this->dao->escape(strip_tags($vars['Zip'])), "addresses.Zip", $m->IdAddress, $m->address->Zip, $IdMember, $this->ShallICrypt($vars, "Zip"));
         // Update addresses table if a new crypted zip value was added
         if ($cryptId != $m->address->Zip) {
             $m->setCryptedZip($cryptId);
         }
         $this->logWrite("in members.model updateprofile() After Zip update addresss.Zip=" . $m->address->Zip . " \$cryptId=" . $cryptId, "Debug");
     }
     if ($vars["HouseNumber"] != "cryptedhidden") {
         $cryptId = MOD_crypt::NewReplaceInCrypted($this->dao->escape(strip_tags($vars['HouseNumber'])), "addresses.HouseNumber", $m->IdAddress, $m->address->HouseNumber, $IdMember, $this->ShallICrypt($vars, "Address"));
         // Update addresses table if a new crypted HouseNumber value was added
         if ($cryptId != $m->address->HouseNumber) {
             $m->setCryptedHouseNumber($cryptId);
         }
     }
     if ($vars["Street"] != "cryptedhidden") {
         $cryptId = MOD_crypt::NewReplaceInCrypted($this->dao->escape(strip_tags($vars['Street'])), "addresses.StreetName", $m->IdAddress, $m->address->StreetName, $IdMember, $this->ShallICrypt($vars, "Address"));
         // Update addresses table if a new crypted StreetName value was added
         if ($cryptId != $m->address->StreetName) {
             $m->setCryptedStreetName($cryptId);
         }
     }
     // Check relations, and update them if they have changed
     $Relations = $m->get_all_relations();
     foreach ($Relations as $Relation) {
         if ($words->mInTrad($Relation->Comment, $vars['profile_language']) != $vars["RelationComment_" . $Relation->id] and !empty($vars["RelationComment_" . $Relation->id])) {
             //              echo "Relation #".$Relation->id,"<br />", $words->mInTrad($Relation->Comment,$vars['profile_language']),"<br />",$vars['RelationComment_'.$Relation->id],"<br />" ;
             $IdTrad = $words->ReplaceInMTrad(strip_tags($vars["RelationComment_" . $Relation->id]), "specialrelations.Comment", $Relation->id, $Relation->Comment, $IdMember);
             // Empty comments have trad id 0. Causing ReplaceInMTrad to create
             // a new trad id and returning the new number.
             if ($IdTrad != $Relation->id) {
                 $m->update_relation($Relation->id, $IdTrad);
             }
             $this->logWrite("updating relation #" . $Relation->id . " Relation Confirmed=" . $Relation->Confirmed, "Profile update");
         }
     }
     // Check groups membership description, and update them if they have changed
     // Tod od with Peter: check if there is other feature to update a group membership (a groupmembership model for example, or entity)
     /* group membership should not be present here, disabled for now
        $Groups=$m->getGroups() ;
        for ($i = 0; $i < count($Groups) ; $i++) {
            $group=$Groups[$i] ;
            $group_id = $group->getPKValue() ;
            $group_name_translated = $words->get("Group_".$group->Name);
            $group_comment_translated = htmlspecialchars($words->mInTrad($m->getGroupMembership($group)->Comment,$vars['profile_language']), ENT_QUOTES);
            $IdMemberShip=$m->getGroupMembership($group)->id ;
            if (($words->mInTrad($m->getGroupMembership($group)->Comment,$vars['profile_language'])!=$vars["GroupMembership_".$IdMemberShip])
                and (!empty($vars["GroupMembership_".$IdMemberShip])))  {
                echo "Group #".$group_id,"<br />",$words->mInTrad($m->getGroupMembership($group)->Comment,$vars['profile_language']),"<br />",$vars["GroupMembership_".$IdMemberShip],"<br />" ;
                $words->ReplaceInMTrad(strip_tags($vars["GroupMembership_".$IdMemberShip]),"membersgroups.Comment", $IdMemberShip, $m->getGroupMembership($group)->Comment, $IdMember);
                $this->logWrite("updating membership description in group #".$group_id." Group name=".$group->name, "Profil update");
            }
        }
        */
     // if a member with status NeedMore updates her/his profile, moving them back to pending
     if ($m->Status == 'NeedMore') {
         $m->Status = 'Pending';
     }
     $status = $m->update();
     if (!empty($_FILES['profile_picture']) && !empty($_FILES['profile_picture']['tmp_name'])) {
         if (isset($_FILES['profile_picture']) && $_FILES['profile_picture']['error'] == 0) {
             $this->avatarMake($vars['memberid'], $_FILES['profile_picture']['tmp_name']);
         }
     }
     if ($IdMember == $_SESSION['IdMember']) {
         $this->logWrite("Profile update by member himself [Status={$m->Status}]", "Profile update");
     } else {
         $this->logWrite("update of another profile <b>" . $m->Username . "</b>", "Profile update");
         // It can be an admin update or a delegated translation update
     }
     return $status;
 }
Example #15
0
 /**
  * Index function
  *
  * Currently the index consists of following possible requests:
  * register    - registration form to page content
  * confirm   - confirmation redirect to signup
  *
  * @param void
  */
 public function index($args = false)
 {
     // In case Signup is closed
     if (isset($_SESSION['Param']->FeatureSignupClose) && $_SESSION['Param']->FeatureSignupClose == "Yes") {
         return new SignupClosedPage();
     }
     /*
              * Enable to check against DNS Blocklists
     if (MOD_dnsblock::get()->checkRemoteIp()) {
                 return new SignupDNSBlockPage();
             }
     */
     $request = $args->request;
     $model = new SignupModel();
     if (isset($_SESSION['IdMember']) && !MOD_right::get()->hasRight('words')) {
         if (!isset($_SESSION['Username'])) {
             unset($_SESSION['IdMember']);
             $page = new SignupProblemPage();
         } else {
             $this->redirect('members/' . $_SESSION['Username']);
         }
     } else {
         switch (isset($request[1]) ? $request[1] : '') {
             // copied from TB:
             // checks e-mail address for validity and availability
             case 'checkemail':
                 // ignore current request, so we can use the last request
                 PRequest::ignoreCurrentRequest();
                 if (!isset($_GET['email'])) {
                     echo '0';
                     PPHP::PExit();
                 }
                 if (!PFunctions::isEmailAddress($_GET['email'])) {
                     echo '0';
                     PPHP::PExit();
                 }
                 $users = $model->takeCareForNonUniqueEmailAddress($_GET['email']);
                 if ($users == '') {
                     echo "1";
                 } else {
                     echo "0";
                 }
                 PPHP::PExit();
                 break;
                 // copied from TB: rewiewed by JeanYves
                 // checks Username for validity and availability
             // copied from TB: rewiewed by JeanYves
             // checks Username for validity and availability
             case 'checkhandle':
                 // ignore current request, so we can use the last request
                 PRequest::ignoreCurrentRequest();
                 if (!isset($request[2])) {
                     echo '0';
                     PPHP::PExit();
                 }
                 if (!preg_match(User::HANDLE_PREGEXP, $request[2])) {
                     echo '0';
                     PPHP::PExit();
                 }
                 if (strpos($request[2], 'xn--') !== false) {
                     // Don't allow IDN-Prefixes
                     echo '0';
                     PPHP::PExit();
                 }
                 echo (bool) (!$model->UsernameInUse($request[2]));
                 PPHP::PExit();
                 break;
             case 'getRegions':
                 // ignore current request, so we can use the last request
                 PRequest::ignoreCurrentRequest();
                 if (!isset($request[2])) {
                     PPHP::PExit();
                 }
             case 'terms':
                 MOD_log::get()->write("Viewing terms", "Signup");
                 // the termsandconditions popup
                 $page = new SignupTermsPopup();
                 break;
             case 'privacy':
                 MOD_log::get()->write("Viewing privacy", "Signup");
                 $page = new SignupPrivacyPopup();
                 break;
             case 'confirm':
                 // or give it a different name?
                 // this happens when you click the link in the confirmation email
                 if (!isset($request[2]) || !isset($request[3]) || !preg_match(User::HANDLE_PREGEXP, $request[2]) || !$model->UsernameInUse($request[2]) || !preg_match('/^[a-f0-9]{16}$/', $request[3])) {
                     $error = 'InvalidLink';
                 } else {
                     $error = $model->confirmSignup($request[2], $request[3]);
                 }
                 $page = new SignupMailConfirmPage();
                 $page->error = $error;
                 break;
             case 'resendmail':
                 // shown when clicking on the link in the MailToConfirm error message
                 $error = '';
                 if (!isset($request[2])) {
                     $error = 'InvalidLink';
                 } else {
                     $resent = $model->resendConfirmationMail($request[2]);
                     if ($resent !== true) {
                         $error = $resent;
                     }
                 }
                 $page = new SignupResentMailPage();
                 $page->error = $error;
                 break;
             case 'finish':
                 $page = new SignupFinishPage();
                 break;
             default:
                 $page = new SignupPage();
                 $page->step = isset($request[1]) && $request[1] ? $request[1] : '1';
                 $StrLog = "Entering Signup step: #" . $page->step;
                 MOD_log::get()->write($StrLog, "Signup");
                 $page->model = $model;
         }
     }
     return $page;
 }
Example #16
0
 /**
  * this function load the list of the polls with a certain status
  * @PollStatus is the statuis which allow to filter for the status of some poll
  **/
 function LoadList($PollStatus = "")
 {
     $words = new MOD_words();
     if (empty($PollStatus)) {
         $where = "";
     } else {
         $where = " where polls.Status='" . $PollStatus . "'";
     }
     $sQuery = "select polls.*,members.Username as 'CreatorUsername' from (polls) ";
     $sQuery .= " left join members on members.id=polls.IdCreator ";
     $sQuery .= " left join groups on groups.id=polls.IdGroupCreator ";
     $sQuery = $sQuery . $where . " order by polls.created desc";
     $tt = array();
     $qry = $this->dao->query($sQuery);
     if (!$qry) {
         throw new PException('polls::LLoadList Could not retrieve the polls!');
     }
     if (isset($_SESSION["IdMember"])) {
         $IdMember = $_SESSION["IdMember"];
     } else {
         $IdMember = 0;
     }
     // for all the records
     while ($rr = $qry->fetch(PDB::FETCH_OBJ)) {
         // If there is a group list, test if the current member is in the group list
         if (!$this->IsMemberAllowed($rr)) {
             continue;
             // Skip this record
         }
         if (!empty($rr->IdGroupCreator)) {
             // In case the polls is created by a group find back the name of this group
             $rGroup = $this->singleLookup("select * from groups where id=" . $rr->IdGroupCreator);
             $rr->GroupCreatorName = $words->getFormatted("Group_" . $rGroup->Name);
         }
         $rContrib = $this->singleLookup("select count(*) as cnt from polls_contributions where IdPoll=" . $rr->id);
         $rr->NbContributors = $rContrib->cnt;
         // This is the logic for the possible action (may be this could be better in the controller)
         $rr->PossibleActions = "<ul>";
         // Only owner of admin with proper right can update the poll
         if (isset($_SESSION["IdMember"]) and $rr->IdCreator == $_SESSION["IdMember"] and $rr->Status == "Projet" or MOD_right::get()->HasRight("Poll", "update")) {
             $rr->PossibleActions = $rr->PossibleActions . "<li><a href=\"polls/update/" . $rr->id . "\">" . $words->getFormatted("polls_adminlink") . "</a></li>";
         }
         if ($this->HasAlreadyContributed($rr->id, "", $_SESSION["IdMember"])) {
             $rr->PossibleActions = $words->getFormatted("polls_youhavealreadyvoted");
             if ($rr->CanChangeVote == "Yes" and $rr->Status == "Open") {
                 $rr->PossibleActions .= "<li<a href=\"polls/cancelvote/" . $rr->id . "\">" . $words->getFormatted("polls_remove_vote") . "</a></li>";
             }
             if ($rr->ResultsVisibility == "VisibleAfterVisit" and $rr->Status != "Closed") {
                 $rr->PossibleActions = $rr->PossibleActions . "<li><a href=\"polls/seeresults/" . $rr->id . "\">" . $words->getFormatted("polls_seeresults") . "</li>";
             }
         }
         if ($this->CanUserContribute($rr->id, "", $_SESSION["IdMember"])) {
             $rr->PossibleActions = $rr->PossibleActions . "<li><a href=\"polls/contribute/" . $rr->id . "\">" . $words->getFormatted("polls_contribute") . "</li>";
         }
         if ($rr->Status == "Closed") {
             $rr->PossibleActions .= "<li><a href=\"polls/results/" . $rr->id . "\">" . $words->getFormatted("polls_seeresults") . "</li>";
         }
         $rr->PossibleActions .= "</ul>";
         array_push($tt, $rr);
     }
     return $tt;
 }
Example #17
0
 /**
  * Delete several selfuploaded pictures as loggedin owner or with gallery rights
  *
  * @access public
  * @param Object $image Image to be deleted
  * @return boolean
  */
 public function deleteMultiple($images)
 {
     if (!($member = $this->getLoggedInMember())) {
         return false;
     }
     $R = MOD_right::get();
     $GalleryRight = $R->hasRight('Gallery');
     foreach ($images as $image) {
         if (!$image) {
             return false;
         }
         if ($member->get_userid() == $this->imageGalleryOwner('image', $image) || $GalleryRight > 1) {
             $image = $this->imageData($image);
             // Log the deletion to prevent admin abuse
             MOD_log::get()->write("Deleting multiple gallery items #" . $image->id . " filename: " . $image->file . " belonging to user: "******"Gallery");
             $this->deleteThisImage($image);
         } else {
             return false;
         }
     }
 }
Example #18
0
 /**
  * This method is called when a translator says "rox/trmode/.."
  * TODO: Better do this in a model class 
  *
  * @param string $tr_mode
  */
 private function _switchTrMode($tr_mode)
 {
     if (!MOD_right::get()->hasRight('Words')) {
         $_SESSION['tr_mode'] = 'browse';
         return;
     }
     switch ($tr_mode) {
         case 'browse':
         case 'translate':
         case 'edit':
             $_SESSION['tr_mode'] = $tr_mode;
             break;
         default:
             // don't change tr mode
     }
 }
Example #19
0
 <a style="display:inline" href="http://trac.bewelcome.org/">BW Rox</a> rev. <a href="http://github.com/BeWelcome/rox/commit/<?php 
echo $versionInfo;
?>
"><?php 
echo $versionInfo;
?>
</a>
     (<span title="<?php 
echo $deploymentDateTime;
?>
"><?php 
echo $deploymentDate;
?>
</span>)</em></p>

<?php 
// List of DB queries with execution time
if (PVars::get()->debug) {
    $R = MOD_right::get();
    if ($R->HasRight("Debug", "DB_QUERY")) {
        ?>
<p>
<a style="cursor:pointer;" onclick="$('query_list').toggle();">DB queries</a>
</p>
<div id='query_list' style="display:none;">
<?php 
        foreach ($query_list as $key => $query) {
            echo $key + 1 . ": {$query}<br />\n";
        }
    }
}
Example #20
0
 /**
  * configure the sidebar
  */
 protected function leftSidebar()
 {
     if (MOD_right::get()->hasRight('Debug')) {
         require 'templates/adminbar.php';
     }
 }
Example #21
0
 /**
  * handles edit profile form post - profile updating
  *
  * @param object $args
  * @param object $action
  * @param object $mem_redirect
  * @param object $mem_resend
  * @access public
  * @return string
  */
 public function editMyProfileCallback($args, $action, $mem_redirect, $mem_resend)
 {
     if (isset($args->post)) {
         $vars = $this->cleanVars($args->post);
         $request = $args->request;
         $errors = $this->model->checkProfileForm($vars);
         $uploadFailed = false;
         if (in_array('UploadedProfileImageTooBig', $errors) === false || in_array('ProfileImageUploadFailed', $errors) === false) {
             $uploadFailed = true;
         } else {
             // check if uploaded file is image
             $img = new MOD_images_Image($_FILES['profile_picture']['tmp_name']);
             if (!$img->isImage()) {
                 $errors[] = 'ProfileUploadNotImage';
                 $uploadFailed = true;
             }
         }
         $vars['errors'] = array();
         if (count($errors) > 0) {
             $vars['errors'] = $errors;
             // Activate fieldset tab "Contact Info" if needed.
             if (in_array('SignupErrorInvalidBirthDate', $vars['errors']) === false && $uploadFailed === false) {
                 $vars['activeFieldset'] = 'contactinfo';
             }
             // show form again
             $mem_redirect->post = $vars;
             return false;
         }
         $rights = new MOD_right();
         if (!($rights->hasRight('Admin') || $rights->hasRight('SafetyTeam'))) {
             $vars['memberid'] = $this->model->getLoggedInMember()->getPKValue();
         }
         $vars['member'] = $this->getMember($vars['memberid']);
         $vars = $this->model->polishProfileFormValues($vars);
         $success = $this->model->updateProfile($vars);
         if (!$success) {
             $mem_redirect->problems = array('Could not update profile');
         }
         // Redirect to a nice location like editmyprofile/finish
         $str = implode('/', $request);
         if (in_array('finish', $request)) {
             return $str;
         }
         return $str . '/finish';
     }
 }
Example #22
0
 public function editCodeFormCheck($form)
 {
     $errors = array();
     $rights = MOD_right::get();
     $wordLevel = $rights->hasRight('Words');
     switch ($form['DOACTION']) {
         case 'Submit':
             if ($wordLevel >= 10) {
                 $errors = $this->createCodeFormCheck($form);
             }
             if (empty($form['changetype'])) {
                 $errors[] = 'AdminWordErrorChangeTypeEmpty';
             }
             break;
         case 'Back':
             break;
     }
     return $errors;
 }
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
BW Rox is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, see <http://www.gnu.org/licenses/> or 
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 
Boston, MA  02111-1307, USA.
*/
/** 
 * @author Matthias Heß <globetrotter_tt>
 */
$words = new MOD_words();
$userRights = MOD_right::get();
$scope = $userRights->RightScope('Comments');
?>

<h3><?php 
echo $words->get('Action');
?>
</h3>
<ul class="linklist">
    <li><a href="<?php 
echo $this->router->url('admin_comments_list_subset', array('subset' => 'negative'));
?>
">Negative comments</a></li>
    <?php 
if ($scope == "AdminAbuser" || $scope == '"All"') {
    ?>
Example #24
0
 /**
  * singleton getter
  * 
  * @param void
  * @return PApps
  */
 public static function get()
 {
     if (!isset(self::$_instance_right)) {
         $c = __CLASS__;
         self::$_instance_right = new $c();
     }
     return self::$_instance_right;
 }
Example #25
0
 /**
  */
 public function index()
 {
     $vw = new ViewWrap($this->_view);
     $P = PVars::getObj('page');
     // First check if the feature is closed
     if ($_SESSION["Param"]->FeatureSearchPageIsClosed != 'No') {
         $P->content = $this->_view->showFeatureIsClosed();
         return;
     }
     // end of test "if feature is closed"
     if (PPostHandler::isHandling()) {
         return;
     }
     $request = PRequest::get()->request;
     if (!isset($request[1])) {
         $request[1] = '';
     }
     // Route quicksearch
     if ($request[0] == 'quicksearch') {
         $error = false;
         // static pages
         switch ($request[1]) {
             case '':
                 $searchtext = isset($_GET["vars"]) ? $_GET['vars'] : '';
                 // Because of old way to use the QuickSearch with a get
                 break;
             default:
                 $searchtext = $request[1];
                 break;
         }
         $TReturn = $this->_model->quicksearch($searchtext);
         if (count($TReturn->TMembers) == 1 and count($TReturn->TPlaces) == 0 and count($TReturn->TForumTags) == 0) {
             $loc = "members/" . $TReturn->TMembers[0]->Username;
             header('Location: ' . $loc);
             PPHP::PExit();
         } else {
             if (count($TReturn->TMembers) == 0 and count($TReturn->TPlaces) == 1 and count($TReturn->TForumTags) == 0) {
                 $loc = $TReturn->TPlaces[0]->link;
                 header('Location: ' . $loc);
                 PPHP::PExit();
             } else {
                 if (count($TReturn->TMembers) == 0 and count($TReturn->TPlaces) == 0 and count($TReturn->TForumTags) == 1) {
                     $loc = "forums/t" . $TReturn->TForumTags[0]->IdTag;
                     header('Location: ' . $loc);
                     PPHP::PExit();
                 }
             }
         }
         $P->content .= $vw->quicksearch_results($TReturn);
         return $P;
     }
     if ($request[0] != 'searchmembers') {
         header('Location: searchmembers');
         PPHP::PExit();
     }
     // fix a problem with Opera javascript, which sends a 'searchmembers/searchmembers/ajax' request
     if ($request[1] === 'searchmembers') {
         $request = array_slice($request, 1);
     }
     // default mapstyle:
     $mapstyle = 'mapon';
     $queries = '';
     $varsOnLoad = '';
     $varsGet = '';
     if (isset($request[1])) {
         switch ($request[1]) {
             case 'mapoff':
                 $mapstyle = "mapoff";
                 $_SESSION['SearchMembersTList'] = array();
                 break;
             case 'mapon':
                 $mapstyle = "mapon";
                 $_SESSION['SearchMembersTList'] = array();
                 break;
             case 'queries':
                 if (PVars::get()->debug) {
                     $R = MOD_right::get();
                     if ($R->HasRight("Debug", "DB_QUERY")) {
                         $queries = true;
                         $mapstyle = "mapoff";
                     }
                 }
                 break;
             default:
                 if (isset($_SESSION['SearchMapStyle']) and $_SESSION['SearchMapStyle']) {
                     $mapstyle = $_SESSION['SearchMapStyle'];
                 }
                 break;
         }
     }
     // Store the MapStyle in session
     $_SESSION['SearchMapStyle'] = $mapstyle;
     // Check wether there are latest search results and variables from the session
     if (!$queries && isset($_SESSION['SearchMembersTList'])) {
         if ($_SESSION['SearchMembersTList'] && $_SESSION['SearchMembersVars']) {
             $varsOnLoad = $_SESSION['SearchMembersVars'];
         }
     }
     switch ($request[1]) {
         case 'ajax':
             if (isset($request[2]) and $request[2] == "varsonload") {
                 $vars['varsOnLoad'] = true;
                 // Read the latest search results and variables from the session
                 if (!empty($_SESSION['SearchMembersTList'])) {
                     $TList = $_SESSION['SearchMembersTList'];
                 }
                 if (!empty($_SESSION['SearchMembersVars'])) {
                     $vars = $_SESSION['SearchMembersVars'];
                 }
                 if (isset($request[3])) {
                     $vars['OrderBy'] = $request[3];
                     $TList = $this->_model->search($vars);
                 }
             } else {
                 $vars = isset($_GET) ? $_GET : array();
                 if (isset($request[2]) && $request[2] == "queries") {
                     $vars['queries'] = true;
                 }
                 if (!isset($TList)) {
                     $TList = $this->_model->search($vars);
                 }
             }
             $this->_view->searchmembers_ajax($TList, $vars, $mapstyle);
             // Store latest search results and variables in session
             $_SESSION['SearchMembersTList'] = $TList;
             $_SESSION['SearchMembersVars'] = $vars;
             PPHP::PExit();
             break;
             /* quicksearch shouldn't go through this route
                         case 'quicksearch':
                             $mapstyle = "mapoff"; 
                             // First check if the QuickSearch feature is closed
                             if ($_SESSION["Param"]->FeatureQuickSearchIsClosed!='No') {
                                 $this->_view->showFeatureIsClosed();
                                 PPHP::PExit();
                                 break ;
                             } // end of test "if QuickSearch feature is closed" 
                             if (isset($request[2])) { // The parameter to search for can be for the form searchmember/quicksearch/ value
                                 $searchtext=$request[2] ;
                             }
             
                             if (isset($_GET['searchtext'])) { // The parameter can come from the main menu
                                 $searchtext = $_GET['searchtext'];
                             }
                             if (isset($_POST['searchtext'])) { // The parameter can come from the quicksearch form
                                 $searchtext = $_POST['searchtext'];
                             }               
                             
             //              die('here searchtext={'.$searchtext.'}') ;
                             if (!empty($searchtext)) {
                                 $TReturn=$this->_model->quicksearch($searchtext) ;
                                 if ((count($TReturn->TMembers)==1) and  (count($TReturn->TPlaces)==0)  and  (count($TReturn->TForumTags)==0)) {
                                     $loc="members/".$TReturn->TMembers[0]->Username ;
                                     header('Location: '.$loc);
                                     PPHP::PExit();
                                 }
                                 else if ((count($TReturn->TMembers)==0) and  (count($TReturn->TPlaces)==1)  and  (count($TReturn->TForumTags)==0)) {
                                     $loc=$TReturn->TPlaces[0]->link ;
                                     header('Location: '.$loc);
                                     PPHP::PExit();
                                 }
                                 else if ((count($TReturn->TMembers)==0) and  (count($TReturn->TPlaces)==0)  and  (count($TReturn->TForumTags)==1)) {
                                     $loc="forums/t".$TReturn->TForumTags[0]->IdTag ;
                                     header('Location: '.$loc);
                                     PPHP::PExit();
                                 }
                                 $P->content .= $vw->quicksearch_results($TReturn);
                             }
                             else {
             
                                 $vars = PPostHandler::getVars('quicksearch_callbackId');
                                 PPostHandler::clearVars('quicksearch_callbackId');
             
                                 // first include the col2-stylesheet
                                 $P->addStyles .= $this->_view->customStyles($mapstyle,$quicksearch=1);
                             
                                 // now the teaser content
                                 $P->teaserBar .= $vw->teaserquicksearch($mapstyle);
                             
                                 $P->content .= $vw->quicksearch_form();
                             }
                             break;
                             
                         // Backwards compatibility
                         case 'index':
                             $loc = PVars::getObj('env')->baseuri;
                             $loc .= 'searchmembers';
                             if(isset($request[2])) {$loc .= '/'.$request[2];}
                             elseif(isset($request[3])) {$loc .= '/'.$request[3];}
                             header('Location: '.$loc);
                             PPHP::PExit();
                             break;
             */
         /* quicksearch shouldn't go through this route
                     case 'quicksearch':
                         $mapstyle = "mapoff"; 
                         // First check if the QuickSearch feature is closed
                         if ($_SESSION["Param"]->FeatureQuickSearchIsClosed!='No') {
                             $this->_view->showFeatureIsClosed();
                             PPHP::PExit();
                             break ;
                         } // end of test "if QuickSearch feature is closed" 
                         if (isset($request[2])) { // The parameter to search for can be for the form searchmember/quicksearch/ value
                             $searchtext=$request[2] ;
                         }
         
                         if (isset($_GET['searchtext'])) { // The parameter can come from the main menu
                             $searchtext = $_GET['searchtext'];
                         }
                         if (isset($_POST['searchtext'])) { // The parameter can come from the quicksearch form
                             $searchtext = $_POST['searchtext'];
                         }               
                         
         //              die('here searchtext={'.$searchtext.'}') ;
                         if (!empty($searchtext)) {
                             $TReturn=$this->_model->quicksearch($searchtext) ;
                             if ((count($TReturn->TMembers)==1) and  (count($TReturn->TPlaces)==0)  and  (count($TReturn->TForumTags)==0)) {
                                 $loc="members/".$TReturn->TMembers[0]->Username ;
                                 header('Location: '.$loc);
                                 PPHP::PExit();
                             }
                             else if ((count($TReturn->TMembers)==0) and  (count($TReturn->TPlaces)==1)  and  (count($TReturn->TForumTags)==0)) {
                                 $loc=$TReturn->TPlaces[0]->link ;
                                 header('Location: '.$loc);
                                 PPHP::PExit();
                             }
                             else if ((count($TReturn->TMembers)==0) and  (count($TReturn->TPlaces)==0)  and  (count($TReturn->TForumTags)==1)) {
                                 $loc="forums/t".$TReturn->TForumTags[0]->IdTag ;
                                 header('Location: '.$loc);
                                 PPHP::PExit();
                             }
                             $P->content .= $vw->quicksearch_results($TReturn);
                         }
                         else {
         
                             $vars = PPostHandler::getVars('quicksearch_callbackId');
                             PPostHandler::clearVars('quicksearch_callbackId');
         
                             // first include the col2-stylesheet
                             $P->addStyles .= $this->_view->customStyles($mapstyle,$quicksearch=1);
                         
                             // now the teaser content
                             $P->teaserBar .= $vw->teaserquicksearch($mapstyle);
                         
                             $P->content .= $vw->quicksearch_form();
                         }
                         break;
                         
                     // Backwards compatibility
                     case 'index':
                         $loc = PVars::getObj('env')->baseuri;
                         $loc .= 'searchmembers';
                         if(isset($request[2])) {$loc .= '/'.$request[2];}
                         elseif(isset($request[3])) {$loc .= '/'.$request[3];}
                         header('Location: '.$loc);
                         PPHP::PExit();
                         break;
         */
         default:
             $words = new MOD_words();
             $P->addStyles = $this->_view->customStyles($mapstyle);
             $google_conf = PVars::getObj('config_google');
             $P->title = $words->getBuffered('searchmembersTitle') . " - BeWelcome";
             $P->currentTab = 'searchmembers';
             $P->currentSubTab = 'searchmembers';
             $subTab = 'index';
             // prepare sort order for both the filters and the userbar
             $sortorder = $this->_model->get_sort_order();
             $P->teaserBar = $vw->teaser($mapstyle, $sortorder, $varsOnLoad);
             $P->teaserBar .= $vw->searchmembersFilters($this->_model->sql_get_groups(), $this->_model->sql_get_set("members", "Accomodation"), $this->_model->sql_get_set("members", "TypicOffer"), $sortorder);
             $P->content = $vw->search_column_col3($sortorder, $queries, $mapstyle, $varsOnLoad, $varsGet, $this->_model->sql_get_set("members", "Accomodation"));
             /*$P->content = $vw->memberlist($mapstyle,$sortorder);
               
               $P->content .= $vw->searchmembers(
                   $queries,
                   $mapstyle,
                   $varsOnLoad,
                   $varsGet,
                   $this->_model->sql_get_set("members", "Accomodation")
               );
               */
             $P->show_volunteerbar = false;
             break;
     }
 }
Example #26
0
 /**
  * Returns an array with the mist of X latest donations (all donation in case the current user has Treasurer rights)
  *
  */
 public function getDonations()
 {
     $TDonations = array();
     $R = MOD_right::get();
     $hasRight = $R->hasRight('Treasurer');
     if ($hasRight) {
         $query = "SELECT * FROM donations ORDER BY created DESC";
     } else {
         $query = "SELECT * FROM donations ORDER BY created DESC LIMIT 10";
     }
     $result = $this->dao->query($query);
     while ($row = $result->fetch(PDB::FETCH_OBJ)) {
         array_push($TDonations, $row);
     }
     return $TDonations;
 }
Example #27
0
 public function getWiki($page, $title = true)
 {
     global $ewiki_db, $ewiki_links, $ewiki_plugins, $ewiki_ring, $ewiki_t, $ewiki_errmsg, $ewiki_data, $ewiki_title, $ewiki_id, $ewiki_action, $ewiki_config, $ewiki_author;
     // Some settings
     define("EWIKI_NAME", "BeWelcome Wiki");
     define('EWIKI_SCRIPT', 'wiki/');
     define("EWIKI_SPLIT_TITLE", 1);
     define("EWIKI_SCRIPT_URL", PVars::getObj("env")->baseuri . 'wiki/');
     # absolute URL
     define("EWIKI_SCRIPT_BINARY", 0);
     define("EWIKI_PROTECTED_MODE", 1);
     define("EWIKI_RESCUE_HTML", 1);
     define("EWIKI_URLENCODE", 0);
     define("EWIKI_URLDECODE", 0);
     define("EWIKI_ALLOW_HTML", 1);
     define("EWIKI_DESC", "Document and share content about hospitality exchange and travel on bewelcome.org");
     # site description
     define("EWIKI_COPY", "PrimarilyPublicDomain");
     # site copyright
     define("EWIKI_CATEGORY", "Hospitality Exchange");
     # site subject
     define("EWIKI_LOGO_URL", "http://www.bewelcome.org/images/logo_index_top.png");
     if (!$title) {
         define("EWIKI_PRINT_TITLE", 0);
     }
     # <h2>WikiPageName</h2> on top
     // Authentification
     require_once "erfurtwiki/plugins/auth/auth_perm_ring.php";
     $ewiki_perm_rings['rss'] = 3;
     $model = new MembersModel();
     $member = $model->getLoggedInMember();
     $Right = new MOD_right();
     if ($member && $Right->hasRight('Admin', 'Wiki')) {
         $ewiki_author = $member->Username;
         define("EWIKI_AUTH_DEFAULT_RING", 0);
         //  0 = admin
     } elseif ($member) {
         $ewiki_author = $member->Username;
         define("EWIKI_AUTH_DEFAULT_RING", 2);
         //  2 = edit allowed
     } else {
         $ewiki_author = 'guest';
         define("EWIKI_AUTH_DEFAULT_RING", 3);
         //  3 = read/view/browse-only
     }
     $this->defineMarkup($ewiki_config);
     // More plugins
     require_once "erfurtwiki/plugins/aview/toc.php";
     // Table of contents
     $ewiki_plugins["view_final"][] = "ewiki_add_title";
     require_once "erfurtwiki/plugins/markup/mediawiki.php";
     // load our own mediawiki plugin
     require_once "erfurtwiki/plugins/aview/fpage_copyright.php";
     // Copyleft Info
     require_once "erfurtwiki/plugins/markup/bbcode.php";
     // BBcode plugin
     require_once "erfurtwiki/plugins/markup/smilies.php";
     // smilies ;)
     require_once "erfurtwiki/plugins/markup/rescuehtml.php";
     // safe html tags ;)
     require_once "erfurtwiki/plugins/admin/control.php";
     // load some plugins
     require_once "erfurtwiki/plugins/action/diff.php";
     // stupid diff ;)
     require_once "erfurtwiki/plugins/action/info_qdiff.php";
     // quick diff
     require_once "erfurtwiki/plugins/linking/titlefix.php";
     // quick diff
     // require_once("erfurtwiki/plugins/markup/htmltable.php"); // quick diff
     // require_once("erfurtwiki/plugins/action/verdiff.php"); // version diff - not needed right now!?
     // RSS support
     require_once "erfurtwiki/plugins/lib/feed.php";
     // load our own mediawiki plugin
     require_once "erfurtwiki/plugins/action/rss.php";
     // load our own mediawiki plugin
     // Static pages
     require_once "erfurtwiki/plugins/page/wikinews.php";
     // load some plugins
     require_once "erfurtwiki/plugins/page/recentchanges.php";
     // load some plugins
     require_once "erfurtwiki/plugins/page/powersearch.php";
     // load some plugins
     require_once "erfurtwiki/plugins/page/wantedpages.php";
     // load some plugins
     require_once "erfurtwiki/plugins/page/orphanedpages.php";
     // load some plugins
     require_once "erfurtwiki/plugins/page/recentchanges.php";
     // load some plugins
     //        require_once("erfurtwiki/plugins/aview/control2.php"); // quick diff
     require_once 'erfurtwiki/ewiki.php';
     $ewiki_config["smilies"] = array(":)" => "emoticon_happy.png", ";)" => "emoticon_grin.png", ":D" => "emoticon_smile.png");
     $wiki = ewiki_page($page);
     echo $wiki;
 }
Example #28
0
 protected function editMyProfileFormPrepare($member)
 {
     $member->setEditMode(true);
     $Rights = MOD_right::get();
     $lang = $this->model->get_profile_language();
     $profile_language = $lang->id;
     $profile_language_code = $lang->ShortCode;
     $profile_language_name = $lang->Name;
     $all_spoken_languages = $this->sortLanguages($member->get_all_spoken_languages());
     $all_signed_languages = $this->sortLanguages($member->get_all_signed_languages());
     $layoutkit = $this->layoutkit;
     $formkit = $layoutkit->formkit;
     $ReadCrypted = 'MemberReadCrypted';
     if ($this->adminedit) {
         $ReadCrypted = 'AdminReadCrypted';
     }
     $vars = array();
     // Prepare $vars
     $vars['ProfileSummary'] = $member->ProfileSummary > 0 ? $member->get_trad('ProfileSummary', $profile_language) : '';
     $vars['BirthDate'] = $member->BirthDate;
     list($vars['BirthYear'], $vars['BirthMonth'], $vars['BirthDay']) = explode('-', $member->BirthDate);
     $vars['HideBirthDate'] = $member->HideBirthDate;
     $vars['Occupation'] = $member->Occupation > 0 ? $member->get_trad('Occupation', $profile_language) : '';
     $vars['Gender'] = $member->Gender;
     $vars['HideGender'] = $member->HideGender;
     if ($vars['Gender'] == 'IDontTell') {
         $vars['Gender'] = 'other';
         $vars['HideGender'] = true;
     }
     $vars['language_levels'] = $member->language_levels;
     $vars['languages_all_spoken'] = $all_spoken_languages;
     $vars['languages_all_signed'] = $all_signed_languages;
     $vars['languages_selected'] = $member->languages_spoken;
     $vars['FirstName'] = $member->get_firstname();
     $vars['SecondName'] = $member->get_secondname();
     $vars['LastName'] = $member->get_lastname();
     $vars['HouseNumber'] = $member->get_housenumber();
     $vars['Street'] = $member->get_street();
     $vars['Zip'] = $member->get_zip();
     $vars['IsHidden_FirstName'] = MOD_crypt::IsCrypted($member->FirstName);
     $vars['IsHidden_SecondName'] = MOD_crypt::IsCrypted($member->SecondName);
     $vars['IsHidden_LastName'] = MOD_crypt::IsCrypted($member->LastName);
     $vars['IsHidden_Address'] = MOD_crypt::IsCrypted($member->address->StreetName);
     $vars['IsHidden_Zip'] = MOD_crypt::IsCrypted($member->address->Zip);
     $vars['IsHidden_HomePhoneNumber'] = MOD_crypt::IsCrypted($member->HomePhoneNumber);
     $vars['IsHidden_CellPhoneNumber'] = MOD_crypt::IsCrypted($member->CellPhoneNumber);
     $vars['IsHidden_WorkPhoneNumber'] = MOD_crypt::IsCrypted($member->WorkPhoneNumber);
     $vars['HomePhoneNumber'] = $member->HomePhoneNumber > 0 ? MOD_crypt::$ReadCrypted($member->HomePhoneNumber) : '';
     $vars['CellPhoneNumber'] = $member->CellPhoneNumber > 0 ? MOD_crypt::$ReadCrypted($member->CellPhoneNumber) : '';
     $vars['WorkPhoneNumber'] = $member->WorkPhoneNumber > 0 ? MOD_crypt::$ReadCrypted($member->WorkPhoneNumber) : '';
     $vars['Email'] = $member->Email > 0 ? MOD_crypt::$ReadCrypted($member->Email) : '';
     $vars['WebSite'] = $member->WebSite;
     $vars['messengers'] = $member->messengers();
     $vars['Accomodation'] = $member->Accomodation;
     $vars['MaxGuest'] = $member->MaxGuest;
     $vars['MaxLenghtOfStay'] = $member->get_trad("MaxLenghtOfStay", $profile_language);
     $vars['ILiveWith'] = $member->get_trad("ILiveWith", $profile_language);
     $vars['PleaseBring'] = $member->get_trad("PleaseBring", $profile_language);
     $vars['OfferGuests'] = $member->get_trad("OfferGuests", $profile_language);
     $vars['OfferHosts'] = $member->get_trad("OfferHosts", $profile_language);
     $vars['TabTypicOffer'] = $member->TabTypicOffer;
     $vars['PublicTransport'] = $member->get_trad("PublicTransport", $profile_language);
     $vars['TabRestrictions'] = $member->TabRestrictions;
     $vars['OtherRestrictions'] = $member->get_trad("OtherRestrictions", $profile_language);
     $vars['AdditionalAccomodationInfo'] = $member->get_trad("AdditionalAccomodationInfo", $profile_language);
     $vars['OfferHosts'] = $member->get_trad("OfferHosts", $profile_language);
     $vars['Hobbies'] = $member->get_trad("Hobbies", $profile_language);
     $vars['Books'] = $member->get_trad("Books", $profile_language);
     $vars['Music'] = $member->get_trad("Music", $profile_language);
     $vars['Movies'] = $member->get_trad("Movies", $profile_language);
     $vars['Organizations'] = $member->get_trad("Organizations", $profile_language);
     $vars['PastTrips'] = $member->get_trad("PastTrips", $profile_language);
     $vars['PlannedTrips'] = $member->get_trad("PlannedTrips", $profile_language);
     $vars['Relations'] = $member->get_all_relations();
     $vars['Groups'] = $member->getGroups();
     if (!($memory = $formkit->getMemFromRedirect())) {
         // no memory
         // echo 'no memory';
     } else {
         // from previous form
         if ($memory->post) {
             $post = $memory->post;
             foreach ($post as $key => $value) {
                 $vars[$key] = $value;
             }
             // update $vars for messengers
             if (isset($vars['messengers'])) {
                 $ii = 0;
                 foreach ($vars['messengers'] as $me) {
                     $val = 'chat_' . $me['network_raw'];
                     $vars['messengers'][$ii++]['address'] = $vars[$val];
                 }
             }
             // update $vars for $languages
             if (!isset($vars['languages_selected'])) {
                 $vars['languages_selected'] = array();
             }
             $ii = 0;
             $ii2 = 0;
             $lang_used = array();
             foreach ($vars['memberslanguages'] as $lang) {
                 if (ctype_digit($lang) and !in_array($lang, $lang_used)) {
                     // check $lang is numeric, hence a legal IdLanguage
                     $vars['languages_selected'][$ii]->IdLanguage = $lang;
                     $vars['languages_selected'][$ii]->Level = $vars['memberslanguageslevel'][$ii2];
                     array_push($lang_used, $vars['languages_selected'][$ii]->IdLanguage);
                     $ii++;
                 }
                 $ii2++;
             }
         }
         // problems from previous form
         if (is_array($memory->problems)) {
             require_once 'edit_warning.php';
         }
     }
     // var_dump($vars);
     return $vars;
 }
Example #29
0
 /**
  * checks if a member has a certain old-type right
  * if member has one of the asked for rights returns true
  *
  * @param array $rights - array of right/scope pairs to check for
  *
  * @access public
  * @return bool
  */
 public function hasOldRight(array $rights)
 {
     if (!$this->isLoaded()) {
         return false;
     }
     $mod_right = new MOD_right();
     foreach ($rights as $right => $scope) {
         if ($mod_right->hasRight($right, $scope, $this->getPKValue())) {
             return true;
         }
     }
     return false;
 }
    protected function column_col3()
    {
        $page_url = PVars::getObj('env')->baseuri . implode('/', PRequest::get()->request);
        $from = $_SESSION['Username'];
        $degree = 1;
        $limit = 50;
        if ($mem_redirect = $this->layoutkit->formkit->getMemFromRedirect()) {
            if ($mem_redirect->strerror != "") {
                echo "<p><font color=red><b>" . $mem_redirect->strerror . "</b></font></p>";
            }
            if ($mem_redirect->from != "") {
                $from = $mem_redirect->from;
            }
            if ($mem_redirect->degree != "") {
                $degree = $mem_redirect->degree;
            }
            if ($mem_redirect->limit != "") {
                $limit = $mem_redirect->limit;
            }
        }
        echo '
			<p>
			First rough draft for a friends system<br>
			show friends: list friends for a given username / id and a given distance<br>
			show links: show one or more links between two given members<br>
			update links: flush the link database and create new entries
			<p>
			
			<p>
			So far data from comments and special relations is taken into consideration.
			<p>
			
			<p>
			Stuff like Preference setting to hide/disable oneself from the link system and more is still needed
			<p>
			';
        echo '
			<p>
			<form method="POST" action="' . $page_url . '">
			' . $this->layoutkit->formkit->setPostCallback('LinkController', 'LinkShowFriendsCallback') . '
			From: <input name="from" value="' . $from . '"/> Degree: <input name="degree" value="' . $degree . '"/> Max Number : <input name="limit" value="' . $limit . '"/>
			<input type="submit" value="send"/>
			</form>
			</p>
        ';
        if ($mem_redirect) {
            // result from calculation
            echo '
			<p>
			Your Query: Show ' . $mem_redirect->limit . ' Friends of:' . $mem_redirect->from . ' with a distance of: ' . $mem_redirect->degree . '
			</p>
           ';
            $model = new LinkModel();
            if (MOD_right::get()->hasRight('Debug')) {
                echo "<p>(Debug Right) The IDs for the Friends (retrieved by getFriends): ";
                foreach ($mem_redirect->friendsIDs as $value) {
                    echo $value . " / ";
                }
                echo "</p>";
            }
            // ENd if debug right
            $friendsData = $mem_redirect->friendsFull;
            //var_dump($friendsData);
            require 'templates/linkshowfriendspage_people.php';
        }
    }