From 02f02d44dc46fc4a0813833ca3fa9e5ebc724d09 Mon Sep 17 00:00:00 2001
From: Hypolite Petovan <hypolite@mrpetovan.com>
Date: Fri, 11 Oct 2019 12:37:24 -0400
Subject: [PATCH] Move mod/manage to src/Module/Delegation

- Move templates/manage to templates/delegation
- Update navigation links
- Update CSS classes
---
 doc/Addons.md                             |   2 +-
 doc/de/Addons.md                          |   2 +-
 mod/manage.php                            | 137 ----------------------
 src/Content/Nav.php                       |   6 +-
 src/Module/Delegation.php                 | 136 +++++++++++++++++++++
 static/routes.config.php                  |   1 +
 view/templates/delegation.tpl             |  37 ++++++
 view/templates/manage.tpl                 |  33 ------
 view/templates/nav.tpl                    |   2 +-
 view/theme/duepuntozero/style.css         |   6 +-
 view/theme/duepuntozero/templates/nav.tpl |   2 +-
 view/theme/frio/css/style.css             |   4 +-
 view/theme/frio/templates/nav.tpl         |  10 +-
 view/theme/quattro/dark/style.css         |   2 +-
 view/theme/quattro/green/style.css        |   2 +-
 view/theme/quattro/lilac/style.css        |   2 +-
 view/theme/quattro/quattro.less           |   2 +-
 view/theme/quattro/templates/nav.tpl      |   2 +-
 view/theme/smoothly/style.css             |   2 +-
 view/theme/smoothly/templates/nav.tpl     |   2 +-
 view/theme/vier/plus.css                  |   2 +-
 view/theme/vier/plusminus.css             |   2 +-
 view/theme/vier/style.css                 |   6 +-
 view/theme/vier/templates/nav.tpl         |   2 +-
 view/theme/vier/theme.php                 |   2 +-
 25 files changed, 204 insertions(+), 202 deletions(-)
 delete mode 100644 mod/manage.php
 create mode 100644 src/Module/Delegation.php
 create mode 100644 view/templates/delegation.tpl
 delete mode 100644 view/templates/manage.tpl

diff --git a/doc/Addons.md b/doc/Addons.md
index 47d16085a1..0382cee49c 100644
--- a/doc/Addons.md
+++ b/doc/Addons.md
@@ -533,7 +533,7 @@ Here is a complete list of all hook callbacks with file locations (as of 24-Sep-
 
     Hook::callAll("parse_link", $arr);
 
-### mod/manage.php
+### src/Module/Delegation.php
 
     Hook::callAll('home_init', $ret);
 
diff --git a/doc/de/Addons.md b/doc/de/Addons.md
index 35ce0e28b4..3cbbb4b0be 100644
--- a/doc/de/Addons.md
+++ b/doc/de/Addons.md
@@ -256,7 +256,7 @@ Eine komplette Liste aller Hook-Callbacks mit den zugehörigen Dateien (am 01-Ap
 
     Hook::callAll("parse_link", $arr);
 
-### mod/manage.php
+### src/Module/Delegation.php
 
     Hook::callAll('home_init', $ret);
 
diff --git a/mod/manage.php b/mod/manage.php
deleted file mode 100644
index a1ca87e963..0000000000
--- a/mod/manage.php
+++ /dev/null
@@ -1,137 +0,0 @@
-<?php
-/**
- * @file mod/manage.php
- */
-
-use Friendica\App;
-use Friendica\Core\Hook;
-use Friendica\Core\L10n;
-use Friendica\Core\Renderer;
-use Friendica\Core\Session;
-use Friendica\Database\DBA;
-
-function manage_post(App $a) {
-
-	if (!local_user()) {
-		return;
-	}
-
-	$uid = local_user();
-	$orig_record = $a->user;
-
-	if(!empty($_SESSION['submanage'])) {
-		$user = DBA::selectFirst('user', [], ['uid' => $_SESSION['submanage']]);
-		if (DBA::isResult($user)) {
-			$uid = intval($user['uid']);
-			$orig_record = $user;
-		}
-	}
-
-	$identity = (!empty($_POST['identity']) ? intval($_POST['identity']) : 0);
-	if (!$identity) {
-		return;
-	}
-
-	$limited_id = 0;
-	$original_id = $uid;
-
-	$manage = DBA::select('manage', ['mid'], ['uid' => $uid]);
-	while ($m = DBA::fetch($manage)) {
-		if ($identity == $m['mid']) {
-			$limited_id = $m['mid'];
-			break;
-		}
-	}
-	DBA::close($manage);
-
-	if ($limited_id) {
-		$user = DBA::selectFirst('user', [], ['uid' => $limited_id]);
-	} else {
-		// Check if the target user is one of our children
-		$user = DBA::selectFirst('user', [], ['uid' => $identity, 'parent-uid' => $orig_record['uid']]);
-
-		// Check if the target user is one of our siblings
-		if (!DBA::isResult($user) && ($orig_record['parent-uid'] != 0)) {
-			$user = DBA::selectFirst('user', [], ['uid' => $identity, 'parent-uid' => $orig_record['parent-uid']]);
-		}
-
-		// Check if it's our parent
-		if (!DBA::isResult($user) && ($orig_record['parent-uid'] != 0) && ($orig_record['parent-uid'] == $identity)) {
-			$user = DBA::selectFirst('user', [], ['uid' => $identity]);
-		}
-
-		// Finally check if it's out own user
-		if (!DBA::isResult($user) && ($orig_record['uid'] != 0) && ($orig_record['uid'] == $identity)) {
-			$user = DBA::selectFirst('user', [], ['uid' => $identity]);
-		}
-
-	}
-
-	if (!DBA::isResult($user)) {
-		return;
-	}
-
-	Session::clear();
-
-	Session::setAuthenticatedForUser($a, $user, true, true);
-
-	if ($limited_id) {
-		$_SESSION['submanage'] = $original_id;
-	}
-
-	$ret = [];
-	Hook::callAll('home_init', $ret);
-
-	$a->internalRedirect('profile/' . $a->user['nickname']);
-	// NOTREACHED
-}
-
-function manage_content(App $a) {
-
-	if (!local_user()) {
-		notice(L10n::t('Permission denied.') . EOL);
-		return;
-	}
-
-	if (!empty($_GET['identity'])) {
-		$_POST['identity'] = $_GET['identity'];
-		manage_post($a);
-		return;
-	}
-
-	$identities = $a->identities;
-
-	//getting additinal information for each identity
-	foreach ($identities as $key => $id) {
-		$thumb = DBA::selectFirst('contact', ['thumb'], ['uid' => $id['uid'] , 'self' => true]);
-		if (!DBA::isResult($thumb)) {
-			continue;
-		}
-
-		$identities[$key]['thumb'] = $thumb['thumb'];
-
-		$identities[$key]['selected'] = ($id['nickname'] === $a->user['nickname']);
-
-		$condition = ["`uid` = ? AND `msg` != '' AND NOT (`type` IN (?, ?)) AND NOT `seen`", $id['uid'], NOTIFY_INTRO, NOTIFY_MAIL];
-		$params = ['distinct' => true, 'expression' => 'parent'];
-		$notifications = DBA::count('notify', $condition, $params);
-
-		$params = ['distinct' => true, 'expression' => 'convid'];
-		$notifications += DBA::count('mail', ['uid' => $id['uid'], 'seen' => false], $params);
-
-		$notifications += DBA::count('intro', ['blocked' => false, 'ignore' => false, 'uid' => $id['uid']]);
-
-		$identities[$key]['notifications'] = $notifications;
-	}
-
-	$o = Renderer::replaceMacros(Renderer::getMarkupTemplate('manage.tpl'), [
-		'$title' => L10n::t('Manage Identities and/or Pages'),
-		'$desc' => L10n::t('Toggle between different identities or community/group pages which share your account details or which you have been granted "manage" permissions'),
-		'$choose' => L10n::t('Select an identity to manage: '),
-		'$identities' => $identities,
-		'$submit' => L10n::t('Submit'),
-	]);
-
-	return $o;
-
-}
diff --git a/src/Content/Nav.php b/src/Content/Nav.php
index e81214cee0..ff1680ab3f 100644
--- a/src/Content/Nav.php
+++ b/src/Content/Nav.php
@@ -29,7 +29,7 @@ class Nav
 		'directory' => null,
 		'settings'  => null,
 		'contacts'  => null,
-		'manage'    => null,
+		'delegation'=> null,
 		'events'    => null,
 		'register'  => null
 	];
@@ -257,11 +257,9 @@ class Nav
 			$nav['messages']['new'] = ['message/new', L10n::t('New Message'), '', L10n::t('New Message')];
 
 			if (is_array($a->identities) && count($a->identities) > 1) {
-				$nav['manage'] = ['manage', L10n::t('Manage'), '', L10n::t('Manage other pages')];
+				$nav['delegation'] = ['delegation', L10n::t('Delegation'), '', L10n::t('Manage other pages')];
 			}
 
-			$nav['delegations'] = ['settings/delegation', L10n::t('Delegations'), '', L10n::t('Delegate Page Management')];
-
 			$nav['settings'] = ['settings', L10n::t('Settings'), '', L10n::t('Account settings')];
 
 			if (Feature::isEnabled(local_user(), 'multi_profiles')) {
diff --git a/src/Module/Delegation.php b/src/Module/Delegation.php
new file mode 100644
index 0000000000..77baefeaa5
--- /dev/null
+++ b/src/Module/Delegation.php
@@ -0,0 +1,136 @@
+<?php
+
+namespace Friendica\Module;
+
+use Friendica\BaseModule;
+use Friendica\Core\Hook;
+use Friendica\Core\L10n;
+use Friendica\Core\Renderer;
+use Friendica\Core\Session;
+use Friendica\Database\DBA;
+use Friendica\Model\Contact;
+use Friendica\Model\User;
+use Friendica\Network\HTTPException\ForbiddenException;
+
+/**
+ * Switches current user between delegates/parent user
+ */
+class Delegation extends BaseModule
+{
+	public static function post()
+	{
+		if (!local_user()) {
+			return;
+		}
+
+		$uid = local_user();
+		$orig_record = self::getApp()->user;
+
+		if (Session::get('submanage')) {
+			$user = User::getById(Session::get('submanage'));
+			if (DBA::isResult($user)) {
+				$uid = intval($user['uid']);
+				$orig_record = $user;
+			}
+		}
+
+		$identity = intval($_POST['identity'] ?? 0);
+		if (!$identity) {
+			return;
+		}
+
+		$limited_id = 0;
+		$original_id = $uid;
+
+		$manages = DBA::selectToArray('manage', ['mid'], ['uid' => $uid]);
+		foreach ($manages as $manage) {
+			if ($identity == $manage['mid']) {
+				$limited_id = $manage['mid'];
+				break;
+			}
+		}
+
+		if ($limited_id) {
+			$user = User::getById($limited_id);
+		} else {
+			// Check if the target user is one of our children
+			$user = DBA::selectFirst('user', [], ['uid' => $identity, 'parent-uid' => $orig_record['uid']]);
+
+			// Check if the target user is one of our siblings
+			if (!DBA::isResult($user) && ($orig_record['parent-uid'] != 0)) {
+				$user = DBA::selectFirst('user', [], ['uid' => $identity, 'parent-uid' => $orig_record['parent-uid']]);
+			}
+
+			// Check if it's our parent or our own user
+			if (!DBA::isResult($user)
+				&& (
+					$orig_record['parent-uid'] != 0 && $orig_record['parent-uid'] == $identity
+					||
+					$orig_record['uid'] != 0 && $orig_record['uid'] == $identity
+				)
+			) {
+				$user = User::getById($identity);
+			}
+		}
+
+		if (!DBA::isResult($user)) {
+			return;
+		}
+
+		Session::clear();
+
+		Session::setAuthenticatedForUser(self::getApp(), $user, true, true);
+
+		if ($limited_id) {
+			Session::set('submanage', $original_id);
+		}
+
+		$ret = [];
+		Hook::callAll('home_init', $ret);
+
+		self::getApp()->internalRedirect('profile/' . self::getApp()->user['nickname']);
+		// NOTREACHED
+	}
+
+	public static function content()
+	{
+		if (!local_user()) {
+			throw new ForbiddenException(L10n::t('Permission denied.'));
+		}
+
+		$identities = self::getApp()->identities;
+
+		//getting additinal information for each identity
+		foreach ($identities as $key => $identity) {
+			$thumb = Contact::selectFirst(['thumb'], ['uid' => $identity['uid'], 'self' => true]);
+			if (!DBA::isResult($thumb)) {
+				continue;
+			}
+
+			$identities[$key]['thumb'] = $thumb['thumb'];
+
+			$identities[$key]['selected'] = ($identity['nickname'] === self::getApp()->user['nickname']);
+
+			$condition = ["`uid` = ? AND `msg` != '' AND NOT (`type` IN (?, ?)) AND NOT `seen`", $identity['uid'], NOTIFY_INTRO, NOTIFY_MAIL];
+			$params = ['distinct' => true, 'expression' => 'parent'];
+			$notifications = DBA::count('notify', $condition, $params);
+
+			$params = ['distinct' => true, 'expression' => 'convid'];
+			$notifications += DBA::count('mail', ['uid' => $identity['uid'], 'seen' => false], $params);
+
+			$notifications += DBA::count('intro', ['blocked' => false, 'ignore' => false, 'uid' => $identity['uid']]);
+
+			$identities[$key]['notifications'] = $notifications;
+		}
+
+		$o = Renderer::replaceMacros(Renderer::getMarkupTemplate('delegation.tpl'), [
+			'$title'      => L10n::t('Manage Identities and/or Pages'),
+			'$desc'       => L10n::t('Toggle between different identities or community/group pages which share your account details or which you have been granted "manage" permissions'),
+			'$choose'     => L10n::t('Select an identity to manage: '),
+			'$identities' => $identities,
+			'$submit'     => L10n::t('Submit'),
+		]);
+
+		return $o;
+	}
+}
diff --git a/static/routes.config.php b/static/routes.config.php
index 841fd68f99..ef65c4685b 100644
--- a/static/routes.config.php
+++ b/static/routes.config.php
@@ -92,6 +92,7 @@ return [
 		'/ignored'                => [Module\Contact::class, [R::GET]],
 	],
 	'/credits'   => [Module\Credits::class,          [R::GET]],
+	'/delegation'=> [Module\Delegation::class,       [R::GET, R::POST]],
 	'/dirfind'   => [Module\Search\Directory::class, [R::GET]],
 	'/directory' => [Module\Directory::class,        [R::GET]],
 
diff --git a/view/templates/delegation.tpl b/view/templates/delegation.tpl
new file mode 100644
index 0000000000..0e8e406d0c
--- /dev/null
+++ b/view/templates/delegation.tpl
@@ -0,0 +1,37 @@
+
+<h3>{{$title}}</h3>
+<div id="identity-delegation-desc">{{$desc nofilter}}</div>
+<div id="identity-delegation-choose">{{$choose}}</div>
+
+<div id="identity-selector-wrapper" role="menu">
+	<form action="delegation" method="post">
+
+	{{foreach $identities as $identity}}
+		<div class="itentity-match-wrapper {{if $identity.selected}}selected-identity{{/if}}" id="identity-match-{{$identity.uid}}">
+			<div class="identity-match-photo" id="identity-match-photo-{{$identity.uid}}">
+				<button type="submit" name="identity" value="{{$identity.uid}}" title="{{$identity.username}}">
+					<img src="{{$identity.thumb}}" alt="{{$identity.username}}" />
+					{{if $identity.notifications}}<span class="delegation-notify badge">{{$identity.notifications}}</span>{{/if}}
+				</button>
+			</div>
+
+			<div class="identity-match-break"></div>
+
+			<div class="identity-match-desc">
+				<div class="identity-match-name" id="identity-match-name-{{$identity.uid}}">
+					{{if $identity.selected}}
+						{{$identity.username}}
+					{{else}}
+						<button type="submit" name="identity" class="btn-link" value="{{$identity.uid}}">{{$identity.username}}</button>
+					{{/if}}
+				</div>
+				<div class="identity-match-details" id="identity-match-nick-{{$identity.uid}}">({{$identity.nickname}})</div>
+			</div>
+			<div class="identity-match-end"></div>
+		</div>
+	{{/foreach}}
+
+	<div class="identity-match-break"></div>
+
+	</form>
+</div>
diff --git a/view/templates/manage.tpl b/view/templates/manage.tpl
deleted file mode 100644
index d5ea0dc05f..0000000000
--- a/view/templates/manage.tpl
+++ /dev/null
@@ -1,33 +0,0 @@
-
-<h3>{{$title}}</h3>
-<div id="identity-manage-desc">{{$desc nofilter}}</div>
-<div id="identity-manage-choose">{{$choose}}</div>
-
-<div id="identity-selector-wrapper" role="menu">
-	<form action="manage" method="post" >
-
-	{{foreach $identities as $id}}
-		<div class="itentity-match-wrapper {{if $id.selected}}selected-identity{{/if}}" id="identity-match-{{$id.uid}}">
-			<div class="identity-match-photo" id="identity-match-photo-{{$id.uid}}">
-				<button name="identity" value="{{$id.uid}}" onclick="this.form.submit();" title="{{$id.username}}">
-					<img src="{{$id.thumb}}" alt="{{$id.username}}" />
-					{{if $id.notifications}}<span class="manage-notify badge">{{$id.notifications}}</span>{{/if}}
-				</button>
-			</div>
-
-			<div class="identity-match-break"></div>
-
-			<div class="identity-match-desc">
-				<div class="identity-match-name" id="identity-match-name-{{$id.uid}}">
-					{{if $id.selected}}{{$id.username}}{{else}}<a role="menuitem" href="manage?identity={{$id.uid}}">{{$id.username}}</a>{{/if}}
-				</div>
-				<div class="identity-match-details" id="identity-match-nick-{{$id.uid}}">({{$id.nickname}})</div>
-			</div>
-			<div class="identity-match-end"></div>
-		</div>
-	{{/foreach}}
-
-	<div class="identity-match-break"></div>
-
-	</form>
-</div>
diff --git a/view/templates/nav.tpl b/view/templates/nav.tpl
index 17a60113ca..b9c2cf1f12 100644
--- a/view/templates/nav.tpl
+++ b/view/templates/nav.tpl
@@ -44,7 +44,7 @@
 
 
 
-	{{if $nav.manage}}<a id="nav-manage-link" class="nav-commlink {{$nav.manage.2}} {{$sel.manage}}" href="{{$nav.manage.0}}" title="{{$nav.manage.3}}">{{$nav.manage.1}}</a>{{/if}}
+	{{if $nav.delegation}}<a id="nav-delegation-link" class="nav-commlink {{$nav.delegation.2}} {{$sel.delegation}}" href="{{$nav.delegation.0}}" title="{{$nav.delegation.3}}">{{$nav.delegation.1}}</a>{{/if}}
 
 
 		{{if $nav.notifications}}
diff --git a/view/theme/duepuntozero/style.css b/view/theme/duepuntozero/style.css
index 412899fc77..9bad9d3480 100644
--- a/view/theme/duepuntozero/style.css
+++ b/view/theme/duepuntozero/style.css
@@ -2724,12 +2724,12 @@ aside input[type='text'] {
 	margin: 10px;
 }
 
-#identity-manage-desc {
+#identity-delegation-desc {
 	margin-top:15px;
 	margin-bottom: 15px;
 }
 
-#identity-manage-choose {
+#identity-delegation-choose {
 	margin-bottom: 15px;
 }
 
@@ -3382,7 +3382,7 @@ div.jGrowl div.info {
 }
 
 /* notifications popup menu */
-.manage-notify {
+.delegation-notify {
   font-size: 10px;
   padding: 1px 3px;
   top: 0px;
diff --git a/view/theme/duepuntozero/templates/nav.tpl b/view/theme/duepuntozero/templates/nav.tpl
index aac7aaeb24..3a0db1264b 100644
--- a/view/theme/duepuntozero/templates/nav.tpl
+++ b/view/theme/duepuntozero/templates/nav.tpl
@@ -62,7 +62,7 @@
 	{{if $nav.contacts}}<a id="nav-contacts-link" class="nav-link {{$nav.contacts.2}}" href="{{$nav.contacts.0}}" title="{{$nav.contacts.3}}" >{{$nav.contacts.1}}</a>{{/if}}
 
 
-	{{if $nav.manage}}<a id="nav-manage-link" class="nav-link {{$nav.manage.2}} {{$sel.manage}}" href="{{$nav.manage.0}}" title="{{$nav.manage.3}}">{{$nav.manage.1}}</a>{{/if}}
+	{{if $nav.delegation}}<a id="nav-delegation-link" class="nav-link {{$nav.delegation.2}} {{$sel.delegation}}" href="{{$nav.delegation.0}}" title="{{$nav.delegation.3}}">{{$nav.delegation.1}}</a>{{/if}}
 	</span>
 	<span id="nav-end"></span>
 	<span id="banner">{{$banner nofilter}}</span>
diff --git a/view/theme/frio/css/style.css b/view/theme/frio/css/style.css
index 2cfc63d367..1d47d862b1 100644
--- a/view/theme/frio/css/style.css
+++ b/view/theme/frio/css/style.css
@@ -2339,7 +2339,7 @@ ul.dropdown-menu li:hover {
 .generic-page-wrapper, .profile_photo-content-wrapper, .videos-content-wrapper,
  .suggest-content-wrapper, .common-content-wrapper, .help-content-wrapper,
 .allfriends-content-wrapper, .match-content-wrapper, .dirfind-content-wrapper,
-.manage-content-wrapper, .notes-content-wrapper,
+.delegation-content-wrapper, .notes-content-wrapper,
 .message-content-wrapper, .apps-content-wrapper,
 #adminpage, .delegate-content-wrapper, .uexport-content-wrapper,
 .dfrn_request-content-wrapper,
@@ -3574,7 +3574,7 @@ section .profile-match-wrapper {
 		right: 10px;
 	}
 
-	.generic-page-wrapper, .profile_photo-content-wrapper, .videos-content-wrapper, .suggest-content-wrapper, .common-content-wrapper, .help-content-wrapper, .allfriends-content-wrapper, .match-content-wrapper, .dirfind-content-wrapper, .directory-content-wrapper, .manage-content-wrapper, .notes-content-wrapper, .message-content-wrapper, .apps-content-wrapper, #adminpage, .delegate-content-wrapper, .uexport-content-wrapper, .dfrn_request-content-wrapper, .friendica-content-wrapper, .credits-content-wrapper, .nogroup-content-wrapper, .profperm-content-wrapper, .invite-content-wrapper, .tos-content-wrapper, .fsuggest-content-wrapper {
+	.generic-page-wrapper, .profile_photo-content-wrapper, .videos-content-wrapper, .suggest-content-wrapper, .common-content-wrapper, .help-content-wrapper, .allfriends-content-wrapper, .match-content-wrapper, .dirfind-content-wrapper, .directory-content-wrapper, .delegation-content-wrapper, .notes-content-wrapper, .message-content-wrapper, .apps-content-wrapper, #adminpage, .delegate-content-wrapper, .uexport-content-wrapper, .dfrn_request-content-wrapper, .friendica-content-wrapper, .credits-content-wrapper, .nogroup-content-wrapper, .profperm-content-wrapper, .invite-content-wrapper, .tos-content-wrapper, .fsuggest-content-wrapper {
 		border-radius: 0;
 		padding: 10px;
 	}
diff --git a/view/theme/frio/templates/nav.tpl b/view/theme/frio/templates/nav.tpl
index 4698fb6578..7df6dd04f1 100644
--- a/view/theme/frio/templates/nav.tpl
+++ b/view/theme/frio/templates/nav.tpl
@@ -149,13 +149,13 @@
 							{{if $nav.contacts}}
 							<li role="presentation"><a role="menuitem" id="nav-menu-contacts-link" class="nav-link {{$nav.contacts.2}}" href="{{$nav.contacts.0}}" title="{{$nav.contacts.3}}"><i class="fa fa-users fa-fw" aria-hidden="true"></i> {{$nav.contacts.1}}</a><span id="intro-update-li" class="nav-intro-badge badge nav-notify"></span></li>
 							{{/if}}
-							{{if $nav.manage}}
-							<li role="presentation"><a role="menuitem" id="nav-manage-link" class="nav-commlink {{$nav.manage.2}} {{$sel.manage}}" href="{{$nav.manage.0}}" title="{{$nav.manage.3}}"><i class="fa fa-flag fa-fw" aria-hidden="true"></i> {{$nav.manage.1}}</a></li>
+							{{if $nav.delegation}}
+							<li role="presentation"><a role="menuitem" id="nav-delegation-link" class="nav-commlink {{$nav.delegation.2}} {{$sel.delegation}}" href="{{$nav.delegation.0}}" title="{{$nav.delegation.3}}"><i class="fa fa-flag fa-fw" aria-hidden="true"></i> {{$nav.delegation.1}}</a></li>
 							{{/if}}
 							<li role="presentation"><a role="menuitem" id="nav-directory-link" class="nav-link {{$nav.directory.2}}" href="{{$nav.directory.0}}" title="{{$nav.directory.3}}"><i class="fa fa-sitemap fa-fw" aria-hidden="true"></i>{{$nav.directory.1}}</a></li>
 							<li role="presentation" class="divider"></li>
 							{{if $nav.apps}}
-							<li role="presentation"><a role="menuitem" id="nav-apps-link" class="nav-link {{$nav.apps.2}} {{$sel.manage}}" href="{{$nav.apps.0}}" title="{{$nav.apps.3}}" ><i class="fa fa-puzzle-piece fa-fw" aria-hidden="true"></i> {{$nav.apps.1}}</a>
+							<li role="presentation"><a role="menuitem" id="nav-apps-link" class="nav-link {{$nav.apps.2}}" href="{{$nav.apps.0}}" title="{{$nav.apps.3}}" ><i class="fa fa-puzzle-piece fa-fw" aria-hidden="true"></i> {{$nav.apps.1}}</a>
 							<li role="presentation" class="divider"></li>
 							{{/if}}
 							{{if $nav.help}}
@@ -207,8 +207,8 @@
 						{{if $nav.messages}}
 						<li role="presentation" class="list-group-item"><a role="menuitem" class="nav-link {{$nav.messages.2}} {{$sel.messages}}" href="{{$nav.messages.0}}" title="{{$nav.messages.3}}" ><i class="fa fa-envelope fa-fw" aria-hidden="true"></i> {{$nav.messages.1}}</a></li>
 						{{/if}}
-						{{if $nav.manage}}
-						<li role="presentation" class="list-group-item"><a role="menuitem" class="nav-commlink {{$nav.manage.2}} {{$sel.manage}}" href="{{$nav.manage.0}}" title="{{$nav.manage.3}}"><i class="fa fa-flag fa-fw" aria-hidden="true"></i> {{$nav.manage.1}}</a></li>
+						{{if $nav.delegation}}
+						<li role="presentation" class="list-group-item"><a role="menuitem" class="nav-commlink {{$nav.delegation.2}} {{$sel.delegation}}" href="{{$nav.delegation.0}}" title="{{$nav.delegation.3}}"><i class="fa fa-flag fa-fw" aria-hidden="true"></i> {{$nav.delegation.1}}</a></li>
 						{{/if}}
 						{{if $nav.settings}}
 						<li role="presentation" class="list-group-item"><a role="menuitem" class="nav-link {{$nav.settings.2}}" href="{{$nav.settings.0}}" title="{{$nav.settings.3}}"><i class="fa fa-cog fa-fw" aria-hidden="true"></i> {{$nav.settings.1}}</a></li>
diff --git a/view/theme/quattro/dark/style.css b/view/theme/quattro/dark/style.css
index bfb078e566..6b4d2b880b 100644
--- a/view/theme/quattro/dark/style.css
+++ b/view/theme/quattro/dark/style.css
@@ -2136,7 +2136,7 @@ ul.tabs li .active {
 .identity-match-photo {
   position: relative;
 }
-.identity-match-photo .manage-notify {
+.identity-match-photo .delegation-notify {
   background-color: #19AEFF;
   border-radius: 5px;
   font-size: 10px;
diff --git a/view/theme/quattro/green/style.css b/view/theme/quattro/green/style.css
index 1dce844acd..326a2fbfde 100644
--- a/view/theme/quattro/green/style.css
+++ b/view/theme/quattro/green/style.css
@@ -2136,7 +2136,7 @@ ul.tabs li .active {
 .identity-match-photo {
   position: relative;
 }
-.identity-match-photo .manage-notify {
+.identity-match-photo .delegation-notify {
   background-color: #19AEFF;
   border-radius: 5px;
   font-size: 10px;
diff --git a/view/theme/quattro/lilac/style.css b/view/theme/quattro/lilac/style.css
index 870fe6ce23..064b60ba69 100644
--- a/view/theme/quattro/lilac/style.css
+++ b/view/theme/quattro/lilac/style.css
@@ -2136,7 +2136,7 @@ ul.tabs li .active {
 .identity-match-photo {
   position: relative;
 }
-.identity-match-photo .manage-notify {
+.identity-match-photo .delegation-notify {
   background-color: #19AEFF;
   border-radius: 5px;
   font-size: 10px;
diff --git a/view/theme/quattro/quattro.less b/view/theme/quattro/quattro.less
index 415eda83c5..0c1c21a7b7 100644
--- a/view/theme/quattro/quattro.less
+++ b/view/theme/quattro/quattro.less
@@ -1419,7 +1419,7 @@ ul.tabs {
 /* manage page */
 .identity-match-photo {
 	position: relative;
-	.manage-notify {
+	.delegation-notify {
 		background-color: #19AEFF;
 		border-radius: 5px;
 		font-size: 10px;
diff --git a/view/theme/quattro/templates/nav.tpl b/view/theme/quattro/templates/nav.tpl
index cb5412c161..c42e570f5d 100644
--- a/view/theme/quattro/templates/nav.tpl
+++ b/view/theme/quattro/templates/nav.tpl
@@ -71,7 +71,7 @@
 
 		<li id="nav-site-linkmenu" class="nav-menu-icon"><a href="#" rel="#nav-site-menu"><span class="icon s22 gear">Site</span></a>
 			<ul id="nav-site-menu" class="menu-popup">
-				{{if $nav.manage}}<li><a class="{{$nav.manage.2}}" href="{{$nav.manage.0}}" title="{{$nav.manage.3}}">{{$nav.manage.1}}</a></li>{{/if}}
+				{{if $nav.delegation}}<li><a class="{{$nav.delegation.2}}" href="{{$nav.delegation.0}}" title="{{$nav.delegation.3}}">{{$nav.delegation.1}}</a></li>{{/if}}
 
 				{{if $nav.settings}}<li><a class="{{$nav.settings.2}}" href="{{$nav.settings.0}}" title="{{$nav.settings.3}}">{{$nav.settings.1}}</a></li>{{/if}}
 				{{if $nav.admin}}<li><a accesskey="a" class="{{$nav.admin.2}}" href="{{$nav.admin.0}}" title="{{$nav.admin.3}}" >{{$nav.admin.1}}</a></li>{{/if}}
diff --git a/view/theme/smoothly/style.css b/view/theme/smoothly/style.css
index fec5d2bda5..edbd705747 100644
--- a/view/theme/smoothly/style.css
+++ b/view/theme/smoothly/style.css
@@ -4287,7 +4287,7 @@ a.active {
 }
 
 /* notifications popup menu */
-.manage-notify {
+.delegation-notify {
 	font-size: 10px;
 	padding: 1px 3px;
 	top: 0px;
diff --git a/view/theme/smoothly/templates/nav.tpl b/view/theme/smoothly/templates/nav.tpl
index 757371677b..a5c16d23f3 100644
--- a/view/theme/smoothly/templates/nav.tpl
+++ b/view/theme/smoothly/templates/nav.tpl
@@ -45,7 +45,7 @@
 			{{if $nav.profiles}}<li><a id="nav-profiles-link" class="nav-commlink nav-sep {{$nav.profiles.2}}" href="{{$nav.profiles.0}}">{{$nav.profiles.1}}</a></li>{{/if}}
 			{{if $nav.settings}}<li><a id="nav-settings-link" class="nav-commlink {{$nav.settings.2}}" href="{{$nav.settings.0}}">{{$nav.settings.1}}</a></li>{{/if}}
 			
-			{{if $nav.manage}}<li><a id="nav-manage-link" class="nav-commlink {{$nav.manage.2}}" href="{{$nav.manage.0}}">{{$nav.manage.1}}</a></li>{{/if}}
+			{{if $nav.delegation}}<li><a id="nav-delegation-link" class="nav-commlink {{$nav.delegation.2}}" href="{{$nav.delegation.0}}">{{$nav.delegation.1}}</a></li>{{/if}}
 		
 			{{if $nav.admin}}<li><a id="nav-admin-link" class="nav-commlink {{$nav.admin.2}}" href="{{$nav.admin.0}}">{{$nav.admin.1}}</a></li>{{/if}}
 			
diff --git a/view/theme/vier/plus.css b/view/theme/vier/plus.css
index a8cf4d2b22..0bf2908531 100644
--- a/view/theme/vier/plus.css
+++ b/view/theme/vier/plus.css
@@ -17,7 +17,7 @@ nav a:hover,
   color: #000;
 }
 
-.manage-notify {
+.delegation-notify {
   background-color: #CB4437;
   border-radius: 10px;
   font: bold 11px/16px Arial;
diff --git a/view/theme/vier/plusminus.css b/view/theme/vier/plusminus.css
index 93c4fcc1c8..2be64ed422 100644
--- a/view/theme/vier/plusminus.css
+++ b/view/theme/vier/plusminus.css
@@ -54,7 +54,7 @@ nav a:hover,
   color: #000;
 }
 
-.manage-notify {
+.delegation-notify {
   background-color: #CB4437;
   border-radius: 10px;
   font: bold 11px/16px Arial;
diff --git a/view/theme/vier/style.css b/view/theme/vier/style.css
index 6506dadc16..7596ff5ca3 100644
--- a/view/theme/vier/style.css
+++ b/view/theme/vier/style.css
@@ -725,7 +725,7 @@ nav .nav-menu:hover {
 	text-decoration: none;
 }
 
-.manage-notify {
+.delegation-notify {
 	 background-color: #F80;
 	-moz-border-radius: 5px 5px 5px 5px;
 	-webkit-border-radius: 5px 5px 5px 5px;
@@ -2923,12 +2923,12 @@ a.mail-list-link {
 	margin: 0px;
 }
 
-#identity-manage-desc {
+#identity-delegation-desc {
 	margin-top:15px;
 	margin-bottom: 15px;
 }
 
-#identity-manage-choose {
+#identity-delegation-choose {
 	margin-bottom: 15px;
 }
 
diff --git a/view/theme/vier/templates/nav.tpl b/view/theme/vier/templates/nav.tpl
index efc578eb89..a10fd0ab3d 100644
--- a/view/theme/vier/templates/nav.tpl
+++ b/view/theme/vier/templates/nav.tpl
@@ -84,7 +84,7 @@
 					{{if $nav.introductions}}<li role="menuitem"><a class="{{$nav.introductions.2}}" href="{{$nav.introductions.0}}" title="{{$nav.introductions.3}}" >{{$nav.introductions.1}}</a><span id="intro-update-li" class="nav-notify"></span></li>{{/if}}
 					{{if $nav.contacts}}<li role="menuitem"><a class="{{$nav.contacts.2}}" href="{{$nav.contacts.0}}" title="{{$nav.contacts.3}}" >{{$nav.contacts.1}}</a></li>{{/if}}
 					{{if $nav.messages}}<li role="menuitem"><a class="{{$nav.messages.2}}" href="{{$nav.messages.0}}" title="{{$nav.messages.3}}" >{{$nav.messages.1}} <span id="mail-update-li" class="nav-notify"></span></a></li>{{/if}}
-					{{if $nav.manage}}<li role="menuitem"><a class="{{$nav.manage.2}}" href="{{$nav.manage.0}}" title="{{$nav.manage.3}}">{{$nav.manage.1}}</a></li>{{/if}}
+					{{if $nav.delegation}}<li role="menuitem"><a class="{{$nav.delegation.2}}" href="{{$nav.delegation.0}}" title="{{$nav.delegation.3}}">{{$nav.delegation.1}}</a></li>{{/if}}
 					{{if $nav.usermenu.1}}<li role="menuitem"><a class="{{$nav.usermenu.1.2}}" href="{{$nav.usermenu.1.0}}" title="{{$nav.usermenu.1.3}}">{{$nav.usermenu.1.1}}</a></li>{{/if}}
 					{{if $nav.settings}}<li role="menuitem"><a class="{{$nav.settings.2}}" href="{{$nav.settings.0}}" title="{{$nav.settings.3}}">{{$nav.settings.1}}</a></li>{{/if}}
 					{{if $nav.admin}}
diff --git a/view/theme/vier/theme.php b/view/theme/vier/theme.php
index 3e4a837cd0..771f84a7bb 100644
--- a/view/theme/vier/theme.php
+++ b/view/theme/vier/theme.php
@@ -104,7 +104,7 @@ EOT;
 
 	// Hide the left menu bar
 	/// @TODO maybe move this static array out where it should belong?
-	if (empty($a->page['aside']) && in_array($a->argv[0], ["community", "events", "help", "manage", "notifications",
+	if (empty($a->page['aside']) && in_array($a->argv[0], ["community", "events", "help", "delegation", "notifications",
 			"probe", "webfinger", "login", "invite", "credits"])) {
 		$a->page['htmlhead'] .= "<link rel='stylesheet' href='view/theme/vier/hide.css' />";
 	}