Skip to content

Commit c63d472

Browse files
authored
Hide flags nav for those that shouldn't have it. (#1944)
* Ref: Post #642 (comment) * Bloat up *mu2* *(mustache)* with some deep conditionals instead to achieve this. Not that this is a new thing. * Also expose "Yes" to Moderators for ambiguity. Parallel to actual flag list ambiguity. This can change if discussed with establishing owner but content will be semi-blocked when implemented *(fully on homepages and partial currently on flagged moderation lists)*. Post #1943 #1942 #785 NOTE: * If you don't "trust the admin" going up the hierarchy can block the content but need to know counts at least for manual validation and actions upon moderation. Auto-merge
1 parent 7d39a32 commit c63d472

3 files changed

Lines changed: 32 additions & 19 deletions

File tree

controllers/user.js

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -567,9 +567,6 @@ exports.view = function (aReq, aRes, aNext) {
567567
user.aboutRendered = renderMd(user.about);
568568
options.isYou = authedUser && user && authedUser._id == user._id;
569569

570-
options.isYouOrAdmin = options.isYou || options.isAdmin;
571-
options.isYouOrMod = options.isYou || options.isMod;
572-
573570
// Page metadata
574571
pageMetadata(options, [user.name, 'Users']);
575572
options.isUserPage = true;
@@ -682,9 +679,6 @@ exports.userCommentListPage = function (aReq, aRes, aNext) {
682679
user = options.user = modelParser.parseUser(aUser);
683680
options.isYou = authedUser && user && authedUser._id == user._id;
684681

685-
options.isYouOrAdmin = options.isYou || options.isAdmin;
686-
options.isYouOrMod = options.isYou || options.isMod;
687-
688682
// Page metadata
689683
pageMetadata(options, [user.name, 'Users']);
690684
options.isUserCommentListPage = true;
@@ -838,9 +832,6 @@ exports.userScriptListPage = function (aReq, aRes, aNext) {
838832
options.user = user = modelParser.parseUser(aUser);
839833
options.isYou = authedUser && user && authedUser._id == user._id;
840834

841-
options.isYouOrAdmin = options.isYou || options.isAdmin;
842-
options.isYouOrMod = options.isYou || options.isMod;
843-
844835
switch (aReq.query.library) {
845836
case 'true': // List just libraries
846837
options.includeLibraries = true;
@@ -959,11 +950,8 @@ exports.userSyncListPage = function (aReq, aRes, aNext) {
959950
user = options.user = modelParser.parseUser(aUser);
960951
options.isYou = authedUser && user && authedUser._id == user._id;
961952

962-
options.isYouOrAdmin = options.isYou || options.isAdmin;
963-
options.isYouOrMod = options.isYou || options.isMod;
964-
965953
// If not you or not synacable auth strategy move along
966-
if (!options.isYouOrAdmin || !options.user.canSync) {
954+
if (!(options.isYou || options.isAdmin) || !options.user.canSync) {
967955
aNext();
968956
return;
969957
}

libs/modelParser.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -673,6 +673,8 @@ var parseUser = function (aUser) {
673673
user.isRoot = user.role < 1;
674674
user.roleName = userRoles[user.role];
675675

676+
user.showFlags = user.role >= 3;
677+
676678
//
677679
user.slug = user.name;
678680

views/includes/userPageHeader.html

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,39 @@ <h2 class="page-heading">
1212
<ul class="nav navbar-nav">
1313
<li class="{{#isUserPage}}active{{/isUserPage}}"><a href="{{{user.userPageUrl}}}">Profile</a></li>
1414
<li class="{{#isUserScriptListPage}}active{{/isUserScriptListPage}}"><a href="{{{user.userScriptListPageUrl}}}" class="{{^user.userScriptListPageUrl}}disabled{{/user.userScriptListPageUrl}}">Scripts{{#scriptListCount}} <span class="badge">{{scriptListCount}}</span>{{/scriptListCount}}</a></li>
15-
{{#isYouOrAdmin}}
16-
{{#user.canSync}}
15+
{{#user.canSync}}
16+
{{#isYou}}
1717
<li class="{{#isUserSyncListPage}}active{{/isUserSyncListPage}}"><a href="{{{user.userSyncListPageUrl}}}" class="{{^user.userSyncListPageUrl}}disabled{{/user.userSyncListPageUrl}}">Syncs{{#syncListCount}} <span class="badge">{{syncListCount}}</span>{{/syncListCount}}</a></li>
18-
{{/user.canSync}}
19-
{{/isYouOrAdmin}}
18+
{{/isYou}}
19+
{{^isYou}}
20+
{{#isAdmin}}
21+
<li class="{{#isUserSyncListPage}}active{{/isUserSyncListPage}}"><a href="{{{user.userSyncListPageUrl}}}" class="{{^user.userSyncListPageUrl}}disabled{{/user.userSyncListPageUrl}}">Syncs{{#syncListCount}} <span class="badge">{{syncListCount}}</span>{{/syncListCount}}</a></li>
22+
{{/isAdmin}}
23+
{{/isYou}}
24+
{{/user.canSync}}
2025
<li class="{{#isUserCommentListPage}}active{{/isUserCommentListPage}}"><a href="{{{user.userCommentListPageUrl}}}" class="{{^user.userCommentListPageUrl}}disabled{{/user.userCommentListPageUrl}}">Comments{{#commentListCount}} <span class="badge">{{commentListCount}}</span>{{/commentListCount}}</a></li>
21-
{{#isYouOrAdmin}}
26+
{{#isYou}}
2227
<li class=""><a href="#">Votes{{#voteListCount}} <span class="badge">{{voteListCount}}</span>{{/voteListCount}}</a></li>
28+
{{#user.showFlags}}
2329
<li class=""><a href="#">Flags{{#flagListCount}} <span class="badge">{{flagListCount}}</span>{{/flagListCount}}</a></li>
24-
{{/isYouOrAdmin}}
30+
{{/user.showFlags}}
31+
{{/isYou}}
32+
{{^isYou}}
33+
{{#isAdmin}}
34+
<li class=""><a href="#">Votes{{#voteListCount}} <span class="badge">{{voteListCount}}</span>{{/voteListCount}}</a></li>
35+
{{#user.showFlags}}
36+
<li class=""><a href="#">Flags{{#flagListCount}} <span class="badge">{{flagListCount}}</span>{{/flagListCount}}</a></li>
37+
{{/user.showFlags}}
38+
{{/isAdmin}}
39+
{{^isAdmin}}
40+
{{#isMod}}
41+
<li class=""><a href="#">Votes{{#voteListCount}} <span class="badge">Yes</span>{{/voteListCount}}</a></li>
42+
{{#user.showFlags}}
43+
<li class=""><a href="#">Flags{{#flagListCount}} <span class="badge">Yes</span>{{/flagListCount}}</a></li>
44+
{{/user.showFlags}}
45+
{{/isMod}}
46+
{{/isAdmin}}
47+
{{/isYou}}
2548
</ul>
2649
</div>
2750
</nav>

0 commit comments

Comments
 (0)