Commit graph

42 commits

Author SHA1 Message Date
Dan Williams
570c0eb2df settings: implement deleting secrets from agents when connection is deleted 2011-01-31 23:33:46 -06:00
Dan Williams
393bcf8d12 settings: implement saving secrets to agents on Update() 2011-01-31 23:10:33 -06:00
Dan Williams
ac757766e6 settings: fix plugin capabilities max value
It's a bitfield, not a single value.
2011-01-31 21:11:18 -06:00
Dan Williams
1f7143b5df settings: remove obsolete comment 2011-01-31 20:52:18 -06:00
Dan Williams
f130089735 settings: use less memory in error handling of GetSecrets 2011-01-30 13:53:37 -06:00
Dan Williams
b285c6467a settings: simplify GetSecrets handling of sender UID
We've already gotten the UI when doing the PK auth checks, so
it's pointless to get it again.  Just pass the known UID through.
2011-01-30 13:49:56 -06:00
Dan Williams
3a97939525 settings: move agent code into settings directory
Since that's where it's used, and it doesn't need to be exposed
to any other code.
2011-01-30 11:00:33 -06:00
Dan Williams
0e6a5365d4 core: move secrets handling to NMSettingsConnection
It's the thing that owns the secrets anyway, and it simplifies things to
have the secrets handling there instead of half in NMActRequest and
half in NMManager.  It also means we can get rid of the ugly signals
that NMSettingsConnection had to emit to get agent's secrets, and
we can consolidate the requests for the persistent secrets that the
NMSettingsConnection owned into NMSettingsConnection itself instead
of also in NMAgentManager.

Since the NMActRequest and the NMVPNConnection classes already tracked
the underlying NMSettingsConnection representing the activation, its
trivial to just have them ask the NMSettingsConnection for secrets
instead of talking to the NMAgentManager.  Thus, only the
NMSettingsConnection now has to know about the agent manager, and it
presents a cleaner interface to other objects further up the chain,
instead of having bits of the secrets request splattered around the
activation request, the VPN connection, the NMManager, etc.
2011-01-27 10:41:02 -06:00
Dan Williams
4427774d57 agents: filter agents by UID for user-requested connections
When a user makes an explicit request for secrets via GetSecrets
or activates a device, don't ask other users' agents for secrets.
Restrict secrets request to agents owned by the user that made the
initial activate or GetSecrets request.

Automatic activations still request secrets from any available agent.
2011-01-26 18:36:08 -06:00
Dan Williams
68812f61d9 settings: request secrets from agents when clients call GetSecrets
A client calling GetSecrets on the connection should also request
secrets from agents in that client's session.  ie, a connection
editor should be able to call GetSecrets, and get the secrets
stored by the agent in that session (the applet).
2011-01-26 17:13:15 -06:00
Dan Williams
75af6105b7 settings: update signal prototypes
No functional change, but makes the internal API clearer.
2011-01-26 15:24:41 -06:00
Dan Williams
e68e27aa75 libnm-util: add 'flags' argument to nm_connection_to_hash() and nm_setting_to_hash()
Simplifies code internally, and makes it easier for clients as well in
some cases where they want to control what ends up in the resulting
hash and what does not.
2011-01-26 14:14:37 -06:00
Dan Williams
b3959aefa3 core: rename NMSysconfigConnection -> NMSettingsConnection 2011-01-26 11:38:12 -06:00
Dan Williams
d1979ba63e secrets: simplify GetSecrets call flow
The Settings.Connection interface is now only provided by NetworkManager
itself since there is only one settings service.  NM can validate
requests for secrets internally and thus there's no need to lock down
GetSecrets using a separate D-Bus interface, since PolicyKit provides
that functionality on systems where this is desirable (ie multi-user).
Single-user systems that do not have PolicyKit will inherently trust
the user already, or if not D-Bus auth is flexible enough to lock
down the GetSecrets method individually even if it's not on a separate
D-Bus interface.

Second, since only clients like connection editors or applets will be
calling the GetSecrets method, there's no need for 'hints' or
'request_new' arguments here since this  method should never trigger
an interactive secrets request.  Only NM should send those requests
when it knows it needs to ask the user, either during connection or
after validating the incoming GetSecrets request.  A connection editor
type application should never be able to trigger the normal
"What's your passphrase" dialog thats provided by the secret agent
for that user's session.
2011-01-26 10:17:07 -06:00
Dan Williams
b38f39cfc6 core: build keyfile plugin into NetworkManager
Since settings storage is now handled by NetworkManager, we must
have the ability to read/write all connection types at all times.
Since the 'keyfile' plugin is the only plugin that can handle all
connection types, build it into NetworkManager.
2011-01-12 18:12:23 -06:00
Dan Williams
f9ceafd4a1 Merge remote branch 'origin/master' into rm-userset 2011-01-12 15:46:37 -06:00
Dan Williams
215306f5a1 core: add AddAndActivate D-Bus method
Given connection details, complete the connection as well as possible
using the given specific object and device, add it to system
settings, and activate it all in one method.
2011-01-10 23:39:12 -06:00
Dan Williams
58088129f7 settings: only use one hint nm_sysconfig_connection_get_secrets()
Never used more than one anyway.
2010-12-12 21:29:13 -06:00
Dan Williams
ff101f4946 settings: remove callback from nm_sysconfig_connection_get_secrets()
No reason it needs to use the callback pattern anymore.
2010-12-12 21:17:34 -06:00
Dan Williams
cf7cc2492d logging: LOGD_SYS_SET -> LOGD_SETTINGS 2010-12-10 12:32:22 -06:00
Dan Williams
9d077444a9 settings: remove settings dict from connection 'updated' signal
New connections should not be pushed out in the Updated signal
because signals cannot be restricted to particular clients, and
some clients may not have permission to view the connection.

Upon receiving the Updated signal, clients should re-read the
connection using GetSettings to ensure that the client still
has permissions to view the connection, and to get the updated
settings.
2010-12-02 14:34:38 -06:00
Dan Williams
042468a86e settings: convert more hand-rolled polkit to NMAuthChain 2010-11-18 14:24:58 -06:00
Dan Williams
858fc2c4b8 trivial: remove incorrect comment 2010-11-18 14:21:21 -06:00
Dan Williams
c11ba3ea10 settings: GHashTable isn't a GObject subclass 2010-11-18 14:05:57 -06:00
Dan Williams
a53c31427d settings: make use of nm_auth_uid_in_acl() 2010-11-18 14:05:33 -06:00
Dan Williams
eccca738aa core: make nm_auth_get_caller_uid() error description non-const
For consistency with the next commit, so we don't need to remember
when to free the description or not.
2010-11-18 13:47:04 -06:00
Dan Williams
c3c9d93b1d settings: fix session checking for connection operations 2010-11-18 13:04:15 -06:00
Dan Williams
ac2438518d settings: don't allow addition of invisible connections
Ensure that only connections which are visible to the user adding
the connection may be added.
2010-11-18 12:53:24 -06:00
Dan Williams
fe3002d9f1 settings: fix permission checking during add 2010-11-18 12:40:38 -06:00
Dan Williams
9db44c42ee settings: remove unused variables 2010-11-18 10:55:21 -06:00
Dan Williams
ca063e4d0c libnm-util: add nm_setting_connection_permissions_has_user()
Utility function to determine whether a given username is in the ACL.
2010-11-18 10:36:18 -06:00
Dan Williams
c0f5872b5a settings: don't accept possible auth as success for saving hostname
Since user interaction is allowed when the permission for SaveHostname
is requested, if the user didn't authorize completely when polkit
returns, we don't want to proceed with the request.  Otherwise we might
get into a situation where it's possible for the user to authorize,
but they didn't, and previously the code would allow the request.
2010-11-17 17:54:04 -06:00
Dan Williams
1bbc624477 settings: port AddConnection to NMAuthChain
More code saved.  Yay.
2010-11-17 17:53:37 -06:00
Dan Williams
670da10764 settings: port SaveHostname to NMAuthChain
Every line of code we remove can then be spent on
rainbows and kittens.
2010-11-17 17:44:33 -06:00
Dan Williams
02d942320d core: fix nm_settings_get_connections() result confusion
It used to reference items in the list, but no longer does because
that's stupid.  Fixes some merge damage and a leak.
2010-11-17 17:42:22 -06:00
Dan Williams
3de9332f09 trivial: be a bit more paranoid about re-exporting connections 2010-11-17 17:33:00 -06:00
Dan Williams
453ea4d5c7 settings: make sure we use a clear error every time 2010-10-29 23:13:57 -05:00
Dan Williams
85db10a13f settings: fix connection addition
Need to make sure we actually export the connection over D-Bus (via
claim_connection()) before we try to return its object path in the
AddConnection reply.  Second, we need to send the path as a string
in the reply, not an object, since the return type is an object path.
2010-10-29 22:10:32 -05:00
Dan Williams
9d725be3a9 settings: fix signature of connection updated handler 2010-10-29 22:05:23 -05:00
Dan Williams
37845af954 settings: return new connection object path from AddConnection
Finally.
2010-10-29 14:34:33 -05:00
Dan Williams
3f64bf5e36 settings: rename NM_SYSCONFIG_SETTINGS_ERROR -> NM_SETTINGS_ERROR 2010-10-27 20:38:26 -05:00
Dan Williams
83ab4ec2ee settings: system-settings -> settings 2010-10-27 20:22:14 -05:00