* Added ability to mark authorgroups as "hidden", so that members of such groups are excluded from common author listings. (Ref http://board.s9y.org/viewtopic.php?f=11&t=16237) (garvinhicking)

This commit is contained in:
Garvin Hicking 2010-01-13 12:28:55 +00:00
parent c8443da3cc
commit 74a5c9f9af
8 changed files with 25 additions and 10 deletions

@ -3,6 +3,13 @@
Version 1.6 ()
------------------------------------------------------------------------
* Added ability to mark authorgroups as "hidden", so that members
of such groups are excluded from common author listings.
(Ref http://board.s9y.org/viewtopic.php?f=11&t=16237)
(garvinhicking)
* Added option for SMF importer to also import tags
* Added experimental global variable $i18n_filename_utf8 that can
be set in a serendipity_config_local.inc.php or language include
file, which will return Unicode-Permalinks.
@ -11,7 +18,7 @@ Version 1.6 ()
* Added event hook backend_sendcomment for sending comments and
being able to chang via plugin API (onli)
Version 1.5.1 ()
Version 1.5.1 (December 21st, 2009)
------------------------------------------------------------------------
* Fix bug with not showing "html" type configuration items.

@ -113,7 +113,7 @@ function serendipity_drawList() {
<select name="serendipity[filter][author]">
<option value="">--</option>
<?php
$users = serendipity_fetchUsers('', null, true);
$users = serendipity_fetchUsers('', 'hidden', true);
if (is_array($users)) {
foreach ($users AS $user) {
if (isset($user['artcount']) && $user['artcount'] < 1) continue;

@ -163,7 +163,7 @@ foreach($allusers AS $user) {
$permname = $perm;
}
if (!serendipity_checkPermission($perm)) {
if (!serendipity_checkPermission($perm) && $perm != 'hiddenGroup') {
echo "<tr>\n";
echo "<td>$indent" . htmlspecialchars($permname) . "</td>\n";
echo '<td>' . $indentB . ' ' . (!empty($selected) ? YES : NO) . '</td>' . "\n";

@ -405,7 +405,12 @@ function serendipity_fetchUsers($user = '', $group = null, $is_count = false) {
$query_group
ORDER BY a.realname ASC";
} else {
if (is_array($group)) {
if ($group === 'hidden') {
$query_join .= "LEFT OUTER JOIN {$serendipity['dbPrefix']}groupconfig AS gc
ON (gc.property = 'hiddenGroup' AND gc.id = ag.groupid AND gc.value = 'true')";
$where .= " AND ISNULL(gc.id) ";
} elseif (is_array($group)) {
foreach($group AS $idx => $groupid) {
$group[$idx] = (int)$groupid;
}
@ -432,7 +437,7 @@ function serendipity_fetchUsers($user = '', $group = null, $is_count = false) {
LEFT OUTER JOIN {$serendipity['dbPrefix']}groups AS g
ON ag.groupid = g.id
$query_join
WHERE g.id IN ($group_sql)
WHERE " . ($group_sql ? "g.id IN ($group_sql)" : '1=1') . "
$where
$query_group
ORDER BY a.realname ASC";

@ -1153,6 +1153,9 @@ function serendipity_getPermissionNames() {
'adminTemplates'
=> array(USERLEVEL_ADMIN, USERLEVEL_CHIEF),
'hiddenGroup'
=> array(-1)
);
}
@ -1574,7 +1577,7 @@ function serendipity_updateGroupConfig($groupid, &$perms, &$values, $isNewPriv =
$value = 'false';
}
if ($isNewPriv == false && !serendipity_checkPermission($perm)) {
if ($isNewPriv == false && !serendipity_checkPermission($perm) && $perm != 'hiddenGroup') {
if (!isset($storage[$perm])) {
$value = 'false';
} else {

@ -269,7 +269,7 @@ function ownership($authorid, $name, $is_plugin_owner = false) {
static $users = array();
if (empty($users)) {
$users = serendipity_fetchUsers();
$users = serendipity_fetchUsers('', 'hidden');
}
if ($is_plugin_owner) {

@ -1804,7 +1804,7 @@ class serendipity_authors_plugin extends serendipity_plugin {
$is_form = serendipity_db_bool($this->get_config('allow_select'));
$is_count = serendipity_db_bool($this->get_config('showartcount'));
$mincount = (int)$this->get_config('mincount');
$authors = serendipity_fetchUsers(null, null, $is_count);
$authors = serendipity_fetchUsers(null, 'hidden', $is_count);
$html = '';
if ($is_form) {

@ -149,7 +149,7 @@ class serendipity_event_entryproperties extends serendipity_event
global $serendipity;
if (serendipity_checkPermission('adminUsersMaintainOthers')) {
$users = serendipity_fetchUsers('');
$users = serendipity_fetchUsers('', 'hidden');
} elseif (serendipity_checkPermission('adminUsersMaintainSame')) {
$users = serendipity_fetchUsers('', serendipity_getGroups($serendipity['authorid'], true));
} else {
@ -348,7 +348,7 @@ class serendipity_event_entryproperties extends serendipity_event
<br /><?php echo PERM_READ . ': <em>'. AUTHOR . '</em>'; ?><br />
<select class="entryproperties_access_users" onchange="document.getElementById('properties_access_member').checked = true;" style="margin-left: 5px" multiple="multiple" name="serendipity[properties][access_users][]" size="4">
<?php
$users = serendipity_fetchUsers();
$users = serendipity_fetchUsers('', 'hidden');
foreach($users AS $user) {
?>
<option value="<?php echo $user['authorid']; ?>" <?php echo (in_array($user['authorid'], $access_users) ? 'selected="selected"' : ''); ?>><?php echo htmlspecialchars($user['realname']); ?></option>