forked from ungleich-public/cdist
		
	__acl: add nice oneliners and move default ACL decision out of the loop
This commit is contained in:
		
					parent
					
						
							
								0f3c162696
							
						
					
				
			
			
				commit
				
					
						86f45db1b9
					
				
			
		
					 1 changed files with 10 additions and 17 deletions
				
			
		|  | @ -28,6 +28,13 @@ acl_is="$( cat "$__object/explorer/acl_is" )" | ||||||
| 
 | 
 | ||||||
| acl_path="/$__object_id" | acl_path="/$__object_id" | ||||||
| 
 | 
 | ||||||
|  | if [ -f "$__object/parameter/default" ] && [ "$is_dir" = '1' ] | ||||||
|  | then | ||||||
|  |     set_default=1 | ||||||
|  | else | ||||||
|  |     set_default=0 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
| acl_should="$( for parameter in user group mask other | acl_should="$( for parameter in user group mask other | ||||||
| do | do | ||||||
|     if [ ! -f "$__object/parameter/$parameter" ] |     if [ ! -f "$__object/parameter/$parameter" ] | ||||||
|  | @ -39,30 +46,16 @@ do | ||||||
|     do |     do | ||||||
|         if echo "$acl" | awk -F: '{ print $NF }' | grep -Fq 'X' |         if echo "$acl" | awk -F: '{ print $NF }' | grep -Fq 'X' | ||||||
|         then |         then | ||||||
|             if [ "$is_dir" = '1' ] |             [ "$is_dir" = '1' ] && rep=x || rep=- | ||||||
|             then |  | ||||||
|                 rep=x |  | ||||||
|             else |  | ||||||
|                 rep=- |  | ||||||
|             fi |  | ||||||
| 
 | 
 | ||||||
|             acl="$( echo "$acl" | sed "s/\(.*\)X/\1$rep/" )" |             acl="$( echo "$acl" | sed "s/\(.*\)X/\1$rep/" )" | ||||||
|         fi |         fi | ||||||
| 
 | 
 | ||||||
|         if echo "$parameter" | grep -Eq '(mask|other)' |         echo "$parameter" | grep -Eq '(mask|other)' && sep=:: || sep=: | ||||||
|         then |  | ||||||
|             sep=:: |  | ||||||
|         else |  | ||||||
|             sep=: |  | ||||||
|         fi |  | ||||||
| 
 | 
 | ||||||
|         echo "$parameter$sep$acl" |         echo "$parameter$sep$acl" | ||||||
| 
 | 
 | ||||||
|         if [ -f "$__object/parameter/default" ] \ |         [ "$set_default" = '1' ] && echo "default:$parameter$sep$acl" | ||||||
|             && [ "$is_dir" = '1' ] |  | ||||||
|         then |  | ||||||
|             echo "default:$parameter$sep$acl" |  | ||||||
|         fi |  | ||||||
|     done \ |     done \ | ||||||
|         < "$__object/parameter/$parameter" |         < "$__object/parameter/$parameter" | ||||||
| done )" | done )" | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue