From 236ba8badcca39206e5a8595af5c1464bba2863e Mon Sep 17 00:00:00 2001 From: friendica Date: Sun, 22 Jul 2012 00:46:20 -0700 Subject: more account infrastructure --- boot.php | 1 + database.sql | 330 ++++----------------------------------------------- htconfig.php | 2 +- include/account.php | 99 ++++++++++++++++ include/language.php | 5 +- index.php | 2 +- mod/zregister.php | 27 ++--- 7 files changed, 135 insertions(+), 331 deletions(-) create mode 100644 include/account.php diff --git a/boot.php b/boot.php index 7f5291ecc..a78ac2cfe 100644 --- a/boot.php +++ b/boot.php @@ -353,6 +353,7 @@ if(! class_exists('App')) { class App { public $account; + public $language; public $module_loaded = false; public $query_string; public $config; diff --git a/database.sql b/database.sql index a93a17c04..df087b586 100644 --- a/database.sql +++ b/database.sql @@ -1,52 +1,33 @@ - SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; - /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; --- -------------------------------------------------------- - --- --- Table structure for table `account` --- CREATE TABLE IF NOT EXISTS `account` ( `account_id` int(11) NOT NULL AUTO_INCREMENT, - `account_name` char(255) NOT NULL, + `account_parent` int(10) unsigned NOT NULL, `account_password` char(255) NOT NULL, `account_email` char(255) NOT NULL, - `account_openid` char(255) NOT NULL, `account_language` char(16) NOT NULL DEFAULT 'en', `account_created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - `account_verified` tinyint(1) unsigned NOT NULL DEFAULT '0', - `account_blocked` tinyint(1) unsigned NOT NULL DEFAULT '0', + `account_flags` int(10) unsigned NOT NULL, + `account_roles` int(10) unsigned NOT NULL, `account_reset` char(255) NOT NULL, - `account_removed` tinyint(1) NOT NULL DEFAULT '0', - `account_expired` tinyint(1) NOT NULL DEFAULT '0', `account_expires` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `account_expire_notified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `account_service_class` char(32) NOT NULL, PRIMARY KEY (`account_id`), - KEY `account_name` (`account_name`), KEY `account_password` (`account_password`), KEY `account_email` (`account_email`), - KEY `account_openid` (`account_openid`), - KEY `account_verified` (`account_verified`), - KEY `account_blocked` (`account_blocked`), - KEY `account_removed` (`account_removed`), - KEY `account_expired` (`account_expired`), - KEY `account_service_class` (`account_service_class`) + KEY `account_service_class` (`account_service_class`), + KEY `account_parent` (`account_parent`), + KEY `account_flags` (`account_flags`), + KEY `account_roles` (`account_roles`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `addon` --- - CREATE TABLE IF NOT EXISTS `addon` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` char(255) NOT NULL, @@ -61,12 +42,6 @@ CREATE TABLE IF NOT EXISTS `addon` ( KEY `installed` (`installed`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `attach` --- - CREATE TABLE IF NOT EXISTS `attach` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL, @@ -84,12 +59,6 @@ CREATE TABLE IF NOT EXISTS `attach` ( PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `auth_codes` --- - CREATE TABLE IF NOT EXISTS `auth_codes` ( `id` varchar(40) NOT NULL, `client_id` varchar(20) NOT NULL, @@ -99,12 +68,6 @@ CREATE TABLE IF NOT EXISTS `auth_codes` ( PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `cache` --- - CREATE TABLE IF NOT EXISTS `cache` ( `k` char(255) NOT NULL, `v` text NOT NULL, @@ -112,12 +75,6 @@ CREATE TABLE IF NOT EXISTS `cache` ( PRIMARY KEY (`k`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `challenge` --- - CREATE TABLE IF NOT EXISTS `challenge` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `challenge` char(255) NOT NULL, @@ -128,12 +85,6 @@ CREATE TABLE IF NOT EXISTS `challenge` ( PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `clients` --- - CREATE TABLE IF NOT EXISTS `clients` ( `client_id` varchar(20) NOT NULL, `pw` varchar(20) NOT NULL, @@ -144,12 +95,6 @@ CREATE TABLE IF NOT EXISTS `clients` ( PRIMARY KEY (`client_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `config` --- - CREATE TABLE IF NOT EXISTS `config` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `cat` char(255) CHARACTER SET ascii NOT NULL, @@ -159,12 +104,6 @@ CREATE TABLE IF NOT EXISTS `config` ( UNIQUE KEY `access` (`cat`,`k`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `contact` --- - CREATE TABLE IF NOT EXISTS `contact` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL COMMENT 'owner uid', @@ -243,12 +182,6 @@ CREATE TABLE IF NOT EXISTS `contact` ( KEY `forum` (`forum`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `conv` --- - CREATE TABLE IF NOT EXISTS `conv` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `guid` char(64) NOT NULL, @@ -263,12 +196,6 @@ CREATE TABLE IF NOT EXISTS `conv` ( KEY `updated` (`updated`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `deliverq` --- - CREATE TABLE IF NOT EXISTS `deliverq` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `cmd` char(32) NOT NULL, @@ -277,13 +204,7 @@ CREATE TABLE IF NOT EXISTS `deliverq` ( PRIMARY KEY (`id`), KEY `item` (`item`), KEY `contact` (`contact`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- -------------------------------------------------------- - --- --- Table structure for table `event` --- +) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `event` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -315,12 +236,6 @@ CREATE TABLE IF NOT EXISTS `event` ( KEY `nofinish` (`nofinish`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `fcontact` --- - CREATE TABLE IF NOT EXISTS `fcontact` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `url` char(255) NOT NULL, @@ -343,12 +258,6 @@ CREATE TABLE IF NOT EXISTS `fcontact` ( KEY `network` (`network`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `ffinder` --- - CREATE TABLE IF NOT EXISTS `ffinder` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(10) unsigned NOT NULL, @@ -360,12 +269,6 @@ CREATE TABLE IF NOT EXISTS `ffinder` ( KEY `fid` (`fid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `fserver` --- - CREATE TABLE IF NOT EXISTS `fserver` ( `id` int(11) NOT NULL AUTO_INCREMENT, `server` char(255) NOT NULL, @@ -377,12 +280,6 @@ CREATE TABLE IF NOT EXISTS `fserver` ( KEY `posturl` (`posturl`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `fsuggest` --- - CREATE TABLE IF NOT EXISTS `fsuggest` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL, @@ -396,12 +293,6 @@ CREATE TABLE IF NOT EXISTS `fsuggest` ( PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `gcign` --- - CREATE TABLE IF NOT EXISTS `gcign` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL, @@ -411,12 +302,6 @@ CREATE TABLE IF NOT EXISTS `gcign` ( KEY `gcid` (`gcid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `gcontact` --- - CREATE TABLE IF NOT EXISTS `gcontact` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` char(255) NOT NULL, @@ -430,12 +315,6 @@ CREATE TABLE IF NOT EXISTS `gcontact` ( KEY `url` (`url`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `glink` --- - CREATE TABLE IF NOT EXISTS `glink` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `cid` int(11) NOT NULL, @@ -451,12 +330,6 @@ CREATE TABLE IF NOT EXISTS `glink` ( KEY `updated` (`updated`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `group` --- - CREATE TABLE IF NOT EXISTS `group` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(10) unsigned NOT NULL, @@ -469,12 +342,6 @@ CREATE TABLE IF NOT EXISTS `group` ( KEY `deleted` (`deleted`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `group_member` --- - CREATE TABLE IF NOT EXISTS `group_member` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(10) unsigned NOT NULL, @@ -486,12 +353,6 @@ CREATE TABLE IF NOT EXISTS `group_member` ( KEY `contact-id` (`contact-id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `guid` --- - CREATE TABLE IF NOT EXISTS `guid` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `guid` char(64) NOT NULL, @@ -499,12 +360,6 @@ CREATE TABLE IF NOT EXISTS `guid` ( KEY `guid` (`guid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `hook` --- - CREATE TABLE IF NOT EXISTS `hook` ( `id` int(11) NOT NULL AUTO_INCREMENT, `hook` char(255) NOT NULL, @@ -514,12 +369,6 @@ CREATE TABLE IF NOT EXISTS `hook` ( KEY `hook` (`hook`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `intro` --- - CREATE TABLE IF NOT EXISTS `intro` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(10) unsigned NOT NULL, @@ -542,15 +391,8 @@ CREATE TABLE IF NOT EXISTS `intro` ( KEY `contact-id` (`contact-id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `item` --- - CREATE TABLE IF NOT EXISTS `item` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, - `guid` char(64) NOT NULL, `uri` char(255) CHARACTER SET ascii NOT NULL, `uid` int(10) unsigned NOT NULL DEFAULT '0', `contact-id` int(10) unsigned NOT NULL DEFAULT '0', @@ -559,7 +401,6 @@ CREATE TABLE IF NOT EXISTS `item` ( `gravity` tinyint(1) NOT NULL DEFAULT '0', `parent` int(10) unsigned NOT NULL DEFAULT '0', `parent-uri` char(255) CHARACTER SET ascii NOT NULL, - `extid` char(255) NOT NULL, `thr-parent` char(255) NOT NULL, `created` datetime NOT NULL, `edited` datetime NOT NULL, @@ -585,10 +426,8 @@ CREATE TABLE IF NOT EXISTS `item` ( `plink` char(255) NOT NULL, `resource-id` char(255) NOT NULL, `event-id` int(11) NOT NULL, - `tag` mediumtext NOT NULL, `attach` mediumtext NOT NULL, `inform` mediumtext NOT NULL, - `file` mediumtext NOT NULL, `location` char(255) NOT NULL, `coord` char(255) NOT NULL, `allow_cid` mediumtext NOT NULL, @@ -606,7 +445,6 @@ CREATE TABLE IF NOT EXISTS `item` ( `deleted` tinyint(1) NOT NULL DEFAULT '0', `origin` tinyint(1) NOT NULL DEFAULT '0', `forum_mode` tinyint(1) NOT NULL DEFAULT '0', - `last-child` tinyint(1) unsigned NOT NULL DEFAULT '1', PRIMARY KEY (`id`), KEY `uri` (`uri`), KEY `uid` (`uid`), @@ -618,12 +456,9 @@ CREATE TABLE IF NOT EXISTS `item` ( KEY `edited` (`edited`), KEY `visible` (`visible`), KEY `deleted` (`deleted`), - KEY `last-child` (`last-child`), KEY `unseen` (`unseen`), - KEY `extid` (`extid`), KEY `received` (`received`), KEY `starred` (`starred`), - KEY `guid` (`guid`), KEY `origin` (`origin`), KEY `wall` (`wall`), KEY `forum_mode` (`forum_mode`), @@ -637,17 +472,9 @@ CREATE TABLE IF NOT EXISTS `item` ( FULLTEXT KEY `allow_cid` (`allow_cid`), FULLTEXT KEY `allow_gid` (`allow_gid`), FULLTEXT KEY `deny_cid` (`deny_cid`), - FULLTEXT KEY `deny_gid` (`deny_gid`), - FULLTEXT KEY `tag` (`tag`), - FULLTEXT KEY `file` (`file`) + FULLTEXT KEY `deny_gid` (`deny_gid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `item_id` --- - CREATE TABLE IF NOT EXISTS `item_id` ( `iid` int(11) NOT NULL, `uid` int(11) NOT NULL, @@ -659,12 +486,6 @@ CREATE TABLE IF NOT EXISTS `item_id` ( KEY `service` (`service`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `locks` --- - CREATE TABLE IF NOT EXISTS `locks` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` char(128) NOT NULL, @@ -672,12 +493,6 @@ CREATE TABLE IF NOT EXISTS `locks` ( PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `mail` --- - CREATE TABLE IF NOT EXISTS `mail` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(10) unsigned NOT NULL, @@ -709,12 +524,6 @@ CREATE TABLE IF NOT EXISTS `mail` ( KEY `contact-id` (`contact-id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `mailacct` --- - CREATE TABLE IF NOT EXISTS `mailacct` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL, @@ -733,12 +542,6 @@ CREATE TABLE IF NOT EXISTS `mailacct` ( KEY `uid` (`uid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `manage` --- - CREATE TABLE IF NOT EXISTS `manage` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL, @@ -748,12 +551,6 @@ CREATE TABLE IF NOT EXISTS `manage` ( KEY `mid` (`mid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `notify` --- - CREATE TABLE IF NOT EXISTS `notify` ( `id` int(11) NOT NULL AUTO_INCREMENT, `hash` char(64) NOT NULL, @@ -780,12 +577,6 @@ CREATE TABLE IF NOT EXISTS `notify` ( KEY `otype` (`otype`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `notify-threads` --- - CREATE TABLE IF NOT EXISTS `notify-threads` ( `id` int(11) NOT NULL AUTO_INCREMENT, `notify-id` int(11) NOT NULL, @@ -797,12 +588,6 @@ CREATE TABLE IF NOT EXISTS `notify-threads` ( KEY `receiver-uid` (`receiver-uid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `pconfig` --- - CREATE TABLE IF NOT EXISTS `pconfig` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL DEFAULT '0', @@ -813,12 +598,6 @@ CREATE TABLE IF NOT EXISTS `pconfig` ( UNIQUE KEY `access` (`uid`,`cat`,`k`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `photo` --- - CREATE TABLE IF NOT EXISTS `photo` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(10) unsigned NOT NULL, @@ -851,12 +630,6 @@ CREATE TABLE IF NOT EXISTS `photo` ( KEY `contact-id` (`contact-id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `poll` --- - CREATE TABLE IF NOT EXISTS `poll` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL, @@ -874,12 +647,6 @@ CREATE TABLE IF NOT EXISTS `poll` ( KEY `uid` (`uid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `poll_result` --- - CREATE TABLE IF NOT EXISTS `poll_result` ( `id` int(11) NOT NULL AUTO_INCREMENT, `poll_id` int(11) NOT NULL, @@ -889,12 +656,6 @@ CREATE TABLE IF NOT EXISTS `poll_result` ( KEY `choice` (`choice`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `profile` --- - CREATE TABLE IF NOT EXISTS `profile` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL, @@ -938,16 +699,21 @@ CREATE TABLE IF NOT EXISTS `profile` ( `publish` tinyint(1) NOT NULL DEFAULT '0', `net-publish` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), + KEY `uid` (`uid`), + KEY `is-default` (`is-default`), + KEY `locality` (`locality`), + KEY `postal-code` (`postal-code`), + KEY `country-name` (`country-name`), + KEY `hometown` (`hometown`), + KEY `gender` (`gender`), + KEY `marital` (`marital`), + KEY `sexual` (`sexual`), + KEY `publish` (`publish`), + KEY `net-publish` (`net-publish`), FULLTEXT KEY `pub_keywords` (`pub_keywords`), FULLTEXT KEY `prv_keywords` (`prv_keywords`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `profile_check` --- - CREATE TABLE IF NOT EXISTS `profile_check` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(10) unsigned NOT NULL, @@ -961,13 +727,7 @@ CREATE TABLE IF NOT EXISTS `profile_check` ( KEY `dfrn_id` (`dfrn_id`), KEY `sec` (`sec`), KEY `expire` (`expire`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- -------------------------------------------------------- - --- --- Table structure for table `queue` --- +) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `queue` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -985,12 +745,6 @@ CREATE TABLE IF NOT EXISTS `queue` ( KEY `batch` (`batch`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `register` --- - CREATE TABLE IF NOT EXISTS `register` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `hash` char(255) NOT NULL, @@ -1004,12 +758,6 @@ CREATE TABLE IF NOT EXISTS `register` ( KEY `uid` (`uid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `session` --- - CREATE TABLE IF NOT EXISTS `session` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `sid` char(255) NOT NULL, @@ -1020,12 +768,6 @@ CREATE TABLE IF NOT EXISTS `session` ( KEY `expire` (`expire`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `sign` --- - CREATE TABLE IF NOT EXISTS `sign` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `iid` int(10) unsigned NOT NULL DEFAULT '0', @@ -1039,12 +781,6 @@ CREATE TABLE IF NOT EXISTS `sign` ( KEY `signer` (`signer`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `spam` --- - CREATE TABLE IF NOT EXISTS `spam` ( `id` int(11) NOT NULL AUTO_INCREMENT, `uid` int(11) NOT NULL, @@ -1059,12 +795,6 @@ CREATE TABLE IF NOT EXISTS `spam` ( KEY `term` (`term`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `term` --- - CREATE TABLE IF NOT EXISTS `term` ( `tid` int(10) unsigned NOT NULL AUTO_INCREMENT, `uid` int(10) unsigned NOT NULL, @@ -1081,12 +811,6 @@ CREATE TABLE IF NOT EXISTS `term` ( KEY `uid` (`uid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `tokens` --- - CREATE TABLE IF NOT EXISTS `tokens` ( `id` varchar(40) NOT NULL, `secret` text NOT NULL, @@ -1100,12 +824,6 @@ CREATE TABLE IF NOT EXISTS `tokens` ( KEY `uid` (`uid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `user` --- - CREATE TABLE IF NOT EXISTS `user` ( `uid` int(11) NOT NULL AUTO_INCREMENT, `account_id` int(10) unsigned NOT NULL, @@ -1165,12 +883,6 @@ CREATE TABLE IF NOT EXISTS `user` ( KEY `account_id` (`account_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; --- -------------------------------------------------------- - --- --- Table structure for table `userd` --- - CREATE TABLE IF NOT EXISTS `userd` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` char(255) NOT NULL, diff --git a/htconfig.php b/htconfig.php index de7674c9a..8b265131f 100644 --- a/htconfig.php +++ b/htconfig.php @@ -35,7 +35,7 @@ $a->config['sitename'] = "Friendica Social Network"; // In order to perform system administration via the admin panel, admin_email // must precisely match the email address of the person logged in. -$a->config['register_policy'] = REGISTER_OPEN; +$a->config['system']['register_policy'] = REGISTER_OPEN; $a->config['register_text'] = ''; $a->config['admin_email'] = ''; diff --git a/include/account.php b/include/account.php new file mode 100644 index 000000000..6e096b8bf --- /dev/null +++ b/include/account.php @@ -0,0 +1,99 @@ + false, 'user' => null, 'password' => '', 'message' => ''); + + $using_invites = get_config('system','invitation_only'); + $num_invites = get_config('system','number_invites'); + + + $invite_id = ((x($arr,'invite_id')) ? notags(trim($arr['invite_id'])) : ''); + $email = ((x($arr,'email')) ? notags(trim($arr['email'])) : ''); + $password = ((x($arr,'password')) ? trim($arr['password']) : ''); + $password2 = ((x($arr,'password2')) ? trim($arr['password2']) : ''); + $parent = ((x($arr,'parent')) ? intval($arr['parent']) : 0 ); + + $blocked = ((x($arr,'blocked')) ? intval($arr['blocked']) : 0); + $verified = ((x($arr,'verified')) ? intval($arr['verified']) : 0); + + if($using_invites) { + if(! $invite_id) { + $result['message'] .= t('An invitation is required.') . EOL; + return $result; + } + $r = q("select * from register where `hash` = '%s' limit 1", dbesc($invite_id)); + if(! results($r)) { + $result['message'] .= t('Invitation could not be verified.') . EOL; + return $result; + } + } + + if((! x($email)) || (! x($password))) { + notice( t('Please enter the required information.') . EOL ); + return; + } + + if(! allowed_email($email)) + $result['message'] .= t('Your email domain is not among those allowed on this site.') . EOL; + + if((! valid_email($email)) || (! validate_email($email))) + $result['message'] .= t('Not a valid email address.') . EOL; + + + if(strlen($result['message'])) { + return $result; + } + + + $password_encoded = hash('whirlpool',$password); + + $result['password'] = $new_password; + + require_once('include/crypto.php'); + + $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']; + + $r = q("INSERT INTO account + ( account_parent, account_password, account_email, account_language, + account_created, account_flags, account_roles, account_expires, account_service_class ) + VALUES ( %d, '%s', '%s', '%s', '%s', %d, %d, '%s', '%s' )", + intval($parent), + dbesc($password_encoded), + dbesc($email), + dbesc($a->language), + dbesc(datetime_convert()), + dbesc($flags), + dbesc(0), + dbesc($expires), + dbesc($default_service_class) + + ); + + $result['success'] = true; + return $result; + +} diff --git a/include/language.php b/include/language.php index f43b7e179..823fd3c96 100644 --- a/include/language.php +++ b/include/language.php @@ -80,7 +80,8 @@ function push_lang($language) { } $a->strings = array(); load_translation_table($language); - $lang = $language; + $a->language = $lang = $language; + } function pop_lang() { @@ -94,7 +95,7 @@ function pop_lang() { else $a->strings = array(); - $lang = $a->langsave; + $a->language = $lang = $a->langsave; } diff --git a/index.php b/index.php index 7c0a26f7b..a20cb4fc1 100644 --- a/index.php +++ b/index.php @@ -27,7 +27,7 @@ $install = ((file_exists('.htconfig.php') && filesize('.htconfig.php')) ? false @include(".htconfig.php"); -$lang = get_best_language(); +$a->language = $lang = get_best_language(); load_translation_table($lang); diff --git a/mod/zregister.php b/mod/zregister.php index f24da34c3..4eea51ddc 100644 --- a/mod/zregister.php +++ b/mod/zregister.php @@ -8,13 +8,11 @@ function zregister_init(&$a) { function zregister_post(&$a) { - global $lang; - $verified = 0; $blocked = 1; $arr = array('post' => $_POST); - call_hooks('register_post', $arr); + call_hooks('zregister_post', $arr); $max_dailies = intval(get_config('system','max_daily_registrations')); if($max_dailies) { @@ -24,21 +22,21 @@ function zregister_post(&$a) { } } - switch($a->config['register_policy']) { + switch(get_config('system','register_policy')) { - case REGISTER_OPEN: $blocked = 0; - $verified = 1; + $verified = 0; break; case REGISTER_APPROVE: - $blocked = 1; + $blocked = 0; $verified = 0; break; default: case REGISTER_CLOSED: + // TODO check against service class and fix this line if((! x($_SESSION,'authenticated') && (! x($_SESSION,'administrator')))) { notice( t('Permission denied.') . EOL ); return; @@ -48,14 +46,14 @@ function zregister_post(&$a) { break; } - require_once('include/user.php'); + require_once('include/account.php'); $arr = $_POST; $arr['blocked'] = $blocked; $arr['verified'] = $verified; - $result = create_user($arr); + $result = create_account($arr); if(! $result['success']) { notice($result['message']); @@ -64,11 +62,6 @@ function zregister_post(&$a) { $user = $result['user']; - if($netpublish && $a->config['register_policy'] != REGISTER_APPROVE) { - $url = $a->get_baseurl() . '/profile/' . $user['nickname']; - proc_run('php',"include/directory.php","$url"); - } - $using_invites = get_config('system','invitation_only'); $num_invites = get_config('system','number_invites'); $invite_id = ((x($_POST,'invite_id')) ? notags(trim($_POST['invite_id'])) : ''); @@ -101,11 +94,9 @@ function zregister_post(&$a) { info( t('Registration successful. Please check your email for further instructions.') . EOL ) ; goaway(z_root()); } - else { - notice( t('Failed to send email message. Here is the message that failed.') . $email_tpl . EOL ); - } } elseif($a->config['register_policy'] == REGISTER_APPROVE) { + if(! strlen($a->config['admin_email'])) { notice( t('Your registration can not be processed.') . EOL); goaway(z_root()); @@ -117,7 +108,7 @@ function zregister_post(&$a) { dbesc(datetime_convert()), intval($user['uid']), dbesc($result['password']), - dbesc($lang) + dbesc($a->language) ); $r = q("SELECT `language` FROM `user` WHERE `email` = '%s' LIMIT 1", -- cgit v1.2.3