diff --git a/src/author.php b/src/author.php
index 47621bf3e3..2be7f5cc91 100644
--- a/src/author.php
+++ b/src/author.php
@@ -103,7 +103,7 @@ static function make_user($u) {
$au = new Author($u);
$au->contactId = $u->contactId;
$au->roles = $u->roles;
- $au->disablement = $u->disablement;
+ $au->disablement = $u->disabled_flags();
return $au;
}
@@ -292,6 +292,11 @@ function is_nonauthor() {
return $this->status === self::STATUS_NONAUTHOR;
}
+ /** @return int */
+ function disabled_flags() {
+ return $this->disablement;
+ }
+
/** @param Author|Contact $x
* @return bool */
function nea_equals($x) {
diff --git a/src/contact.php b/src/contact.php
index eedab382d1..78e9004db1 100644
--- a/src/contact.php
+++ b/src/contact.php
@@ -1024,6 +1024,11 @@ function contactdb_disabled() {
return $cdbu && ($cdbu->disablement & ~self::DISABLEMENT_PLACEHOLDER) !== 0;
}
+ /** @return int */
+ function disabled_flags() {
+ return $this->disablement;
+ }
+
/** @return int */
function session_index() {
return $this->_activated > 0 ? $this->_activated >> 8 : -1;
diff --git a/src/options/o_contacts.php b/src/options/o_contacts.php
index eba3e34e47..198d48e231 100644
--- a/src/options/o_contacts.php
+++ b/src/options/o_contacts.php
@@ -98,7 +98,7 @@ private function apply_parsed_users(PaperValue $ov, $specau) {
if ($specau[$i]->conflictType !== 0) {
$curau[$j]->author_index = $specau[$i]->author_index;
$modified = $modified
- || ($curau[$j]->disablement & Contact::DISABLEMENT_PLACEHOLDER) !== 0;
+ || ($curau[$j]->disabled_flags() & Contact::DISABLEMENT_PLACEHOLDER) !== 0;
} else {
// only remove contacts on exact email match
// (removing by a non-primary email has no effect)
@@ -280,7 +280,7 @@ function print_web_edit(PaperTable $pt, $ov, $reqov) {
Ht::hidden("contacts:{$cidx}:email", $au->email);
if (($au->contactId > 0
&& ($au->conflictType & CONFLICT_AUTHOR) !== 0
- && ($au->disablement & Contact::DISABLEMENT_PLACEHOLDER) === 0)
+ && ($au->disabled_flags() & Contact::DISABLEMENT_PLACEHOLDER) === 0)
|| ($au->contactId === $pt->user->contactId
&& $ov->prow->paperId <= 0)) {
echo Ht::hidden("contacts:{$cidx}:active", 1),
diff --git a/src/pages/p_log.php b/src/pages/p_log.php
index 05cdfcc6af..081bd426d1 100644
--- a/src/pages/p_log.php
+++ b/src/pages/p_log.php
@@ -353,7 +353,7 @@ function user_html($user) {
if (($pc = $this->conf->pc_member_by_id($user->contactId))) {
$user = $pc;
}
- if ($user->disablement & Contact::DISABLEMENT_DELETED) {
+ if ($user->disabled_flags() & Contact::DISABLEMENT_DELETED) {
$t = '' . $user->name_h(NAME_E) . '';
} else {
$t = $user->name_h(NAME_P);
@@ -403,7 +403,7 @@ function users_html($users, $trueContactId) {
&& (!isset($user->roles) || !($user->roles & Contact::ROLE_PCLIKE))) {
$all_pc = false;
}
- if ($user->disablement & Contact::DISABLEMENT_DELETED) {
+ if ($user->disabled_flags() & Contact::DISABLEMENT_DELETED) {
if ($user->email) {
$t = '' . $user->name_h(NAME_E) . '';
} else {
diff --git a/src/userstatus.php b/src/userstatus.php
index 137814c1fd..ebb1f762c8 100644
--- a/src/userstatus.php
+++ b/src/userstatus.php
@@ -899,7 +899,7 @@ function save_user($cj, $old_user = null) {
if (!$user) {
return null;
}
- $old_disablement = $user->disablement;
+ $old_disablement = $user->disabled_flags();
// initialize
assert(!isset($cj->email) || strcasecmp($cj->email, $user->email) === 0);
@@ -932,7 +932,7 @@ function save_user($cj, $old_user = null) {
$user->cdb_user();
}
if ($roles !== $old_roles
- || ($user->disablement !== 0) !== ($old_disablement !== 0)) {
+ || ($user->disabled_flags() !== 0) !== ($old_disablement !== 0)) {
$user->update_cdb();
}
@@ -952,7 +952,7 @@ function save_user($cj, $old_user = null) {
}
// Notify of new accounts or new PC-ness
- if ($this->notify && $user->disablement === 0) {
+ if ($this->notify && $user->disabled_flags() === 0) {
$eff_old_roles = $old_disablement !== 0 ? 0 : $old_roles;
if (!$old_activity_at
|| (($eff_old_roles & Contact::ROLE_PCLIKE) === 0
@@ -1012,7 +1012,7 @@ static function save_main(UserStatus $us) {
}
// Disabled
- $disablement = $user->disablement & Contact::DISABLEMENT_DB;
+ $disablement = $user->disabled_flags() & Contact::DISABLEMENT_DB;
if (isset($cj->disabled)) {
if ($cj->disabled) {
$disablement |= Contact::DISABLEMENT_USER;
@@ -1640,16 +1640,16 @@ static function print_main_actions(UserStatus $us) {
$us->cs()->add_section_class("form-outline-section")->print_start_section("User administration");
echo '
This account is disabled on all sites.
"; diff --git a/test/t_cdb.php b/test/t_cdb.php index 795f9714e4..9d531a9ecb 100644 --- a/test/t_cdb.php +++ b/test/t_cdb.php @@ -110,7 +110,7 @@ function test_cdb_import_1() { $u = $this->conf->cdb_user_by_email("te@_.com"); xassert(!!$u); xassert_eqq($u->firstName, "Te"); - xassert_eqq($u->disablement, 0); + xassert_eqq($u->disabled_flags(), 0); // inserting them should succeed and borrow their data $acct = $this->us1->save_user((object) ["email" => "te@_.com"]); @@ -133,12 +133,12 @@ function test_change_email() { $u = $this->conf->cdb_user_by_email("te@_.com"); xassert(!!$u); xassert_eqq($u->firstName, "Te"); - xassert_eqq($u->disablement, 0); + xassert_eqq($u->disabled_flags(), 0); $u = $this->conf->cdb_user_by_email("te2@_.com"); xassert(!!$u); xassert_eqq($u->firstName, ""); - xassert_eqq($u->disablement, 0); + xassert_eqq($u->disabled_flags(), 0); // changing email works locally user("te@_.com")->change_email("te2@_.com"); @@ -157,7 +157,7 @@ function test_change_email() { xassert_eqq($te2_cdb->lastName, "Thamrongrattanarit 2"); xassert_eqq($te2_cdb->email, "te2@_.com"); xassert_eqq($te2_cdb->affiliation, "Brandeis University or something"); - xassert_eqq($te2_cdb->disablement, 0); + xassert_eqq($te2_cdb->disabled_flags(), 0); // changing local email does not change cdb $acct = $this->us1->save_user((object) ["email" => "te2@_.com", "lastName" => "Thamrongrattanarit 1", "firstName" => "Te 1"]); @@ -173,7 +173,7 @@ function test_change_email() { xassert_eqq($te2_cdb->lastName, "Thamrongrattanarit 2"); xassert_eqq($te2_cdb->email, "te2@_.com"); xassert_eqq($te2_cdb->affiliation, "Brandeis University or something"); - xassert_eqq($te2_cdb->disablement, 0); + xassert_eqq($te2_cdb->disabled_flags(), 0); } function test_simplify_whitespace_on_save() { @@ -455,14 +455,14 @@ function test_email_authored_papers() { xassert(!!$u); xassert_eqq($u->firstName, "Cengiz"); xassert_eqq($u->lastName, "Alaettinoğlu"); - xassert_eqq($u->disablement, Contact::DISABLEMENT_PLACEHOLDER); + xassert_eqq($u->disabled_flags(), Contact::DISABLEMENT_PLACEHOLDER); $ldb_cid = $u->contactId; $u = $this->conf->cdb_user_by_email("cengiz@isi.edu"); xassert(!!$u); xassert_eqq($u->firstName, "Cengiz"); xassert_eqq($u->lastName, "Alaettinoğlu"); - xassert_eqq($u->disablement, Contact::DISABLEMENT_PLACEHOLDER); + xassert_eqq($u->disabled_flags(), Contact::DISABLEMENT_PLACEHOLDER); $cdb_cid = $u->contactId; // remove localdb user and cdb user's roles @@ -550,29 +550,29 @@ function test_cdb_roles_1() { function test_cdb_roles_2() { // authorship is encoded in placeholder $acct = $this->conf->fresh_user_by_email("pavlin@isi.edu"); - xassert_eqq($acct->disablement, Contact::DISABLEMENT_PLACEHOLDER); + xassert_eqq($acct->disabled_flags(), Contact::DISABLEMENT_PLACEHOLDER); xassert($acct->is_author()); xassert_eqq($acct->cdb_roles(), Contact::ROLE_AUTHOR); $acct = $this->conf->fresh_cdb_user_by_email("pavlin@isi.edu"); - xassert_eqq($acct->disablement, Contact::DISABLEMENT_PLACEHOLDER); + xassert_eqq($acct->disabled_flags(), Contact::DISABLEMENT_PLACEHOLDER); xassert_eqq($acct->roles, Contact::ROLE_AUTHOR); // saving without disablement wakes up cdb $acct = $this->us1->save_user((object) ["email" => "pavlin@isi.edu"]); - xassert_eqq($acct->disablement, 0); + xassert_eqq($acct->disabled_flags(), 0); $acct = $this->conf->fresh_cdb_user_by_email("pavlin@isi.edu"); - xassert_eqq($acct->disablement, 0); + xassert_eqq($acct->disabled_flags(), 0); } function test_cdb_roles_3() { // saving a user with a role does both role and authorship $email = "lam@cs.utexas.edu"; $acct = $this->conf->fresh_user_by_email($email); - xassert_eqq($acct->disablement, Contact::DISABLEMENT_PLACEHOLDER); + xassert_eqq($acct->disabled_flags(), Contact::DISABLEMENT_PLACEHOLDER); $acct = $this->us1->save_user((object) ["email" => $email, "roles" => "sysadmin"]); xassert(!!$acct); - xassert_eqq($acct->disablement, 0); + xassert_eqq($acct->disabled_flags(), 0); xassert($acct->is_author()); xassert($acct->isPC); xassert($acct->privChair); @@ -592,11 +592,11 @@ function test_placeholder() { $u = $this->conf->checked_user_by_email("scapegoat@harvard.edu"); xassert_eqq($u->firstName, "Shane"); xassert_eqq($u->lastName, ""); - xassert_eqq($u->disablement, Contact::DISABLEMENT_PLACEHOLDER); + xassert_eqq($u->disabled_flags(), Contact::DISABLEMENT_PLACEHOLDER); $cdb_u = $u->cdb_user(); xassert_eqq($cdb_u->firstName, "Shane"); xassert_eqq($cdb_u->lastName, ""); - xassert_eqq($cdb_u->disablement, Contact::DISABLEMENT_PLACEHOLDER); + xassert_eqq($cdb_u->disabled_flags(), Contact::DISABLEMENT_PLACEHOLDER); // creating another placeholder will override properties Contact::make_keyed($this->conf, [ @@ -609,11 +609,11 @@ function test_placeholder() { $u = $this->conf->checked_user_by_email("scapegoat@harvard.edu"); xassert_eqq($u->firstName, "Shapely"); xassert_eqq($u->lastName, "Montréal"); - xassert_eqq($u->disablement, Contact::DISABLEMENT_PLACEHOLDER); + xassert_eqq($u->disabled_flags(), Contact::DISABLEMENT_PLACEHOLDER); $cdb_u = $u->cdb_user(); xassert_eqq($cdb_u->firstName, "Shapely"); xassert_eqq($cdb_u->lastName, "Montréal"); - xassert_eqq($cdb_u->disablement, Contact::DISABLEMENT_PLACEHOLDER); + xassert_eqq($cdb_u->disabled_flags(), Contact::DISABLEMENT_PLACEHOLDER); xassert_eqq($cdb_u->prop("password"), " unset"); // enable user @@ -625,11 +625,11 @@ function test_placeholder() { $u = $this->conf->checked_user_by_email("scapegoat@harvard.edu"); xassert_eqq($u->firstName, "Shapely"); xassert_eqq($u->lastName, "Montréal"); - xassert_eqq($u->disablement, 0); + xassert_eqq($u->disabled_flags(), 0); $cdb_u = $u->cdb_user(); xassert_eqq($cdb_u->firstName, "Shapely"); xassert_eqq($cdb_u->lastName, "Montréal"); - xassert_eqq($cdb_u->disablement, 0); + xassert_eqq($cdb_u->disabled_flags(), 0); // saving another placeholder will not override properties // or disable the current user @@ -643,11 +643,11 @@ function test_placeholder() { $u = $this->conf->checked_user_by_email("scapegoat@harvard.edu"); xassert_eqq($u->firstName, "Shapely"); xassert_eqq($u->lastName, "Montréal"); - xassert_eqq($u->disablement, 0); + xassert_eqq($u->disabled_flags(), 0); $cdb_u = $u->cdb_user(); xassert_eqq($cdb_u->firstName, "Shapely"); xassert_eqq($cdb_u->lastName, "Montréal"); - xassert_eqq($cdb_u->disablement, 0); + xassert_eqq($cdb_u->disabled_flags(), 0); } function test_updatecontactdb_authors() { @@ -679,7 +679,7 @@ function test_updatecontactdb_authors() { $u = $this->conf->fresh_user_by_email("nonsense@_.com"); xassert(!!$u); - xassert_eqq($u->disablement, Contact::DISABLEMENT_PLACEHOLDER); + xassert_eqq($u->disabled_flags(), Contact::DISABLEMENT_PLACEHOLDER); xassert_eqq($u->email, "NONSENSE@_.com"); xassert_eqq($u->firstName, "Nonsense"); xassert_eqq($u->lastName, "Person"); @@ -691,12 +691,12 @@ function test_updatecontactdb_authors() { $u = $this->conf->fresh_cdb_user_by_email("nonsense@_.com"); xassert(!!$u); - xassert_eqq($u->disablement, Contact::DISABLEMENT_PLACEHOLDER); + xassert_eqq($u->disabled_flags(), Contact::DISABLEMENT_PLACEHOLDER); xassert_eqq($u->email, "NONSENSE@_.com"); xassert_eqq($u->firstName, "Nonsense"); xassert_eqq($u->lastName, "Person"); xassert_eqq($u->affiliation, "Nonsense University"); - xassert_eqq($u->disablement, Contact::DISABLEMENT_PLACEHOLDER); + xassert_eqq($u->disabled_flags(), Contact::DISABLEMENT_PLACEHOLDER); } /** @suppress PhanAccessReadOnlyProperty */ @@ -815,7 +815,7 @@ function test_cdb_new_locally_disabled_user() { xassert_gt($pid, 0); $u = $this->conf->fresh_cdb_user_by_email("belling@_.com"); - xassert_eqq($u->disablement & ~Contact::DISABLEMENT_PLACEHOLDER, Contact::DISABLEMENT_ROLE); + xassert_eqq($u->disabled_flags() & ~Contact::DISABLEMENT_PLACEHOLDER, Contact::DISABLEMENT_ROLE); $d = Dbl::fetch_ivalue($this->conf->dblink, "select disabled from ContactInfo where email='belling@_.com'") ?? -1; xassert_eqq($d & ~Contact::DISABLEMENT_PLACEHOLDER, Contact::DISABLEMENT_USER); $d = Dbl::fetch_ivalue($this->conf->contactdb(), "select disabled from ContactInfo where email='belling@_.com'") ?? -1; @@ -831,9 +831,9 @@ function test_cdb_new_locally_disabled_user() { "affiliation" => "Fart University", "disablement" => Contact::DISABLEMENT_USER ])->store(); - xassert_eqq($u->disablement & ~Contact::DISABLEMENT_PLACEHOLDER, Contact::DISABLEMENT_USER | Contact::DISABLEMENT_ROLE); + xassert_eqq($u->disabled_flags() & ~Contact::DISABLEMENT_PLACEHOLDER, Contact::DISABLEMENT_USER | Contact::DISABLEMENT_ROLE); $uu = $u->cdb_user(); - xassert_eqq($uu->disablement & ~Contact::DISABLEMENT_PLACEHOLDER, Contact::DISABLEMENT_ROLE); + xassert_eqq($uu->disabled_flags() & ~Contact::DISABLEMENT_PLACEHOLDER, Contact::DISABLEMENT_ROLE); $d = Dbl::fetch_ivalue($this->conf->dblink, "select disabled from ContactInfo where email='kitcat@_.com'") ?? -1; xassert_eqq($d & ~Contact::DISABLEMENT_PLACEHOLDER, Contact::DISABLEMENT_USER); $d = Dbl::fetch_ivalue($this->conf->contactdb(), "select disabled from ContactInfo where email='kitcat@_.com'") ?? -1; @@ -842,10 +842,10 @@ function test_cdb_new_locally_disabled_user() { Dbl::qe($this->conf->dblink, "insert into ContactInfo set firstName='Martha', lastName='Tanner', email='marthatanner@_.com', affiliation='University of Connecticut', password='', disabled=1"); Dbl::qe($this->conf->contactdb(), "insert into ContactInfo set firstName='Martha', lastName='Tanner', email='marthatanner@_.com', affiliation='University of Connecticut', password=' unset', disabled=2"); $u = $this->conf->fresh_user_by_email("marthatanner@_.com"); - xassert_eqq($u->disablement & ~Contact::DISABLEMENT_PLACEHOLDER, Contact::DISABLEMENT_ROLE | Contact::DISABLEMENT_USER); + xassert_eqq($u->disabled_flags() & ~Contact::DISABLEMENT_PLACEHOLDER, Contact::DISABLEMENT_ROLE | Contact::DISABLEMENT_USER); $u->update_cdb(); $uu = $this->conf->fresh_cdb_user_by_email("marthatanner@_.com"); - xassert_eqq($uu->disablement & ~Contact::DISABLEMENT_PLACEHOLDER, Contact::DISABLEMENT_ROLE); + xassert_eqq($uu->disabled_flags() & ~Contact::DISABLEMENT_PLACEHOLDER, Contact::DISABLEMENT_ROLE); $d = Dbl::fetch_ivalue($this->conf->contactdb(), "select disabled from ContactInfo where email='marthatanner@_.com'") ?? -1; xassert_eqq($d & ~Contact::DISABLEMENT_PLACEHOLDER, 0); diff --git a/test/t_login.php b/test/t_login.php index ffa32444c1..bb84963c86 100644 --- a/test/t_login.php +++ b/test/t_login.php @@ -123,11 +123,11 @@ function test_login_placeholder() { // but user is still a placeholder $u = $this->conf->checked_user_by_email($email); xassert(!!$u); - xassert_eqq($u->disablement, Contact::DISABLEMENT_PLACEHOLDER); + xassert_eqq($u->disabled_flags(), Contact::DISABLEMENT_PLACEHOLDER); if ($this->cdb) { $u = $this->conf->checked_cdb_user_by_email($email); xassert(!!$u); - xassert_eqq($u->disablement, Contact::DISABLEMENT_PLACEHOLDER); + xassert_eqq($u->disabled_flags(), Contact::DISABLEMENT_PLACEHOLDER); } $this->conf->invalidate_caches(["users" => true, "cdb" => true]); @@ -152,11 +152,11 @@ function test_login_placeholder() { // user is no longer a placeholder $u = $this->conf->checked_user_by_email($email); xassert(!!$u); - xassert_eqq($u->disablement, 0); + xassert_eqq($u->disabled_flags(), 0); if ($this->cdb) { $u = $this->conf->checked_cdb_user_by_email($email); xassert(!!$u); - xassert_eqq($u->disablement, 0); + xassert_eqq($u->disabled_flags(), 0); } } diff --git a/test/t_paperstatus.php b/test/t_paperstatus.php index 7ad3c46c10..b7a1d2222d 100644 --- a/test/t_paperstatus.php +++ b/test/t_paperstatus.php @@ -631,7 +631,7 @@ function test_save_new_authors() { $attenu = $this->conf->user_by_email("atten@_.com"); xassert_eqq($nprow1->conflict_type($attenu), CONFLICT_AUTHOR); xassert_eqq($attenu->roles & Contact::ROLE_DBMASK, 0); - xassert_eqq($attenu->disablement, Contact::DISABLEMENT_PLACEHOLDER); + xassert_eqq($attenu->disabled_flags(), Contact::DISABLEMENT_PLACEHOLDER); xassert($nprow1->timeSubmitted > 0); xassert($nprow1->timeWithdrawn <= 0); xassert(!$nprow1->option(1)); diff --git a/test/t_permission.php b/test/t_permission.php index c8132fe0e9..98c41406eb 100644 --- a/test/t_permission.php +++ b/test/t_permission.php @@ -1608,7 +1608,8 @@ function test_author_view_capability_users() { function test_make_anonymous_user_nologin() { xassert(!maybe_user("anonymous10")); $u = Contact::make_keyed($this->conf, [ - "email" => "anonymous10", "disablement" => Contact::DISABLEMENT_USER + "email" => "anonymous10", + "disablement" => Contact::DISABLEMENT_USER ])->store(Contact::SAVE_ANY_EMAIL); xassert($u->contactId > 0); xassert_eqq($this->conf->fetch_value("select password from ContactInfo where email='anonymous10'"), " nologin"); @@ -1636,7 +1637,7 @@ function test_user_registration() { // registering email of an author grants author privilege $u = maybe_user("thalerd@eecs.umich.edu"); xassert(!!$u); - xassert_eqq($u->disablement, Contact::DISABLEMENT_PLACEHOLDER); + xassert_eqq($u->disabled_flags(), Contact::DISABLEMENT_PLACEHOLDER); $u = Contact::make_email($this->conf, "thalerd@eecs.umich.edu")->store(); assert($u !== null); xassert($u->contactId > 0); @@ -1644,13 +1645,13 @@ function test_user_registration() { xassert_eqq($u->firstName, "David"); xassert_eqq($u->lastName, "Thaler"); xassert_eqq($u->affiliation, "University of Michigan"); - xassert_eqq($u->disablement, 0); + xassert_eqq($u->disabled_flags(), 0); xassert($this->conf->checked_paper_by_id(27)->has_author($u)); // registration-time name overrides author name $u = maybe_user("schwartz@ctr.columbia.edu"); xassert(!!$u); - xassert_eqq($u->disablement, Contact::DISABLEMENT_PLACEHOLDER); + xassert_eqq($u->disabled_flags(), Contact::DISABLEMENT_PLACEHOLDER); $u = Contact::make_keyed($this->conf, ["email" => "schwartz@ctr.columbia.edu", "first" => "cengiz!", "last" => "SCHwarTZ", "affiliation" => "Coyumbia"])->store(); assert($u !== null); xassert($u->contactId > 0); @@ -1658,7 +1659,7 @@ function test_user_registration() { xassert_eqq($u->firstName, "cengiz!"); xassert_eqq($u->lastName, "SCHwarTZ"); xassert_eqq($u->affiliation, "Coyumbia"); - xassert_eqq($u->disablement, 0); + xassert_eqq($u->disabled_flags(), 0); xassert($this->conf->checked_paper_by_id(26)->has_author($u)); } @@ -1874,7 +1875,7 @@ function test_withdraw_review_interaction() { function test_withdraw_notification() { $u = $this->conf->checked_user_by_email("anja@research.att.com"); - xassert_eqq($u->disablement, 0); + xassert_eqq($u->disabled_flags(), 0); MailChecker::clear(); xassert_assign($this->u_chair, "paper,action,reason\n16,withdraw,Suckola\n"); MailChecker::check_db("withdraw-16-admin-notify");