Giter Site home page Giter Site logo

kloudspeaker's Introduction

kloudspeaker's People

Contributors

oupala avatar sjarvela avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kloudspeaker's Issues

Problems in search results

Clicking on any file in the search results list I get the following error
TypeError: that._customFolderTypes[that._currentFolder.type].handleAction is not a function
return that._customFolderTypes[that._currentFolder.type].handleAction(ac, item, ...
in kloudspeaker.full.min.js row 19625, col 19 (got with Firebug 2.0.9).
As a result, nothing happens when clicking on any search result row (I expect to be able to download the file). Btw, the search operation and result list are ok.
I'm using php 5.4.3, Firefox 38.0.1. Same issue with Chrome 43.0.2357.65 m.
Any sugestion?
Thanks
Tommaso

Trashbin bug and suggestions

I noticed a bug, coming when viewing thumbnail in Thashbin folder. I think it is important to be able to view thumbnails while in trashbin. But admin user can view thumbnails ! Only some rights pb somewhere ..

KLOUDSPEAKER ERROR: ServiceException: INVALID_REQUEST=Trash access not allowed

Still another remark for trashbin: since the trashbin is now implemented, the deletion confirmation message should be canceled (with an tuning option).

And about the quota for trashbin, a simple thing could be adding an option for users like "keep_files_in_trashbin = number-of-days", and you would clean the trashbin at each user connection ? So no need for cron or admin action ..

Share creation ideas

When an end user creates a new share, he cannot see any difference on the main file view, because an automatic refresh is missing, which is necessary to make the icon-external-link appear.

And the share creation process is a bit complicated for end user (enf of the end, the baddest..;): what would be good for these is as Dropbox, just one click to create everything. So near the button which label is shareDialogShareAddTitle, another button 'Quick share creation' that would do everything by default and would be in first position, making everything easier. Then why not automatically copy the new share link in the clipboard ?
And same idea for sending quickly that new share link by mail: a button near 'show/hide link' called 'email to' ?

Multiple bugs in 2.7

KLOUDSPEAKER ERROR: PHP error #8, Undefined variable: size (/home/files/public_html/backend/include/filesystem/FilesystemController.class.php:1166)

Uncaught TypeError: app.showFullView is not a function in access_password.js:39

In the KloudspeakerExternalInterface.class.php, addUserToGroup() function "!" is missing.
Should be $g = !is_array($gr) ? array($gr) : $gr;

Uncaught ReferenceError: session is not defined

Hi, I installed kloudspeaker on centos 6.5 with apache web server following instructions in the wiki and I have a js error "session is not defined" when I try to upload a file (as admin user). I'm trying with firefox and chrome on lubuntu and I have the same behavior. Someone can help me please?
Thanks

User creation mail notification

Is it possible to send automated email upon user creation (from admin panel) to the email specified in the newly registered user profile?

Login Page

I installed Kloudspeaker successfully but there doesn't appear to be a login page.

File Upload Size Limits

When uploading a file, if the file is larger than the limit set in php.ini, the upload fails and the following message is displayed: "File upload failed". This message is not really very helpful.

My suggestion: When loading the app, get the upload limitations imposed by php. Use this to compare against the file size before uploading and present an error if it's too big. You'd also have to compare against the maxChunkSize for the uploader.

Problem with TextFile viewers 1.1 zip size 69046 (edit the post to watch the diff result, dirty display on list mode)

When just view a txt file, the viewer popup stays empty an I have this error:

PHP Fatal error: Call to undefined method TextFileViewer::getItemContent() in backend/plugin/FileViewerEditor/viewers/TextFile/TextFile.viewer.php on line 45

So I've compared with the previous one and here is the diff (the first is working, not the second):

diff -r TextFileOK/TextFile.viewer.php TextFile/TextFile.viewer.php
44,45c44,45
< // read file

< $stream = $item->read();

                  // read file
                  $stream = $this->getItemContent($item);

52c52

< return "<title>".$item->name()."</title>".$head."".$html."";

                  return "<html><head><title>".(is_array($item) ? $item["name"] : $item->name())."</title>".$head."</head><body>".$html."</body></html>";

56c56

< $ext = $item->extension();

                  $ext = (is_array($item) ? $item["extension"] : $item->extension());

File filter in events

As admin, currently it's very difficult to find when a particular file has been downloaded in events list.
It seems to me necessary to add a filter by filename or filename part, that is really more important than a date filter. And add more infos on events list.

  1. Add a file filter: example: 'myfile.txt' or 'myfile*'
  2. In files list, add a column 'Root folder name', and another one with downloaded filename (truncated if too long, a title on mouse hover would display the whole name)

Managing a collection

When you select a collection, the 'icon-cog' icon should always be displayed. It's difficult for users to imagine how they can manage a collection if they don't see that icon, and to make it appear you are obliged to move the mouse on the right part of the selected collection name. I think that icon should be permanent on the selected collection.

No instance of FileViewEditor

I configured the use of the plugin as stated in the wiki but, I can't make it work. it just doesn't seem to create an instance , no errors either, I'm using a copy of the master

webdav?

So what account actually can auth? How do you setup auth.. I placed the files where they are suppose to go.. I hit /backend/dav with browser but auth doesn't work.

says defaults to digest - is there something else need to setup?

I don't see anything in configuration about having to enable the plugin in configuration.php, etc.

thumbnails for folders?

Is it possible to enable thumbnails and if in large icon view display specific image based on folder name as icon vs generic folder icon?

New Idea - Back to search button

When making a search, the search is made in file names, in descriptions or comments, really great feature, especially it looks the search inside elements as a substring !
But when the result displays folders, when entering into a folder the 'search mode' is lost. It would be smart to have somewhere a button 'Back to search'. The best would be to stay in 'search mode' forever until exiting that mode, but that might be really more complicated to code, also a simple button in the toolbar would be easier.

By the way, it should be good to show a better way the search mode, as for example:

kloudspeaker-searchresults-desc {

float: left;
clear: both;
margin-left: 12px;
**padding-bottom: 20px;**
**font-size: 14px;**
**font-weight: 600;**

}

share file by sending email

I am looking for another action "email" to send files by email as attachment. I took some time to find out, however I have trouble to get file direct path to attach. Is there any way to get this?

After upgrade passwords no longer work

We did an upgrade/migration from Mollify 2.1.6 -> 2.6.7 -> Kloudspeaker 2.6.15 and passwords does not work any more. In the AuthenticatorPW.class.php support for legacy passwords is missing.

Problem for uploading files from the browser.

When I try to upload a file, select the file with the tool and I click OK, but the file is not loaded.

If I try twice in a row the file is loaded.

And checked if a permissions problem and everything seems to be correct. Please note that the file is uploaded when I try twice.

Any ideas ?

Follow URL links

Hi,

Will it be possible to follow URL links in a any file extension, file type which is supported presently?

Thanks
LC

Way to hide file types?

Is there a way to not show some file types, for example .txt or .php not to show those files that might be in the path where other files are shown.

Offline viewer for pdf files

Reading the wiki: "Using Google Viewer requires that files can be accessed from internet (as the Google service needs to download the file). When Kloudspeaker is used in a closed network (ie. intranet), this viewer cannot be used."
So, how can I use the pdf preview in a closed network?
Thank you

Admin shares bug in 2.7.2

Administrator can not edit not his own shares. Browser returns error:

Uncaught TypeError: Cannot read property 'share' of null in /backend/plugin/Share/client//repository.js:14

Problem with History 1.1 when direct editing

History works fine with all drag/drop and copy operations.
But not when direct editing with integrated text editor. The dates are not correct is the popup. Check picture. And the refresh is not made, so the history count# is not good.
textedit

Comment plugin and Register not working

i cant get comment and register to work in last version 2.7 this is the issues:

register :
TypeError: app.openPage is not a function
app.openPage('registration/new');

comment plugin :
TypeError: that._timestampFormatter is undefined
comments[i].time = that._timestampFormatter.format(utils.parseInternalTime(comme...

Trash can

A trash can or recycle bin that collects deleted files from users. The trash can should only be accessible by the admin and gives the option of permanently deleting the file(s) or restore them to their original position before they were deleted by the user.

This helps if a user accidentally deletes a file and allows the admin to recover it.

2.7.1 (rev. 29) fails to initialize in Spanish

On a fresh install, when language.default is set to es, KloudSpeaker 2.7.1 fails to start with Failed to initialize Kloudspeaker error.

English, French, Hungarian and German languages are not affected. localization/texts_es.json is present and fetched by the browser. The JSON language file is valid (according to jsonlint.com) Reproduced in both latest Firefox and Chrome.

Thank you for your time in this useful piece of software!

Problem with CKEditor plugin version 1.0 zip size 870947 bytes

I notice 2 problems in the logs:

  • File not exists: backend/plugin/FileViewerEditor/editors/CKEditor/resources/kloudspeaker.js
    => easy to solve, just rename the existing mollify.js in kloudspeaker.js
  • File not exists: backend/plugin/FileViewerEditor/editors/CKEditor/resources/config.js
    => here there is only an existing ckeditor.js file, seems not to be any config stuff inside, so is it really missing ?

However I've tried to edit an HTML file and it seems working ..;)

File and folder access is not restricted based on user login

As of version 2.6.12, adding users to a folder or a group who is assigned to a folder is only used by Kloudspeaker to enumerate the list of assigned folders for use in displaying the folder list at the top left. It does not use the folder assignments to actually restrict access to the folder or items inside of it.

I have a new installation which has an admin and two demo accounts:
ks_users

There are four test folders created:
ks_folders

Each test folder contains a single text file with a single line of text:
ks_file_contents

The demo1 user has been assigned to folders TEST 1 and TEST 2 while the demo2 user has been assigned to folders TEST 3 and TEST 4:
ks_assignments

Logging into Kloudspeaker on two different computers I find that the folders get the following URLs:
TEST 1 - https://ks-test-1/?v=files/5589ec618d41d
TEST 2 - https://ks-test-1/?v=files/5589ec6193440
TEST 3 - https://ks-test-1/?v=files/5589ed694435f
TEST 4 - https://ks-test-1/?v=files/5589ed694e5b3

The MySQL item_id table corresponds:
mysql_item_id

On a completely unrelated third computer that has never been used to login to Kloudspeaker I login using the demo1 account that should only have access to TEST 1 and TEST 2. As expected only TEST 1 and TEST 2 show in the sidebar:
login_demo1_example1

Now that I am logged in I open a second tab and enter the URL above for TEST 3. The demo1 user should not have access to this folder. However, it comes up anyways:
login_demo1_example2

It isn't just for show either, the file can be successfully downloaded and opened:
login_demo1_example3

Now of course a user would need to know the file ID of the folder or file to access in advance. This is relatively trivial for two reasons:

  1. The target audience for using this tool may routinely exchange correspondence which may include links. Forwarding of past correspondence, such as email, would then contain the links. Likewise, instant messaging could readily be used between users which may contain the links.
  2. A user may be assigned to a folder for a short period of time and then have the assignment removed. If the user still has a Kloudspeaker account after having their assignment removed they would have the link necessary to access the folder.

A user still needs to have a login to Kloudspeaker to exploit this bug. Furthermore the user needs access to just one other folder, it doesn't matter what the other folder is. If no folders are assigned to the user nothing shows up. Of course if the user has a Kloudspeaker account chances are basically 100% that they have access to some other folder. This same bug can be extended to the download URLs. If someone gets the download URL for a file (for example: https://ks-test-1/backend/r.php/filesystem/5589ed6981d11) the same thing applies. As long as a user has access to at least one folder on Kloudspeaker they can use any download URL without restriction.

I think the fix for this should be fairly simple. First off consider that there are two possible vectors for exploiting this:

  1. User obtains a URL for a folder which they are not assigned to.
  2. User obtains a URL pointing to a specific download (via r.php) which is in a folder they are not assigned to.

Regardless of the vector, a reference to the file ID is included in the URL. Lets use https://ks-test-1/backend/r.php/filesystem/5589ed6981d11 for example which has a file ID of 5589ed6981d11, which corresponds to TEST_FILE_3.txt which I used earlier in screenshots. The demo1 user which I was logging in with during my example has a user ID of 2. Using only the file ID and the user ID of the logged in user we can use existing database information to find out if the user should have had access.

Using the item_id table in the database we can discern that the path is 10:/TEST_FILE_3.txt. The "10" at the beginning of the path is the folder ID from the folder table in the database. Using the user's known user ID of "2" we can reference the user_folder table. No results are returned from the query "SELECT * FROM user_folder WHERE user_id = 2 and folder_id = 10" and as such access should be denied.
ks_fix

This logic could be used during every folder access and also during every download attempt to see if the user should actually have access and block them if necessary.

How to upload a file from direct Linux shell command ?

As a simple cp command line, how to upload a file in a special root folder ?

As for example:
=> mollifycopy -u username /tmp/srcfile.txt rootfolder:/folder
(would copy the /tmp/srcfile in folder under rootfolder as specified user, no need of password)

Sharing entire folders for downloading

It would be nice to share an entire folder via public link-sharing for downloading (also with the option to compress certain subfolders or the entire shared folder for downloading).
Additionally to share a collection of files with the option to view them before downloading them entirely as a zip-file would be great!

example of working comments plugin

Can someone post a example of index.html with working comment plugin. I have the plugin added to configuration.php and ran the updater. Just can not get working.

Who Added that User? [Feature Request]

In my installation, I have multiple administrators. When reviewing my user list, I frequently have to determine who created a particular user account. This can be accomplished by searching the event logs, but this is tedious. To make this easier, I added a column named 'creator' to the 'user' table. When a user is added, it populates this column with the username of the administrator adding the user. I added a column to the users table to display the 'creator' username. Now when I'm wondering about a particular user account, I know who to ask about it.

It would be great if this feature was implemented in the main branch. Others may find it useful and it would save me time when updating my installation. I can provide my code if you'd like.

File Download impossible with IE 11, Firefox and Edge

Download a selected File is not possible with with IE 11, Firefox and Edge. Crome works.

Error Message in web console:
"fs" ist undefiniert" (fs is undefined) kloudspeaker.full.min.js, line: 25, column: 20349

Kloudspeaker 2.6.15 (rev. 27)
Latest Version of Firefox,IE 11 and Edge

Automatic Creation of User Folders

When adding a new user, it would be useful to (optionally) create a new folder with the same name as the user and assign it to that user. When removing the user, there should also be an option to remove their associated folder.

When creating a new folder for a user, the system should ensure that a folder doesn't already exist with that name. If it does, the system could append "_1", "_2", etc.

When deleting the user's folder it should also be removed from the filesystem. The system should ensure that the filesystem path isn't referenced by any other published folder before deleting the path. If the path has multiple references, an error should be thrown with the option to remove the user but not delete the folder from the filesystem.

I have already implemented some of this in my installation, and I can provide the code if you'd like.

Enhancement: Download Resume Support

I was thinking of using Kloudspeaker as a way to distribute very large files (10GB) to end users. The catch is that many of the end users have internet connections which are unstable at times. To this end the platform we use has to support resuming of file download. Would it be possible at all to add this?

Archiver Plugin Renaming Issue

The Archiver plugin is broken because some of the file names still contain "Mollify" instead of "Kloudspeaker". Rename the files the following folders:
backend\plugin\Archiver
backend\plugin\Archiver\zip

Improve deletion of root folders from filesystem

When removing a single folder, there is a check box on the confirmation message labelled "Delete folder content". Selecting this check box will delete the corresponding folder from the filesystem.

There are two problems with this functionality:

  1. If the referenced folder does not exist in the filesystem a generic error is thrown. If the folder is already gone, it should just remove it, not produce an error.
  2. It does not check whether other published folders reference the same filesystem path, potentially breaking other published folders. The system should check whether the filesystem path is referenced by any other published folders. If it is, throw an error indicating the path is in use by other published folders, and ask whether to remove the folder without deleting from the filesystem.
  3. Filesystem folders can not currently be deleted when selecting multiple folders for removal. This would be a useful feature. When removing multiple folders, the two points mentioned above should be considered. However, if all folders which reference a particular path are being deleted at once, then the error mentioned in point 2 should not be thrown.

I have already implemented this in my installation, and I can provide the code if you'd like. It just makes it a pain to update my installation.

There is another problem that I've just discovered. Consider this scenario: a user named "manager" has access to a root folder located at /some/path/usersfolder. Within that root folder there are other folders: /some/path/usersfolder/user1, /some/path/usersfolder/user2. Now these folders are also published as root folders to specific users. The problem is that the "manager" user can delete those subfolders, even though they are published as root folders, and this causes a problem for the other users of these folders.

Trashbin with sqlite error

Using sqlite as backend storage, the following error occurs when trying to enable the trash bin plugin:

Update failed
Error reading sql file (plugin/TrashBin/sqlite/install.sql)

updated to 2.6.8 how to see that actually on 2.6.8

So update went smooth, and know on the latest version because the new ignore file type is working but is there anywhere to actually see info about the install, like version, maybe some items out of the configuration file like database, etc.

I don't see an about anywhere, would be nice to be the configuration menu maybe?

Unable tu create new users when `/dev/urandom` is not accessible

Kloudspeaker latest (2.7.2) fails to create a new user when /dev/urandom is not accessible to PHP due to open_basedir restrictions. The action will fail with a generic error message (which I don't provide because I'm using a translated version; giving an additional error code would be useful in the future for this purpouse).

When creating a new user I'm getting the following message embeded in the detail property of a JSON response:

PHP error #2, is_readable(): open_basedir restriction in effect. File(/dev/urandom) is not within the allowed path(s): (/var/www/vhosts/xxxxxxxxx.es/:/tmp/) (/var/www/vhosts/xxxxxxxxx.es/yyyyyyyyyyyyyy/backend/vendor/phpass/PasswordHash.php:78) 

As I don't want to fiddle with my open_basedir configuration, which I consider valid, I have commented the following lines in PasswordHash::is_devurandom(), which solved the issue for me:

function is_devurandom() {
        if (Logging::isDebug()) Logging::logDebug("/dev/urandom: ".($this->no_devurandom ? "0" : "1"));
        if ($this->no_devurandom) return FALSE;
        if (Logging::isDebug()) Logging::logDebug("Trying /dev/urandom");
//      try {
//              if (@is_readable('/dev/urandom')) return TRUE;
//      } catch (Exception $e) {}
        if (Logging::isDebug()) Logging::logDebug("/dev/urandom not accessible");
        return FALSE;
}

Copy drop down for "read only"

If user has a "read only" access he can still see "Copy" in drop down menu. Truing to Copy in this case results to an error message.

How to interrupt a file upload

Currently the only way to interrupt a file upload seems to refresh the whole page. It would be smart to have a close button to cancel a slow upload, example below ..;)

upload

Cannot Run Update

Hello,
In the documentation, you mention several times that when a plugin is installed (like share), we should run the update util after we performed the modification.
How can I run the update utility ?
I tried to access to the /backend/update/index.php but it says that nothing needs to be updated and my changes are not taken into account...
Is there something I missed ?

Many Thank and sorry for the possible dummy request...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.