Changeset 6178


Ignore:
Timestamp:
Jun 13, 2008, 7:56:09 PM (13 years ago)
Author:
livings124
Message:

make RPC password use the Keychain as well

Location:
trunk/macosx
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/macosx/Controller.m

    r6170 r6178  
    223223                                [fDefaults boolForKey: @"RPCAuthorize"],
    224224                                [[fDefaults stringForKey: @"RPCUsername"] UTF8String],
    225                                 [[fDefaults stringForKey: @"RPCPassword"] UTF8String],
     225                                "", /* reset in prefs - from Keychain */
    226226                                [fDefaults boolForKey: @"Proxy"],
    227227                                [[fDefaults stringForKey: @"ProxyAddress"] UTF8String],
  • trunk/macosx/Defaults.plist

    r6157 r6178  
    127127        <key>RPCAuthorize</key>
    128128        <false/>
    129         <key>RPCPassword</key>
    130         <string></string>
    131129        <key>RPCPort</key>
    132130        <integer>9091</integer>
  • trunk/macosx/English.lproj/PrefsWindow.xib

    r6157 r6178  
    1010                        <bool key="EncodedWithXMLCoder">YES</bool>
    1111                        <integer value="66"/>
     12                        <integer value="1481"/>
    1213                </object>
    1314                <object class="NSArray" key="IBDocument.PluginDependencies">
     
    30273028                        </object>
    30283029                        <object class="NSCustomView" id="810116101">
    3029                                 <nil key="NSNextResponder"/>
     3030                                <reference key="NSNextResponder"/>
    30303031                                <int key="NSvFlags">256</int>
    30313032                                <object class="NSMutableArray" key="NSSubviews">
     
    35393540                                </object>
    35403541                                <string key="NSFrameSize">{535, 403}</string>
     3542                                <reference key="NSSuperview"/>
    35413543                                <string key="NSClassName">NSView</string>
    35423544                                <string key="NSExtension">NSResponder</string>
     
    54185420                                <object class="IBConnectionRecord">
    54195421                                        <object class="IBBindingConnection" key="connection">
    5420                                                 <string key="label">value: values.RPCPassword</string>
    5421                                                 <reference key="source" ref="894846458"/>
    5422                                                 <reference key="destination" ref="356871564"/>
    5423                                                 <object class="NSNibBindingConnector" key="connector">
    5424                                                         <reference key="NSSource" ref="894846458"/>
    5425                                                         <reference key="NSDestination" ref="356871564"/>
    5426                                                         <string key="NSLabel">value: values.RPCPassword</string>
    5427                                                         <string key="NSBinding">value</string>
    5428                                                         <string key="NSKeyPath">values.RPCPassword</string>
    5429                                                         <int key="NSNibBindingConnectorVersion">2</int>
    5430                                                 </object>
    5431                                         </object>
    5432                                         <int key="connectionID">1566</int>
    5433                                 </object>
    5434                                 <object class="IBConnectionRecord">
    5435                                         <object class="IBBindingConnection" key="connection">
    54365422                                                <string key="label">value: values.RPCAuthorize</string>
    54375423                                                <reference key="source" ref="151618662"/>
     
    59275913                                        </object>
    59285914                                        <int key="connectionID">1673</int>
     5915                                </object>
     5916                                <object class="IBConnectionRecord">
     5917                                        <object class="IBOutletConnection" key="connection">
     5918                                                <string key="label">fRPCPasswordField</string>
     5919                                                <reference key="source" ref="511492310"/>
     5920                                                <reference key="destination" ref="894846458"/>
     5921                                        </object>
     5922                                        <int key="connectionID">1674</int>
    59295923                                </object>
    59305924                        </object>
     
    89818975                        </object>
    89828976                        <nil key="sourceID"/>
    8983                         <int key="maxID">1673</int>
     8977                        <int key="maxID">1674</int>
    89848978                </object>
    89858979                <object class="IBClassDescriber" key="IBDocument.Classes">
     
    91869180                                                        <string>fRPCAccessTable</string>
    91879181                                                        <string>fRPCAddRemoveControl</string>
     9182                                                        <string>fRPCPasswordField</string>
    91889183                                                        <string>fRPCPortField</string>
    91899184                                                        <string>fRatioStopField</string>
     
    92239218                                                        <string>NSTextField</string>
    92249219                                                        <string>NSTextField</string>
     9220                                                        <string>NSTextField</string>
    92259221                                                        <string>NSView</string>
    92269222                                                        <string>NSTextField</string>
  • trunk/macosx/PrefsController.h

    r6169 r6178  
    6161    IBOutlet NSPopUpButton * fProxyTypePopUp;
    6262   
    63     IBOutlet NSTextField * fRPCPortField;
     63    IBOutlet NSTextField * fRPCPortField, * fRPCPasswordField;
    6464    IBOutlet NSTableView * fRPCAccessTable;
    6565    IBOutlet NSSegmentedControl * fRPCAddRemoveControl;
     
    135135- (void) setRPCUsername: (id) sender;
    136136- (void) setRPCPassword: (id) sender;
     137- (void) updateRPCPassword;
    137138- (void) setRPCPort: (id) sender;
    138139- (void) updateRPCAccessList;
  • trunk/macosx/PrefsController.m

    r6176 r6178  
    5555#define PROXY_KEYCHAIN_NAME     @"Proxy"
    5656
     57#define RPC_KEYCHAIN_SERVICE    @"Transmission:Remote"
     58#define RPC_KEYCHAIN_NAME       @"Remote"
     59
    5760@interface PrefsController (Private)
    5861
     
    114117        //set proxy type
    115118        [self updateProxyType];
    116        
    117119        [self updateProxyPassword];
    118120       
    119121        //update rpc access list
     122        [self updateRPCPassword];
     123       
    120124        fRPCAccessArray = [[fDefaults arrayForKey: @"RPCAccessList"] mutableCopy];
    121125        if (!fRPCAccessArray)
     
    221225    //set rpc port
    222226    [fRPCPortField setIntValue: [fDefaults integerForKey: @"RPCPort"]];
     227    [fRPCPasswordField setStringValue: [NSString stringWithUTF8String: tr_sessionGetRPCPassword(fHandle)]];
    223228}
    224229
     
    764769}
    765770
    766 //user will only be prompted if Keychain is locked and Transmission has changed since last launched
    767771- (void) updateProxyPassword
    768772{
    769     NSString * password;
    770773    EMGenericKeychainItem * keychainItem = [[EMKeychainProxy sharedProxy] genericKeychainItemForService: PROXY_KEYCHAIN_SERVICE
    771774                                            withUsername: PROXY_KEYCHAIN_NAME];
     775   
     776    NSString * password;
    772777    if (!(password = [keychainItem password]))
    773778        password = @"";
     
    795800- (void) setRPCPassword: (id) sender
    796801{
    797     tr_sessionSetRPCPassword(fHandle, [[fDefaults stringForKey: @"RPCPassword"] UTF8String]);
     802    NSString * password = [[sender stringValue] retain];
     803    [self setKeychainPassword: password forService: RPC_KEYCHAIN_SERVICE username: RPC_KEYCHAIN_NAME];
     804   
     805    tr_sessionSetRPCPassword(fHandle, [password UTF8String]);
     806}
     807
     808- (void) updateRPCPassword
     809{
     810    EMGenericKeychainItem * keychainItem = [[EMKeychainProxy sharedProxy] genericKeychainItemForService: RPC_KEYCHAIN_SERVICE
     811                                            withUsername: RPC_KEYCHAIN_NAME];
     812   
     813    NSString * password;
     814    if (!(password = [keychainItem password]))
     815        password = @"";
     816   
     817    tr_sessionSetRPCPassword(fHandle, [password UTF8String]);
     818   
     819    [fRPCPasswordField setStringValue: password];
    798820}
    799821
     
    11241146- (void) setKeychainPassword: (NSString *) password forService: (NSString *) service username: (NSString *) username
    11251147{
    1126     BOOL shouldAdd = ![password isEqualToString: @""];
     1148    BOOL shouldAdd = password && ![password isEqualToString: @""];
    11271149   
    11281150    EMGenericKeychainItem * keychainItem = [[EMKeychainProxy sharedProxy] genericKeychainItemForService: service withUsername: username];
Note: See TracChangeset for help on using the changeset viewer.