summaryrefslogtreecommitdiff
path: root/source4/rpc_server/samr
AgeCommit message (Collapse)AuthorFilesLines
2010-06-14s4:SAMR server - on alias search operations do never use the domain DN as ↵Matthias Dieter Wallnöfer1-10/+7
base dn Aliases (especially in the "builtin" domain) are often domain-independant.
2010-06-12s4:dcesrv_samr_GetGroupsForUser - return error code if a SID wasn't foundMatthias Dieter Wallnöfer1-2/+1
This shouldn't happen since SIDs are mandatory for security objects
2010-06-12s4:dcesrv_samr_QueryGroupMember/GetMembersInAlias - unify the structureMatthias Dieter Wallnöfer1-30/+32
Mostly cosmetic fixes
2010-06-12s4:dcesrv_samr_GetAliasMembership - provide a correct implementationMatthias Dieter Wallnöfer1-31/+31
We could also have no valid SID specified at all and also then we have to return an empty array with "NT_STATUS_OK". This shows the torture testsuite.
2010-06-12s4:dcesrv_samr_EnumDomainGroups/Aliases - when we don't get a SID then the ↵Matthias Dieter Wallnöfer1-4/+6
database is corrupted Group/User/Alias entries do always have a SID (it's a mandatory attribute in the SAM directory)!
2010-06-12s4:dcesrv_samr_QueryAliasInfo - return "NT_STATUS_NO_SUCH_ALIAS" when it ↵Matthias Dieter Wallnöfer1-1/+4
wasn't found
2010-06-12s4:dcesrv_samr_QueryGroupInfo - make it more like "QueryAliasInfo"Matthias Dieter Wallnöfer1-14/+7
2010-06-12s4:dcesrv_samr_QueryUserInfo - minor fixesMatthias Dieter Wallnöfer1-1/+4
Return "NT_STATUS_NO_SUCH_USER" when user account doesn't exist.
2010-06-12s4:dcesrv_samr_QueryDomainInfo - allocate the "info" structure only when ↵Matthias Dieter Wallnöfer1-7/+9
really needed That means the allocation should move after the lookup (as it is on "QueryUserInfo"). Return "NT_STATUS_NO_SUCH_DOMAIN" on an invalid domain.
2010-06-12s4:dcesrv_samr_EnumDomainGroups - mostly small fixesMatthias Dieter Wallnöfer1-3/+7
2010-06-12s4:dcesrv_samr_EnumDomainAliases - return an empty array also when no entry ↵Matthias Dieter Wallnöfer1-3/+0
was returned
2010-06-12s4:dcesrv_samr_EnumDomainAliases - mostly small fixesMatthias Dieter Wallnöfer1-7/+10
The biggest change consists in the implementation of the Windows Server return size formula MIN(*r->out.num_entries, 1+(r->in.max_size/SAMR_ENUM_USERS_MULTIPLIER).
2010-06-12s4:dcesrv_samr_EnumDomainUsers - make this call look more similar to ↵Matthias Dieter Wallnöfer1-23/+28
"EnumDomainGroups" and "EnumDomainAliases" That means that the lookup is now also done by "samdb_search_domain" to be more consistent.
2010-06-10s4:dcesrv_samr_Add/DeleteAliasMember - provide better NTSTATUS return codes ↵Matthias Dieter Wallnöfer1-6/+19
when something didn't work
2010-06-10s4:dcesrv_samr_GetAliasMembership - fix type of counter variablesMatthias Dieter Wallnöfer1-1/+2
2010-06-10s4:dcesrv_samr_DeleteAliasMember - add more braces to fit better the coding ↵Matthias Dieter Wallnöfer1-4/+6
styles
2010-06-10s4:dcesrv_samr_AddAliasMembership - Merge the two error blocks into oneMatthias Dieter Wallnöfer1-6/+3
2010-06-10s4:dcesrv_samr_Add/DelGroupMember - remove the account type checkMatthias Dieter Wallnöfer1-11/+10
MS-SAMR 3.1.5.8 speaks from accounts which are not necessarely only users.
2010-06-10s4:dcesrv_samr_AddGroupMember - also the error code ↵Matthias Dieter Wallnöfer1-0/+1
"LDB_ERR_ATTRIBUTE_OR_VALUE_EXISTS" is allowed This is returned when the group is the primary group of the specified entry.
2010-05-24s4:dsdb_enum_group_mem - use "unsigned" countersMatthias Dieter Wallnöfer1-5/+3
"size_t" counters aren't really needed here (we don't check data lengths). And we save the result in a certain "num_sids" variable which is of type "unsigned".
2010-05-24s4:samr Push most of samr_LookupRids into a helper functionAndrew Bartlett1-52/+16
This is a rewrite of the lookup_rids code, using a query based on the extended DN for a clearer interface. By splitting this out, the logic is able to be shared, rather than copied, into a passdb wrapper. Andrew Bartlett
2010-05-24s4:samr Push most of samr_QueryGroupMember into a helper functionAndrew Bartlett1-80/+53
This is a rewrite of the group membership lookup code, using the stored extended DNs to avoid doing the lookup into each member to find the SID By splitting this out, the logic is able to be shared, rather than copied, into a passdb wrapper. Andrew Bartlett
2010-05-24s4:samr Move most of samr_CreateDomAlias into a helper functionAndrew Bartlett1-52/+8
This allows this logic to be shared, rather than copied, into a passdb wrapper. Andrew Bartlett
2010-05-24s4:samr Split most of samr_CreateDomainGroup into a helper functionAndrew Bartlett1-60/+9
This allows this logic to be shared, rather than copied, into a passdb wrapper. Andrew Bartlett
2010-05-24s4:samr Split the guts of samr_CreateUser2 into a helper functionAndrew Bartlett1-186/+8
This allows this logic to be shared, rather than copied, into a passdb wrapper. Andrew Bartlett
2010-05-10s4:samdb_set_password/samdb_set_password_sid - ReworkMatthias Dieter Wallnöfer2-96/+21
Adapt the two functions for the restructured "password_hash" module. This means that basically all checks are now performed in the mentioned module. An exception consists in the SAMR password change calls since they need very precise NTSTATUS return codes on wrong constraints ("samr_password.c") file
2010-03-06s4:samr RPC - Change some counters to be "unsigned" where neededMatthias Dieter Wallnöfer1-9/+14
The "count" size specifiers I typed "uint32_t" since they're often returned as an "uint32_t" (consider the IDL file). LDB counters need to be "signed" if they count till a limit of a "gendb*" call or "unsigned" if they count directly the number of objects.
2010-03-05s4:dcesrv_samr_AddAliasMember - wrap a long "DEBUG" statementMatthias Dieter Wallnöfer1-1/+2
2010-03-03s4:dcesrv_samr - Also "OpenGroup" needs to support universal groupsMatthias Dieter Wallnöfer1-2/+3
2010-03-03s4:dcesrv_samr - Fix up "EnumDomainGroups" and "QueryDisplayInfo" callsMatthias Dieter Wallnöfer1-3/+6
We need to look for both global and universal group types when querying them. Found by ekacnet (http://lists.samba.org/archive/samba-technical/2010-March/069777.html).
2010-02-26s4:dcesrv_samr.c - Remove unused variableMatthias Dieter Wallnöfer1-3/+1
2010-02-16s4-dsdb: change samdb_replace() to dsdb_replace() and allow for dsdb_flagsAndrew Tridgell2-5/+5
This allows for controls to be added easily where they are needed.
2010-02-13s4-rpcserver: use TYPESAFE_QSORT() in rpc serversAndrew Tridgell1-6/+4
2010-01-21s4:rpc-server:samr: fix setting of lockout duration < lockout windowMichael Adam1-1/+22
This should return NT_STATUS_INVALID_PARAMETER. This makes samba pass the first part of the samr-lockout test. This constraint is documented here for the samr server: http://msdn.microsoft.com/en-us/library/cc245667%28PROT.10%29.aspx MS-SAMR 3.1.1.6 Attribute Constraints for Originating Updates and here for the ldap backend: http://msdn.microsoft.com/en-us/library/cc223462(PROT.10).aspx MS-ADTS 3.1.1.5.3.2 Constraints So the check should actually be moved down into the backend, i.e. under dsdb/samdb/ldb_modules - TODO.. Michael
2010-01-14s4:SAMR RPC - Fix the criteria for group searchesMatthias Dieter Wallnöfer1-4/+4
This should match the MS-SAMR documentation (section 3.1.5.5.1.1)
2009-12-04s4-drsutil: fixed a memory leak in samdb_search_countAndrew Tridgell1-3/+3
In general functions that don't return any memory should not take a memory context. Otherwise it is too easy to have a bug like this where memory is leaked
2009-11-21s4:samr RPC - Use more LDB constantsMatthias Dieter Wallnöfer2-12/+12
2009-11-10s4:dcesrv_samr - Add more checks for invalid levelsMatthias Dieter Wallnöfer1-3/+27
Add more checks on valid levels, mark unimplemented ones as "UNSUPPORTED" and otherwise as "INVALID_INFO_CLASS" to be safe.
2009-11-06s4:dcesrv_samr_ValidatePassword - naturally this was only for debugging the ↵Matthias Dieter Wallnöfer1-1/+0
failure
2009-11-06s4:dcesrv_samr_ValidatePassword - adapt call to "samdb_check_password"Matthias Dieter Wallnöfer1-6/+3
I've forgotten that PIDL converts UTF16 parameters automatically back to the UNIX charset (in most cases UTF16). So I don't have to do this here.
2009-11-06s4:dcesrv_samr_ValidatePassword - I forgot to create an out bufferMatthias Dieter Wallnöfer1-4/+6
2009-11-05s4:dcesrv_samr - Implement "dcesrv_samr_ValidatePassword" using my new check ↵Matthias Dieter Wallnöfer1-7/+49
password call This implements a very basic method for password validation using my new "samdb_check_password" call.
2009-10-24s4:dcesrv_samr: always use mem_ctx as initial parent for samr_*_stateStefan Metzmacher1-7/+7
We always steal the state to the policy handle on success, but untill then keep it on the short term context. metze
2009-10-23s4-ldbwrap: added re-use of ldb contexts in ldb_wrap_connect()Andrew Tridgell1-1/+1
This allows us to reuse a ldb context if it is open twice, instead of going through the expensive process of a full ldb open. We can reuse it if all of the parameters are the same. The change relies on callers using talloc_unlink() or free of a parent to close a ldb context.
2009-10-23s4-dsdb: create a static system_session contextAndrew Tridgell1-3/+3
This patch adds a system_session cache, preventing us from having to recreate it on every ldb open, and allowing us to detect when the same session is being used in ldb_wrap
2009-10-21s4:rpc_server Ensure we talloc_free handles when we delete objectsAndrew Bartlett1-0/+3
If we don't talloc_free the handle, we leak the memory onto the long-term context. Andrew Bartlett
2009-10-21s4:samr Don't leak the whole user onto the long-term handleAndrew Bartlett1-2/+2
The user entry is only required for this function, so use mem_ctx to hold it. Andrew Bartlett
2009-10-13s4:dcesrv_samr - add another constantMatthias Dieter Wallnöfer1-1/+1
2009-10-13s4:dcesrv_samr - prevent "ldb_modify" on a possibly empty messageMatthias Dieter Wallnöfer1-8/+10
In this code part under certain circumstances we can end up with an empty message. Since our new behaviour denies them (like the real AD) we need to bypass them on LDB modify calls.
2009-10-13s4:dcesrv_samr - Add additional "talloc_free"sMatthias Dieter Wallnöfer1-0/+4