use Friendica\Core\Renderer;
use Friendica\Core\System;
use Friendica\Database\DBA;
+use Friendica\DI;
use Friendica\Model;
use Friendica\Util\Strings;
class Group extends BaseModule
{
- public static function post()
+ public static function post(array $parameters = [])
{
- $a = self::getApp();
+ $a = DI::app();
- if ($a->isAjax()) {
+ if (DI::mode()->isAjax()) {
self::ajaxPost();
}
if (!local_user()) {
notice(L10n::t('Permission denied.'));
- $a->internalRedirect();
+ DI::baseUrl()->redirect();
}
// @TODO: Replace with parameter from router
info(L10n::t('Group created.'));
$r = Model\Group::getIdByName(local_user(), $name);
if ($r) {
- $a->internalRedirect('group/' . $r);
+ DI::baseUrl()->redirect('group/' . $r);
}
} else {
notice(L10n::t('Could not create group.'));
}
- $a->internalRedirect('group');
+ DI::baseUrl()->redirect('group');
}
// @TODO: Replace with parameter from router
$group = DBA::selectFirst('group', ['id', 'name'], ['id' => $a->argv[1], 'uid' => local_user()]);
if (!DBA::isResult($group)) {
notice(L10n::t('Group not found.'));
- $a->internalRedirect('contact');
+ DI::baseUrl()->redirect('contact');
}
$groupname = Strings::escapeTags(trim($_POST['groupname']));
if (strlen($groupname) && ($groupname != $group['name'])) {
public static function ajaxPost()
{
try {
- $a = self::getApp();
+ $a = DI::app();
if (!local_user()) {
throw new \Exception(L10n::t('Permission denied.'), 403);
throw new \Exception(L10n::t('Unknown group.'), 404);
}
- $contact = DBA::selectFirst('contact', ['pending', 'blocked', 'deleted'], ['id' => $contact_id, 'uid' => local_user()]);
+ $contact = DBA::selectFirst('contact', ['deleted'], ['id' => $contact_id, 'uid' => local_user()]);
if (!DBA::isResult($contact)) {
throw new \Exception(L10n::t('Contact not found.'), 404);
}
- if ($contact['pending']) {
- throw new \Exception(L10n::t('Contact is unavailable.'), 400);
- }
-
if ($contact['deleted']) {
throw new \Exception(L10n::t('Contact is deleted.'), 410);
}
switch($command) {
case 'add':
- if ($contact['blocked']) {
- throw new \Exception(L10n::t('Contact is blocked, unable to add it to a group.'), 400);
- }
-
if (!Model\Group::addMember($group_id, $contact_id)) {
throw new \Exception(L10n::t('Unable to add the contact to the group.'), 500);
}
+
$message = L10n::t('Contact successfully added to group.');
break;
case 'remove':
if (!Model\Group::removeMember($group_id, $contact_id)) {
throw new \Exception(L10n::t('Unable to remove the contact from the group.'), 500);
}
+
$message = L10n::t('Contact successfully removed from group.');
break;
default:
}
}
- public static function content()
+ public static function content(array $parameters = [])
{
$change = false;
throw new \Friendica\Network\HTTPException\ForbiddenException();
}
- $a = self::getApp();
+ $a = DI::app();
$a->page['aside'] = Model\Group::sidebarWidget('contact', 'group', 'extended', (($a->argc > 1) ? $a->argv[1] : 'everyone'));
// With no group number provided we jump to the unassigned contacts as a starting point
// @TODO: Replace with parameter from router
if ($a->argc == 1) {
- $a->internalRedirect('group/none');
+ DI::baseUrl()->redirect('group/none');
}
// Switch to text mode interface if we have more than 'n' contacts or group members
if (intval($a->argv[2])) {
if (!Model\Group::exists($a->argv[2], local_user())) {
notice(L10n::t('Group not found.'));
- $a->internalRedirect('contact');
+ DI::baseUrl()->redirect('contact');
}
if (Model\Group::remove($a->argv[2])) {
notice(L10n::t('Unable to remove group.'));
}
}
- $a->internalRedirect('group');
+ DI::baseUrl()->redirect('group');
}
// @TODO: Replace with parameter from router
$group = DBA::selectFirst('group', ['id', 'name'], ['id' => $a->argv[1], 'uid' => local_user(), 'deleted' => false]);
if (!DBA::isResult($group)) {
notice(L10n::t('Group not found.'));
- $a->internalRedirect('contact');
+ DI::baseUrl()->redirect('contact');
}
$members = Model\Contact::getByGroupId($group['id']);