Ignore:
Timestamp:
Feb 7, 2018, 10:39:40 AM (8 years ago)
Author:
Herwig Bauernfeind
Message:

SMBMon: ACLS browser, missing, recreated stuff

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/guitools/shared/browse.vrs

    r1030 r1053  
    311311    if options.!debug == 1 then say time()'  _BrowseIconsInit() done.'
    312312return
     313
     314/*:VRX */
     315_ACLSBrowse:
     316    browsepath = _browsebuildpath(SMBObj.rh)
     317    ok = VRSet("SW_ACLS","Caption", browsepath)
     318
     319    parse var browsepath '\\'machine'\'sharename '\' browsepath
     320
     321    if browsepath = '' then browsepath = '\'
     322    if UserCred = "" then UserCred = "-N"
     323
     324    /* Make sure credentials are usable */
     325    if UserCred   = 'USERCRED'   | UserCred = '' | UserCred = '--user=%' then UserCred = '-N'
     326
     327    /* We have to remove the double % for smbclient.exe - not entirely clear why */
     328    OldUserCred = UserCred
     329    if pos('%%',UserCred) > 0 & pos("4OS2", value("COMSPEC",,"OS2ENVIRONMENT")) = 0  then do
     330        OldUserCred = UserCred
     331        parse var UserCred '--user='username'%%'password
     332        UserCred = '--user='username'%'password
     333        call lineout "debug", "  Strip double %%!!!"
     334    end
     335    if options.!debug == 1 then say "smbcacls \\"machine"\"sharename" "browsepath" "UserCred" "aclsnumeric
     336    address cmd samba.!smbcaclsexe' \\'machine'\'sharename' 'browsepath' 'UserCred' 'aclsnumeric' 2>'samba.!err' 1>'samba.!msg
     337    ok = file2stem(samba.!msg,"aclsout.")   
     338    ok = file2stem(samba.!err,"aclserr.")
     339    if aclserr.0 > 0 then do
     340        call _StatusBarWrapper aclserr.1
     341        call SW_ACLS_Close
     342    end
     343    if aclsout.0 > 2 then ok = VRSet("DT_REV_CONT","Caption",aclsout.1" "aclsout.2)
     344    do I = 3 to aclsout.0
     345        parse var aclsout.I ACLS.ACL':'ACLS.User':'ACLS.A_D'/'ACLS.Flags'/'ACLS.Permissions
     346        parse var ACLS.User ACLS.Group'\'ACLS.User
     347        arh = VRMethod("CN_ACLS","AddRecord")
     348        ok = VRMethod("CN_ACLS","SetFieldData", arh, ACL.typeFH,  ACLS.ACL)
     349        ok = VRMethod("CN_ACLS","SetFieldData", arh, ACL.groupFH, ACLS.Group)
     350        ok = VRMethod("CN_ACLS","SetFieldData", arh, ACL.userFH,  ACLS.User)
     351        ok = VRMethod("CN_ACLS","SetFieldData", arh, ACL.ADFH,    ACLS.A_D)
     352        ok = VRMethod("CN_ACLS","SetFieldData", arh, ACL.flagsFH, ACLS.Flags)
     353        ok = VRMethod("CN_ACLS","SetFieldData", arh, ACL.accessFH,ACLS.Permissions)
     354    end
     355
     356    UserCred = OldUserCred
     357return
Note: See TracChangeset for help on using the changeset viewer.