r12312: Reformatting and a trivial change: is_share_read_only_for_user only uses
authorVolker Lendecke <vlendec@samba.org>
Sun, 18 Dec 2005 14:23:23 +0000 (14:23 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 16:05:53 +0000 (11:05 -0500)
conn->service, so there's no point in passing down the whole conn struct.

Volker

source/smbd/uid.c

index d1ecaf6625fa82d9ae6f05894987a4dae2c575d2..458eb3a2c86a7b1e4846374eb045ca393f888bff 100644 (file)
@@ -81,45 +81,53 @@ BOOL change_to_guest(void)
  Readonly share for this user ?
 ****************************************************************************/
 
-static BOOL is_share_read_only_for_user(connection_struct *conn, user_struct *vuser)
+static BOOL is_share_read_only_for_user(int snum, user_struct *vuser)
 {
        char **list;
-       const char *service = lp_servicename(conn->service);
-       BOOL read_only_ret = lp_readonly(conn->service);
+       const char *service = lp_servicename(snum);
+       BOOL read_only_ret = lp_readonly(snum);
 
        if (!service)
                return read_only_ret;
 
-       str_list_copy(&list, lp_readlist(conn->service));
+       str_list_copy(&list, lp_readlist(snum));
        if (list) {
                if (!str_list_sub_basic(list, vuser->user.smb_name) ) {
-                       DEBUG(0, ("is_share_read_only_for_user: ERROR: read list substitution failed\n"));
+                       DEBUG(0, ("is_share_read_only_for_user: ERROR: read "
+                                 "list substitution failed\n"));
                }
                if (!str_list_substitute(list, "%S", service)) {
-                       DEBUG(0, ("is_share_read_only_for_user: ERROR: read list service substitution failed\n"));
+                       DEBUG(0, ("is_share_read_only_for_user: ERROR: read "
+                                 "list service substitution failed\n"));
                }
-               if (user_in_list(vuser->user.unix_name, (const char **)list, vuser->groups, vuser->n_groups)) {
+               if (user_in_list(vuser->user.unix_name, (const char **)list,
+                                vuser->groups, vuser->n_groups)) {
                        read_only_ret = True;
                }
                str_list_free(&list);
        }
 
-       str_list_copy(&list, lp_writelist(conn->service));
+       str_list_copy(&list, lp_writelist(snum));
        if (list) {
                if (!str_list_sub_basic(list, vuser->user.smb_name) ) {
-                       DEBUG(0, ("is_share_read_only_for_user: ERROR: write list substitution failed\n"));
+                       DEBUG(0, ("is_share_read_only_for_user: ERROR: write "
+                                 "list substitution failed\n"));
                }
                if (!str_list_substitute(list, "%S", service)) {
-                       DEBUG(0, ("is_share_read_only_for_user: ERROR: write list service substitution failed\n"));
+                       DEBUG(0, ("is_share_read_only_for_user: ERROR: write "
+                                 "list service substitution failed\n"));
                }
-               if (user_in_list(vuser->user.unix_name, (const char **)list, vuser->groups, vuser->n_groups)) {
+               if (user_in_list(vuser->user.unix_name, (const char **)list,
+                                vuser->groups, vuser->n_groups)) {
                        read_only_ret = False;
                }
                str_list_free(&list);
        }
 
-       DEBUG(10,("is_share_read_only_for_user: share %s is %s for unix user %s\n",
-               service, read_only_ret ? "read-only" : "read-write", vuser->user.unix_name ));
+       DEBUG(10,("is_share_read_only_for_user: share %s is %s for unix user "
+                 "%s\n", service,
+                 read_only_ret ? "read-only" : "read-write",
+                 vuser->user.unix_name ));
 
        return read_only_ret;
 }
@@ -146,7 +154,7 @@ static BOOL check_user_ok(connection_struct *conn, user_struct *vuser,int snum)
        if (!user_ok(vuser->user.unix_name,snum, vuser->groups, vuser->n_groups))
                return(False);
 
-       readonly_share = is_share_read_only_for_user(conn, vuser);
+       readonly_share = is_share_read_only_for_user(conn->service, vuser);
 
        if (!readonly_share &&
            !share_access_check(conn, snum, vuser, FILE_WRITE_DATA)) {