aboutsummaryrefslogtreecommitdiffstats
path: root/mod
diff options
context:
space:
mode:
Diffstat (limited to 'mod')
-rw-r--r--mod/poco.php66
-rw-r--r--mod/settings.php9
2 files changed, 54 insertions, 21 deletions
diff --git a/mod/poco.php b/mod/poco.php
index 21ee4df69..6331131fa 100644
--- a/mod/poco.php
+++ b/mod/poco.php
@@ -2,11 +2,21 @@
function poco_init(&$a) {
+ $system_mode = false;
+
+ if(intval(get_config('system','block_public')))
+ http_status_exit(401);
+
+
if($a->argc > 1) {
$user = notags(trim($a->argv[1]));
}
- if(! x($user) || get_config('system','block_public'))
- http_status_exit(401);
+ if(! x($user)) {
+ $c = q("select * from pconfig where cat = 'system' and k = 'suggestme' and v = 1");
+ if(! count($c))
+ http_status_exit(401);
+ $system_mode = true;
+ }
$format = (($_GET['format']) ? $_GET['format'] : 'json');
@@ -22,14 +32,16 @@ function poco_init(&$a) {
$cid = intval($a->argv[4]);
- $r = q("SELECT `user`.*,`profile`.`hide-friends` from user left join profile on `user`.`uid` = `profile`.`uid`
- where `user`.`nickname` = '%s' and `profile`.`is-default` = 1 limit 1",
- dbesc($user)
- );
- if(! count($r) || $r[0]['hidewall'] || $r[0]['hide-friends'])
- http_status_exit(404);
+ if(! $system_mode) {
+ $r = q("SELECT `user`.*,`profile`.`hide-friends` from user left join profile on `user`.`uid` = `profile`.`uid`
+ where `user`.`nickname` = '%s' and `profile`.`is-default` = 1 limit 1",
+ dbesc($user)
+ );
+ if(! count($r) || $r[0]['hidewall'] || $r[0]['hide-friends'])
+ http_status_exit(404);
- $user = $r[0];
+ $user = $r[0];
+ }
if($justme)
$sql_extra = " and `contact`.`self` = 1 ";
@@ -37,10 +49,16 @@ function poco_init(&$a) {
if($cid)
$sql_extra = sprintf(" and `contact`.`id` = %d ",intval($cid));
- $r = q("SELECT count(*) as `total` from `contact` where `uid` = %d and blocked = 0 and pending = 0
- $sql_extra ",
- intval($user['uid'])
- );
+ if($system_mode) {
+ $r = q("SELECT count(*) as `total` from `contact` where self = 1
+ and uid in (select uid from pconfig where cat = 'system' and k = 'suggestme' and v = 1) ");
+ }
+ else {
+ $r = q("SELECT count(*) as `total` from `contact` where `uid` = %d and blocked = 0 and pending = 0
+ $sql_extra ",
+ intval($user['uid'])
+ );
+ }
if(count($r))
$totalResults = intval($r[0]['total']);
else
@@ -51,13 +69,23 @@ function poco_init(&$a) {
$startIndex = 0;
$itemsPerPage = ((x($_GET,'count') && intval($_GET['count'])) ? intval($_GET['count']) : $totalResults);
- $r = q("SELECT * from `contact` where `uid` = %d and blocked = 0 and pending = 0
- $sql_extra LIMIT %d, %d",
- intval($user['uid']),
- intval($startIndex),
- intval($itemsPerPage)
- );
+ if($system_mode) {
+ $r = q("SELECT * from contact where self = 1
+ and uid in (select uid from pconfig where cat = 'system' and k = 'suggestme' and v = 1) limit %d, %d ",
+ intval($startIndex),
+ intval($itemsPerPage)
+ );
+ }
+ else {
+
+ $r = q("SELECT * from `contact` where `uid` = %d and blocked = 0 and pending = 0
+ $sql_extra LIMIT %d, %d",
+ intval($user['uid']),
+ intval($startIndex),
+ intval($itemsPerPage)
+ );
+ }
$ret = array();
if(x($_GET,'sorted'))
$ret['sorted'] = 'false';
diff --git a/mod/settings.php b/mod/settings.php
index 163588f4a..51db9b06e 100644
--- a/mod/settings.php
+++ b/mod/settings.php
@@ -6,6 +6,8 @@ function settings_init(&$a) {
profile_load($a,$a->user['nickname']);
}
+ // These lines provide the javascript needed by the acl selector
+
$a->page['htmlhead'] .= "<script> var ispublic = '" . t('everybody') . "';" ;
$a->page['htmlhead'] .= <<< EOT
@@ -231,8 +233,9 @@ function settings_post(&$a) {
$blockwall = (((x($_POST,'blockwall')) && (intval($_POST['blockwall']) == 1)) ? 0: 1); // this setting is inverted!
$blocktags = (((x($_POST,'blocktags')) && (intval($_POST['blocktags']) == 1)) ? 0: 1); // this setting is inverted!
- $hide_friends = (($_POST['hide-friends'] == 1) ? 1: 0);
- $hidewall = (($_POST['hidewall'] == 1) ? 1: 0);
+ $suggestme = ((x($_POST,'suggestme')) ? intval($_POST['suggestme']) : 0);
+ $hide_friends = (($_POST['hide-friends'] == 1) ? 1: 0);
+ $hidewall = (($_POST['hidewall'] == 1) ? 1: 0);
$notify = 0;
@@ -309,6 +312,8 @@ function settings_post(&$a) {
set_pconfig(local_user(),'expire','starred', $expire_starred);
set_pconfig(local_user(),'expire','photos', $expire_photos);
+ set_pconfig(local_user(),'system','suggestme', $suggestme);
+
$r = q("UPDATE `user` SET `username` = '%s', `email` = '%s', `openid` = '%s', `timezone` = '%s', `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s', `notify-flags` = %d, `page-flags` = %d, `default-location` = '%s', `allow_location` = %d, `theme` = '%s', `maxreq` = %d, `expire` = %d, `openidserver` = '%s', `blockwall` = %d, `hidewall` = %d, `blocktags` = %d WHERE `uid` = %d LIMIT 1",
dbesc($username),
dbesc($email),