s4:templates - Remove the latest relics (in "dcesrv_lsa_CreateSecret")
authorMatthias Dieter Wallnöfer <mwallnoefer@yahoo.de>
Mon, 7 Sep 2009 12:30:11 +0000 (14:30 +0200)
committerMatthias Dieter Wallnöfer <mwallnoefer@yahoo.de>
Mon, 7 Sep 2009 12:36:39 +0000 (14:36 +0200)
source4/dsdb/samdb/samdb.c
source4/rpc_server/lsa/dcesrv_lsa.c

index 08e6e0d985781a1a29d5b817d68252751228176b..e361cc78fb9a866e760aca102d450400091c19af 100644 (file)
@@ -113,110 +113,6 @@ struct ldb_context *samdb_connect(TALLOC_CTX *mem_ctx,
        return ldb;
 }
 
-/*
-  copy from a template record to a message
-*/
-int samdb_copy_template(struct ldb_context *ldb, 
-                       struct ldb_message *msg, const char *name,
-                       const char **errstring)
-{
-       struct ldb_result *res;
-       struct ldb_message *t;
-       int ret, i, j;
-       struct ldb_context *templates_ldb;
-       char *templates_ldb_path; 
-       struct ldb_dn *basedn;
-       struct tevent_context *event_ctx;
-       struct loadparm_context *lp_ctx;
-
-       templates_ldb = talloc_get_type(ldb_get_opaque(ldb, "templates_ldb"), struct ldb_context);
-
-       if (!templates_ldb) {
-               templates_ldb_path = samdb_relative_path(ldb, 
-                                                        msg, 
-                                                        "templates.ldb");
-               if (!templates_ldb_path) {
-                       *errstring = talloc_asprintf(msg, "samdb_copy_template: ERROR: Failed to contruct path for template db");
-                       return LDB_ERR_OPERATIONS_ERROR;
-               }
-               
-               event_ctx = ldb_get_event_context(ldb);
-               lp_ctx = (struct loadparm_context *)ldb_get_opaque(ldb, "loadparm");
-
-               /* FIXME: need to remove this wehn we finally pass the event
-                * context around in ldb */
-               if (event_ctx == NULL) {
-                       event_ctx = s4_event_context_init(templates_ldb);
-               }
-
-               templates_ldb = ldb_wrap_connect(ldb, event_ctx, lp_ctx, 
-                                               templates_ldb_path, NULL,
-                                               NULL, 0, NULL);
-               talloc_free(templates_ldb_path);
-               if (!templates_ldb) {
-                       *errstring = talloc_asprintf(msg, "samdb_copy_template: ERROR: Failed to connect to templates db at: %s",
-                                            templates_ldb_path);
-                       return LDB_ERR_OPERATIONS_ERROR;
-               }
-               
-               ret = ldb_set_opaque(ldb, "templates_ldb", templates_ldb);
-               if (ret != LDB_SUCCESS) {
-                       return ret;
-               }
-       }
-       *errstring = NULL;      
-
-       basedn = ldb_dn_new(templates_ldb, ldb, "cn=Templates");
-       if (!ldb_dn_add_child_fmt(basedn, "CN=Template%s", name)) {
-               talloc_free(basedn);
-               *errstring = talloc_asprintf(msg, "samdb_copy_template: ERROR: Failed to contruct DN for template '%s'", 
-                                            name);
-               return LDB_ERR_OPERATIONS_ERROR;
-       }
-       
-       /* pull the template record */
-       ret = ldb_search(templates_ldb, msg, &res, basedn, LDB_SCOPE_BASE, NULL, "distinguishedName=*");
-       talloc_free(basedn);
-       if (ret != LDB_SUCCESS) {
-               *errstring = talloc_steal(msg, ldb_errstring(templates_ldb));
-               return ret;
-       }
-       if (res->count != 1) {
-               *errstring = talloc_asprintf(msg, "samdb_copy_template: ERROR: template '%s' matched %d records, expected 1", 
-                                            name, 
-                                            res->count);
-               talloc_free(res);
-               return LDB_ERR_OPERATIONS_ERROR;
-       }
-       t = res->msgs[0];
-
-       for (i = 0; i < t->num_elements; i++) {
-               struct ldb_message_element *el = &t->elements[i];
-               /* some elements should not be copied from the template */
-               if (ldb_attr_cmp(el->name, "cn") == 0 ||
-                   ldb_attr_cmp(el->name, "name") == 0 ||
-                   ldb_attr_cmp(el->name, "objectClass") == 0 ||
-                   ldb_attr_cmp(el->name, "sAMAccountName") == 0 ||
-                   ldb_attr_cmp(el->name, "distinguishedName") == 0 ||
-                   ldb_attr_cmp(el->name, "objectGUID") == 0) {
-                       continue;
-               }
-               for (j = 0; j < el->num_values; j++) {
-                       ret = samdb_find_or_add_attribute(ldb, msg, el->name, 
-                                                         (char *)el->values[j].data);
-                       if (ret) {
-                               *errstring = talloc_asprintf(msg, "Adding attribute %s failed.", el->name);
-                               talloc_free(res);
-                               return ret;
-                       }
-               }
-       }
-
-       talloc_free(res);
-
-       return LDB_SUCCESS;
-}
-
 
 /****************************************************************************
  Create the SID list for this user.
index 2b4a8915563fd24983ae97043915d204a4668b98..7bde42ccc1ee29f37ffd892a3d0a94c69b270bec 100644 (file)
@@ -2129,7 +2129,6 @@ static NTSTATUS dcesrv_lsa_CreateSecret(struct dcesrv_call_state *dce_call, TALL
        struct lsa_secret_state *secret_state;
        struct dcesrv_handle *handle;
        struct ldb_message **msgs, *msg;
-       const char *errstr;
        const char *attrs[] = {
                NULL
        };
@@ -2233,15 +2232,6 @@ static NTSTATUS dcesrv_lsa_CreateSecret(struct dcesrv_call_state *dce_call, TALL
                samdb_msg_add_string(secret_state->sam_ldb, mem_ctx, msg, "cn", name);
        } 
 
-       /* pull in all the template attributes.  Note this is always from the global samdb */
-       ret = samdb_copy_template(secret_state->policy->sam_ldb, msg, 
-                                 "secret", &errstr);
-       if (ret != 0) {
-               DEBUG(0,("Failed to load TemplateSecret from samdb: %s\n",
-                        errstr));
-               return NT_STATUS_INTERNAL_DB_CORRUPTION;
-       }
-
        samdb_msg_add_string(secret_state->sam_ldb, mem_ctx, msg, "objectClass", "secret");
        
        secret_state->secret_dn = talloc_reference(secret_state, msg->dn);