def fix_set(s, handle, set, **kwargs): # kwargs # ask = True | False, Do/Don't ask if changes should be made (!!! Dangerous !!!) # default is ask if 'Document-' in handle: fd = DCC.prop_get(s, handle, InfoSet = 'DocBasic') elif 'Collection-' in handle: fd = DCC.prop_get(s, handle, InfoSet = 'CollData') else: fd = DCC.prop_get(s, handle, InfoSet = 'Title') permdata = DCC.prop_get(s, handle, InfoSet = 'Perms') print(fd['handle'], ':', fd['title']) fd['permissions'] = permdata [removelist, changelist, addlist] = id_perm_changes(s,handle, fd, permdata, set) ch_flag = False if len(removelist) or len(changelist) or len(addlist): print('\n############## ENTRY ##############') if 'Document-' in handle: DCC.print_doc_basic(fd) elif 'Collection-' in handle: DCC.print_coll_data(fd) else: print('Not Document or Collection:', handle, ':', fd['title']) print('https://docushare.tmt.org/docushare/dsweb/ServicesLib/',handle,'/Permissions',sep='') DCC.print_perms(permdata) print('\nSuggested Changes...') print_perm_changes(removelist, changelist, addlist) make_perm_changes(s, handle, permdata, removelist, changelist, addlist, **kwargs)
def modify_dcc_perms(s, handle, permdata, **kwargs): ask_flag = kwargs.get('Ask',True) print('\n Modifying Permissions to:',handle) DCC.print_perms(permdata) if ask_flag == False or MyUtil.get_yn('Change Permissions (Y/N)?'): print('Changing permissions...') DCC.set_permissions(s, handle, permdata)
def fix_permact(s, fd, handle, set, **kwargs): # kwargs # ask = True | False, Do/Don't ask if changes should be made (!!! Dangerous !!!) # default is ask [removelist, changelist, addlist] = id_perm_changes(s,handle, fd, fd['permissions'], set) ch_flag = False if len(removelist) or len(changelist) or len(addlist): DCC.print_perms(fd['permissions']) print('\nSuggested Changes...') print_perm_changes(removelist, changelist, addlist) make_perm_changes(s, handle, fd['permissions'], removelist, changelist, addlist, **kwargs)
def make_perm_changes(s, handle, permdata, removelist, changelist, addlist, **kwargs): ask_flag = kwargs.get('Ask',True) mod_flag = False if ask_flag == True: ans = MyUtil.get_all_none_indiv('Make Changes? All/None/Individual (A/N/I)?') if ans == 'All': ask_flag = False elif ans == 'None': return for perm in removelist: print('Remove?: ',end='') DCC.print_perm(perm) if ask_flag == False or MyUtil.get_yn(': (Y/N)?'): if ask_flag == False: print() mod_flag = True MyUtil.remove_dict_from_list(permdata['perms'],'handle',perm['handle']) for chperm in changelist: print('Change?:', end='') DCC.print_perm(chperm) if ask_flag == False or MyUtil.get_yn(': (Y/N)?'): if ask_flag == False: print() mod_flag = True for perm in permdata['perms']: if perm['handle'] == chperm['handle']: if 'Read' in perm: del(perm['Read']) if 'Write'in perm: del(perm['Write']) if 'Manage' in perm: del(perm['Manage']) for key,val in chperm.items(): perm[key] = val for addperm in addlist: print('Add?:', end='') DCC.print_perm(addperm) if ask_flag == False or MyUtil.get_yn(': (Y/N)?'): if ask_flag == False: print() mod_flag = True permdata['perms'].append(addperm) if debug: DCC.print_perms(permdata) if mod_flag: # check ask_flag since it may have been modified from kwargs value if ask_flag == False: modify_dcc_perms(s, handle, permdata, Ask=False) else: modify_dcc_perms(s,handle,permdata, **kwargs)