aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2014-09-03 19:07:14 -0700
committerfriendica <info@friendica.com>2014-09-03 19:07:14 -0700
commit844087bc71f333719c1e08d807874f3ae3a7053e (patch)
tree795180dfb37bdec9a9f161b242f742896f672b65
parentd93f7d688ddf5a0f1295a93a4c84123e9e1b252f (diff)
downloadvolse-hubzilla-844087bc71f333719c1e08d807874f3ae3a7053e.tar.gz
volse-hubzilla-844087bc71f333719c1e08d807874f3ae3a7053e.tar.bz2
volse-hubzilla-844087bc71f333719c1e08d807874f3ae3a7053e.zip
implement service class for feed polling frequenecy, fixed a service class bug, moved service class stuff from plugin to account.php where it belongs and load that by default instead of on demand
-rwxr-xr-xboot.php1
-rw-r--r--include/account.php88
-rwxr-xr-xinclude/plugin.php87
-rw-r--r--include/poller.php5
-rw-r--r--mod/admin.php2
-rw-r--r--mod/register.php1
-rw-r--r--mod/regmod.php1
-rw-r--r--mod/regver.php2
-rw-r--r--mod/zfinger.php1
9 files changed, 92 insertions, 96 deletions
diff --git a/boot.php b/boot.php
index cb70b898b..0c2cfafbf 100755
--- a/boot.php
+++ b/boot.php
@@ -41,6 +41,7 @@ require_once('include/features.php');
require_once('include/taxonomy.php');
require_once('include/identity.php');
require_once('include/Contact.php');
+require_once('include/account.php');
define ( 'RED_PLATFORM', 'Red Matrix' );
diff --git a/include/account.php b/include/account.php
index 4ded069d5..6cc203dc8 100644
--- a/include/account.php
+++ b/include/account.php
@@ -547,3 +547,91 @@ function downgrade_accounts() {
}
}
+
+
+// check service_class restrictions. If there are no service_classes defined, everything is allowed.
+// if $usage is supplied, we check against a maximum count and return true if the current usage is
+// less than the subscriber plan allows. Otherwise we return boolean true or false if the property
+// is allowed (or not) in this subscriber plan. An unset property for this service plan means
+// the property is allowed, so it is only necessary to provide negative properties for each plan,
+// or what the subscriber is not allowed to do.
+
+
+function service_class_allows($uid,$property,$usage = false) {
+ $a = get_app();
+ if($uid == local_user()) {
+ $service_class = $a->account['account_service_class'];
+ }
+ else {
+ $r = q("select account_service_class as service_class
+ from channel c, account a
+ where c.channel_account_id=a.account_id and c.channel_id= %d limit 1",
+ intval($uid)
+ );
+ if($r !== false and count($r)) {
+ $service_class = $r[0]['service_class'];
+ }
+ }
+ if(! x($service_class))
+ return true; // everything is allowed
+
+ $arr = get_config('service_class',$service_class);
+ if(! is_array($arr) || (! count($arr)))
+ return true;
+
+ if($usage === false)
+ return ((x($arr[$property])) ? (bool) $arr[$property] : true);
+ else {
+ if(! array_key_exists($property,$arr))
+ return true;
+ return (((intval($usage)) < intval($arr[$property])) ? true : false);
+ }
+}
+
+
+function service_class_fetch($uid,$property) {
+ $a = get_app();
+ if($uid == local_user()) {
+ $service_class = $a->account['account_service_class'];
+ }
+ else {
+ $r = q("select account_service_class as service_class
+ from channel c, account a
+ where c.channel_account_id=a.account_id and c.channel_id= %d limit 1",
+ intval($uid)
+ );
+ if($r !== false and count($r)) {
+ $service_class = $r[0]['service_class'];
+ }
+ }
+ if(! x($service_class))
+ return false; // everything is allowed
+
+ $arr = get_config('service_class',$service_class);
+
+ if(! is_array($arr) || (! count($arr)))
+ return false;
+
+ return((array_key_exists($property,$arr)) ? $arr[$property] : false);
+}
+
+function upgrade_link($bbcode = false) {
+ $l = get_config('service_class','upgrade_link');
+ if(! $l)
+ return '';
+ if($bbcode)
+ $t = sprintf('[zrl=%s]' . t('Click here to upgrade.') . '[/zrl]', $l);
+ else
+ $t = sprintf('<a href="%s">' . t('Click here to upgrade.') . '</div>', $l);
+ return $t;
+}
+
+function upgrade_message($bbcode = false) {
+ $x = upgrade_link($bbcode);
+ return t('This action exceeds the limits set by your subscription plan.') . (($x) ? ' ' . $x : '') ;
+}
+
+function upgrade_bool_message($bbcode = false) {
+ $x = upgrade_link($bbcode);
+ return t('This action is not available under your subscription plan.') . (($x) ? ' ' . $x : '') ;
+}
diff --git a/include/plugin.php b/include/plugin.php
index c5f57829d..c2e08a989 100755
--- a/include/plugin.php
+++ b/include/plugin.php
@@ -430,93 +430,6 @@ function get_theme_screenshot($theme) {
}
-// check service_class restrictions. If there are no service_classes defined, everything is allowed.
-// if $usage is supplied, we check against a maximum count and return true if the current usage is
-// less than the subscriber plan allows. Otherwise we return boolean true or false if the property
-// is allowed (or not) in this subscriber plan. An unset property for this service plan means
-// the property is allowed, so it is only necessary to provide negative properties for each plan,
-// or what the subscriber is not allowed to do.
-
-
-function service_class_allows($uid,$property,$usage = false) {
- $a = get_app();
- if($uid == local_user()) {
- $service_class = $a->account['account_service_class'];
- }
- else {
- $r = q("select account_service_class as service_class
- from channel c, account a
- where c.channel_account_id=a.account_id and c.channel_id= %d limit 1",
- intval($uid)
- );
- if($r !== false and count($r)) {
- $service_class = $r[0]['service_class'];
- }
- }
- if(! x($service_class))
- return true; // everything is allowed
-
- $arr = get_config('service_class',$service_class);
- if(! is_array($arr) || (! count($arr)))
- return true;
-
- if($usage === false)
- return ((x($arr[$property])) ? (bool) $arr['property'] : true);
- else {
- if(! array_key_exists($property,$arr))
- return true;
- return (((intval($usage)) < intval($arr[$property])) ? true : false);
- }
-}
-
-
-function service_class_fetch($uid,$property) {
- $a = get_app();
- if($uid == local_user()) {
- $service_class = $a->account['account_service_class'];
- }
- else {
- $r = q("select account_service_class as service_class
- from channel c, account a
- where c.channel_account_id=a.account_id and c.channel_id= %d limit 1",
- intval($uid)
- );
- if($r !== false and count($r)) {
- $service_class = $r[0]['service_class'];
- }
- }
- if(! x($service_class))
- return false; // everything is allowed
-
- $arr = get_config('service_class',$service_class);
-
- if(! is_array($arr) || (! count($arr)))
- return false;
-
- return((array_key_exists($property,$arr)) ? $arr[$property] : false);
-}
-
-function upgrade_link($bbcode = false) {
- $l = get_config('service_class','upgrade_link');
- if(! $l)
- return '';
- if($bbcode)
- $t = sprintf('[zrl=%s]' . t('Click here to upgrade.') . '[/zrl]', $l);
- else
- $t = sprintf('<a href="%s">' . t('Click here to upgrade.') . '</div>', $l);
- return $t;
-}
-
-function upgrade_message($bbcode = false) {
- $x = upgrade_link($bbcode);
- return t('This action exceeds the limits set by your subscription plan.') . (($x) ? ' ' . $x : '') ;
-}
-
-function upgrade_bool_message($bbcode = false) {
- $x = upgrade_link($bbcode);
- return t('This action is not available under your subscription plan.') . (($x) ? ' ' . $x : '') ;
-}
-
/**
* @brief add CSS to <head>
*
diff --git a/include/poller.php b/include/poller.php
index 2ba86dc0b..b26b9e696 100644
--- a/include/poller.php
+++ b/include/poller.php
@@ -151,7 +151,6 @@ function poller_run($argv, $argc){
q("delete from notify where seen = 1 and date < UTC_TIMESTAMP() - INTERVAL 30 DAY");
// expire any expired accounts
- require_once('include/account.php');
downgrade_accounts();
// If this is a directory server, request a sync with an upstream
@@ -264,7 +263,9 @@ function poller_run($argv, $argc){
$c = $contact['abook_connected'];
if($contact['abook_flags'] & ABOOK_FLAG_FEED) {
- $min = intval(get_config('system','minimum_feedcheck_minutes'));
+ $min = service_class_fetch($contact['abook_channel'],'minimum_feedcheck_minutes');
+ if(! $min)
+ $min = intval(get_config('system','minimum_feedcheck_minutes'));
if(! $min)
$min = 60;
$x = datetime_convert('UTC','UTC',"now - $min minutes");
diff --git a/mod/admin.php b/mod/admin.php
index 31d3873ff..48b342d4e 100644
--- a/mod/admin.php
+++ b/mod/admin.php
@@ -608,13 +608,11 @@ function admin_page_users_post(&$a){
}
if (x($_POST,'page_users_approve')){
- require_once('include/account.php');
foreach($pending as $hash){
user_allow($hash);
}
}
if (x($_POST,'page_users_deny')){
- require_once('include/account.php');
foreach($pending as $hash){
user_deny($hash);
}
diff --git a/mod/register.php b/mod/register.php
index 954a32fbf..0e33fa358 100644
--- a/mod/register.php
+++ b/mod/register.php
@@ -1,6 +1,5 @@
<?php
-require_once('include/account.php');
function register_init(&$a) {
diff --git a/mod/regmod.php b/mod/regmod.php
index c54c0d88e..d75355d5f 100644
--- a/mod/regmod.php
+++ b/mod/regmod.php
@@ -1,6 +1,5 @@
<?php
-require_once('include/account.php');
function regmod_content(&$a) {
diff --git a/mod/regver.php b/mod/regver.php
index 988fa8c0d..c3ade2ee1 100644
--- a/mod/regver.php
+++ b/mod/regver.php
@@ -1,7 +1,5 @@
<?php
-require_once('include/account.php');
-
function regver_content(&$a) {
global $lang;
diff --git a/mod/zfinger.php b/mod/zfinger.php
index ef55085d6..1226f74fe 100644
--- a/mod/zfinger.php
+++ b/mod/zfinger.php
@@ -273,7 +273,6 @@ function zfinger_init(&$a) {
if($access_policy == ACCESS_TIERED)
$ret['site']['access_policy'] = 'tiered';
- require_once('include/account.php');
$ret['site']['accounts'] = account_total();
require_once('include/identity.php');