aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorredmatrix <git@macgirvin.com>2016-02-03 20:33:34 -0800
committerredmatrix <git@macgirvin.com>2016-02-03 20:33:34 -0800
commitc598bbb8a94e2acd30f9f1a121dfcc2bffe6ee3d (patch)
tree98697eb2987f741fd98797463036e7ef660c2721
parent006efbd906980fca8c0c377fa2b0a4054c2849f4 (diff)
parente6f388d8694b3f33d2039a525a855775487ca77c (diff)
downloadvolse-hubzilla-c598bbb8a94e2acd30f9f1a121dfcc2bffe6ee3d.tar.gz
volse-hubzilla-c598bbb8a94e2acd30f9f1a121dfcc2bffe6ee3d.tar.bz2
volse-hubzilla-c598bbb8a94e2acd30f9f1a121dfcc2bffe6ee3d.zip
Merge branch 'embedsec'
-rw-r--r--include/widgets.php1
-rw-r--r--mod/admin.php104
-rw-r--r--mod/oep.php13
-rwxr-xr-xutil/config19
-rw-r--r--version.inc2
-rwxr-xr-xview/tpl/admin_aside.tpl1
-rwxr-xr-xview/tpl/admin_security.tpl31
7 files changed, 162 insertions, 9 deletions
diff --git a/include/widgets.php b/include/widgets.php
index 7e502e4c2..011e3a8d7 100644
--- a/include/widgets.php
+++ b/include/widgets.php
@@ -1269,6 +1269,7 @@ function widget_admin($arr) {
'site' => array(z_root() . '/admin/site/', t('Site'), 'site'),
'users' => array(z_root() . '/admin/users/', t('Accounts'), 'users'),
'channels' => array(z_root() . '/admin/channels/', t('Channels'), 'channels'),
+ 'security' => array(z_root() . '/admin/security/', t('Security'), 'security'),
'features' => array(z_root() . '/admin/features/', t('Features'), 'features'),
'plugins' => array(z_root() . '/admin/plugins/', t('Plugins'), 'plugins'),
'themes' => array(z_root() . '/admin/themes/', t('Themes'), 'themes'),
diff --git a/mod/admin.php b/mod/admin.php
index b537992d7..09bfef84a 100644
--- a/mod/admin.php
+++ b/mod/admin.php
@@ -62,6 +62,9 @@ function admin_post(&$a){
case 'hubloc':
admin_page_hubloc_post($a);
break;
+ case 'security':
+ admin_page_security_post($a);
+ break;
case 'features':
admin_page_features_post($a);
break;
@@ -116,6 +119,9 @@ function admin_content(&$a) {
// case 'hubloc':
// $o = admin_page_hubloc($a);
// break;
+ case 'security':
+ $o = admin_page_security($a);
+ break;
case 'features':
$o = admin_page_features($a);
break;
@@ -251,7 +257,6 @@ function admin_page_site_post(&$a){
$allowed_sites = ((x($_POST,'allowed_sites')) ? notags(trim($_POST['allowed_sites'])) : '');
$allowed_email = ((x($_POST,'allowed_email')) ? notags(trim($_POST['allowed_email'])) : '');
$not_allowed_email = ((x($_POST,'not_allowed_email')) ? notags(trim($_POST['not_allowed_email'])) : '');
- $block_public = ((x($_POST,'block_public')) ? True : False);
$force_publish = ((x($_POST,'publish_all')) ? True : False);
$disable_discover_tab = ((x($_POST,'disable_discover_tab')) ? False : True);
$login_on_homepage = ((x($_POST,'login_on_homepage')) ? True : False);
@@ -316,7 +321,6 @@ function admin_page_site_post(&$a){
set_config('system','allowed_sites', $allowed_sites);
set_config('system','allowed_email', $allowed_email);
set_config('system','not_allowed_email', $not_allowed_email);
- set_config('system','block_public', $block_public);
set_config('system','publish_all', $force_publish);
set_config('system','disable_discover_tab', $disable_discover_tab);
if ($global_directory == '') {
@@ -477,7 +481,6 @@ function admin_page_site(&$a) {
'$allowed_sites' => array('allowed_sites', t("Allowed friend domains"), get_config('system','allowed_sites'), t("Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains")),
'$allowed_email' => array('allowed_email', t("Allowed email domains"), get_config('system','allowed_email'), t("Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains")),
'$not_allowed_email' => array('not_allowed_email', t("Not allowed email domains"), get_config('system','not_allowed_email'), t("Comma separated list of domains which are not allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains, unless allowed domains have been defined.")),
- '$block_public' => array('block_public', t("Block public"), get_config('system','block_public'), t("Check to block public access to all otherwise public personal pages on this site unless you are currently logged in.")),
'$verify_email' => array('verify_email', t("Verify Email Addresses"), get_config('system','verify_email'), t("Check to verify email addresses used in account registration (recommended).")),
'$force_publish' => array('publish_all', t("Force publish"), get_config('system','publish_all'), t("Check to force all profiles on this site to be listed in the site directory.")),
'$disable_discover_tab' => array('disable_discover_tab', t('Import Public Streams'), $discover_tab, t('Import and allow access to public content pulled from other sites. Warning: this content is unmoderated.')),
@@ -536,6 +539,53 @@ function admin_page_hubloc_post(&$a){
goaway($a->get_baseurl(true) . '/admin/hubloc' );
}
+function trim_array_elems($arr) {
+ $narr = array();
+
+ if($arr && is_array($arr)) {
+ for($x = 0; $x < count($arr); $x ++) {
+ $y = trim($arr[$x]);
+ if($y)
+ $narr[] = $y;
+ }
+ }
+ return $narr;
+}
+
+function admin_page_security_post(&$a){
+ check_form_security_token_redirectOnErr('/admin/security', 'admin_security');
+
+logger('post: ' . print_r($_POST,true));
+
+ $block_public = ((x($_POST,'block_public')) ? True : False);
+ set_config('system','block_public',$block_public);
+
+ $ws = trim_array_elems(explode("\n",$_POST['whitelisted_sites']));
+ set_config('system','whitelisted_sites',$ws);
+
+ $bs = trim_array_elems(explode("\n",$_POST['blacklisted_sites']));
+ set_config('system','blacklisted_sites',$bs);
+
+ $wc = trim_array_elems(explode("\n",$_POST['whitelisted_channels']));
+ set_config('system','whitelisted_channels',$wc);
+
+ $bc = trim_array_elems(explode("\n",$_POST['blacklisted_channels']));
+ set_config('system','blacklisted_channels',$bc);
+
+ $embed_coop = ((x($_POST,'embed_coop')) ? True : False);
+ set_config('system','embed_coop',$embed_coop);
+
+ $we = trim_array_elems(explode("\n",$_POST['embed_allow']));
+ set_config('system','embed_allow',$we);
+
+ $be = trim_array_elems(explode("\n",$_POST['embed_deny']));
+ set_config('system','embed_deny',$be);
+
+ goaway(z_root() . '/admin/security');
+}
+
+
+
function admin_page_features_post(&$a) {
@@ -626,6 +676,54 @@ function admin_page_hubloc(&$a) {
));
}
+function admin_page_security(&$a) {
+
+ $whitesites = get_config('system','whitelisted_sites');
+ $whitesites_str = ((is_array($whitesites)) ? implode($whitesites,"\n") : '');
+
+ $blacksites = get_config('system','blacklisted_sites');
+ $blacksites_str = ((is_array($blacksites)) ? implode($blacksites,"\n") : '');
+
+
+ $whitechannels = get_config('system','whitelisted_channels');
+ $whitechannels_str = ((is_array($whitechannels)) ? implode($whitechannels,"\n") : '');
+
+ $blackchannels = get_config('system','blacklisted_channels');
+ $blackchannels_str = ((is_array($blackchannels)) ? implode($blackchannels,"\n") : '');
+
+
+ $whiteembeds = get_config('system','embed_allow');
+ $whiteembeds_str = ((is_array($whiteembeds)) ? implode($whiteembeds,"\n") : '');
+
+ $blackembeds = get_config('system','embed_deny');
+ $blackembeds_str = ((is_array($blackembeds)) ? implode($blackembeds,"\n") : '');
+
+ $embed_coop = intval(get_config('system','embed_coop'));
+
+// wait to implement this until we have a co-op in place.
+// if((! $whiteembeds) && (! $blackembeds) && (! $embed_coop))
+// $whiteembeds_str = "youtube.com\nyoutu.be\ntwitter.com\nvimeo.com\nsoundcloud.com\nwikipedia.com";
+
+ $t = get_markup_template('admin_security.tpl');
+ return replace_macros($t, array(
+ '$title' => t('Administration'),
+ '$page' => t('Security'),
+ '$form_security_token' => get_form_security_token('admin_security'),
+ '$block_public' => array('block_public', t("Block public"), get_config('system','block_public'), t("Check to block public access to all otherwise public personal pages on this site unless you are currently authenticated.")),
+ '$whitelisted_sites' => array('whitelisted_sites', t('Allow communications only from these sites'), $whitesites_str, t('One site per line. Leave empty to allow communication from anywhere by default')),
+ '$blacklisted_sites' => array('blacklisted_sites', t('Block communications from these sites'), $blacksites_str, ''),
+ '$whitelisted_channels' => array('whitelisted_channels', t('Allow communications only from these channels'), $whitechannels_str, t('One channel (hash) per line. Leave empty to allow from any channel by default')),
+ '$blacklisted_channels' => array('blacklisted_channels', t('Block communications from these channels'), $blackchannels_str, ''),
+ '$embed_allow' => array('embed_allow', t('Allow embedded HTML content only from these domains'), $whiteembeds_str, t('One site per line. Leave empty to allow from any site by default')),
+ '$embed_deny' => array('embed_deny', t('Block embedded HTML from these domains'), $blackembeds_str, ''),
+
+ '$embed_coop' => array('embed_coop', t('Cooperative embed security'), $embed_coop, t('Enable to share embed security with other compatible sites/hubs')),
+ '$submit' => t('Submit')
+ ));
+}
+
+
+
function admin_page_dbsync(&$a) {
$o = '';
diff --git a/mod/oep.php b/mod/oep.php
index 3855a1b4a..42535c069 100644
--- a/mod/oep.php
+++ b/mod/oep.php
@@ -8,6 +8,7 @@ function oep_init(&$a) {
logger('oep: ' . print_r($_REQUEST,true), LOGGER_DEBUG, LOG_INFO);
+ $html = ((argc() > 1 && argv(1) === 'html') ? true : false);
if($_REQUEST['url']) {
$_REQUEST['url'] = strip_zids($_REQUEST['url']);
$url = $_REQUEST['url'];
@@ -38,8 +39,16 @@ function oep_init(&$a) {
$arr = oep_profile_reply($_REQUEST);
if($arr) {
- header('Content-Type: application/json+oembed');
- echo json_encode($arr);
+ if($html) {
+ if($arr['type'] === 'rich') {
+ header('Content-Type: text/html');
+ echo $arr['html'];
+ }
+ }
+ else {
+ header('Content-Type: application/json+oembed');
+ echo json_encode($arr);
+ }
killme();
}
diff --git a/util/config b/util/config
index 67fe14f93..74a9219b5 100755
--- a/util/config
+++ b/util/config
@@ -8,12 +8,14 @@ require_once('include/cli_startup.php');
cli_startup();
if($argc > 3) {
+
+
set_config($argv[1],$argv[2],$argv[3]);
- echo "config[{$argv[1]}][{$argv[2]}] = " . get_config($argv[1],$argv[2]) . "\n";
+ echo "config[{$argv[1]}][{$argv[2]}] = " . printable_config(get_config($argv[1],$argv[2])) . "\n";
}
if($argc == 3) {
- echo "config[{$argv[1]}][{$argv[2]}] = " . get_config($argv[1],$argv[2]) . "\n";
+ echo "config[{$argv[1]}][{$argv[2]}] = " . printable_config(get_config($argv[1],$argv[2])) . "\n";
}
if($argc == 2) {
@@ -27,8 +29,19 @@ if($argc == 1) {
$r = q("select * from config where 1");
if($r) {
foreach($r as $rr) {
- echo "config[{$rr['cat']}][{$rr['k']}] = " . $rr['v'] . "\n";
+ echo "config[{$rr['cat']}][{$rr['k']}] = " . printable_config($rr['v']) . "\n";
}
}
}
+function printable_config($x) {
+ $s = '';
+ if(is_array($x)) {
+ foreach($x as $v) {
+ $s .= $v . "\n";
+ }
+ return $s;
+ }
+ else
+ return $x;
+} \ No newline at end of file
diff --git a/version.inc b/version.inc
index 1d1ae17f2..acec8d8d9 100644
--- a/version.inc
+++ b/version.inc
@@ -1 +1 @@
-2016-02-02.1297H
+2016-02-03.1298H
diff --git a/view/tpl/admin_aside.tpl b/view/tpl/admin_aside.tpl
index 0a77ef73c..ab190fc95 100755
--- a/view/tpl/admin_aside.tpl
+++ b/view/tpl/admin_aside.tpl
@@ -16,6 +16,7 @@
<li><a href='{{$admin.site.0}}'>{{$admin.site.1}}</a></li>
<li><a href='{{$admin.users.0}}'>{{$admin.users.1}}<span id='pending-update' title='{{$h_pending}}'></span></a></li>
<li><a href='{{$admin.channels.0}}'>{{$admin.channels.1}}</a></li>
+ <li><a href='{{$admin.security.0}}'>{{$admin.security.1}}</a></li>
<li><a href='{{$admin.queue.0}}'>{{$admin.queue.1}}</a></li>
<li><a href='{{$admin.plugins.0}}'>{{$admin.plugins.1}}</a></li>
<li><a href='{{$admin.themes.0}}'>{{$admin.themes.1}}</a></li>
diff --git a/view/tpl/admin_security.tpl b/view/tpl/admin_security.tpl
new file mode 100755
index 000000000..691db2d88
--- /dev/null
+++ b/view/tpl/admin_security.tpl
@@ -0,0 +1,31 @@
+<div class="generic-content-wrapper-styled" id='adminpage'>
+ <h1>{{$title}} - {{$page}}</h1>
+
+ <form action="{{$baseurl}}/admin/security" method="post">
+
+ <input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
+
+
+ {{include file="field_checkbox.tpl" field=$block_public}}
+
+
+ {{include file="field_textarea.tpl" field=$whitelisted_sites}}
+ {{include file="field_textarea.tpl" field=$blacklisted_sites}}
+
+ {{include file="field_textarea.tpl" field=$whitelisted_channels}}
+ {{include file="field_textarea.tpl" field=$blacklisted_channels}}
+
+
+ {{include file="field_checkbox.tpl" field=$embed_coop}}
+
+ {{include file="field_textarea.tpl" field=$embed_allow}}
+ {{include file="field_textarea.tpl" field=$embed_deny}}
+
+
+ <div class="admin-submit-wrapper" >
+ <input type="submit" name="submit" class="admin-submit" value="{{$submit}}" />
+ </div>
+
+ </form>
+
+</div>