📄 pdb_get_set.c
字号:
return False; sampass->private_u.pass_can_change_time = mytime; return pdb_set_init_flags(sampass, PDB_CANCHANGETIME, flag);}BOOL pdb_set_pass_must_change_time (SAM_ACCOUNT *sampass, time_t mytime, enum pdb_value_state flag){ if (!sampass) return False; sampass->private_u.pass_must_change_time = mytime; return pdb_set_init_flags(sampass, PDB_MUSTCHANGETIME, flag);}BOOL pdb_set_pass_last_set_time (SAM_ACCOUNT *sampass, time_t mytime, enum pdb_value_state flag){ if (!sampass) return False; sampass->private_u.pass_last_set_time = mytime; return pdb_set_init_flags(sampass, PDB_PASSLASTSET, flag);}BOOL pdb_set_hours_len (SAM_ACCOUNT *sampass, uint32 len, enum pdb_value_state flag){ if (!sampass) return False; sampass->private_u.hours_len = len; return pdb_set_init_flags(sampass, PDB_HOURSLEN, flag);}BOOL pdb_set_logon_divs (SAM_ACCOUNT *sampass, uint16 hours, enum pdb_value_state flag){ if (!sampass) return False; sampass->private_u.logon_divs = hours; return pdb_set_init_flags(sampass, PDB_LOGONDIVS, flag);}/** * Set flags showing what is initalised in the SAM_ACCOUNT * @param sampass the SAM_ACCOUNT in question * @param flag The *new* flag to be set. Old flags preserved * this flag is only added. **/ BOOL pdb_set_init_flags (SAM_ACCOUNT *sampass, enum pdb_elements element, enum pdb_value_state value_flag){ if (!sampass || !sampass->mem_ctx) return False; if (!sampass->private_u.set_flags) { if ((sampass->private_u.set_flags = bitmap_talloc(sampass->mem_ctx, PDB_COUNT))==NULL) { DEBUG(0,("bitmap_talloc failed\n")); return False; } } if (!sampass->private_u.change_flags) { if ((sampass->private_u.change_flags = bitmap_talloc(sampass->mem_ctx, PDB_COUNT))==NULL) { DEBUG(0,("bitmap_talloc failed\n")); return False; } } switch(value_flag) { case PDB_CHANGED: if (!bitmap_set(sampass->private_u.change_flags, element)) { DEBUG(0,("Can't set flag: %d in change_flags.\n",element)); return False; } if (!bitmap_set(sampass->private_u.set_flags, element)) { DEBUG(0,("Can't set flag: %d in set_flags.\n",element)); return False; } DEBUG(11, ("element %d -> now CHANGED\n", element)); break; case PDB_SET: if (!bitmap_clear(sampass->private_u.change_flags, element)) { DEBUG(0,("Can't set flag: %d in change_flags.\n",element)); return False; } if (!bitmap_set(sampass->private_u.set_flags, element)) { DEBUG(0,("Can't set flag: %d in set_flags.\n",element)); return False; } DEBUG(11, ("element %d -> now SET\n", element)); break; case PDB_DEFAULT: default: if (!bitmap_clear(sampass->private_u.change_flags, element)) { DEBUG(0,("Can't set flag: %d in change_flags.\n",element)); return False; } if (!bitmap_clear(sampass->private_u.set_flags, element)) { DEBUG(0,("Can't set flag: %d in set_flags.\n",element)); return False; } DEBUG(11, ("element %d -> now DEFAULT\n", element)); break; } return True;}BOOL pdb_set_user_sid (SAM_ACCOUNT *sampass, const DOM_SID *u_sid, enum pdb_value_state flag){ if (!sampass || !u_sid) return False; sid_copy(&sampass->private_u.user_sid, u_sid); DEBUG(10, ("pdb_set_user_sid: setting user sid %s\n", sid_string_static(&sampass->private_u.user_sid))); return pdb_set_init_flags(sampass, PDB_USERSID, flag);}BOOL pdb_set_user_sid_from_string (SAM_ACCOUNT *sampass, fstring u_sid, enum pdb_value_state flag){ DOM_SID new_sid; if (!sampass || !u_sid) return False; DEBUG(10, ("pdb_set_user_sid_from_string: setting user sid %s\n", u_sid)); if (!string_to_sid(&new_sid, u_sid)) { DEBUG(1, ("pdb_set_user_sid_from_string: %s isn't a valid SID!\n", u_sid)); return False; } if (!pdb_set_user_sid(sampass, &new_sid, flag)) { DEBUG(1, ("pdb_set_user_sid_from_string: could not set sid %s on SAM_ACCOUNT!\n", u_sid)); return False; } return True;}BOOL pdb_set_group_sid (SAM_ACCOUNT *sampass, const DOM_SID *g_sid, enum pdb_value_state flag){ if (!sampass || !g_sid) return False; sid_copy(&sampass->private_u.group_sid, g_sid); DEBUG(10, ("pdb_set_group_sid: setting group sid %s\n", sid_string_static(&sampass->private_u.group_sid))); return pdb_set_init_flags(sampass, PDB_GROUPSID, flag);}BOOL pdb_set_group_sid_from_string (SAM_ACCOUNT *sampass, fstring g_sid, enum pdb_value_state flag){ DOM_SID new_sid; if (!sampass || !g_sid) return False; DEBUG(10, ("pdb_set_group_sid_from_string: setting group sid %s\n", g_sid)); if (!string_to_sid(&new_sid, g_sid)) { DEBUG(1, ("pdb_set_group_sid_from_string: %s isn't a valid SID!\n", g_sid)); return False; } if (!pdb_set_group_sid(sampass, &new_sid, flag)) { DEBUG(1, ("pdb_set_group_sid_from_string: could not set sid %s on SAM_ACCOUNT!\n", g_sid)); return False; } return True;}/********************************************************************* Set the user's UNIX name. ********************************************************************/BOOL pdb_set_username(SAM_ACCOUNT *sampass, const char *username, enum pdb_value_state flag){ if (!sampass) return False; if (username) { DEBUG(10, ("pdb_set_username: setting username %s, was %s\n", username, (sampass->private_u.username)?(sampass->private_u.username):"NULL")); sampass->private_u.username = talloc_strdup(sampass->mem_ctx, username); if (!sampass->private_u.username) { DEBUG(0, ("pdb_set_username: talloc_strdup() failed!\n")); return False; } } else { sampass->private_u.username = PDB_NOT_QUITE_NULL; } return pdb_set_init_flags(sampass, PDB_USERNAME, flag);}/********************************************************************* Set the domain name. ********************************************************************/BOOL pdb_set_domain(SAM_ACCOUNT *sampass, const char *domain, enum pdb_value_state flag){ if (!sampass) return False; if (domain) { DEBUG(10, ("pdb_set_domain: setting domain %s, was %s\n", domain, (sampass->private_u.domain)?(sampass->private_u.domain):"NULL")); sampass->private_u.domain = talloc_strdup(sampass->mem_ctx, domain); if (!sampass->private_u.domain) { DEBUG(0, ("pdb_set_domain: talloc_strdup() failed!\n")); return False; } } else { sampass->private_u.domain = PDB_NOT_QUITE_NULL; } return pdb_set_init_flags(sampass, PDB_DOMAIN, flag);}/********************************************************************* Set the user's NT name. ********************************************************************/BOOL pdb_set_nt_username(SAM_ACCOUNT *sampass, const char *nt_username, enum pdb_value_state flag){ if (!sampass) return False; if (nt_username) { DEBUG(10, ("pdb_set_nt_username: setting nt username %s, was %s\n", nt_username, (sampass->private_u.nt_username)?(sampass->private_u.nt_username):"NULL")); sampass->private_u.nt_username = talloc_strdup(sampass->mem_ctx, nt_username); if (!sampass->private_u.nt_username) { DEBUG(0, ("pdb_set_nt_username: talloc_strdup() failed!\n")); return False; } } else { sampass->private_u.nt_username = PDB_NOT_QUITE_NULL; } return pdb_set_init_flags(sampass, PDB_NTUSERNAME, flag);}/********************************************************************* Set the user's full name. ********************************************************************/BOOL pdb_set_fullname(SAM_ACCOUNT *sampass, const char *full_name, enum pdb_value_state flag){ if (!sampass) return False; if (full_name) { DEBUG(10, ("pdb_set_full_name: setting full name %s, was %s\n", full_name, (sampass->private_u.full_name)?(sampass->private_u.full_name):"NULL")); sampass->private_u.full_name = talloc_strdup(sampass->mem_ctx, full_name); if (!sampass->private_u.full_name) { DEBUG(0, ("pdb_set_fullname: talloc_strdup() failed!\n")); return False; } } else { sampass->private_u.full_name = PDB_NOT_QUITE_NULL; } return pdb_set_init_flags(sampass, PDB_FULLNAME, flag);}/********************************************************************* Set the user's logon script. ********************************************************************/BOOL pdb_set_logon_script(SAM_ACCOUNT *sampass, const char *logon_script, enum pdb_value_state flag){ if (!sampass) return False; if (logon_script) { DEBUG(10, ("pdb_set_logon_script: setting logon script %s, was %s\n", logon_script, (sampass->private_u.logon_script)?(sampass->private_u.logon_script):"NULL")); sampass->private_u.logon_script = talloc_strdup(sampass->mem_ctx, logon_script); if (!sampass->private_u.logon_script) { DEBUG(0, ("pdb_set_logon_script: talloc_strdup() failed!\n")); return False; } } else { sampass->private_u.logon_script = PDB_NOT_QUITE_NULL; } return pdb_set_init_flags(sampass, PDB_LOGONSCRIPT, flag);}/********************************************************************* Set the user's profile path. ********************************************************************/BOOL pdb_set_profile_path (SAM_ACCOUNT *sampass, const char *profile_path, enum pdb_value_state flag){ if (!sampass) return False; if (profile_path) { DEBUG(10, ("pdb_set_profile_path: setting profile path %s, was %s\n", profile_path, (sampass->private_u.profile_path)?(sampass->private_u.profile_path):"NULL")); sampass->private_u.profile_path = talloc_strdup(sampass->mem_ctx, profile_path); if (!sampass->private_u.profile_path) { DEBUG(0, ("pdb_set_profile_path: talloc_strdup() failed!\n")); return False; } } else { sampass->private_u.profile_path = PDB_NOT_QUITE_NULL; } return pdb_set_init_flags(sampass, PDB_PROFILE, flag);}/********************************************************************* Set the user's directory drive. ********************************************************************/BOOL pdb_set_dir_drive (SAM_ACCOUNT *sampass, const char *dir_drive, enum pdb_value_state flag){ if (!sampass) return False; if (dir_drive) { DEBUG(10, ("pdb_set_dir_drive: setting dir drive %s, was %s\n", dir_drive, (sampass->private_u.dir_drive)?(sampass->private_u.dir_drive):"NULL")); sampass->private_u.dir_drive = talloc_strdup(sampass->mem_ctx, dir_drive); if (!sampass->private_u.dir_drive) { DEBUG(0, ("pdb_set_dir_drive: talloc_strdup() failed!\n")); return False; } } else { sampass->private_u.dir_drive = PDB_NOT_QUITE_NULL; } return pdb_set_init_flags(sampass, PDB_DRIVE, flag);}/********************************************************************* Set the user's home directory. ********************************************************************/BOOL pdb_set_homedir (SAM_ACCOUNT *sampass, const char *home_dir, enum pdb_value_state flag){ if (!sampass) return False; if (home_dir) { DEBUG(10, ("pdb_set_homedir: setting home dir %s, was %s\n", home_dir, (sampass->private_u.home_dir)?(sampass->private_u.home_dir):"NULL")); sampass->private_u.home_dir = talloc_strdup(sampass->mem_ctx, home_dir); if (!sampass->private_u.home_dir) { DEBUG(0, ("pdb_set_home_dir: talloc_strdup() failed!\n")); return False; } } else { sampass->private_u.home_dir = PDB_NOT_QUITE_NULL; } return pdb_set_init_flags(sampass, PDB_SMBHOME, flag);}/********************************************************************* Set the user's unix home directory. ********************************************************************/BOOL pdb_set_unix_homedir (SAM_ACCOUNT *sampass, const char *unix_home_dir, enum pdb_value_state flag){ if (!sampass) return False; if (unix_home_dir) { DEBUG(10, ("pdb_set_unix_homedir: setting home dir %s, was %s\n", unix_home_dir, (sampass->private_u.unix_home_dir)?(sampass->private_u.unix_home_dir):"NULL")); sampass->private_u.unix_home_dir = talloc_strdup(sampass->mem_ctx, unix_home_dir); if (!sampass->private_u.unix_home_dir) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -