mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-20 00:35:30 +00:00
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
This commit is contained in:
parent
d93f7d688d
commit
844087bc71
9 changed files with 92 additions and 96 deletions
1
boot.php
1
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' );
|
||||
|
|
|
@ -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 : '') ;
|
||||
}
|
||||
|
|
|
@ -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>
|
||||
*
|
||||
|
|
|
@ -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,6 +263,8 @@ function poller_run($argv, $argc){
|
|||
$c = $contact['abook_connected'];
|
||||
|
||||
if($contact['abook_flags'] & ABOOK_FLAG_FEED) {
|
||||
$min = service_class_fetch($contact['abook_channel'],'minimum_feedcheck_minutes');
|
||||
if(! $min)
|
||||
$min = intval(get_config('system','minimum_feedcheck_minutes'));
|
||||
if(! $min)
|
||||
$min = 60;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
<?php
|
||||
|
||||
require_once('include/account.php');
|
||||
|
||||
function register_init(&$a) {
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
<?php
|
||||
|
||||
require_once('include/account.php');
|
||||
|
||||
function regmod_content(&$a) {
|
||||
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
<?php
|
||||
|
||||
require_once('include/account.php');
|
||||
|
||||
function regver_content(&$a) {
|
||||
|
||||
global $lang;
|
||||
|
|
|
@ -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');
|
||||
|
|
Loading…
Reference in a new issue