r10656: BIG merge from trunk. Features not copied over
[ira/wip.git] / source3 / include / passdb.h
index 624f0c5fea67120a0c0c8722cd233c29dc22dc8e..e985ab582dcbe666fd5b2a66563165d949ecd9af 100644 (file)
@@ -195,7 +195,7 @@ typedef struct sam_passwd
                const struct pdb_methods *backend_private_methods;
                void *backend_private_data; 
                void (*backend_private_data_free_fn)(void **);
-       } private;
+       } private_u;
 
        /* Lets see if the remaining code can get the hint that you
           are meant to use the pdb_...() functions. */
@@ -221,7 +221,7 @@ typedef struct sam_group {
 
                uint32 mem_num;                 /* Number of member SIDs */
                DOM_SID *members;               /* SID array */
-       } private;
+       } private_g;
 
 } SAM_GROUP;
 
@@ -232,6 +232,34 @@ struct acct_info
     uint32 rid; /* domain-relative RID */
 };
 
+struct samr_displayentry {
+       uint32 idx;
+       uint32 rid;
+       uint16 acct_flags;
+       const char *account_name;
+       const char *fullname;
+       const char *description;
+};
+
+enum pdb_search_type {
+       PDB_USER_SEARCH,
+       PDB_GROUP_SEARCH,
+       PDB_ALIAS_SEARCH
+};
+
+struct pdb_search {
+       TALLOC_CTX *mem_ctx;
+       enum pdb_search_type type;
+       struct samr_displayentry *cache;
+       uint32 num_entries;
+       ssize_t cache_size;
+       BOOL search_ended;
+       void *private_data;
+       BOOL (*next_entry)(struct pdb_search *search,
+                          struct samr_displayentry *entry);
+       void (*search_end)(struct pdb_search *search);
+};
+
 /*****************************************************************
  Functions to be implemented by the new (v2) passdb API 
 ****************************************************************/
@@ -241,7 +269,7 @@ struct acct_info
  * this SAMBA will load. Increment this if *ANY* changes are made to the interface. 
  */
 
-#define PASSDB_INTERFACE_VERSION 8
+#define PASSDB_INTERFACE_VERSION 9
 
 typedef struct pdb_context 
 {
@@ -310,12 +338,6 @@ typedef struct pdb_context
        NTSTATUS (*pdb_delete_alias)(struct pdb_context *context,
                                     const DOM_SID *sid);
 
-       NTSTATUS (*pdb_enum_aliases)(struct pdb_context *context,
-                                    const DOM_SID *domain_sid,
-                                    uint32 start_idx, uint32 num_entries,
-                                    uint32 *num_aliases,
-                                    struct acct_info **aliases);
-
        NTSTATUS (*pdb_get_aliasinfo)(struct pdb_context *context,
                                      const DOM_SID *sid,
                                      struct acct_info *info);
@@ -352,6 +374,23 @@ typedef struct pdb_context
                                    const char ***names,
                                    uint32 **attrs);
 
+       NTSTATUS (*pdb_get_account_policy)(struct pdb_context *context,
+                                          int policy_index, uint32 *value);
+
+       NTSTATUS (*pdb_set_account_policy)(struct pdb_context *context,
+                                          int policy_index, uint32 value);
+
+       NTSTATUS (*pdb_get_seq_num)(struct pdb_context *context, time_t *seq_num);
+
+       BOOL (*pdb_search_users)(struct pdb_context *context,
+                                struct pdb_search *search,
+                                uint16 acct_flags);
+       BOOL (*pdb_search_groups)(struct pdb_context *context,
+                                 struct pdb_search *search);
+       BOOL (*pdb_search_aliases)(struct pdb_context *context,
+                                  struct pdb_search *search,
+                                  const DOM_SID *sid);
+
        void (*free_fn)(struct pdb_context **);
        
        TALLOC_CTX *mem_ctx;
@@ -426,11 +465,6 @@ typedef struct pdb_methods
        NTSTATUS (*delete_alias)(struct pdb_methods *methods,
                                 const DOM_SID *sid);
 
-       NTSTATUS (*enum_aliases)(struct pdb_methods *methods,
-                                const DOM_SID *domain_sid,
-                                uint32 start_idx, uint32 max_entries,
-                                uint32 *num_aliases, struct acct_info **info);
-
        NTSTATUS (*get_aliasinfo)(struct pdb_methods *methods,
                                  const DOM_SID *sid,
                                  struct acct_info *info);
@@ -453,6 +487,7 @@ typedef struct pdb_methods
                                           int num_members,
                                           uint32 **alias_rids,
                                           int *num_alias_rids);
+
        NTSTATUS (*lookup_rids)(struct pdb_methods *methods,
                                TALLOC_CTX *mem_ctx,
                                const DOM_SID *domain_sid,
@@ -461,6 +496,23 @@ typedef struct pdb_methods
                                const char ***names,
                                uint32 **attrs);
 
+       NTSTATUS (*get_account_policy)(struct pdb_methods *methods,
+                                      int policy_index, uint32 *value);
+
+       NTSTATUS (*set_account_policy)(struct pdb_methods *methods,
+                                      int policy_index, uint32 value);
+
+       NTSTATUS (*get_seq_num)(struct pdb_methods *methods, time_t *seq_num);
+
+       BOOL (*search_users)(struct pdb_methods *methods,
+                            struct pdb_search *search,
+                            uint16 acct_flags);
+       BOOL (*search_groups)(struct pdb_methods *methods,
+                             struct pdb_search *search);
+       BOOL (*search_aliases)(struct pdb_methods *methods,
+                              struct pdb_search *search,
+                              const DOM_SID *sid);
+
        void *private_data;  /* Private data of some kind */
        
        void (*free_private_data)(void **);
@@ -480,27 +532,4 @@ struct pdb_init_function_entry {
 
 enum sql_search_field { SQL_SEARCH_NONE = 0, SQL_SEARCH_USER_SID = 1, SQL_SEARCH_USER_NAME = 2};
 
-struct samr_displayentry {
-       uint32 rid;
-       uint16 acct_flags;
-       const char *account_name;
-       const char *fullname;
-       const char *description;
-};
-
-enum pdb_search_type {
-       PDB_USER_SEARCH,
-       PDB_GROUP_SEARCH,
-       PDB_ALIAS_SEARCH
-};
-
-struct pdb_search {
-       TALLOC_CTX *mem_ctx;
-       enum pdb_search_type type;
-       struct samr_displayentry *cache;
-       uint32 cache_size;
-       BOOL search_ended;
-       void *private;
-};
-
 #endif /* _PASSDB_H */