Summary of group API discussion V2

Stefan (metze) Metzmacher metze at metzemix.de
Thu Jun 20 03:32:01 GMT 2002


Hi Andrew, hi Kai,

here's a little summary of our lastest discusion.

should we need  TALLOC_CTX *mem_ctx; somewhere else?
---------------------------------

typedef _SAM_GROUP {
         char *name;
         char *comment;

         DOM_SID sid;

         /* here we can store some use full info about the group
          - group type local,domain,builtin, ...
         */
         int32 flags;
         PRIVILEGE_SET priv_set;

         TALLOC_CTX *mem_ctx;

         /* specify the groupdb backend */
         struct gdb_methods *method;
} SAM_GROUP


typedef _SAM_GROUP_MEMBER {
         DOM_SID sid;

         /*Is the member a group or user?*/
         BOOL group;
} SAM_GROUP_MAP

typedef _SAM_GROUP_ENTRY {
         char *name;
         char *comment;

         DOM_SID sid;
         gid_t gid;

         /* here we can store some use full info about the group
          - group type local,domain,builtin, ...
         */
         int32 flags;
         PRIVILEGE_SET priv_set;

         int32 members_count;
         SAM_GROUP_MEMBER **members;

         TALLOC_CTX *mem_ctx;

         /* specify the groupdb backend */
         struct gdb_methods *method;
} SAM_GROUP_MAP



GROUP API:

NTSTATUS gdb_add_samgroup(SAM_GROUP *samgroup) //should call gdb_add_mapping
NTSTATUS gdb_update_samgroup(SAM_GROUP *samgroup)
NTSTATUS gdb_delete_samgroup(DOM_SID *groupsid)//should call gdb_delete_mapping

NTSTATUS gdb_enum_groups(int32 *groups_count, SAM_GROUP **groups, int32 flag)

NTSTATUS gdb_get_group_by_sid(SAM_GROUP **samgroup, DOM_SID *sid)
NTSTATUS gdb_get_group_by_name(SAM_GROUP **samgroup,char *domain ,char *name)

NTSTATUS gdb_add_member_to_group(DOM_SID *groupsid, SAM_GROUP_MEMBER *member)
NTSTATUS gdb_delete_member_from_group(DOM_SID *groupsid, SAM_GROUP_MEMBER 
*member)
NTSTATUS gdb_enum_members(DOM_SID *group_sid, int32 *members_count, 
SAM_GROUP_MEMBER **members)

NTSTATUS gdb_get_groups_of_user(DOM_SID *user, int32 group_count, SAM_GROUP 
**groups)


GROUP MAPPING API:

NTSTATUS gdb_update_mapping(DOM_SID *sid,gid_t gid)

NTSTATUS gdb_get_mapping_by_sid(gid_t *group_gid, DOM_SID *sid)
NTSTATUS gdb_get_mapping_by_gid(DOM_SID **sid, gid_t gid)

GROUP BACKEND API:

metze
-----------------------------------------------------------------------------
Stefan "metze" Metzmacher <metze at metzemix.de>





More information about the samba-technical mailing list