diff --git a/apps/systemtags/list.php b/apps/systemtags/list.php
index 67fdeca93e9a7ebd17978d3c8ad1d1f71d3790d5..f8cdf715f17448b5d2b78e26b6998ef361792c8f 100644
--- a/apps/systemtags/list.php
+++ b/apps/systemtags/list.php
@@ -19,8 +19,24 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>
  *
  */
+
+// WARNING: this should be moved to proper AppFramework handling
 // Check if we are a user
-OCP\User::checkLoggedIn();
+if (!\OC::$server->getUserSession()->isLoggedIn()) {
+	header('Location: ' . \OC::$server->getURLGenerator()->linkToRoute(
+			'core.login.showLoginForm',
+			[
+				'redirect_url' => \OC::$server->getRequest()->getRequestUri(),
+			]
+		)
+	);
+	exit();
+}
+// Redirect to 2FA challenge selection if 2FA challenge was not solved yet
+if (\OC::$server->getTwoFactorAuthManager()->needsSecondFactor(\OC::$server->getUserSession()->getUser())) {
+	header('Location: ' . \OC::$server->getURLGenerator()->linkToRoute('core.TwoFactorChallenge.selectChallenge'));
+	exit();
+}
 
 $tmpl = new OCP\Template('systemtags', 'list', '');
 $tmpl->printPage();