Should we override a deny ? Check 'acl group control' and 'dos filemode'.
****************************************************************************/
-static bool acl_group_override(connection_struct *conn,
- const struct smb_filename *smb_fname)
+static bool acl_group_override_fsp(files_struct *fsp)
{
if ((errno != EPERM) && (errno != EACCES)) {
return false;
}
/* file primary group == user primary or supplementary group */
- if (lp_acl_group_control(SNUM(conn)) &&
- current_user_in_group(conn, smb_fname->st.st_ex_gid)) {
+ if (lp_acl_group_control(SNUM(fsp->conn)) &&
+ current_user_in_group(fsp->conn, fsp->fsp_name->st.st_ex_gid)) {
return true;
}
/* user has writeable permission */
- if (lp_dos_filemode(SNUM(conn)) &&
- can_write_to_file(conn,
- conn->cwd_fsp,
- smb_fname))
- {
+ if (lp_dos_filemode(SNUM(fsp->conn)) && can_write_to_fsp(fsp)) {
return true;
}
const SMB_STRUCT_STAT *psbuf,
bool *pacl_set_support)
{
- connection_struct *conn = fsp->conn;
bool ret = False;
SMB_ACL_T the_acl = sys_acl_init(talloc_tos());
canon_ace *p_ace;
*pacl_set_support = false;
}
- if (acl_group_override(conn, fsp->fsp_name)) {
+ if (acl_group_override_fsp(fsp)) {
DBG_DEBUG("acl group control on and current user in "
"file [%s] primary group.\n",
fsp_str_dbg(fsp));
unbecome_root();
}
if (sret == -1) {
- if (acl_group_override(conn, fsp->fsp_name)) {
+ if (acl_group_override_fsp(fsp)) {
DEBUG(5,("set_nt_acl: acl group "
"control on and current user "
"in file %s primary group. "
unbecome_root();
}
if(sret == -1) {
- if (acl_group_override(conn, fsp->fsp_name)) {
+ if (acl_group_override_fsp(fsp)) {
DEBUG(5,("set_nt_acl: acl group "
"control on and current user "
"in file %s primary group. "