]> git.mxchange.org Git - friendica.git/commitdiff
service class basics
authorfriendica <info@friendica.com>
Sun, 24 Jun 2012 07:56:27 +0000 (00:56 -0700)
committerfriendica <info@friendica.com>
Sun, 24 Jun 2012 07:56:27 +0000 (00:56 -0700)
boot.php
include/plugin.php
include/user.php
mod/dfrn_confirm.php

index 971762634a51061ae3e2d8ff7cd35273f856c4e0..ac561edf6c1a3e1d053f644d2ed9c5da244c55ff 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -1374,9 +1374,9 @@ if(! function_exists('proc_run')) {
 
                if(count($args) && $args[0] === 'php')
                        $args[0] = ((x($a->config,'php_path')) && (strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php');
-               foreach ($args as $arg){
-                       $arg = escapeshellarg($arg);
-               }
+               for($x = 0; $x < count($args); $x ++)
+                       $args[$x] = escapeshellarg($args[$x]);
+
                $cmdline = implode($args," ");
                proc_close(proc_open($cmdline." &",array(),$foo));
        }
index c6b61ae6e92fe45a54920cfa5faf672a34c2e95b..3b6faa072a5071d93eb9b19f6232c575297a8ab1 100644 (file)
@@ -316,3 +316,41 @@ function get_theme_screenshot($theme) {
        }
        return($a->get_baseurl() . '/images/blank.png');
 }
+
+
+// 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) {
+
+       if($uid == local_user()) {
+               $service_class = $a->user['service_class'];
+       }
+       else {
+               $r = q("select service_class from user where uid = %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);
+       }
+}
\ No newline at end of file
index 2477438bf4deab4a4e9806f7df50156ef9753c29..383a3b3e1cf76fe7a9ba484b5443d7e9c2071130 100644 (file)
@@ -147,13 +147,18 @@ function create_user($arr) {
 
        require_once('include/crypto.php');
 
-       $keys = new_keypair(1024);
+       $keys = new_keypair(4096);
 
        if($keys === false) {
                $result['message'] .= t('SERIOUS ERROR: Generation of security keys failed.') . EOL;
                return $result;
        }
 
+       $default_service_class = get_config('system','default_service_class');
+       if(! $default_service_class)
+               $default_service_class = '';
+
+
        $prvkey = $keys['prvkey'];
        $pubkey = $keys['pubkey'];
 
@@ -173,8 +178,8 @@ function create_user($arr) {
        $spubkey = $sres['pubkey'];
 
        $r = q("INSERT INTO `user` ( `guid`, `username`, `password`, `email`, `openid`, `nickname`,
-               `pubkey`, `prvkey`, `spubkey`, `sprvkey`, `register_date`, `verified`, `blocked`, `timezone` )
-               VALUES ( '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, 'UTC' )",
+               `pubkey`, `prvkey`, `spubkey`, `sprvkey`, `register_date`, `verified`, `blocked`, `timezone`, `service_class` )
+               VALUES ( '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, 'UTC', '%s' )",
                dbesc(generate_user_guid()),
                dbesc($username),
                dbesc($new_password_encoded),
@@ -187,7 +192,8 @@ function create_user($arr) {
                dbesc($sprvkey),
                dbesc(datetime_convert()),
                intval($verified),
-               intval($blocked)
+               intval($blocked),
+               dbesc($default_service_class)
        );
 
        if($r) {
index 76b99cbca7a121ba600553992bf8ee310d4af24b..8e39f5fd0bc0308118b628e9fa357d54cd4ab478 100644 (file)
@@ -146,7 +146,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                         */
                        require_once('include/crypto.php');
 
-                       $res = new_keypair(1024);
+                       $res = new_keypair(4096);
 
                        $private_key = $res['prvkey'];
                        $public_key  = $res['pubkey'];