provide techlevels in the pro server role. Should have no visible effect on other roles.

This commit is contained in:
redmatrix 2016-08-31 17:49:22 -07:00
parent e9462ba145
commit ea0be8ea1a
12 changed files with 81 additions and 20 deletions

View File

@ -246,10 +246,11 @@ class ThreadItem {
}
$server_role = get_config('system','server_role');
$has_bookmarks = false;
if(is_array($item['term'])) {
foreach($item['term'] as $t) {
if(($server_role != 'basic') && ($t['ttype'] == TERM_BOOKMARK))
if((get_account_techlevel() > 0) && ($t['ttype'] == TERM_BOOKMARK))
$has_bookmarks = true;
}
}

View File

@ -306,6 +306,8 @@ class Settings extends \Zotlabs\Web\Controller {
$errs = array();
$email = ((x($_POST,'email')) ? trim(notags($_POST['email'])) : '');
$techlevel = ((array_key_exists('techlevel',$_POST)) ? intval($_POST['techlevel']) : 0);
$account = \App::get_account();
if($email != $account['account_email']) {
if(! valid_email($email))
@ -324,6 +326,13 @@ class Settings extends \Zotlabs\Web\Controller {
$errs[] = t('System failure storing new email. Please try again.');
}
}
if($techlevel != $account['account_level']) {
$r = q("update account set account_level = %d where account_id = %d",
intval($techlevel),
intval($account['account_id'])
);
info( t('Technical skill level updated') . EOL);
}
if($errs) {
foreach($errs as $err)
@ -784,6 +793,15 @@ class Settings extends \Zotlabs\Web\Controller {
$email = \App::$account['account_email'];
$techlevels = [
'0' => t('Beginner/Basic'),
'1' => t('Novice - not skilled but willing to learn'),
'2' => t('Intermediate - somewhat comfortable'),
'3' => t('Advanced - very comfortable'),
'4' => t('Expert - I can write computer code'),
'5' => t('Wizard - I probably know more than you do')
];
$tpl = get_markup_template("settings_account.tpl");
$o .= replace_macros($tpl, array(
@ -792,6 +810,7 @@ class Settings extends \Zotlabs\Web\Controller {
'$origpass' => array('origpass', t('Current Password'), ' ',''),
'$password1'=> array('npassword', t('Enter New Password'), '', ''),
'$password2'=> array('confirm', t('Confirm New Password'), '', t('Leave password fields blank unless changing')),
'$techlevel' => [ 'techlevel', t('Your technical skill level'), \App::$account['account_level'], t('Used to provide a member experience matched to your comfort level'), $techlevels ],
'$submit' => t('Submit'),
'$email' => array('email', t('Email Address:'), $email, ''),
'$removeme' => t('Remove Account'),

View File

@ -35,6 +35,7 @@ class SmartyTemplate implements TemplateEngine {
$r['$z_baseurl'] = z_root();
$r['$z_server_role'] = \Zotlabs\Lib\System::get_server_role();
$r['$z_techlevel'] = get_account_techlevel();
if(gettype($s) === 'string') {
$template = $s;

View File

@ -47,7 +47,7 @@ define ( 'PLATFORM_NAME', 'hubzilla' );
define ( 'STD_VERSION', '1.13' );
define ( 'ZOT_REVISION', '1.1' );
define ( 'DB_UPDATE_VERSION', 1181 );
define ( 'DB_UPDATE_VERSION', 1182 );
/**

View File

@ -14,6 +14,13 @@ require_once('include/crypto.php');
require_once('include/channel.php');
function get_account_by_id($account_id) {
$r = q("select * from account where account_id = %d",
intval($account_id)
);
return (($r) ? $r[0] : false);
}
function check_account_email($email) {
$result = array('error' => false, 'message' => '');
@ -751,3 +758,23 @@ function upgrade_bool_message($bbcode = false) {
$x = upgrade_link($bbcode);
return t('This action is not available under your subscription plan.') . (($x) ? ' ' . $x : '') ;
}
function get_account_techlevel($account_id = 0) {
$role = \Zotlabs\Lib\System::get_server_role();
if($role == 'basic')
return 0;
if($role == 'standard')
return 5;
if(! $account_id) {
$x = \App::get_account();
}
else {
$x = get_account_by_id($account_id);
}
return (($x) ? intval($x['account_level']) : 0);
}

View File

@ -666,8 +666,7 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $cache = false)
$Text = preg_replace("/\[zrl\=([$URLSearchString]*)\](.*?)\[\/zrl\]/ism", '<a class="zrl" href="$1" target="_blank" >$2</a>', $Text);
}
// Remove bookmarks from UNO
if (get_config('system','server_role') === 'basic')
if (get_account_techlevel() > 2)
$Text = str_replace('<span class="bookmark-identifier">#^</span>', '', $Text);
// Perform MAIL Search

View File

@ -1621,6 +1621,8 @@ function profile_tabs($a, $is_owner = false, $nickname = null){
$uid = ((App::$profile['profile_uid']) ? App::$profile['profile_uid'] : local_channel());
$account_id = ((App::$profile['profile_uid']) ? App::$profile['channel_account_id'] : App::get_account_id());
if($uid == local_channel()) {
$cal_link = '';
@ -1723,7 +1725,7 @@ function profile_tabs($a, $is_owner = false, $nickname = null){
);
}
if(feature_enabled($uid,'wiki') && (get_config('system','server_role') !== 'basic')) {
if(feature_enabled($uid,'wiki') && (get_account_techlevel($account_id) > 3)) {
$tabs[] = array(
'label' => t('Wiki'),
'url' => z_root() . '/wiki/' . $nickname,

View File

@ -38,7 +38,7 @@ function get_feature_default($feature) {
function get_features($filtered = true) {
$server_role = get_config('system','server_role');
$server_role = \Zotlabs\Lib\System::get_server_role();
if($server_role === 'basic' && $filtered)
return array();
@ -54,7 +54,7 @@ function get_features($filtered = true) {
array('advanced_profiles', t('Advanced Profiles'), t('Additional profile sections and selections'),false,get_config('feature_lock','advanced_profiles')),
array('profile_export', t('Profile Import/Export'), t('Save and load profile details across sites/channels'),false,get_config('feature_lock','profile_export')),
array('webpages', t('Web Pages'), t('Provide managed web pages on your channel'),false,get_config('feature_lock','webpages')),
array('wiki', t('Wiki'), t('Provide a wiki for your channel'),(($server_role === 'basic') ? false : true),get_config('feature_lock','wiki')),
array('wiki', t('Wiki'), t('Provide a wiki for your channel'),(($server_role === 'basic' || get_account_techlevel() < 3) ? false : true),get_config('feature_lock','wiki')),
// array('hide_rating', t('Hide Rating'), t('Hide the rating buttons on your channel and profile pages. Note: People can still rate you somewhere else.'),false,get_config('feature_lock','hide_rating')),
array('private_notes', t('Private Notes'), t('Enables a tool to store notes and reminders (note: not encrypted)'),false,get_config('feature_lock','private_notes')),
array('nav_channel_select', t('Navigation Channel Select'), t('Change channels directly from within the navigation dropdown menu'),false,get_config('feature_lock','nav_channel_select')),
@ -105,7 +105,7 @@ function get_features($filtered = true) {
if(\Zotlabs\Lib\System::get_server_role() === 'pro') {
if($server_role === 'pro' && get_account_techlevel() > 3) {
$arr['general'][] = [
'premium_channel',
t('Premium Channel'),

View File

@ -63,6 +63,7 @@ EOT;
$server_role = get_config('system','server_role');
$basic = (($server_role === 'basic') ? true : false);
$techlevel = get_account_techlevel();
// nav links: array of array('href', 'text', 'extra css classes', 'title')
$nav = Array();

View File

@ -594,14 +594,11 @@ function widget_settings_menu($arr) {
);
}
// IF can go away when UNO export and import is fully functional
if(get_config('system','server_role') !== 'basic') {
$tabs[] = array(
'label' => t('Export channel'),
'url' => z_root() . '/uexport',
'selected' => ''
);
}
$tabs[] = array(
'label' => t('Connected apps'),
@ -609,7 +606,7 @@ function widget_settings_menu($arr) {
'selected' => ((argv(1) === 'oauth') ? 'active' : ''),
);
if(get_config('system','server_role') !== 'basic') {
if(get_account_techlevel() > 2) {
$tabs[] = array(
'label' => t('Guest Access Tokens'),
'url' => z_root() . '/settings/tokens',

View File

@ -1,6 +1,6 @@
<?php
define( 'UPDATE_VERSION' , 1181 );
define( 'UPDATE_VERSION' , 1182 );
/**
*
@ -2429,3 +2429,10 @@ function update_r1180() {
return UPDATE_FAILED;
}
function update_r1181() {
if(\Zotlabs\Lib\System::get_server_role() == 'pro') {
q("update account set account_level = 5 where true");
}
return UPDATE_SUCCESS;
}

View File

@ -11,6 +11,13 @@
{{include file="field_password.tpl" field=$origpass}}
{{include file="field_password.tpl" field=$password1}}
{{include file="field_password.tpl" field=$password2}}
{{if $z_server_role == 'pro'}}
{{include file="field_select.tpl" field=$techlevel}}
{{else}}
<input type="hidden" name="techlevel" value="{{$techlevel.2}}" />
{{/if}}
<div class="settings-submit-wrapper" >
<button type="submit" name="submit" class="btn btn-primary">{{$submit}}</button>
</div>