perhaps REGISTER_VERIFY will work now. I'll test it and make certain it works some day. But not today.

This commit is contained in:
friendica 2013-02-08 03:11:40 -08:00
parent 1ae87e51c5
commit dbc024cdaf
5 changed files with 106 additions and 107 deletions

2
done
View File

@ -144,7 +144,7 @@ mod/
+ randprof.php
- redir.php
+ register.php
regmod.php
? regmod.php
removeme.php
rsd_xml.php (what do we need this for? What functionality/feature does it enable)
search_ac.php

View File

@ -286,3 +286,102 @@ function send_verification_email($email,$password) {
);
return($res ? true : false);
}
function user_allow($hash) {
$a = get_app();
$ret = array('success' => false);
$register = q("SELECT * FROM `register` WHERE `hash` = '%s' LIMIT 1",
dbesc($hash)
);
if(! $register)
return $ret;
$account = q("SELECT * FROM account WHERE account_id = %d LIMIT 1",
intval($register[0]['uid'])
);
if(! $account)
return $ret;
$r = q("DELETE FROM register WHERE hash = '%s' LIMIT 1",
dbesc($register[0]['hash'])
);
$r = q("update account set account_flags = (account_flags ^ %d) where (account_flags & %d) and account_id = %d limit 1",
intval(ACCOUNT_BLOCKED),
intval(ACCOUNT_BLOCKED),
intval($register[0]['uid'])
);
$r = q("SELECT uid FROM profile WHERE uid = %d AND is_default = 1",
intval($account[0]['account_id'])
);
if($r && $r[0]['publish']) {
proc_run('php',"include/directory.php",$r[0]['uid']);
}
push_lang($register[0]['language']);
$email_tpl = get_intltext_template("register_open_eml.tpl");
$email_tpl = replace_macros($email_tpl, array(
'$sitename' => get_config('system','sitename'),
'$siteurl' => z_root(),
'$username' => $account[0]['account_email'],
'$email' => $account[0]['account_email'],
'$password' => '',
'$uid' => $account[0]['account_id']
));
$res = mail($account[0]['account_email'], sprintf( t('Registration details for %s'), get_config('system','sitename')),
$email_tpl,
'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
. 'Content-type: text/plain; charset=UTF-8' . "\n"
. 'Content-transfer-encoding: 8bit' );
pop_lang();
if($res) {
info( t('Account approved.') . EOL );
return true;
}
}
// This does not have to go through user_remove() and save the nickname
// permanently against re-registration, as the person was not yet
// allowed to have friends on this system
function user_deny($hash) {
$register = q("SELECT * FROM register WHERE hash = '%s' LIMIT 1",
dbesc($hash)
);
if(! count($register))
return false;
$user = q("SELECT account_id FROM account WHERE account_id = %d LIMIT 1",
intval($register[0]['uid'])
);
if(! $user)
return false;
$r = q("DELETE FROM account WHERE account_id = %d LIMIT 1",
intval($register[0]['uid'])
);
$r = q("DELETE FROM `register` WHERE id = %d LIMIT 1",
dbesc($register[0]['id'])
);
notice( sprintf(t('Registration revoked for %s'), $account[0]['account_email']) . EOL);
return true;
}

View File

@ -1,104 +1,6 @@
<?php
function user_allow($hash) {
$a = get_app();
$register = q("SELECT * FROM `register` WHERE `hash` = '%s' LIMIT 1",
dbesc($hash)
);
if(! count($register))
return false;
$user = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
intval($register[0]['uid'])
);
if(! count($user))
killme();
$r = q("DELETE FROM `register` WHERE `hash` = '%s' LIMIT 1",
dbesc($register[0]['hash'])
);
$r = q("UPDATE `user` SET `blocked` = 0, `verified` = 1 WHERE `uid` = %d LIMIT 1",
intval($register[0]['uid'])
);
$r = q("SELECT * FROM `profile` WHERE `uid` = %d AND `is_default` = 1",
intval($user[0]['uid'])
);
if(count($r) && $r[0]['publish']) {
$url = $a->get_baseurl() . '/profile/' . $user[0]['nickname'];
if($url && strlen(get_config('system','directory_submit_url')))
proc_run('php',"include/directory.php","$url");
}
push_lang($register[0]['language']);
$email_tpl = get_intltext_template("register_open_eml.tpl");
$email_tpl = replace_macros($email_tpl, array(
'$sitename' => $a->config['sitename'],
'$siteurl' => $a->get_baseurl(),
'$username' => $user[0]['username'],
'$email' => $user[0]['email'],
'$password' => $register[0]['password'],
'$uid' => $user[0]['uid']
));
$res = mail($user[0]['email'], sprintf(t('Registration details for %s'), $a->config['sitename']),
$email_tpl,
'From: ' . t('Administrator') . '@' . $_SERVER['SERVER_NAME'] . "\n"
. 'Content-type: text/plain; charset=UTF-8' . "\n"
. 'Content-transfer-encoding: 8bit' );
pop_lang();
if($res) {
info( t('Account approved.') . EOL );
return true;
}
}
// This does not have to go through user_remove() and save the nickname
// permanently against re-registration, as the person was not yet
// allowed to have friends on this system
function user_deny($hash) {
$register = q("SELECT * FROM `register` WHERE `hash` = '%s' LIMIT 1",
dbesc($hash)
);
if(! count($register))
return false;
$user = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
intval($register[0]['uid'])
);
$r = q("DELETE FROM `user` WHERE `uid` = %d LIMIT 1",
intval($register[0]['uid'])
);
$r = q("DELETE FROM `contact` WHERE `uid` = %d LIMIT 1",
intval($register[0]['uid'])
);
$r = q("DELETE FROM `profile` WHERE `uid` = %d LIMIT 1",
intval($register[0]['uid'])
);
$r = q("DELETE FROM `register` WHERE `hash` = '%s' LIMIT 1",
dbesc($register[0]['hash'])
);
notice( sprintf(t('Registration revoked for %s'), $user[0]['username']) . EOL);
return true;
}
require_once('include/account.php');
function regmod_content(&$a) {
@ -117,13 +19,11 @@ function regmod_content(&$a) {
return '';
}
if($a->argc != 3)
if(argc() != 3)
killme();
$cmd = $a->argv[1];
$hash = $a->argv[2];
$cmd = argv(1);
$hash = argv(2);
if($cmd === 'deny') {
if (!user_deny($hash)) killme();

View File

@ -4,7 +4,7 @@ The login details are as follows:
Site Location: $[siteurl]
Login: $[email]
Password: $[password]
Password: (the password supplied during registration)
If this account was created without your knowledge and is not desired, please
login and remove the account from the links on the Settings page, and we

View File

@ -9,7 +9,7 @@ The login details are as follows:
Site Location: {{$siteurl}}
Login: {{$email}}
Password: {{$password}}
Password: (the password supplied during registration)
If this account was created without your knowledge and is not desired, please
login and remove the account from the links on the Settings page, and we