* @author Christoph Wurst * @author Lukas Reschke * @author Morris Jobke * @author Roeland Jago Douma * @author Thomas Müller * * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License, version 3, * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License, version 3, * along with this program. If not, see * */ namespace OCA\Files_Sharing\Middleware; use OCA\Files_Sharing\Controller\ExternalSharesController; use OCA\Files_Sharing\Exceptions\S2SException; use OCP\App\IAppManager; use OCP\AppFramework\Controller; use OCP\AppFramework\Http\JSONResponse; use OCP\AppFramework\Http\NotFoundResponse; use OCP\AppFramework\Http\Response; use OCP\AppFramework\Middleware; use OCP\AppFramework\Utility\IControllerMethodReflector; use OCP\Files\NotFoundException; use OCP\IConfig; use OCP\IRequest; use OCP\Share\IManager; /** * Checks whether the "sharing check" is enabled * * @package OCA\Files_Sharing\Middleware */ class SharingCheckMiddleware extends Middleware { /** @var string */ protected $appName; /** @var IConfig */ protected $config; /** @var IAppManager */ protected $appManager; /** @var IControllerMethodReflector */ protected $reflector; /** @var IManager */ protected $shareManager; /** @var IRequest */ protected $request; public function __construct(string $appName, IConfig $config, IAppManager $appManager, IControllerMethodReflector $reflector, IManager $shareManager, IRequest $request ) { $this->appName = $appName; $this->config = $config; $this->appManager = $appManager; $this->reflector = $reflector; $this->shareManager = $shareManager; $this->request = $request; } /** * Check if sharing is enabled before the controllers is executed * * @param Controller $controller * @param string $methodName * @throws NotFoundException * @throws S2SException */ public function beforeController($controller, $methodName): void { if (!$this->isSharingEnabled()) { throw new NotFoundException('Sharing is disabled.'); } if ($controller instanceof ExternalSharesController && !$this->externalSharesChecks()) { throw new S2SException('Federated sharing not allowed'); } } /** * Return 404 page in case of a not found exception * * @param Controller $controller * @param string $methodName * @param \Exception $exception * @return Response * @throws \Exception */ public function afterException($controller, $methodName, \Exception $exception): Response { if (is_a($exception, NotFoundException::class)) { return new NotFoundResponse(); } if (is_a($exception, S2SException::class)) { return new JSONResponse($exception->getMessage(), 405); } throw $exception; } /** * Checks for externalshares controller * @return bool */ private function externalSharesChecks(): bool { if (!$this->reflector->hasAnnotation('NoIncomingFederatedSharingRequired') && $this->config->getAppValue('files_sharing', 'incoming_server2server_share_enabled', 'yes') !== 'yes') { return false; } if (!$this->reflector->hasAnnotation('NoOutgoingFederatedSharingRequired') && $this->config->getAppValue('files_sharing', 'outgoing_server2server_share_enabled', 'yes') !== 'yes') { return false; } return true; } /** * Check whether sharing is enabled * @return bool */ private function isSharingEnabled(): bool { // FIXME: This check is done here since the route is globally defined and not inside the files_sharing app // Check whether the sharing application is enabled if (!$this->appManager->isEnabledForUser($this->appName)) { return false; } return true; } } ue='fop-2_3'>fop-2_3 Apache XML Graphics FOP: https://github.com/apache/xmlgraphics-fopwww-data
aboutsummaryrefslogtreecommitdiffstats
blob: f903a2eb45ef296b8e681d790aea52728756ea50 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright 2005 The Apache Software Foundation

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!-- $Id$ -->
<testcase>
  <info>
    <p>
      This test checks tables, especially table-cells. This test: simple horizontal spans.
    </p>
  </info>
  <fo>
    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:svg="http://www.w3.org/2000/svg">
      <fo:layout-master-set>
        <fo:simple-page-master master-name="normal" page-width="5in" page-height="5in">
          <fo:region-body/>
        </fo:simple-page-master>
      </fo:layout-master-set>
      <fo:page-sequence master-reference="normal" white-space-collapse="true">
        <fo:flow flow-name="xsl-region-body">
          <fo:table table-layout="fixed" border-collapse="separate" border-spacing="5pt 0pt">
            <fo:table-column column-width="68pt" number-columns-repeated="5"/>
            <fo:table-body>
              <fo:table-row>
                <fo:table-cell>
                  <fo:block>cell1</fo:block>
                </fo:table-cell>
                <fo:table-cell background-color="yellow">
                  <fo:block>cell2</fo:block>
                </fo:table-cell>
                <fo:table-cell background-color="lightgreen">
                  <fo:block>cell3</fo:block>
                </fo:table-cell>
                <fo:table-cell background-color="yellow">
                  <fo:block>cell4</fo:block>
                </fo:table-cell>
                <fo:table-cell background-color="lightgreen">
                  <fo:block>cell5</fo:block>
                </fo:table-cell>
              </fo:table-row>
              <fo:table-row>
                <fo:table-cell>
                  <fo:block>cell6a</fo:block>
                  <fo:block>cell6b</fo:block>
                </fo:table-cell>
                <fo:table-cell number-columns-spanned="2" background-color="orange" text-align="center">
                  <fo:block>cell7a</fo:block>
                  <fo:block>cell7b</fo:block>
                </fo:table-cell>
                <fo:table-cell>
                  <fo:block>cell8a</fo:block>
                  <fo:block>cell8b</fo:block>
                </fo:table-cell>
              </fo:table-row>
              <fo:table-row>
                <fo:table-cell column-number="2" number-columns-spanned="3" background-color="orange" text-align="center">
                  <fo:block>cell9a</fo:block>
                  <fo:block>cell9b</fo:block>
                </fo:table-cell>
              </fo:table-row>
            </fo:table-body>
          </fo:table>
        </fo:flow>
      </fo:page-sequence>
    </fo:root>
  </fo>
  <checks>
    <eval expected="cell1" xpath="//flow/block[1]/block[1]/block[1]/lineArea"/>
    <eval expected="63000" xpath="//flow/block[1]/block[1]/@ipda"/>
    <eval expected="2500" xpath="//flow/block[1]/block[1]/@left-offset"/>
    <eval expected="cell2" xpath="//flow/block[1]/block[2]/block[1]/lineArea"/>
    <eval expected="63000" xpath="//flow/block[1]/block[2]/@ipda"/>
    <eval expected="70500" xpath="//flow/block[1]/block[2]/@left-offset"/>
    <eval expected="cell3" xpath="//flow/block[1]/block[3]/block[1]/lineArea"/>
    <eval expected="63000" xpath="//flow/block[1]/block[3]/@ipda"/>
    <eval expected="138500" xpath="//flow/block[1]/block[3]/@left-offset"/>
    <eval expected="cell4" xpath="//flow/block[1]/block[4]/block[1]/lineArea"/>
    <eval expected="63000" xpath="//flow/block[1]/block[4]/@ipda"/>
    <eval expected="206500" xpath="//flow/block[1]/block[4]/@left-offset"/>
    <eval expected="cell5" xpath="//flow/block[1]/block[5]/block[1]/lineArea"/>
    <eval expected="63000" xpath="//flow/block[1]/block[5]/@ipda"/>
    <eval expected="274500" xpath="//flow/block[1]/block[5]/@left-offset"/>
    
    <eval expected="cell6a" xpath="//flow/block[1]/block[6]/block[1]/lineArea"/>
    <eval expected="cell6b" xpath="//flow/block[1]/block[6]/block[2]/lineArea"/>
    <eval expected="63000" xpath="//flow/block[1]/block[6]/@ipda"/>
    <eval expected="2500" xpath="//flow/block[1]/block[6]/@left-offset"/>
    <eval expected="cell7a" xpath="//flow/block[1]/block[7]/block[1]/lineArea"/>
    <eval expected="cell7b" xpath="//flow/block[1]/block[7]/block[2]/lineArea"/>
    <eval expected="131000" xpath="//flow/block[1]/block[7]/@ipda"/>
    <eval expected="70500" xpath="//flow/block[1]/block[7]/@left-offset"/>
    <eval expected="cell8a" xpath="//flow/block[1]/block[8]/block[1]/lineArea"/>
    <eval expected="cell8b" xpath="//flow/block[1]/block[8]/block[2]/lineArea"/>
    <eval expected="63000" xpath="//flow/block[1]/block[8]/@ipda"/>
    <eval expected="206500" xpath="//flow/block[1]/block[8]/@left-offset"/>
    
    <eval expected="cell9a" xpath="//flow/block[1]/block[9]/block[1]/lineArea"/>
    <eval expected="cell9b" xpath="//flow/block[1]/block[9]/block[2]/lineArea"/>
    <eval expected="199000" xpath="//flow/block[1]/block[9]/@ipda"/>
    <eval expected="70500" xpath="//flow/block[1]/block[9]/@left-offset"/>
  </checks>
</testcase>