~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/transport/gio_transport.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2011-08-09 12:34:00 UTC
  • mfrom: (6056.2.5 option-registry)
  • Revision ID: pqm@pqm.ubuntu.com-20110809123400-x521f2j9jkxx8ze2
(vila) Introduce OptionRegistry (Vincent Ladeuil)

Show diffs side-by-side

added added

removed removed

Lines of Context:
165
165
        #really use bzrlib.auth get_password for this
166
166
        #or possibly better gnome-keyring?
167
167
        auth = config.AuthenticationConfig()
168
 
        parsed_url = urlutils.URL.from_string(self.url)
 
168
        (scheme, urluser, urlpassword, host, port, urlpath) = \
 
169
           urlutils.parse_url(self.url)
169
170
        user = None
170
171
        if (flags & gio.ASK_PASSWORD_NEED_USERNAME and
171
172
                flags & gio.ASK_PASSWORD_NEED_DOMAIN):
172
 
            prompt = (u'%s' % (parsed_url.scheme.upper(),) +
173
 
                      u' %(host)s DOMAIN\\username')
174
 
            user_and_domain = auth.get_user(parsed_url.scheme,
175
 
                parsed_url.host, port=parsed_url.port, ask=True,
176
 
                prompt=prompt)
 
173
            prompt = u'%s' % (scheme.upper(),) + u' %(host)s DOMAIN\\username'
 
174
            user_and_domain = auth.get_user(scheme, host,
 
175
                    port=port, ask=True, prompt=prompt)
177
176
            (domain, user) = user_and_domain.split('\\', 1)
178
177
            op.set_username(user)
179
178
            op.set_domain(domain)
180
179
        elif flags & gio.ASK_PASSWORD_NEED_USERNAME:
181
 
            user = auth.get_user(parsed_url.scheme, parsed_url.host,
182
 
                    port=parsed_url.port, ask=True)
 
180
            user = auth.get_user(scheme, host,
 
181
                    port=port, ask=True)
183
182
            op.set_username(user)
184
183
        elif flags & gio.ASK_PASSWORD_NEED_DOMAIN:
185
184
            #Don't know how common this case is, but anyway
186
185
            #a DOMAIN and a username prompt should be the
187
186
            #same so I will missuse the ui_factory get_username
188
187
            #a little bit here.
189
 
            prompt = (u'%s' % (parsed_url.scheme.upper(),) +
190
 
                      u' %(host)s DOMAIN')
 
188
            prompt = u'%s' % (scheme.upper(),) + u' %(host)s DOMAIN'
191
189
            domain = ui.ui_factory.get_username(prompt=prompt)
192
190
            op.set_domain(domain)
193
191
 
194
192
        if flags & gio.ASK_PASSWORD_NEED_PASSWORD:
195
193
            if user is None:
196
194
                user = op.get_username()
197
 
            password = auth.get_password(parsed_url.scheme, parsed_url.host,
198
 
                    user, port=parsed_url.port)
 
195
            password = auth.get_password(scheme, host,
 
196
                    user, port=port)
199
197
            op.set_password(password)
200
198
        op.reply(gio.MOUNT_OPERATION_HANDLED)
201
199
 
209
207
 
210
208
    def _create_connection(self, credentials=None):
211
209
        if credentials is None:
212
 
            user, password = self._parsed_url.user, self._parsed_url.password
 
210
            user, password = self._user, self._password
213
211
        else:
214
212
            user, password = credentials
215
213
 
250
248
        self._set_connection(connection, credentials)
251
249
 
252
250
    def _remote_path(self, relpath):
253
 
        return self._parsed_url.clone(relpath).path
 
251
        relative = urlutils.unescape(relpath).encode('utf-8')
 
252
        remote_path = self._combine_paths(self._path, relative)
 
253
        return remote_path
254
254
 
255
255
    def has(self, relpath):
256
256
        """Does the target location exist?"""