I have a strange problem: unauthenticated users can't see dead individuals who are ancestors of a living individual in the Pedigree/Ancestry charts.
I'm using 4.3.0 svn.
If I log in everything is fine but when I log out all I see is the living individual name and empty boxes for his ancestors…
Log in with Admin rights,and then on the Manage GEDCOMs and edit Privacy page, edit the Privacy file. Check the settings for the Show dead people option.
Show dead people: Show to public
Show living name: Show to public
Show sources: Show to public
Enable Clippings Cart: Show to public
Show Research Assistant: Show only to authenticate users
Show Multi-Site Search: Show only to admin users
Limit Privacy by age of event: No
Use GEDCOM (RESN) Privacy restriction: No
Show private relationships: No
Use relationship privacy: No
Max. relation path length: 3
Check marriage relations: Yes
Age at which to assume a person is dead: 120
Should I update from SVN? Re-Import?
I updated to the latest SVN version (only ~6 files were updated) and re-imported the GEDCOM, without success. Problem still exists.
I'llhave to have a look at this on your site.
Please create a temporary userid on your site, that has GEDCOM admin rights.
E-mail me with the login details and information on how to reproduce the problem. gkroll at keldine dot ca. DO NOT give this temporary userid full admin rights, and don't e-mail me *your* login details.
Thanks Gerry, I've sent you the info.
I have been debugging the problem on my local machine, in which it reproduced the same as on my server.
I think that this is phpGedView code issue/bug.
The problem: if the pedigree root individual is a living person, all the ancestors boxes are empty, but if you are logged in - everything is fine.
The problem is in pedigree_ctrl.php. When PedigreeControllerRoot function init() is called - it tries to allocate the ancestry array with the root person ancestors.
This happens on line 126:
$this->treeid = ancestry_array($this->rootid);
If you follow the calls on that line you will see that function ancestry_array($rootid, $maxgen=0) on function_charts.php line 647 is called. it calls $family = $person->getPrimaryChildFamily(); on line 663.
This calls $families=$this->getChildFamilies(); on class_person.php line 661.
Which calls $this->getChildFamilyIds() on line 642.
Which will finally call preg_match_all('/\n1 FAMC @('.PGV_REGEX_XREF.')@/', $this->gedrec, $match); on line 628.
However ,examining the $this->gedrec value gives:
1 SEX M\n1 NOTE Details about this person are private. Personal details will not be included.
So obviously the preg_match will not find the FAMC GEDCOM tag and will return null, and walla -> the bug is created.
I would think that inside logic code the full GEDCOM rec should be visible, and should only be transformed to the above when it needs to be displayed to users without the appropriate security/privacy permission (for example guests/not logged in users), e.g. in the UI/presentation layer.
This works properly on my site, both the on-line version and the off-line one. Look for yourself - you have the URL and the Login credentials.
It's possible that your GEDCOM is missing some of the links that describe the composition of families. The links from Person records to families (FAMS and FAMC) need to be complemented by links from the families to the component persons (CHIL, HUSB, WIFE).
Can you please e-mail me a copy (zipped, preferably) of your GEDCOM so that I can have a closer look at it? Off-line, of course.
The problem wasn't a "problem" after all. PGV was working as intended.
When a member of the Pedigree Chart's root person's family is still living, that family is considered to be "private" and is not displayed by default. This results in all Pedigree Chart boxes, other than the root person's, to be empty.
In this particular case, the root person's father was dead but the mother was still living. Thus, the family was "private", resulting in empty boxes.
To change PGV's behaviour, the "Show private relationships" option in the Privacy settings needs to be set to "Yes". When this is done, the dead father and all his ancestors will have proper details displayed in their Pedigree boxes. The living mother will have just the name shown (if PGV was configured for that), and the mother's ancestors will have full details shown.