On 02/11/2019 08:35 AM, William Brown wrote:
On 11 Feb 2019, at 17:01, Anuj Borah aborah@redhat.com wrote:
Hi,
As 'Entry' is not allowed to use now , In replace of Entry we are suggested to use UserAccounts and UserAccount which is very limited to some object classes . (['account','posixaccount','inetOrgPerson','organizationalPerson’] )
There are many other types than this though?
src/lib389/lib389/plugins.py:23:class Plugin(DSLdapObject): src/lib389/lib389/plugins.py:199:class MEPConfig(DSLdapObject): src/lib389/lib389/plugins.py:233:class MEPTemplate(DSLdapObject): src/lib389/lib389/plugins.py:444:class ReferentialIntegrityConfig(DSLdapObject): src/lib389/lib389/plugins.py:758:class MemberOfSharedConfig(DSLdapObject): src/lib389/lib389/plugins.py:887:class AutoMembershipRegexRule(DSLdapObject): src/lib389/lib389/plugins.py:905:class AutoMembershipDefinition(DSLdapObject): src/lib389/lib389/plugins.py:1015:class AutoMembershipRegexRule(DSLdapObject): src/lib389/lib389/plugins.py:1120:class LinkedAttributesConfig(DSLdapObject): src/lib389/lib389/plugins.py:1551:class AccountPolicyConfig(DSLdapObject): src/lib389/lib389/plugins.py:1598:class DNAPluginConfig(DSLdapObject): src/lib389/lib389/idm/organizationalrole.py:17:class OrganizationalRole(DSLdapObject): src/lib389/lib389/idm/nscontainer.py:11:class nsContainer(DSLdapObject): src/lib389/lib389/idm/nscontainer.py:49:class nsHiddenContainer(DSLdapObject): src/lib389/lib389/idm/domain.py:11:class Domain(DSLdapObject): src/lib389/lib389/idm/posixgroup.py:18:class PosixGroup(DSLdapObject): src/lib389/lib389/idm/organization.py:17:class Organization(DSLdapObject): src/lib389/lib389/idm/ipadomain.py:11:class IpaDomain(DSLdapObject): src/lib389/lib389/idm/group.py:17:class Group(DSLdapObject): src/lib389/lib389/idm/group.py:104:class UniqueGroup(DSLdapObject): src/lib389/lib389/idm/organizationalunit.py:16:class OrganizationalUnit(DSLdapObject): src/lib389/lib389/idm/account.py:15:class Account(DSLdapObject): src/lib389/lib389/tombstone.py:18:class Tombstone(DSLdapObject): src/lib389/lib389/backend.py:393:class Backend(DSLdapObject): src/lib389/lib389/backend.py:831:class DatabaseConfig(DSLdapObject): src/lib389/lib389/tasks.py:24:class Task(DSLdapObject): src/lib389/lib389/pwpolicy.py:287:class PwPolicyEntry(DSLdapObject): src/lib389/lib389/config.py:28:class Config(DSLdapObject): src/lib389/lib389/config.py:205:class Encryption(DSLdapObject): src/lib389/lib389/config.py:233:class RSA(DSLdapObject): src/lib389/lib389/config.py:358:class LDBMConfig(DSLdapObject): src/lib389/lib389/monitor.py:16:class Monitor(DSLdapObject): src/lib389/lib389/monitor.py:109:class MonitorLDBM(DSLdapObject): src/lib389/lib389/monitor.py:143:class MonitorBackend(DSLdapObject): src/lib389/lib389/monitor.py:190:class MonitorChaining(DSLdapObject): src/lib389/lib389/saslmap.py:12:class SaslMapping(DSLdapObject): src/lib389/lib389/index.py:27:class Index(DSLdapObject): src/lib389/lib389/index.py:64:class VLVSearch(DSLdapObject): src/lib389/lib389/index.py:147:class VLVIndex(DSLdapObject): src/lib389/lib389/encrypted_attributes.py:15:class EncryptedAttr(DSLdapObject): src/lib389/lib389/_mapped_object.py:84:class DSLdapObject(DSLogging): src/lib389/lib389/_mapped_object.py:441: if not issubclass(type(obj1), DSLdapObject) or not issubclass(type(obj2), DSLdapObject): src/lib389/lib389/_mapped_object.py:442: raise ValueError("Invalid arguments: Expecting object types that inherits 'DSLdapObject' class") src/lib389/lib389/agreement.py:23:class Agreement(DSLdapObject): src/lib389/lib389/cos.py:18:class CosTemplate(DSLdapObject): src/lib389/lib389/cos.py:65:class CosIndirectDefinition(DSLdapObject): src/lib389/lib389/cos.py:111:class CosPointerDefinition(DSLdapObject): src/lib389/lib389/replica.py:881:class Replica(DSLdapObject): src/lib389/lib389/replica.py:1288:class BootstrapReplicationManager(DSLdapObject): src/lib389/lib389/mappingTree.py:381:class MappingTree(DSLdapObject): src/lib389/lib389/chaining.py:18:class ChainingConfig(DSLdapObject): src/lib389/lib389/chaining.py:59:class ChainingDefault(DSLdapObject): src/lib389/lib389/chaining.py:81:class ChainingLink(DSLdapObject): src/lib389/lib389/changelog.py:20:class Changelog5(DSLdapObject): src/lib389/lib389/rootdse.py:15:class RootDSE(DSLdapObject): src/lib389/lib389/referral.py:14:class Referral(DSLdapObject): src/lib389/lib389/schema.py:71:class Schema(DSLdapObject):
At worst, you can always use a raw:
DSLdapObject(instance, dn)
to get “minimal” access to *anything* regardless of type. The entire value proposition of lib389 is that we wrap *the most common and useful types*. Each one of these sub-classes of DSLdapObject provides wrappers, helps, guides, functions and more to interacting with nearly every aspect of the server.
This way we will be able to create any kind of entry whether it may be user/role/sub suffix or anything .
I think this is already a solved problem, so I don’t think we really need this? See above,
Agree. The universal entry is DSLdapObject. If you need a special type create a class as listed by William above. In the class you can do additional checks related to the types or have meaningful defaults. Just to avoid adding a class for role is not a sufficient reason to change all the other usages
Please let me know what other changes i have to do to make more sophisticated.
Regards Anuj Borah
389-devel mailing list -- 389-devel@lists.fedoraproject.org To unsubscribe send an email to 389-devel-leave@lists.fedoraproject.org Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/389-devel@lists.fedoraproject....
— Sincerely,
William Brown Software Engineer, 389 Directory Server SUSE Labs _______________________________________________ 389-devel mailing list -- 389-devel@lists.fedoraproject.org To unsubscribe send an email to 389-devel-leave@lists.fedoraproject.org Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/389-devel@lists.fedoraproject....