Habari\AdminGroupsHandler::post_group PHP Метод

post_group() публичный Метод

Handles POST requests to a group's page.
public post_group ( )
    public function post_group()
    {
        $group = UserGroup::get_by_id($this->handler_vars['id']);
        $tokens = ACL::all_tokens();
        if (isset($this->handler_vars['nonce'])) {
            $wsse = Utils::WSSE($this->handler_vars['nonce'], $this->handler_vars['timestamp']);
            if (isset($this->handler_vars['digest']) && $this->handler_vars['digest'] != $wsse['digest']) {
                Session::error(_t('WSSE authentication failed.'));
            }
            if (isset($this->handler_vars['delete'])) {
                $group->delete();
                Utils::redirect(URL::get('display_groups'));
            }
            if (isset($this->handler_vars['user'])) {
                $users = $this->handler_vars['user'];
                foreach ($users as $user => $status) {
                    if ($status == 1) {
                        $group->add($user);
                    } else {
                        $group->remove($user);
                    }
                }
                $access_names = ACL::access_names();
                foreach ($tokens as $token) {
                    $bitmask = new Bitmask($access_names);
                    if (isset($this->handler_vars['tokens'][$token->id]['deny'])) {
                        $bitmask->value = 0;
                        $group->deny($token->id);
                    } else {
                        foreach ($access_names as $name) {
                            if (isset($this->handler_vars['tokens'][$token->id][$name])) {
                                $bitmask->{$name} = true;
                            }
                        }
                        if (isset($this->handler_vars['tokens'][$token->id]['full'])) {
                            $bitmask->value = $bitmask->full;
                        }
                        if ($bitmask->value != 0) {
                            $group->grant($token->id, $bitmask);
                        } else {
                            $group->revoke($token->id);
                        }
                    }
                }
            }
        }
        Session::notice(_t('Updated permissions.'), 'permissions');
        Utils::redirect(URL::get('display_group', 'id=' . $group->id));
    }