aboutsummaryrefslogtreecommitdiffstats
path: root/Zotlabs/Module
diff options
context:
space:
mode:
authorMario <mario@mariovavti.com>2021-04-09 09:49:36 +0000
committerMario <mario@mariovavti.com>2021-04-09 09:49:36 +0000
commit01b081d809d128e0922fb404921f452c51c2ddb2 (patch)
treedb100aa4c3b257943b95ab192514a8a93cfa6ba9 /Zotlabs/Module
parenta34d8852b6695086ef3c9f5ff882d0d033f7d4a5 (diff)
downloadvolse-hubzilla-01b081d809d128e0922fb404921f452c51c2ddb2.tar.gz
volse-hubzilla-01b081d809d128e0922fb404921f452c51c2ddb2.tar.bz2
volse-hubzilla-01b081d809d128e0922fb404921f452c51c2ddb2.zip
register: only return verified registrations in get_pending_accounts(), more invite handling fixes
Diffstat (limited to 'Zotlabs/Module')
-rw-r--r--Zotlabs/Module/Admin/Accounts.php13
-rw-r--r--Zotlabs/Module/Regate.php16
-rw-r--r--Zotlabs/Module/Register.php13
-rw-r--r--Zotlabs/Module/Sse_bs.php4
4 files changed, 24 insertions, 22 deletions
diff --git a/Zotlabs/Module/Admin/Accounts.php b/Zotlabs/Module/Admin/Accounts.php
index ac46c43aa..9971fd213 100644
--- a/Zotlabs/Module/Admin/Accounts.php
+++ b/Zotlabs/Module/Admin/Accounts.php
@@ -217,18 +217,13 @@ class Accounts {
$tao .= 'tao.zar.zarar = {';
foreach ($pending as $n => $v) {
- if (array_key_exists($v['reg_atip'], $atipn)) {
+ $pending[$n]['status'] = t('Verified');
+
+ if (array_key_exists($v['reg_atip'], $atipn)) {
$pending[$n]['reg_atip'] = $v['reg_atip'] . ' ◄' . $atipn[ $v['reg_atip'] ] . '×';
}
- $pending[$n]['status'] = t('Not verified');
- if($pending[$n]['reg_vfd'])
- $pending[$n]['status'] = t('Verified');
-
- if(!$pending[$n]['reg_vfd'] && $pending[$n]['reg_expires'] < datetime_convert())
- $pending[$n]['status'] = t('Expired');
-
// timezone adjust date_time for display
$pending[$n]['reg_created'] = datetime_convert('UTC', date_default_timezone_get(), $pending[$n]['reg_created']);
$pending[$n]['reg_startup'] = datetime_convert('UTC', date_default_timezone_get(), $pending[$n]['reg_startup']);
@@ -300,7 +295,7 @@ class Accounts {
'$sel_aprv' => t('Approve selected'),
'$h_pending' => t('Registrations waiting for confirm'),
'$th_pending' => array( t('Request date'), t('Verification status'), t('Timeframe'), 'dId2', t('specified,atip') ),
- '$no_pending' => t('No registrations.'),
+ '$no_pending' => t('No verified registrations.'),
'$approve' => t('Approve'),
'$deny' => t('Deny'),
'$delete' => t('Delete'),
diff --git a/Zotlabs/Module/Regate.php b/Zotlabs/Module/Regate.php
index 0c32ebd25..0bca68a0b 100644
--- a/Zotlabs/Module/Regate.php
+++ b/Zotlabs/Module/Regate.php
@@ -99,16 +99,28 @@ class Regate extends \Zotlabs\Web\Controller {
if ( $acpin && ($r['reg_hash'] == $acpin )) {
$flags = $r['reg_flags'];
- if ( ($flags & ACCOUNT_UNVERIFIED ) == ACCOUNT_UNVERIFIED) {
+ if (($flags & ACCOUNT_UNVERIFIED) == ACCOUNT_UNVERIFIED) {
// verification success
$msg = 'ZAR1237I' . ' ' . t('Verify successfull');
$reonar = json_decode( $r['reg_stuff'], true);
$reonar['valid'] = $now . ',' . $ip . ' ' . $did2 . ' ' . $msg;
+
// clear flag
$flags &= $flags ^ ACCOUNT_UNVERIFIED;
+
+ // are we invited by the admin?
+ $isa = get_account_by_id($r['reg_uid']);
+ $isa = ($isa && ($isa['account_roles'] && ACCOUNT_ROLE_ADMIN));
+
+ // approve contra invite by admin
+ if ($isa && get_config('system','register_policy') == REGISTER_APPROVE) {
+ $flags &= $flags ^ ACCOUNT_PENDING;
+ }
+
// sth todo?
$vital = $flags == 0 ? 0 : 1;
+
// set flag
$flags |= REGISTER_AGREED;
zar_log($msg . ' ' . $did2 . ':flags' . $flags . ',rid' . $r['reg_id']);
@@ -123,8 +135,8 @@ class Regate extends \Zotlabs\Web\Controller {
intval($r['reg_id'])
);
- if ( ($flags & ACCOUNT_PENDING ) == ACCOUNT_PENDING ) {
+ if ( ($flags & ACCOUNT_PENDING ) == ACCOUNT_PENDING ) {
$msg .= "\n".t('Last step will be by an instance admin to agree your account request');
$nextpage = 'regate/' . bin2hex($did2) . $didx;
q("COMMIT");
diff --git a/Zotlabs/Module/Register.php b/Zotlabs/Module/Register.php
index 9d2a8aa96..4eece60b3 100644
--- a/Zotlabs/Module/Register.php
+++ b/Zotlabs/Module/Register.php
@@ -214,7 +214,8 @@ class Register extends Controller {
if ($invonly || $invalso) {
$reg = q("SELECT * from register WHERE reg_vital = 1 AND reg_didx = 'i' AND reg_hash = '%s'",
- dbesc($invite_code));
+ dbesc($invite_code)
+ );
if ($reg && count($reg) == 1) {
$reg = $reg[0];
@@ -222,16 +223,6 @@ class Register extends Controller {
if ($reg['reg_startup'] <= $now && $reg['reg_expires'] >= $now) {
- // is invitor admin
- $isa = get_account_by_id($reg['reg_uid']);
- $isa = ( $isa && ($isa['account_roles'] && ACCOUNT_ROLE_ADMIN) );
-
- // FIXME: set the correct flags if invitee is admin so we do not need to approve anyway if approve is on
- // approve contra invite by admin
- if ($isa && $policy == REGISTER_APPROVE)
- $flags &= $flags ^ ACCOUNT_PENDING;
-
-
if ($auto_create) {
$reonar['chan.name'] = notags(trim($arr['name']));
$reonar['chan.did1'] = notags(trim($arr['nickname']));
diff --git a/Zotlabs/Module/Sse_bs.php b/Zotlabs/Module/Sse_bs.php
index 271d040fd..cc67c8eb7 100644
--- a/Zotlabs/Module/Sse_bs.php
+++ b/Zotlabs/Module/Sse_bs.php
@@ -688,6 +688,10 @@ class Sse_bs extends Controller {
if(! self::$uid && ! is_site_admin())
return $result;
+ $policy = intval(get_config('system','register_policy'));
+ if(($policy & REGISTER_APPROVE) != REGISTER_APPROVE)
+ return $result;
+
if(! (self::$vnotify & VNOTIFY_REGISTER))
return $result;