| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
If the loop ran through at least one
sdap_process_missing_member_2307() call and errored out later, we
were not canceling the transaction.
RFC2307: Ignore zero-length member names in group lookups
Mark transaction as done when cancelled
Fix typo in sdap_nested_group_process_step
|
| |
|
|
|
|
|
|
| |
This routine will replace the use of sysdb_attrs_to_list() for any
case where we're trying to get the name of the entry. It's a
necessary precaution in case the name is multi-valued.
|
|
|
|
|
|
|
|
|
|
| |
Add originalDN to fake groups
Use fake groups during IPA schema initgroups
https://fedorahosted.org/sssd/ticket/822
Use sysdb_attrs_primary_name() in sdap_initgr_nested_store_group
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Create sysdb_get_rdn() function
This function takes a DN formatted string and returns the RDN
value from it.
Add sysdb_attrs_primary_name()
This function will check a sysdb_attrs struct for the primary name
of the entity it represents. If there are multiple entries, it
will pick the one that matches the RDN. If none match, it will
throw an error.
Ignore aliases for users
Users in ldap with multiple values for their username attribute
will now be compared against the RDN of the entry to determine the
"primary" username. We will save only this primary name to the ldb
cache.
RFC2307: Ignore aliases for groups
Groups in ldap with multiple values for their groupname attribute
will now be compared against the RDN of the entry to determine the
"primary" group name. We will save only this primary group name
to the ldb cache.
RFC2307bis: Ignore aliases for groups
Groups in ldap with multiple values for their groupname attribute
will now be compared against the RDN of the entry to determine the
"primary" group name. We will save only this primary group name to
the ldb cache.
|
| |
|
| |
|
|
|
|
| |
https://fedorahosted.org/sssd/ticket/824
|
|
|
|
|
|
|
| |
The IPA provider was not properly removing groups in the cache
that the user was no longer a member of.
https://fedorahosted.org/sssd/ticket/803
|
| |
|
|
|
|
|
|
|
|
| |
Sometimes, a value in LDAP will cease to exist (the classic
example being shadowExpire). We need to make sure we purge that
value from SSSD's sysdb as well.
https://fedorahosted.org/sssd/ticket/750
|
|
|
|
|
| |
Nested groups where not unrolled completely during the first enumeration
run because not all where present in the cache.
|
| |
|
|
|
|
|
| |
The user may not be a direct member of their primary group, but
we still want to make sure that group is cached on the system.
|
|
|
|
|
|
|
|
|
| |
After asking the cache for the list of member DNs for groups
during an initgroups request, we were passing it through the
sanitization function. Since this had already been done before
they were saved to the cache, this meant that it was corrupting
the results. It is safe to pass the returned DN directly into the
sysdb_group_dn_name() function.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
We were not enclosing group processing in a transaction, which was
resulting in extremely high numbers of disk-writes. This patch
adds a transaction around the sdap_process_group code to ensure
that these actions take place within a transaction.
This patch also adds a check around the missing member code for
RFC2307bis so we don't go back to the LDAP server to look up
entries that don't exist (since the enumeration first pass would
already have guaranteed that we have all real users cached)
|
| |
|
|
|
|
| |
Otherwise fallback to the default modifyTimestamp indicator
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
We used strtol() on a number of places to convert into uid_t or gid_t
from a string representation such as LDAP attribute, but on some
platforms, unsigned long might be necessary to store big id_t values.
This patch converts to using strtoul() instead.
|
| |
|
|
|
|
|
|
|
|
| |
Previously, it assumed that all members were users. This changes
the interface so that either a user or a group can be specified.
Also, it eliminates the need for a memory context to be passed,
since the internal memory should be self-contained.
|
|
|
|
|
|
|
|
| |
This first approach handles the non-optimized "pure" RFC2307bis
case. It recursively calls into nested groups until it it has
found them all or hits the pre-defined nesting limit.
It then saves all member users first, then all groups to the sysdb
|
|
|
|
|
| |
If we send a zero num_users value, we should just immediately
return success, rather than starting a useless transaction
|
| |
|
|
|
|
|
|
|
|
|
| |
If during initgroups operation we find out that any of the groups
the user is a member of is not cached yet we add a incomplete,
expired group entry. That way, we save ourselves from looking up and
saving all the potential user entries the group may also consist of.
Because the group is expired, it will be refreshed during the next
getgrgid/getgrnam call and correct member list will be returned.
|
|
|
|
|
|
|
| |
getgrnam()/getgrgid() should return all group members instead of only those
which have already been cached (in sysdb). To achieve this every member
that is currently not in the cache is looked up via LDAP and saved to the
cache.
|
|
|
|
|
|
| |
Addtional parameter "populate_members" for save_group() and save_groups()
to indicate that the "member" attribute of the groups is populated with
sysdb DNs of the members (instead of LDAP DNs).
|
| |
|
|
|
|
|
|
|
| |
We tried to be too clever and only requested the name of the group,
but we require the objectClass to validate the results.
https://fedorahosted.org/sssd/ticket/622
|
|
|
|
|
|
|
| |
If sysdb_attrs_get_el() call failed in function sdap_save_group(),
it would result in printing an undefined value of variable name.
This is now fixed by initializing the variable.
Ticket: #579
|
|
|
|
|
|
|
|
| |
Instead of recursively updating all users of each group the user
being queried belongs to, just add or remove membership for the
requested user.
Fixes https://fedorahosted.org/sssd/ticket/478
|
|
|
|
| |
https://fedorahosted.org/sssd/ticket/542
|
|
|
|
|
|
|
| |
Failing to return after the tevent_req_post() here can result in a
null-pointer dereference (along with other hard-to-track bugs)
https://fedorahosted.org/sssd/ticket/507
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
Also update BUILD.txt
|