taskmldonkey, a multi-networks file-sharing client - Tasks: task #4313, Enhancing Multiuser abilities


You are not allowed to post comments on this tracker with your current authentication level.

task #4313: Enhancing Multiuser abilities

Submitted by:  None
Submitted on:  Sat 25 Jun 2005 11:53:37 AM UTC  
Votes:  300  
Category:  Core Priority:  5 - Normal
Status:  Done Assigned to:  None
Open/Closed:  Closed Should Start On:  Sat 25 Jun 2005 12:00:00 AM UTC
Should be Finished on:  Sat 25 Jun 2005 12:00:00 AM UTC

( Jump to the original submission)

Sun 22 Oct 2006 12:55:33 PM UTC, comment #43: 

Closing this task as most features went into CVS.
multigroup_usercommit.patch can be found in patch #5475
multigroup_su.patch will not go into CVS as-is, maybe it will get improved, but for me its low-priority.

spiralvoice <spiralvoice>
Project Administrator
Tue 19 Sep 2006 05:09:05 PM UTC, comment #42: 

Applied multigroup.patch as patch #5406 to CVS

spiralvoice <spiralvoice>
Project Administrator
Wed 13 Sep 2006 08:20:48 AM UTC, comment #41: 

small update for multigroup.patch
- allow filenames_variability again for all users, filter file list

spiralvoice <spiralvoice>
Project Administrator
Fri 01 Sep 2006 05:14:43 PM UTC, comment #40: 

small update for multigroup.patch
- restrict command filenames_variability only for admin users

spiralvoice <spiralvoice>
Project Administrator
Tue 29 Aug 2006 01:34:10 PM UTC, comment #39: 

small update for multigroup.patch
- restrict commands scan_temp and sources only for admin users

spiralvoice <spiralvoice>
Project Administrator
Mon 24 Jul 2006 10:44:06 PM UTC, comment #38: 

small update for multiuser.patch
- dllink for EDK files shows now verbose error messages
  it shows file_owner for a currently downloading file
  it shows the directory where a shared file is stored in

spiralvoice <spiralvoice>
Project Administrator
Sun 16 Jul 2006 12:41:05 AM UTC, comment #37: 

added multigroup2.patch as replacement for multigroup.patch for testing

  • added user database command overview below HTML, users command
  • added command groupadd
  • prevent userdel if user is file_owner of current downloads
  • some safe-guards while loading users.ini and files.ini

  - ignore non-existent groups in user_groups and user_default_group
  - ignore user_default_group if user is not member of user_groups
  - change file_owner to admin if file_owner does not exist
  - change file_group to user_default_group if file_owner is not member of group file_group

spiralvoice <spiralvoice>
Project Administrator
Sun 18 Jun 2006 11:27:14 PM UTC, comment #36: 

Merged multigroup.patch + pangos multigroup_quota_v4.patch
users.ini, user_max_concurrent_downloads is now fully supported.
Options, HTML, users prints amount of DLs/user along with the quota.

spiralvoice <spiralvoice>
Project Administrator
Sat 17 Jun 2006 01:49:05 AM UTC, comment #35: 

Pango made a patch to replace multigroup_quota.patch.

Please test.

The old version blocked the start of new downloads when quota was reached.

The new version queues new downloads if the user reached his/her quota and automatically restarts them if files of this user are finished or the quota is raised. The same mechanism as for max_concurrent_downloads is used for this. Giving files priorities lets the user decide which files should not be queued.

spiralvoice <spiralvoice>
Project Administrator
Thu 15 Jun 2006 03:35:11 PM UTC, comment #34: 

Updated multigroup.patch for current CVS

spiralvoice <spiralvoice>
Project Administrator
Sat 10 Jun 2006 05:20:53 PM UTC, comment #33: 

Forget one new command:

passwd <passwd> change own password

spiralvoice <spiralvoice>
Project Administrator
Sat 10 Jun 2006 05:19:50 PM UTC, comment #32: 

Updated patch, all commands changing user data (except groups stuff) are now implemented:

useradd <user> <passwd>  add new mldonkey user/change user password
userdel <user> remove a mldonkey user
usermail <user> <mail> change user mail address
usercommit <user> <num> change user specific commit directory
userdls <user> <num> change number of allowed concurrent downloads

HTML, users command also has more data now.

multigroup.patch is again a base patch which requires more patches
to implement more functions:
multigroup_quota.patch implements usage of user_max_concurrent_downloads
multigroup_usercommit.patch does the same for user_commit_option

spiralvoice <spiralvoice>
Project Administrator
Fri 09 Jun 2006 02:58:59 PM UTC, comment #31: 

New versions of multiuser patch
- new option in users.ini, users2[]: user_max_concurrent_downloads

Split patch in two versions, multigroup.patch is the base patch
and needed for all other patches

multigroup_usercommit.patch implements option in users.ini, users2[]: user_commit_dir which is a dir below current incoming dirs. Splitting of this function into another patch was done
because this feature works but will be improved in the future
to make the commit patch totally configurable with variables:

user_commit_dir = "%default%\%user%\%network%"
and maybe other variables like %extension%

This will be done with a patch by pango which implements parsing
this type of options. This new function is provided in a
generic way in global_replace.ml, also attached to this task.

spiralvoice <spiralvoice>
Project Administrator
Wed 05 Apr 2006 12:58:51 AM UTC, comment #30: 

merged multiuser and groups patch
- "users" command in HTML shows more infos
- new commands: chown + chgrp, "none" for group None

spiralvoice <spiralvoice>
Project Administrator
Sun 19 Mar 2006 06:01:51 PM UTC, comment #29: 

Updated groups patch for multiuser7.patch and current CVS

  • removed user_vd_filter option
  • a file can have group None, this means the file is private to file_owner
spiralvoice <spiralvoice>
Project Administrator
Tue 14 Mar 2006 02:01:57 PM UTC, comment #28: 

First implementation of groups, this is alpha quality and needs testing.

A user can be a member of more than one group.
Each file belongs to only one user and one group.
Users of the same group should see all files of that group.

All users belong to the default group "mldonkey".
At first all files belong to the group "mldonkey",
this can be changed later (to be implemented - HTML drop-down list?).

spiralvoice <spiralvoice>
Project Administrator
Tue 14 Mar 2006 08:17:11 AM UTC, comment #27: 

"Its the same code as for the "vd" command, so it could be refactored."
done -> Two new functions in CommonFile for filtering file lists
user2_filter_files : CommonTypes.file list -> string -> CommonTypes.file list
user2_allow_file_view : CommonTypes.file -> string -> bool

New variable CommonUserDb.admin_user to be used instead of string "admin".

multiuser_filter_files.patch must be applied after all the other patches.

spiralvoice <spiralvoice>
Project Administrator
Mon 13 Mar 2006 10:42:07 PM UTC, comment #26: 

A patch for a bug in the current multiuser patch: after canceling a
file in the webgui, the view is temproarily unfiltered.

Its the same code as for the "vd" command, so it could be refactored.

Joakim Verona <jave>
Project Member
Fri 10 Mar 2006 05:13:31 PM UTC, comment #25: 

"but don't forget that mldonkey is blocked till the file is commited."
Only if temp_directory and the incoming directory are on different
physical partitions. MLDonkey always tries to move the file, if
this fails due to different physical partitions the file is copied,
only this copying will block the core. Patches for threaded copying
which really works are welcome...

spiralvoice <spiralvoice>
Project Administrator
Fri 10 Mar 2006 04:20:47 PM UTC, comment #24: 

With the 'user_commit_to_user_dir'-Option (set it to 'true') the Files commited by one should be placed at incoming/files/[username]
Maybe you can try to replace the [username]-Directory with a symbolic link to wherever you want the files to be placed in. But don't forgett that mldonkey is blocked till the file is commited.

Martin Fernau <cosh>
Fri 10 Mar 2006 03:35:58 PM UTC, comment #23: 

This enhancement could be very usefull (at least for me).
Another thing really interesting (at least for me as well) is to set a specific incoming directory for every user, (so that way disk quotes would be possible using external solutions). I would enjoy that.

NOTE: I'm learning english, maybe i didn't explained exactly, please let me know if you can't understand this message.

Thank you for reading this.

Jesús Burgos <jessnome>
Fri 10 Mar 2006 12:42:46 PM UTC, comment #22: 

I added some support for multiuser in the filetp module.

It compiles for me and is tested for the download command, but not for
the referer commands.

Joakim Verona <jave>
Project Member
Mon 06 Mar 2006 06:06:55 PM UTC, comment #21: 

Updated CVS, patch #4950 & #4954 are now in CVS.
Merged patches -> multiuser3.patch

spiralvoice <spiralvoice>
Project Administrator
Mon 06 Mar 2006 12:01:30 AM UTC, comment #20: 
spiralvoice <spiralvoice>
Project Administrator
Sun 05 Mar 2006 05:52:06 PM UTC, comment #19: 

New patch on-top of current patch,
patches #4950 and #4954 have to applied before multiuser patches

- changed file_users implementation from "CommonTypes.ui_user list" to "string list"
- BT downloads should have correct user entries (to be tested)

spiralvoice <spiralvoice>
Project Administrator
Tue 28 Feb 2006 09:58:06 PM UTC, comment #18: 

I added a merged patch now. It includes all other multiuser patches,
and compiles.

What to expect if you apply it:
- users.ini will change
- all users get different views, only their own downloads
- only admin can see all downloads
- webgui, telnet, and maybe other guis, filter files
- commit script gets a USER env var set
- admin and all users downloading the file gets an email on commit

Thats about it. There are known problems:
- when canceling a file, the view suddenly gets unfiltered
- filetp downloads get owned by default_user

Joakim Verona <jave>
Project Member
Sun 26 Feb 2006 05:11:33 PM UTC, comment #17: 

Great! This multi_user patch gets every day closer to that what some ppl seached for. Very nice job!

If there would some day a possibility to hide the uploading files from another user (if user A is download file x.txt, than user B can see uploading a file called x.txt), then it is very close to be perfect I think :)

thanks to the developers!

Martin Fernau <cosh>
Sun 26 Feb 2006 04:07:17 PM UTC, comment #16: 

telnet has been coded.

an env var is set with username for the commit script

changes to userdb structure to include email address of users.

Joakim Verona <jave>
Project Member
Thu 23 Feb 2006 11:32:20 AM UTC, comment #15: 

User based filtering is only enabled for HTML interface, attached
you will find it for GUI, Telnet has yet to be coded.
User admin can see all files.

New option user_vd_filter "Allow users to see only their own downloads", default false

Set to true to enable filter, implemented currently only for GUI.
Will be implemented in Telnet and HTML when filters are merged.

To patch: Use current CVS, apply multiuser.patch, then multiuser_gui.patch

spiralvoice <spiralvoice>
Project Administrator
Thu 23 Feb 2006 09:24:47 AM UTC, comment #14: 

erm... I thought the mutiuser of mldonkey prevent the users to SEE downloads from each other. So, because they don't see them, how should they cancel them?

however.. maybe I misunderstand something!?

Martin Fernau <cosh>
Thu 23 Feb 2006 08:42:14 AM UTC, comment #13: 

<mikeX> [23:46:12] are there plans for enhancing the user system of mldonkey, say protecting against one user canceling the transfers of others, etc?

spiralvoice <spiralvoice>
Project Administrator
Tue 21 Feb 2006 08:30:57 AM UTC, comment #12: 

BT cookies patch is in patch #4433

spiralvoice <spiralvoice>
Project Administrator
Tue 21 Feb 2006 08:12:09 AM UTC, comment #11: 

Updated patch for current CVS, parse_donkey_url works now,
removed non-related parts of the patch (BT cookies)

spiralvoice <spiralvoice>
Project Administrator
Thu 16 Feb 2006 07:53:59 PM UTC, comment #10: 

I didnt have time to clean the 4th  patch better, its just generated with cvs diff -u from my working copy, which hasnt been updated in a while.

Anyway this version has been functioning pretty well for 4 ppl some months now.

Joakim Verona <jave>
Project Member
Tue 07 Feb 2006 10:06:54 AM UTC, comment #9: 

set_admin.patch was applied to CVS as patch #4859

spiralvoice <spiralvoice>
Project Administrator
Tue 15 Nov 2005 11:16:17 PM UTC, comment #8: 

nice to see some progress about the multi user thing. I'm reallay awaiting this feature.
however, mldonkey rocks with and without this feature :)

Martin Fernau <cosh>
Mon 24 Oct 2005 05:42:27 PM UTC, comment #7: 

Attached patch to optionally restrict changing of options only for user admin.

spiralvoice <spiralvoice>
Project Administrator
Wed 19 Oct 2005 10:02:59 AM UTC, comment #6: 

I now attached my 2nd version multiuser patch.

Its still a bit messy. I did "cvs up" before, so that this patch
should be as clean as possible.

For some reason, there are still lots of unrelated things in this

Joakim Verona <jave>
Project Member
Tue 18 Oct 2005 08:44:05 PM UTC, comment #5: 

just a status update on my multiuser patch:

- it stores usernames for ed2k and bittorent downloads, for the user that initiated the download

- it filters the download view so only the files the current user owns

- the email sent on commit now contains the usernames as well

I will upload this patch later. (or sooner depending on demand)

Joakim Verona <jave>
Project Member
Fri 07 Oct 2005 12:51:49 PM UTC, comment #4: 

I have a partial implementation that shows which user has started a  download for the donkey plugin.

bt support is started.

Sat 25 Jun 2005 11:53:37 AM UTC, comment #3: 

This item has been reassigned from the project mldonkey, a multi-networks file-sharing client bugs tracker to your tracker.

The original report is still available at bugs #8341

Following are the information included in the original report:

[field #0]                  Item ID: 8341
[field #1]                 Group ID: 1409
[field #2]              Open/Closed: Open
[field #3]                 Severity: 3 - Normal
[field #4]                  Privacy: Public
[field #5]                 Category: Core
[field #6]             Submitted by: None
[field #7]              Assigned to: None
[field #8]             Submitted on: Son 28.03.2004 um 11:03
[field #9]                  Summary: Enhancing Multiuser abilities
[field #10]      Original Submission: Hello,

I think many people use one mldonkey for more than one person for example in a cotenancy.
It would be nice than if you could see who is downloading which file and save an eMail adresse per person/account where to send a mail to when the download is finished (maybe even save per account if the user wants to retrieve an eMail or not).

[field #12]               Item Group: Feature request
[field #13]                   Status: Postponed
[field #14]        Component Version: None
[field #15]         Platform Version: None
[field #16]          Reproducibility: None
[field #17]               Size (loc): None
[field #18]            Fixed Release: None
[field #19]          Planned Release: None
[field #20]                   Effort: 0.00
[field #24]                 Priority: 5 - Normal
[field #27]         Percent Complete: 0%
[field #29]                  Release: None
[field #54]          Binaries Origin: Binary from Savannah
[field #55]                 CPU type: None
[field #56]                      CPU: None
[field #57]     Custom Select Box #4: None
[field #58]     Custom Select Box #5: None
[field #59]     Custom Select Box #6: None
[field #60]     Custom Select Box #7: None
[field #61]     Custom Select Box #8: None
[field #62]     Custom Select Box #9: None
[field #63]    Custom Select Box #10: None

spiralvoice <spiralvoice>
Project Administrator
Fri 10 Jun 2005 11:33:18 AM UTC, comment #2: 

Copied from http://article.gmane.org/gmane.network.mldonkey.user/4449

Alexander Gräf wrote:

Hello mailing list recipients,

I'm currently in the progress of developing a GUI protocol library and GUI frontend in managed C#. The GUI will run on Windows with Windows.Forms, the protocol library will be system independent, so it could be used to write a GUI with Mono, using Gtk# on Linux. Development makes progress, and I think I'm beeing able to release a first beta in about 2 weeks.

Screenshots for the pre-alpha can be found here (no source or binaries available yet):

The binaries and sources will be published under an OSI-approved license. However, while digging into the code of MLDonkey for finding out about GUI-protocol details, I had to found out that MLDonkey hasn't multiuser support beyond letting users login with different usernames and password. There isn't even an owner tag on the FileInfo messages.

So my feature requests would be:

1) At least provide a string field for each FileInfo message (currently OP-code 52), which contains the name of the user who added the file to the download queue. This would at least provide some means for a GUI to hide foreign files.

2) Extend the available informations about each user.
a) Attach an email address to each user account, to which a message can be sent after the file download completed.
b) Attach a group to each user account, which defines which actions can be initiated by each user (downloading, options modifying, server reconning and deleting, etc.)
c) Provide the possibility to have a different incoming directories for each user, if the file is commited/auto-commited. This could also be accomplished by using a placeholder string, like "/usr/<username>/mlincoming", where the file is copyied to after commit.

3) Let the core hide all foreign files, but show all for users belonging to a admin-group (this would also need features beeing implemented like multiple-commiting for multiple users downloading the same file)

I'm aware several of those features were already requested, and I'm also aware that those arent easy to implement. However, I'm not able to programm in Ocaml, so I'm currently stuck with only beeing able to request the features, but not beeing able to help with the development. However, having the option to manage multiple users was the initial reason I switched away from using the eMule embedded webserver and developing my own GUI.

Regards, Alexander Gräf

spiralvoice <spiralvoice>
Project Administrator
Sun 28 Mar 2004 12:48:24 PM UTC, comment #1: 

Have a look here, this is a multiuser GUI for MLDonkey:

spiralvoice <spiralvoice>
Project Administrator
Sat 25 Jun 2005 11:53:37 AM UTC, original submission:  


I think many people use one mldonkey for more than one person for example in a cotenancy.
It would be nice than if you could see who is downloading which file and save an eMail adresse per person/account where to send a mail to when the download is finished (maybe even save per account if the user wants to retrieve an eMail or not).




Attached Files
file #10702:  multigroup_su.patch added by spiralvoice (3KiB - application/octet-stream)


Depends on the following items: None found

Items that depend on this one: None found


CC list is empty


Do you think this task is very important?
If so, you can add your encouragement to it.
This task has 300 encouragements so far.

Only logged-in users can vote.




Follow 25 latest changes.

Date Changed by Updated Field Previous Value => Replaced by
2006-10-22 spiralvoice StatusIn Progress => Done
    Open/ClosedOpen => Closed
2006-09-19 spiralvoice StatusNone => In Progress
2006-09-19 spiralvoice Attached File#10787 => Removed
2006-09-17 spiralvoice Attached File- => Added multigroup.patch, #10787
2006-09-17 spiralvoice Attached File#10747 => Removed
2006-09-13 spiralvoice Attached File- => Added multigroup.patch, #10747
2006-09-13 spiralvoice Attached File#10744 => Removed
2006-09-13 spiralvoice Attached File- => Added multigroup.patch, #10744
2006-09-13 spiralvoice Attached File#10695 => Removed
2006-09-06 spiralvoice Attached File- => Added multigroup_su.patch, #10702
2006-09-05 spiralvoice Attached File- => Added multigroup.patch, #10695
2006-09-05 spiralvoice Attached File#10666 => Removed
2006-09-01 drslump Carbon-Copy- => Added drslump
2006-09-01 spiralvoice Attached File- => Added multigroup.patch, #10666
2006-09-01 spiralvoice Attached File#10630 => Removed
2006-08-29 spiralvoice Attached File- => Added multigroup.patch, #10630
2006-08-29 spiralvoice Attached File#10624 => Removed
2006-08-28 spiralvoice Attached File#10148 => Removed
2006-08-28 spiralvoice Attached File- => Added multigroup.patch, #10624
2006-08-28 spiralvoice Attached File#10565 => Removed
2006-08-21 spiralvoice Attached File- => Added multigroup.patch, #10565
2006-08-21 spiralvoice Attached File#10527 => Removed
2006-08-12 spiralvoice Attached File- => Added multigroup.patch, #10527
2006-08-12 spiralvoice Attached File#10502 => Removed

Back to the top

Powered by Savane 3.7