rename coordinator to supporter

This commit is contained in:
msquare 2016-11-11 14:59:25 +01:00
parent 468a10774c
commit 82b9436c50
14 changed files with 582 additions and 583 deletions

View File

@ -1,2 +1,4 @@
INSERT INTO `Privileges` (`id`, `name`, `desc`) VALUES (40, 'view_rooms', 'User can view rooms');
INSERT INTO `GroupPrivileges` (`id`, `group_id`, `privilege_id`) VALUES (NULL, '-2', '40');
ALTER TABLE `UserAngelTypes` CHANGE `coordinator` `supporter` BOOLEAN;

View File

@ -112,7 +112,7 @@ function angeltype_edit_controller() {
$description = $angeltype['description'];
$requires_driver_license = $angeltype['requires_driver_license'];
if (! User_is_AngelType_coordinator($user, $angeltype)) {
if (! User_is_AngelType_supporter($user, $angeltype)) {
redirect(page_link_to('angeltypes'));
}
} else {
@ -121,13 +121,13 @@ function angeltype_edit_controller() {
}
}
// In coordinator mode only allow to modify description
$coordinator_mode = ! in_array('admin_angel_types', $privileges);
// In supporter mode only allow to modify description
$supporter_mode = ! in_array('admin_angel_types', $privileges);
if (isset($_REQUEST['submit'])) {
$valid = true;
if (! $coordinator_mode) {
if (! $supporter_mode) {
if (isset($_REQUEST['name'])) {
$result = AngelType_validate_name($_REQUEST['name'], $angeltype);
$name = $result->getValue();
@ -168,7 +168,7 @@ function angeltype_edit_controller() {
return [
sprintf(_("Edit %s"), $name),
AngelType_edit_view($name, $restricted, $description, $coordinator_mode, $requires_driver_license)
AngelType_edit_view($name, $restricted, $description, $supporter_mode, $requires_driver_license)
];
}
@ -200,7 +200,7 @@ function angeltype_controller() {
return [
sprintf(_("Team %s"), $angeltype['name']),
AngelType_view($angeltype, $members, $user_angeltype, in_array('admin_user_angeltypes', $privileges) || $user_angeltype['coordinator'], in_array('admin_angel_types', $privileges), $user_angeltype['coordinator'], $user_driver_license, $user)
AngelType_view($angeltype, $members, $user_angeltype, in_array('admin_user_angeltypes', $privileges) || $user_angeltype['supporter'], in_array('admin_angel_types', $privileges), $user_angeltype['supporter'], $user_driver_license, $user)
];
}

View File

@ -1,7 +1,7 @@
<?php
/**
* Display a hint for team/angeltype coordinators if there are unconfirmed users for his angeltype.
* Display a hint for team/angeltype supporters if there are unconfirmed users for his angeltype.
*/
function user_angeltypes_unconfirmed_hint() {
global $user;
@ -36,7 +36,7 @@ function user_angeltypes_delete_all_controller() {
redirect(page_link_to('angeltypes'));
}
if (! User_is_AngelType_coordinator($user, $angeltype)) {
if (! User_is_AngelType_supporter($user, $angeltype)) {
error(_("You are not allowed to delete all users for this angeltype."));
redirect(page_link_to('angeltypes'));
}
@ -78,7 +78,7 @@ function user_angeltypes_confirm_all_controller() {
redirect(page_link_to('angeltypes'));
}
if (! in_array('admin_user_angeltypes', $privileges) && ! $user_angeltype['coordinator']) {
if (! in_array('admin_user_angeltypes', $privileges) && ! $user_angeltype['supporter']) {
error(_("You are not allowed to confirm all users for this angeltype."));
redirect(page_link_to('angeltypes'));
}
@ -120,7 +120,7 @@ function user_angeltype_confirm_controller() {
redirect(page_link_to('angeltypes'));
}
if (! User_is_AngelType_coordinator($user, $angeltype)) {
if (! User_is_AngelType_supporter($user, $angeltype)) {
error(_("You are not allowed to confirm this users angeltype."));
redirect(page_link_to('angeltypes'));
}
@ -177,7 +177,7 @@ function user_angeltype_delete_controller() {
redirect(page_link_to('angeltypes'));
}
if ($user['UID'] != $user_angeltype['user_id'] && ! User_is_AngelType_coordinator($user, $angeltype)) {
if ($user['UID'] != $user_angeltype['user_id'] && ! User_is_AngelType_supporter($user, $angeltype)) {
error(_("You are not allowed to delete this users angeltype."));
redirect(page_link_to('angeltypes'));
}
@ -208,7 +208,7 @@ function user_angeltype_update_controller() {
global $privileges;
if (! in_array('admin_angel_types', $privileges)) {
error(_("You are not allowed to set coordinator rights."));
error(_("You are not allowed to set supporter rights."));
redirect(page_link_to('angeltypes'));
}
@ -217,10 +217,10 @@ function user_angeltype_update_controller() {
redirect(page_link_to('angeltypes'));
}
if (isset($_REQUEST['coordinator']) && preg_match("/^[01]$/", $_REQUEST['coordinator'])) {
$coordinator = $_REQUEST['coordinator'] == "1";
if (isset($_REQUEST['supporter']) && preg_match("/^[01]$/", $_REQUEST['supporter'])) {
$supporter = $_REQUEST['supporter'] == "1";
} else {
error(_("No coordinator update given."));
error(_("No supporter update given."));
redirect(page_link_to('angeltypes'));
}
@ -243,9 +243,9 @@ function user_angeltype_update_controller() {
}
if (isset($_REQUEST['confirmed'])) {
UserAngelType_update($user_angeltype['id'], $coordinator);
UserAngelType_update($user_angeltype['id'], $supporter);
$success_message = sprintf($coordinator ? _("Added coordinator rights for %s to %s.") : _("Removed coordinator rights for %s from %s."), AngelType_name_render($angeltype), User_Nick_render($user_source));
$success_message = sprintf($supporter ? _("Added supporter rights for %s to %s.") : _("Removed supporter rights for %s from %s."), AngelType_name_render($angeltype), User_Nick_render($user_source));
engelsystem_log($success_message);
success($success_message);
@ -253,13 +253,13 @@ function user_angeltype_update_controller() {
}
return [
$coordinator ? _("Add coordinator rights") : _("Remove coordinator rights"),
UserAngelType_update_view($user_angeltype, $user_source, $angeltype, $coordinator)
$supporter ? _("Add supporter rights") : _("Remove supporter rights"),
UserAngelType_update_view($user_angeltype, $user_source, $angeltype, $supporter)
];
}
/**
* User joining an Angeltype (Or Coordinator doing this for him).
* User joining an Angeltype (Or supporter doing this for him).
*/
function user_angeltype_add_controller() {
global $user;
@ -267,7 +267,7 @@ function user_angeltype_add_controller() {
$angeltype = load_angeltype();
// User is joining by itself
if (! User_is_AngelType_coordinator($user, $angeltype)) {
if (! User_is_AngelType_supporter($user, $angeltype)) {
return user_angeltype_join_controller($angeltype);
}

View File

@ -9,17 +9,16 @@ function user_driver_license_required_hint() {
$angeltypes = User_angeltypes($user);
$user_driver_license = UserDriverLicense($user['UID']);
$driving_license_information_required = false;
foreach ($angeltypes as $angeltype) {
if ($angeltype['requires_driver_license']) {
$driving_license_information_required = true;
break;
}
// User has already entered data, no hint needed.
if ($user_driver_license != null) {
return '';
}
if ($driving_license_information_required && $user_driver_license == null) {
foreach ($angeltypes as $angeltype) {
if ($angeltype['requires_driver_license']) {
return info(sprintf(_("You joined an angeltype which requires a driving license. Please edit your driving license information here: %s."), '<a href="' . user_driver_license_edit_link() . '">' . _("driving license information") . '</a>'), true);
}
}
return '';
}

View File

@ -95,7 +95,7 @@ function AngelTypes_with_user($user) {
SELECT `AngelTypes`.*,
`UserAngelTypes`.`id` as `user_angeltype_id`,
`UserAngelTypes`.`confirm_user_id`,
`UserAngelTypes`.`coordinator`
`UserAngelTypes`.`supporter`
FROM `AngelTypes`
LEFT JOIN `UserAngelTypes` ON `AngelTypes`.`id`=`UserAngelTypes`.`angeltype_id`
AND `UserAngelTypes`.`user_id`=" . $user['UID'] . "

View File

@ -29,7 +29,7 @@ function UserAngelType_exists($user, $angeltype) {
*/
function User_angeltypes($user) {
$result = sql_select("
SELECT `AngelTypes`.*, `UserAngelTypes`.`confirm_user_id`, `UserAngelTypes`.`coordinator`
SELECT `AngelTypes`.*, `UserAngelTypes`.`confirm_user_id`, `UserAngelTypes`.`supporter`
FROM `UserAngelTypes`
JOIN `AngelTypes` ON `UserAngelTypes`.`angeltype_id` = `AngelTypes`.`id`
WHERE `UserAngelTypes`.`user_id`='" . sql_escape($user['UID']) . "'
@ -42,7 +42,7 @@ function User_angeltypes($user) {
}
/**
* Gets unconfirmed user angeltypes for angeltypes of which the given user is a coordinator.
* Gets unconfirmed user angeltypes for angeltypes of which the given user is a supporter.
*
* @param User $user
*/
@ -56,7 +56,7 @@ function User_unconfirmed_AngelTypes($user) {
JOIN `AngelTypes` ON `UserAngelTypes`.`angeltype_id`=`AngelTypes`.`id`
JOIN `UserAngelTypes` as `UnconfirmedMembers` ON `UserAngelTypes`.`angeltype_id`=`UnconfirmedMembers`.`angeltype_id`
WHERE `UserAngelTypes`.`user_id`='" . sql_escape($user['UID']) . "'
AND `UserAngelTypes`.`coordinator`=TRUE
AND `UserAngelTypes`.`supporter`=TRUE
AND `AngelTypes`.`restricted`=TRUE
AND `UnconfirmedMembers`.`confirm_user_id` IS NULL
GROUP BY `UserAngelTypes`.`angeltype_id`
@ -68,35 +68,35 @@ function User_unconfirmed_AngelTypes($user) {
}
/**
* Returns true if user is angeltype coordinator or has privilege admin_user_angeltypes.
* Returns true if user is angeltype supporter or has privilege admin_user_angeltypes.
*
* @param User $user
* @param AngelType $angeltype
*/
function User_is_AngelType_coordinator($user, $angeltype) {
function User_is_AngelType_supporter($user, $angeltype) {
return (sql_num_query("
SELECT `id`
FROM `UserAngelTypes`
WHERE `user_id`='" . sql_escape($user['UID']) . "'
AND `angeltype_id`='" . sql_escape($angeltype['id']) . "'
AND `coordinator`=TRUE
AND `supporter`=TRUE
LIMIT 1") > 0) || in_array('admin_user_angeltypes', privileges_for_user($user['UID']));
}
/**
* Add or remove coordinator rights.
* Add or remove supporter rights.
*
* @param int $user_angeltype_id
* @param bool $coordinator
* @param bool $supporter
*/
function UserAngelType_update($user_angeltype_id, $coordinator) {
function UserAngelType_update($user_angeltype_id, $supporter) {
$result = sql_query("
UPDATE `UserAngelTypes`
SET `coordinator`=" . sql_bool($coordinator) . "
SET `supporter`=" . sql_bool($supporter) . "
WHERE `id`='" . sql_escape($user_angeltype_id) . "'
LIMIT 1");
if ($result === false) {
engelsystem_error("Unable to update coordinator rights.");
engelsystem_error("Unable to update supporter rights.");
}
return $result;
}

View File

@ -136,7 +136,7 @@ function Users_by_angeltype($angeltype) {
`User`.*,
`UserAngelTypes`.`id` as `user_angeltype_id`,
`UserAngelTypes`.`confirm_user_id`,
`UserAngelTypes`.`coordinator`,
`UserAngelTypes`.`supporter`,
`UserDriverLicenses`.*
FROM `User`
JOIN `UserAngelTypes` ON `User`.`UID`=`UserAngelTypes`.`user_id`

View File

@ -182,7 +182,7 @@ function guest_register() {
engelsystem_log("User " . User_Nick_render(User($user_id)) . " signed up as: " . join(", ", $user_angel_types_info));
success(_("Angel registration successful!"));
// User is already logged in - that means a coordinator has registered an angel. Return to register page.
// User is already logged in - that means a supporter has registered an angel. Return to register page.
if (isset($user)) {
redirect(page_link_to('register'));
}

View File

@ -25,12 +25,12 @@ function AngelType_render_membership($user_angeltype) {
if ($user_angeltype['restricted']) {
if ($user_angeltype['confirm_user_id'] == null) {
return glyph('lock') . _("Unconfirmed");
} elseif ($user_angeltype['coordinator']) {
return glyph_bool(true) . _("Coordinator");
} elseif ($user_angeltype['supporter']) {
return glyph_bool(true) . _("supporter");
}
return glyph_bool(true) . _("Member");
} elseif ($user_angeltype['coordinator']) {
return glyph_bool(true) . _("Coordinator");
} elseif ($user_angeltype['supporter']) {
return glyph_bool(true) . _("supporter");
}
return glyph_bool(true) . _("Member");
}
@ -47,16 +47,16 @@ function AngelType_delete_view($angeltype) {
]);
}
function AngelType_edit_view($name, $restricted, $description, $coordinator_mode, $requires_driver_license) {
function AngelType_edit_view($name, $restricted, $description, $supporter_mode, $requires_driver_license) {
return page_with_title(sprintf(_("Edit %s"), $name), [
buttons([
button(page_link_to('angeltypes'), _("Angeltypes"), 'back')
]),
msg(),
form([
$coordinator_mode ? form_info(_("Name"), $name) : form_text('name', _("Name"), $name),
$coordinator_mode ? form_info(_("Restricted"), $restricted ? _("Yes") : _("No")) : form_checkbox('restricted', _("Restricted"), $restricted),
$coordinator_mode ? form_info(_("Requires driver license"), $requires_driver_license ? _("Yes") : _("No")) : form_checkbox('requires_driver_license', _("Requires driver license"), $requires_driver_license),
$supporter_mode ? form_info(_("Name"), $name) : form_text('name', _("Name"), $name),
$supporter_mode ? form_info(_("Restricted"), $restricted ? _("Yes") : _("No")) : form_checkbox('restricted', _("Restricted"), $restricted),
$supporter_mode ? form_info(_("Requires driver license"), $requires_driver_license ? _("Yes") : _("No")) : form_checkbox('requires_driver_license', _("Requires driver license"), $requires_driver_license),
form_info("", _("Restricted angel types can only be used by an angel if enabled by an archangel (double opt-in).")),
form_textarea('description', _("Description"), $description),
form_info("", _("Please use markdown for the description.")),
@ -68,7 +68,7 @@ function AngelType_edit_view($name, $restricted, $description, $coordinator_mode
/**
* Renders the buttons for the angeltype view.
*/
function AngelType_view_buttons($angeltype, $user_angeltype, $admin_angeltypes, $coordinator, $user_driver_license, $user) {
function AngelType_view_buttons($angeltype, $user_angeltype, $admin_angeltypes, $supporter, $user_driver_license, $user) {
$buttons = [
button(page_link_to('angeltypes'), _("Angeltypes"), 'back')
];
@ -90,7 +90,7 @@ function AngelType_view_buttons($angeltype, $user_angeltype, $admin_angeltypes,
$buttons[] = button(page_link_to('user_angeltypes') . '&action=delete&user_angeltype_id=' . $user_angeltype['id'], _("leave"), 'cancel');
}
if ($admin_angeltypes || $coordinator) {
if ($admin_angeltypes || $supporter) {
$buttons[] = button(page_link_to('angeltypes') . '&action=edit&angeltype_id=' . $angeltype['id'], _("edit"), 'edit');
}
if ($admin_angeltypes) {
@ -101,12 +101,12 @@ function AngelType_view_buttons($angeltype, $user_angeltype, $admin_angeltypes,
}
/**
* Renders and sorts the members of an angeltype into coordinators, members and unconfirmed members.
* Renders and sorts the members of an angeltype into supporters, members and unconfirmed members.
*
* @return [coordinators, members, unconfirmed members]
* @return [supporters, members, unconfirmed members]
*/
function AngelType_view_members($angeltype, $members, $admin_user_angeltypes, $admin_angeltypes) {
$coordinators = [];
$supporters = [];
$members_confirmed = [];
$members_unconfirmed = [];
foreach ($members as $member) {
@ -128,19 +128,19 @@ function AngelType_view_members($angeltype, $members, $admin_user_angeltypes, $a
button(page_link_to('user_angeltypes') . '&action=delete&user_angeltype_id=' . $member['user_angeltype_id'], _("deny"), 'btn-xs')
]);
$members_unconfirmed[] = $member;
} elseif ($member['coordinator']) {
} elseif ($member['supporter']) {
if ($admin_angeltypes) {
$member['actions'] = table_buttons([
button(page_link_to('user_angeltypes') . '&action=update&user_angeltype_id=' . $member['user_angeltype_id'] . '&coordinator=0', _("Remove coordinator rights"), 'btn-xs')
button(page_link_to('user_angeltypes') . '&action=update&user_angeltype_id=' . $member['user_angeltype_id'] . '&supporter=0', _("Remove supporter rights"), 'btn-xs')
]);
} else {
$member['actions'] = '';
}
$coordinators[] = $member;
$supporters[] = $member;
} else {
if ($admin_user_angeltypes) {
$member['actions'] = table_buttons([
$admin_angeltypes ? button(page_link_to('user_angeltypes') . '&action=update&user_angeltype_id=' . $member['user_angeltype_id'] . '&coordinator=1', _("Add coordinator rights"), 'btn-xs') : '',
$admin_angeltypes ? button(page_link_to('user_angeltypes') . '&action=update&user_angeltype_id=' . $member['user_angeltype_id'] . '&supporter=1', _("Add supporter rights"), 'btn-xs') : '',
button(page_link_to('user_angeltypes') . '&action=delete&user_angeltype_id=' . $member['user_angeltype_id'], _("remove"), 'btn-xs')
]);
}
@ -149,7 +149,7 @@ function AngelType_view_members($angeltype, $members, $admin_user_angeltypes, $a
}
return [
$coordinators,
$supporters,
$members_confirmed,
$members_unconfirmed
];
@ -158,8 +158,8 @@ function AngelType_view_members($angeltype, $members, $admin_user_angeltypes, $a
/**
* Creates the needed member table headers according to given rights and settings from the angeltype.
*/
function AngelType_view_table_headers($angeltype, $coordinator, $admin_angeltypes) {
if ($angeltype['requires_driver_license'] && ($coordinator || $admin_angeltypes)) {
function AngelType_view_table_headers($angeltype, $supporter, $admin_angeltypes) {
if ($angeltype['requires_driver_license'] && ($supporter || $admin_angeltypes)) {
return [
'Nick' => _("Nick"),
'DECT' => _("DECT"),
@ -183,10 +183,10 @@ function AngelType_view_table_headers($angeltype, $coordinator, $admin_angeltype
/**
* Render an angeltype page containing the member lists.
*/
function AngelType_view($angeltype, $members, $user_angeltype, $admin_user_angeltypes, $admin_angeltypes, $coordinator, $user_driver_license, $user) {
function AngelType_view($angeltype, $members, $user_angeltype, $admin_user_angeltypes, $admin_angeltypes, $supporter, $user_driver_license, $user) {
$page = [
msg(),
AngelType_view_buttons($angeltype, $user_angeltype, $admin_angeltypes, $coordinator, $user_driver_license, $user)
AngelType_view_buttons($angeltype, $user_angeltype, $admin_angeltypes, $supporter, $user_driver_license, $user)
];
$page[] = '<h3>' . _("Description") . '</h3>';
@ -195,12 +195,12 @@ function AngelType_view($angeltype, $members, $user_angeltype, $admin_user_angel
$page[] = '<div class="well">' . $parsedown->parse($angeltype['description']) . '</div>';
}
list($coordinators, $members_confirmed, $members_unconfirmed) = AngelType_view_members($angeltype, $members, $admin_user_angeltypes, $admin_angeltypes);
$table_headers = AngelType_view_table_headers($angeltype, $coordinator, $admin_angeltypes);
list($supporters, $members_confirmed, $members_unconfirmed) = AngelType_view_members($angeltype, $members, $admin_user_angeltypes, $admin_angeltypes);
$table_headers = AngelType_view_table_headers($angeltype, $supporter, $admin_angeltypes);
if (count($coordinators) > 0) {
$page[] = '<h3>' . _("Coordinators") . '</h3>';
$page[] = table($table_headers, $coordinators);
if (count($supporters) > 0) {
$page[] = '<h3>' . _("supporters") . '</h3>';
$page[] = table($table_headers, $supporters);
}
if (count($members_confirmed) > 0) {
@ -279,7 +279,7 @@ function AngelTypes_about_view_angeltype($angeltype) {
}
if ($angeltype['restricted']) {
$html .= info(_("This angeltype is restricted by double-opt-in by a team coordinator. Please show up at the according introduction meetings."), true);
$html .= info(_("This angeltype is restricted by double-opt-in by a team supporter. Please show up at the according introduction meetings."), true);
}
if ($angeltype['description'] != "") {
$html .= '<div class="well">' . $parsedown->parse($angeltype['description']) . '</div>';

View File

@ -1,12 +1,12 @@
<?php
function UserAngelType_update_view($user_angeltype, $user, $angeltype, $coordinator) {
return page_with_title($coordinator ? _("Add coordinator rights") : _("Remove coordinator rights"), [
function UserAngelType_update_view($user_angeltype, $user, $angeltype, $supporter) {
return page_with_title($supporter ? _("Add supporter rights") : _("Remove supporter rights"), [
msg(),
info(sprintf($coordinator ? _("Do you really want to add coordinator rights for %s to %s?") : _("Do you really want to remove coordinator rights for %s from %s?"), $angeltype['name'], User_Nick_render($user)), true),
info(sprintf($supporter ? _("Do you really want to add supporter rights for %s to %s?") : _("Do you really want to remove supporter rights for %s from %s?"), $angeltype['name'], User_Nick_render($user)), true),
buttons([
button(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id'], _("cancel"), 'cancel'),
button(page_link_to('user_angeltypes') . '&action=update&user_angeltype_id=' . $user_angeltype['id'] . '&coordinator=' . ($coordinator ? '1' : '0') . '&confirmed', _("yes"), 'ok')
button(page_link_to('user_angeltypes') . '&action=update&user_angeltype_id=' . $user_angeltype['id'] . '&supporter=' . ($supporter ? '1' : '0') . '&confirmed', _("yes"), 'ok')
])
]);
}

View File

@ -18,7 +18,7 @@ function UserDriverLicense_edit_view($user_source, $wants_to_drive, $has_car, $h
]),
msg(),
form([
form_info(_("Privacy"), _("Your driving license information is only visible for coordinators and admins.")),
form_info(_("Privacy"), _("Your driving license information is only visible for supporters and admins.")),
form_checkbox('wants_to_drive', _("I am willing to operate cars for the PL"), $wants_to_drive),
div('panel panel-default', [
div('panel-body', [

View File

@ -332,7 +332,7 @@ function User_angeltypes_render($user_angeltypes) {
} else {
$class = 'text-success';
}
$output[] = '<a href="' . angeltype_link($angeltype['id']) . '" class="' . $class . '">' . ($angeltype['coordinator'] ? glyph('education') : '') . $angeltype['name'] . '</a>';
$output[] = '<a href="' . angeltype_link($angeltype['id']) . '" class="' . $class . '">' . ($angeltype['supporter'] ? glyph('education') : '') . $angeltype['name'] . '</a>';
}
return join('<br />', $output);
}

File diff suppressed because it is too large Load Diff