Re: Problem to add a broadband connection on NetworkManagerUserSettings




I'm using Ubuntu 9.10, with your code I don't get errors but a connection is not added, nothing happens when I call AddConnection method.

Follow my policy file:

<!DOCTYPE busconfig PUBLIC
"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<!--
     WARNING: if running any D-Bus version prior to 1.2.6, you may be
     vulnerable to information leakage via the NM D-Bus interface.
     Previous D-Bus versions did not deny-by-default, and this permissions
     config file assumes that D-Bus will deny rules by default unless
     explicitly over-ridden with an <allow /> tag.
-->

        <policy user="root">
                <allow own="org.freedesktop.NetworkManagerUserSettings"/>

                <allow send_destination="org.freedesktop.NetworkManagerUserSettings"
                       send_interface="org.freedesktop.NetworkManagerSettings"/>

                <allow send_destination="org.freedesktop.NetworkManagerUserSettings"
                       send_interface="org.freedesktop.NetworkManagerSettings.Connection"/>

                <!-- Only root can get secrets -->
                <allow send_destination="org.freedesktop.NetworkManagerUserSettings"
                       send_interface="org.freedesktop.NetworkManagerSettings.Connection.Secrets"/>
        </policy>
        <policy at_console="true">
                <allow own="org.freedesktop.NetworkManagerUserSettings"/>

                <allow send_destination="org.freedesktop.NetworkManagerUserSettings"
                       send_interface="org.freedesktop.NetworkManagerSettings"/>

                <allow send_destination="org.freedesktop.NetworkManagerUserSettings"
                       send_interface="org.freedesktop.NetworkManagerSettings.Connection"/>
        </policy>
        <policy context="default">
                <allow send_destination="org.freedesktop.NetworkManagerUserSettings"
                       send_interface="org.freedesktop.DBus.Introspectable"/>
        </policy>

        <limit name="max_replies_per_connection">512</limit>
</busconfig>

On Wed, 2010-01-13 at 14:07 +0100, Jirka Klimes wrote:
On Tuesday 12 January 2010 16:36:07 Maxwell Chiareli Xandeco wrote:
> Hi all,
>
> I trying to add a new broadband connection using dbus python API:
>
> settings = dbus.Dictionary({dbus.String(u'connection'):
> dbus.Dictionary({dbus.String(u'timestamp'): dbus.UInt64(1263301788L,
> variant_level=1), dbus.String(u'autoconnect'):     dbus.Boolean(False,
> variant_level=1), dbus.String(u'type'): dbus.String(u'gsm',
> variant_level=1), dbus.String(u'uuid'):
> dbus.String(u'8a0e02d9-9b1a-463b-a089-7a68140bf4c3', variant_level=1),
> dbus.String(u'id'): dbus.String(u'Vivo Default', variant_level=1)},
> signature=dbus.Signature('sv')), dbus.String(u'ppp'):
> dbus.Dictionary({}, signature=dbus.Signature('sv')),
> dbus.String(u'gsm'): dbus.Dictionary({dbus.String(u'username'):
> dbus.String(u'vivo', variant_level=1), dbus.String(u'band'):
> dbus.Int32(0, variant_level=1), dbus.String(u'apn'):
> dbus.String(u'zap.vivo.com.br', variant_level=1),
> dbus.String(u'number'): dbus.String(u'*99#', variant_level=1)},
> signature=dbus.Signature('sv')), dbus.String(u'serial'):
> dbus.Dictionary({dbus.String(u'baud'): dbus.UInt32(115200L,
> variant_level=1)}, signature=dbus.Signature('sv'))},
> signature=dbus.Signature('sa{sv}'))
>
> sys_bus = dbus.SystemBus()
> proxy = sys_bus.get_object("org.freedesktop.NetworkManagerUserSettings",
> "/org/freedesktop/NetworkManagerSettings")
> proxy.AddConnection(settings)
>
> When I run this code i get a access denied error:
>
> dbus.exceptions.DBusException: org.freedesktop.DBus.Error.AccessDenied:
> Rejected send message, 2 matched rules; type="method_call",
> sender=":1.210" (uid=0 pid=27292 comm="python) interface="(unset)"
> member="AddConnection" error name="(unset)" requested_reply=0
> destination=":1.106" (uid=1000 pid=10148 comm="nm-applet))
>
> Does someone have any idea?
>
> Maxwell
>

The error says that you don't have permissions.
It's caused by not specifying interface which the method AddConnection should
be called on.

so do:
sys_bus = dbus.SystemBus()
proxy = sys_bus.get_object("org.freedesktop.NetworkManagerUserSettings",
"/org/freedesktop/NetworkManagerSettings")
iface = dbus.Interface(proxy, "org.freedesktop.NetworkManagerSettings")

iface.AddConnection(settings)

Btw, what distribution do you use and what policies do you have in
/etc/dbus-1/system.d/nm-applet.conf ?

Jirka

Legal Disclaimer: The information contained in this message may be privileged and confidential. It is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any distribution of this message, in any form, is strictly prohibited. If you have received this message in error, please immediately notify the sender and delete or destroy any copy of this message

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]