@@ -277,11 +277,11 @@ proc parseApplicationCriteriaArgs {aftbef nearsec args} {
277277 set nextargisdatetime [string trimleft $arg -]
278278 }
279279 }
280- --not-group - --not-user {
280+ --not-group - --not-user - --group - --user {
281281 if {[getState is_win]} {
282282 knerror " Option '$arg ' not supported on Windows platform"
283283 } else {
284- set nextargisval not [string range $arg 6 end ]list
284+ set nextargisval [string map {- {}} $arg ]list
285285 }
286286 }
287287 default {
@@ -296,6 +296,11 @@ proc parseApplicationCriteriaArgs {aftbef nearsec args} {
296296 knerror " Missing value for '$prevarg ' option"
297297 }
298298
299+ set user [expr {[info exists userlist] && [getState username] in\
300+ $userlist }]
301+ set group [expr {[info exists grouplist] && [isIntBetweenList\
302+ $grouplist [getState usergroups]]}]
303+
299304 # does it apply to current user?
300305 set notuser [expr {[info exists notuserlist] && [getState username] in\
301306 $notuserlist }]
@@ -309,16 +314,21 @@ proc parseApplicationCriteriaArgs {aftbef nearsec args} {
309314 $after }]
310315
311316
317+ set user_or_group_target_defined [expr {[info exists userlist] || [info \
318+ exists grouplist]}]
319+ set user_or_group_targeted [expr {$user || $group }]
312320 set user_or_group_excluded [expr {$notuser || $notgroup }]
313321 set time_frame_defined [expr {[info exists before] || [info exists after]}]
314322 set in_time_frame [expr {!$time_frame_defined || $isbefore || $isafter }]
315323 set in_near_time_frame [expr {[info exists after] && !$isafter &&\
316324 [getState clock_seconds] >= ($after - $nearsec )}]
317325
318- set apply [expr {$in_time_frame && !$user_or_group_excluded }]
326+ set apply [expr {$in_time_frame && ($user_or_group_targeted ||\
327+ (!$user_or_group_target_defined && !$user_or_group_excluded ))}]
319328
320329 # is end limit near ?
321- set isnearly [expr {!$apply && !$user_or_group_excluded &&\
330+ set isnearly [expr {!$apply && ($user_or_group_targeted ||\
331+ (!$user_or_group_target_defined && !$user_or_group_excluded )) &&\
322332 $in_near_time_frame }]
323333 if {![info exists afterraw]} {
324334 set afterraw {}
0 commit comments