diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php index 43adb4cf58..73a6fb42b2 100644 --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -189,6 +189,7 @@ phutil_register_library_map(array( 'ConduitAPI_user_Method' => 'applications/conduit/method/user/ConduitAPI_user_Method.php', 'ConduitAPI_user_addstatus_Method' => 'applications/conduit/method/user/ConduitAPI_user_addstatus_Method.php', 'ConduitAPI_user_disable_Method' => 'applications/conduit/method/user/ConduitAPI_user_disable_Method.php', + 'ConduitAPI_user_enable_Method' => 'applications/conduit/method/user/ConduitAPI_user_enable_Method.php', 'ConduitAPI_user_find_Method' => 'applications/conduit/method/user/ConduitAPI_user_find_Method.php', 'ConduitAPI_user_info_Method' => 'applications/conduit/method/user/ConduitAPI_user_info_Method.php', 'ConduitAPI_user_query_Method' => 'applications/conduit/method/user/ConduitAPI_user_query_Method.php', @@ -1252,6 +1253,7 @@ phutil_register_library_map(array( 'ConduitAPI_user_Method' => 'ConduitAPIMethod', 'ConduitAPI_user_addstatus_Method' => 'ConduitAPI_user_Method', 'ConduitAPI_user_disable_Method' => 'ConduitAPI_user_Method', + 'ConduitAPI_user_enable_Method' => 'ConduitAPI_user_Method', 'ConduitAPI_user_find_Method' => 'ConduitAPI_user_Method', 'ConduitAPI_user_info_Method' => 'ConduitAPI_user_Method', 'ConduitAPI_user_query_Method' => 'ConduitAPI_user_Method', diff --git a/src/applications/conduit/method/user/ConduitAPI_user_enable_Method.php b/src/applications/conduit/method/user/ConduitAPI_user_enable_Method.php new file mode 100644 index 0000000000..1ed9a80677 --- /dev/null +++ b/src/applications/conduit/method/user/ConduitAPI_user_enable_Method.php @@ -0,0 +1,69 @@ + 'required list', + ); + } + + public function defineReturnType() { + return 'void'; + } + + public function defineErrorTypes() { + return array( + 'ERR-PERMISSIONS' => 'Only admins can call this method.', + 'ERR-BAD-PHID' => 'Non existent user PHID.', + ); + } + + protected function execute(ConduitAPIRequest $request) { + $actor = $request->getUser(); + if (!$actor->getIsAdmin()) { + throw new ConduitException('ERR-PERMISSIONS'); + } + + $phids = $request->getValue('phids'); + + $users = id(new PhabricatorUser())->loadAllWhere( + 'phid IN (%Ls)', + $phids); + + if (count($phids) != count($users)) { + throw new ConduitException('ERR-BAD-PHID'); + } + + foreach ($users as $user) { + id(new PhabricatorUserEditor()) + ->setActor($actor) + ->disableUser($user, false); + } + } + +}