fixes#10934
Else it triggers the rendering two times. Resulting is weird state in
for example the comments. Because the comments for OLD_FILEID are
retrieved but then the model is changed to NEW_FILEID. But the old
comments still get in and get parsed.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
There is no reason to log FileLock errors as exceptions to the log file.
Locks happen for very legit reasons and it is actually a sign of the
code doing its job.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
If doing achunked upload the mimetype of the folder would otherwise be
guessed from the path. Which always returned application/octet-stream.
If an access control rule to block that is in place this means that all
chunked uploads fail hard in directories as the isCreatable on the
directory always fails.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
When using atoken obtained via OAuth the token expires. Resulting in
brute force attempts hitting the requesting IP.
This resets the brute force attempts for that UID on a valid refresh of
the token.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
only write when the displayname differs, but then announce it
refs #5212 and fixes#9112
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
do not run into UniqueConstraintViolationException
… when an unmapped user logs in for the first time when background job
mode is ajax and no memcache was configured.
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
This will make it possible to act propely on moves of future files if we
need to know the size (like for max size virus scanning).
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
When obtaining the SourceRootInfo we can call init. If this fails the
cache is set to a failed cache and the storage to a failed storage.
However we did not check for this. Which means that if the storage was
invalid it would fail later on.
Now we will properly error out.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Adding a check to see if keyFileContents is empty:
* this fixes a download error and an exception if the data content
for encryption is empty
* #3958: for recovering encrypted files with a damaged signature
this is necessary in addition to turning the signature check off
Signed-off-by: Stefan Weiberg <sweiberg@suse.com>
The custom handler for "URL changed" events were added to reload the
file list whenever the sections for favorites and shares were opened;
this was used to fix the problem of not reloading the file lists when
opening them for a second time. However, besides that the handlers were
not really necessary, and as the root of the bug was fixed in the
previous commit those handlers are now removed.
The file list for tags uses the handler for a different purpose, though,
so that one was kept.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
When a section is open in the Files app a "show" event is triggered.
File list objects handle that event by reloading themselves, but only
if the file list was shown at least once. However, the file list objects
of plugins are created when the "show" event is triggered for the first
time for their section; as the file list objects register their handler
for the "show" event when they are created they never handle the first
triggered "show" event, as the handler is set while that event is being
already handled. Therefore, from the point of view of the handler, the
second time that a "show" event was triggered it was seen as if the file
list was shown for the first time, and thus it was not reloaded. Now the
"shown" property is explicitly set for those file lists that are created
while handling a "show" event, which causes them to be reloaded as
expected when opening their section again.
Note that it is not possible to just reload the file list whenever it is
shown; the file list is reloaded also when the directory changes, and
this can happen when the web page is initially loaded and the URL is
parsed. In that case, if file lists were reloaded when shown for the
first time then it could be reloaded twice, one with the default
parameters due to the "show" event and another one with the proper
parameters once the URL was parsed, and the files that appeard in the
list would depend on which response from the server was received the
last.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
The old code would emit the hooks twice. Thus having the version written
twice. Which is not very performant as it is first read twice as well.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Fixes#10852
A quick hack. Still ensures some type safety however now also accepts
null. Else we'd need to add a whole new layer of middlewares.
This can only happen when a guest user wants to access a controller that
requries the user_id.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
This was the error message that we have seen:
```
Argument 1 passed to OC\\Share20\\Share::setSendPasswordByTalk() must be of the type boolean, null given, called in apps/sharebymail/lib/ShareByMailProvider.php on line 981
```
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
for instance if a user of an external user backend is not available
currently, the whole Files UI would be frozen.
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Large files are not uploaded in a single operation, but uploaded in
several chunks; once all the chunks are uploaded then the server needs
to assemble them to get the final file.
Before, once the chunks were uploaded the progress bar was hidden.
However, this was confusing for the users, as the file could still need
some time to appear in the file list due to the assembling. Now once all
the chunks are uploaded the text in the progress bar changes to inform
the user that there are still some pending operations, and only when the
file is finally assembled the progress bar is hidden.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
There are no default CSS rules for the contacts menu, as its position
depends on the element on which it is shown. Note, however, that if no
explicit rules are provided the contacts menu on mentions is affected by
the rules for the contacts menu on shares from the sharing tab.
The contacts menu is now positioned to show the tip of the arrow
horizontally aligned with the center of the avatar, and with the top of
the menu slightly below the bottom border of the mention.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
The contacts menu was triggered only when the avatar or the name of the
user were clicked. Due to this, clicking on certain (small) areas of a
mention (like the right end, or the space between the avatar and the
name) did not show the contacts menu. Now the contacts menu is shown
when any area of the mention is clicked.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Now that we actually check thepermissions properly we have to update the
tests.
* We checked an invalid path
* We checked from wrong permissions (files never have CREATE permissions
for example)
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
isCreatable only works on folders
isUpdatable if the file is not there but it is a part file also has to
be checked on the folder
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
The submit button is placed in the text area using absolute positioning,
so it is not taken into account when calculating the text layout. Due to
this it is necessary to add an explicit padding to the right of the text
area to prevent the text from overlapping the submit button.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Otherwise a line break could be added between the avatar and the user
name when the wrapper is close to the right border of the message.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Most of the properties of the rule are not needed for mentions, so the
rule is no longer applied to them; the only needed property was moved to
the main rule for mentions.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
When the cursor is on an avatar wrapper the cursor is shown as a pointer
to inform the user that it can be clicked (which will either show the
contacts menu or insert a mention, depending on the case); the cursor
must be explicitly defined for the "img" element that shows the avatar
too, or otherwise the default cursor would be shown.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Like done in Talk, mentions to the current user are now shown with the
primary colors to make them more prominent.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Different browsers use different font weights for strong elements
(Chromium uses "bold", but Firefox uses "bolder", which is relative to
the font weight of the parent), so now the user name in mentions is
explicitly shown with a bold weight.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
The avatar should be shown immediately after the avatar to be able to
accurately define the space between them using only CSS rules.
Note that in the case of the "atwho" menu it is not really needed, as a
whitespace removal seems to be done automatically by the plugin, but it
was modified for its displayed elements too for consistency.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Visually it makes no difference, but as the ".avatar" element is inside
a "span" element it can not be a block element to be compliant with the
HTML specification.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
The general file list sets "max-width: 0" in the file names, which
causes the file names in the drag shadow to have no width for their
content and thus to overlap with the file size.
As that limit is needed for proper layout in the general file list it is
removed only for file names in drag shadows.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
The drag shadow is a sibling of "#content" so its z-index must be higher
than the z-index of the content children (navigation bar, app content
and app sidebar) to appear in front of them.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>