Merge Dhananjay's branch.
[samba-gtk.git] / TODO
1 Overall TODO list: 
2 -fix updating service in pygwsvcctl
3 -User must change password bug
4 -groups in pygwsam
5 -passwords in pygwsam
6 -permissions in pygwregedit
7 -Implement move_key() in pygwregedit
8 -use gnomekeyring instead of explicitly passing info around.
9 -handle domain-index from command-line and through the launcher
10
11 Minor:
12 -remove references to samba.dcerpc.misc when no longer needed
13 -References to None (py_none) are still not counted properly. This is a problem with the python bindings
14 -handle 'NT_STATUS_OBJECT_NAME_NOT_FOUND' connection errors with a more human-freindly message
15 -handle auto-connect (--connect-now argument) better (GUI is frozen while connecting)
16 -Add an green/red indicator for each tab to show if the utility is connected
17 -add connect/disconnect messages in the launcher
18 -image for main.py about dialog
19
20
21
22
23
24
25
26 pygwcrontab
27 -----------
28 Bugs:
29 -None
30
31 TODO:
32 -nothing, this utility is great!
33
34
35
36
37
38
39
40 pygwsam
41 -------
42 Bugs:
43 -"User must change password at next logon" option is never updated on the server. Utility displays correct value, but is never able change it.
44         -enabling "password never expires" does disable "user must change password" on the server as expected. However, disabling "password never expires" will once again enable "user must change password" if it was previously enabled on the server. 
45         -flags are correct when sent to and accepted from the server, it appears the changes are simply rejected.
46                 -changing security settings have no effect on SetUserInfo(), OpenDomainHandle(), or OpenUserHandle()
47                 -This option has been tested with the exact security flags used by a windows machine, still no luck
48                 -It appears the windows machines don't even update this flag!!! I have no idea what's going on here
49         
50 Info:
51 -using UserLogonInformation (lvl 3) always returns Invalid information class, even if no changes were made
52 -using UserAccountInformation (lvl 5) always returns Invalid information class, even if no changes were made
53 -using UserAllInformation (lvl 21) always returns Unexpected information received, even if no changes were made (you must change the fields_present field!)
54         -Attempting to return field 'bad_pwd_count' causes 'Access denied' error (makes sense, should have been obvious really)
55         -Attempting to return field 'last_logoff' causes 'Access denied' error 
56         -Attempting to return field 'last_logon' causes 'Access denied' error 
57         -Attempting to return field 'last_password_change' causes 'Access denied' error 
58         -Attempting to return field 'num_logins' causes 'Access denied' error
59         -Attempting to return field 'owf_pass' causes 'Access denied' error
60         -Attempting to return field 'private_data' causes 'Access denied' error
61         -Attempting to return field 'sec_desc' causes 'Access denied' error
62         -Attempting to change the user's RID causes 'Unexpected information received' error
63                 
64 -Groups arn't displayed properly, only the "none" group appears.
65         -EnumDomainGroups() function returns only the None group. Not sure why
66         -checking QueryDomainInfo() for general info says there is infact only 1 group.
67 -Access denied when attempted to create a new group
68         -Security flags are all security.MAXIMUM_ALLOWED and I'm using an administrator account. Not sure what's wrong
69         
70
71 TODO list:
72 -passwords are not updated
73         -It might be best to create a new dialog for this. One that required the old password?
74 -"User must change password at next logon" bug
75 -Groups arn't displayed properly, only the "none" group appears. (this may be proper?)
76 -implement policies functionality
77
78
79
80
81
82
83
84
85 pygwregedit
86 -----------
87 Bugs:
88 -Keys created by the utility may not be created properly
89         -cause a WERR_INSUFFICIENT_BUFFER when Pipe.QueryInfoKey() is called from ls_key() when clicking on the key
90         -Tried increasing the classname field size to the max an integer will hold, no luck
91 -WERR_INVALID_PARAM caused by CreateKey() in the pipe manager when creating a new key in HKEY_LOCAL_MACHINE
92         -Tried changing the value for winreg_CreateAction to REG_CREATE_NEW_KEY instead of REG_ACTION_NONE, doesn't help
93 -WERR_MORE_DATA in WinRegPipeManager.get_values_for_key() and ls_key (for values). The error is thrown from rpc_winreg.c it seems.
94 -Seemingly random crashes when searching and traversing the keys tree quickly (fetching new keys)
95         -repeat this by starting a search, then selecting the second root key in the keys tree and holding the down key.
96         -Each crash seems to give a different error, so this is probably a threading issue
97 -Memory leak in fetching keys. Memory usage climbs indefinitely when searching.
98         -It makes sense to think the search stack is responsible for this, but memory usage doesn't decline after halting a search
99         -Starting a new search still causes memory increase, even though we're searching keys that have already been fetched
100         
101
102 TODO:
103 -Implement permissions
104 -Add an option to fetch everything (view -> fetch everything)?
105 -Implement move_key()
106 -Implement import/export (no python bindings for this yet)
107 -Entering multiple things into the registry search box makes it search for any of the items. Add an option to search for all items
108 -
109 -Make adding only 4bits (one hex character) impossible in the hex editor?
110         -Note: currently our utility cannot load keys with an odd number of hex characters. 
111         -A warning is printed, NT_STATUS_RPC_BAD_STUB_DATA I believe.
112
113
114
115
116
117
118
119 pygwsvcctl
120 ----------
121
122 Bugs:
123 -Access denied error when fetching services, but still displays a list (maybe some are missing? -a quick count says no, may be inaccurate)
124
125
126 TODO:
127 -Bug: selecting a service while refreshing the list causes the program to freeze up.
128 -Unable to update services
129         -NT_STATUS_RPC_BAD_STUB_DATA error
130         -happens when sending back the new service info. I checked the data and it looks right. (This is hard to troubleshoot because you can't send partial data back so you can't test each field to see if it's the cause of the problem)
131         -SvcCtlPipeManager.update_service()
132 -After updating a service, the updated service should be refreshed (the utility assumes the service was updated, so list displays incorrect info if the service was not successfully updated)