#345 Simple set of methods needed

Unassigned
closed
Murmur (113)
5
2012-12-01
2009-03-14
Kevin Traub
No

Hi!
I've been fighting for some time now trying to use the existing methods in ICE to deal with acls and bans. However, using php it seems very difficult to create a structured array in the format that ice will accept. I've been able to create single entries, but your current methods replace the entire list, so this does not work. And the amount of work required to handle a simple function seems excessive.

Could you add a set of simple functions to add/remove single entries?
setRemoveBan(IP)
setAddBan(IP)

And a set of simple acl functions to:
add single user to a group
remove single user to a group
add single group to a channel
remove single group to a channel
set single channel acl
set single group acl
set single user acl
...

This would certainly increase the speed of development of front ends.
I would like to start offering free servers, but until I can have a fully automated and functional web front end, I can't see it happening. Can you get these functions added and compiled into a static binary asap?
Thanks!
Chumly

( on the other hand... if you can provide some php functions that do the same thing, I'll take that to! :) )

Discussion

  • Snares

    Snares - 2009-03-16

    I'm not sure why you want to do this with ICE or PHP scripts and such, when you can do it directly through the client? The only thing I see that an administration web panel would need is (1) functions to set basic server settings such as its public name, password, bandwidth, etc. Basically those things one can set in the ini and (2) the ability to add a user (via self-registration and/or administrator registration). I really don't see the desperate need to create groups and ACL's in anything but the client. It is a nice feature yes, but nothing that important IMO.

     
  • Snares

    Snares - 2009-03-16

    I'm not sure why you want to do this with ICE or PHP scripts and such, when you can do it directly through the client? The only thing I see that an administration web panel would need is (1) functions to set basic server settings such as its public name, password, bandwidth, etc. Basically those things one can set in the ini and (2) the ability to add a user (via self-registration and/or administrator registration). I really don't see the desperate need to create groups and ACL's in anything but the client. It is a nice feature yes, but nothing that important IMO.

     
  • Kevin Traub

    Kevin Traub - 2009-03-16

    Well, I have yet to meet anyone who can figure out the administration of murmur via the client.
    By creating a user friendly web system, we can increase the users adoption rate.
    So, yes, this is an important issue, and a fairly simple one at that.
    I'm not asking for anything that does not already exist, only that it be exposed in a more accessible method.

     
  • Snares

    Snares - 2009-03-17

    Hm, I'm not sure why it posted my message two times...odd.

    Ok, I never said that you COULD administrate Murmur from the client. I am saying that the web administration tool only NEEDS to be for administering the server options, and adding, modifying, or deleting a user. And, as you know this is an open project. If you would like to contribute to it simply email or contact us over IRC. If you would like a Wiki account I can also give you one of those so you can edit it to give information on how to do what you describe.

    Remember, this is a project with not a huge amount of resources. None of us get paid for this (aside from voluntary donations that go toward the project) and the efforts of much of what we do are for high priority features of Mumble.

     
  • Kevin Traub

    Kevin Traub - 2009-03-17

    I think your getting confused.
    My point is that the 'average' user that gets his own vserver and logs in via his client as the 'SuperUser' will be horrified by the acl controls. My objective is to reduce this learning curve by providing a friendly gui. It does not need to have all the functionality of the client, it just needs to provide the basic functions so he can setup the channels and groups permissions to his needs.
    I have done this before, and stopped when I hit the same road block I'm at now. I have a fully functioning gui for server control, but lack ACL and BAN control. Both of these are rather important in a GUI. And when dealing with the average gamer/clan leader, they tend to need alot of hand holding that Mumble does not do.
    If you wish to look at the previous work I've done, you don't need to look far, its a sourceforge project, and comes up when you search for murmur. (murmuradmin) It fully utilities the dbus system, and does not access the db directly at any time. I am now re-writing this for ICE, but using php instead.
    I am certainly familiar with the world of open source having been involved since 1980, and understand the issues you are facing with the program. I only wish to assist in bringing this product to mass acceptance, above and beyond TS/Vent/xfire/etc... ( and hopefully pushing them to do something more useful and in a licensing system better suited to the masses. )
    If your not interested in simplifying the methods, could you do me the honor of showing me the required method of adding 2 or more bans to the ban list of a server, using php. I can set a single ban... can't seem to find a way to get an array of bans sent... If it can't then this is a bug, and needs to be fixed. The zeroc examples all show setting one item at a time, which would be fine for me to, but your implementation wipes out the existing records when a new one is written. I'm suggesting that new methods be given that don't do that, and allow adding/deleting the records one at a time.

    Perhaps another band-aid would be providing a method of 'reloading' the sql records without restarting the server. This would also serve well for the guys that insist on writing directly to the db...

     
  • Snares

    Snares - 2009-03-18

    Ok I think I see what you're talking about...you're saying that the in-client Groups, ACL Editor, and Ban manager is not simplistic enough, and therefore you would like to make a browser based panel? I personally have never really had many issues with ACL's or Groups. Sure the ACL's were confusing at first but I quickly got used to the concept of them.

     
  • Kevin Traub

    Kevin Traub - 2009-03-18

    Yes, and you and I are not the typical end user. So if you find it confusing in any way, how does the common public view it?
    ( ever talk to the average person on the street and realize they are stupid... that makes 50% of the population stupider than that guy... )

    So, if I break out a few of the basic functions, and allow them to move users into different groups, create groups, set basic acl rights for those groups, etc, then I'm making it a pleasant experience for the end user. That and adding and removing bans from a list is all I'm trying to do.

    My problem comes when I try to implement this using php and ice. I can not seem to find a method to find the correct method of submitting the list/array of data in the 'struct' format that ice wants it to be in. I can do it one at a time, but the existing methods wipe all data when writing, so I can only have one banned ip, not a list...
    Now if I want to create a new 'group', I have to getacl, which contains all the acl information, break it apart, add the group to the groups array, then reassemble them in some bizarre fashion that I have yet to find, and submit it all as one.... I'd just like to 'setgroups(array)', or even better 'setAddGroup(groupname)'/'SetRemoveGroup(groupname)'.
    Now I know the code already exists in mumble to do this stuff, I just need a method that exposes the distinct parts, not a do-all method. just like working with channels, i want to add/remove groups, group acls, channel acls, bans, etc.. The code is already in there, this isn't anything that doesn't already exist, only the methods need to be written.
    Once that is done, then the designers that design websites for end users can finish making something pleasing the the 'average' user. ( I'd also like to set up default channels and acl's.... )
    Thanks
    Chumly

     
  • Thorvald Natvig

    Thorvald Natvig - 2009-03-19

    There won't be "simple" functions offered; there would be just WAY too many of them. You'd need AddPlayerToGroupOnChannel, RemovePlayerFromGroupOnChannel, MakeGroupInheritable, MakeGroupInherited and matching Get functions just to cover groups. With that many functions, I can guarantee some of them will be buggy, and they're likely to quickly suffer bit rot. Performance would also suck. Imagine setting a "default" group and ACL set on a channel, with 3-4 acl rules and one or two groups; that's 20-30 full RPC roundtrips.

    Using the structs from PHP isn't all that hard once you know how; I've added an example to current git on how to do it. Have a look at scripts/addban.php

     
  • Kevin Traub

    Kevin Traub - 2009-03-20

    Excellent, That example is exactly what I need.
    I now have a functional ban list. Thank You.
    Now, can you show an example of the setACL method?
    The getacl returns a nice set of array's, and I have broken them out and display them nicely with functional checkboxs.... But I need to take these and reform them in to some structured format...
    Thanks
    Chumly

     
  • Thorvald Natvig

    Thorvald Natvig - 2009-03-20

    That is the exact same as for the bans, it's an array of named structs. If you simply print_r the responses you get, you'll see what they're supposed to look like.

     
  • SourceForge Robot

    This Tracker item was closed automatically by the system. It was
    previously set to a Pending status, and the original submitter
    did not respond within 14 days (the time period specified by
    the administrator of this Tracker).

     

Log in to post a comment.