Author: alexwoodhead
(2011/03/25 02:35) About 1 year ago
zcoreAuth groups code
335
; ^zcoreAuth("Asset","SupportWiki","Write")
336
; ^zcoreAuth("Asset","SupportWiki","Delete")
337
;
338
339
340
AssetCreate(name,modes)
341
new key,ret
342
set ret=$$Access("zcoreAuth","admin") quit:'ret ret
;set ret=$$Access("zcoreAuth","admin") quit:'ret ret
343
set ret=$$ValidateAssetName(.name) Quit:'ret ret
if $Data(^zcoreAuth("Asset",name))'=0 Quit "0~Asset already exists"
344
set ^zcoreAuth("Asset",name)=""
345
set key=""
346
for set key=$order(modes(key)) quit:key="" set ^zcoreAuth("Asset",name,key)=""
347
quit 1
348
AssetDelete(name)
349
new ret
350
351
352
if $Data(^zcoreAuth("Asset",name))=0 Quit "0~Asset doesn't exist"
kill ^zcoreAuth("Asset",name)
353
354
AssetAddMode(name,mode)
355
356
357
set ret=$$ValidateAssetName(.name,1) Quit:'ret ret
358
set ret=$$ValidateAssetMode(.mode) Quit:'ret ret
359
if $Data(^zcoreAuth("Asset",name,mode))=1 quit "0~Mode already exists"
360
...
361
362
AssetDeleteMode(name,mode)
363
364
365
366
set ret=$$ValidateAssetMode(.name) Quit:'ret ret
367
368
if $Data(^zcoreAuth("Asset",name,mode))=0 quit "0~Mode doesn't exist"
kill ^zcore("Asset",name,mode)
369
370
371
390
; if defined the mode is enabled on this asset for all users of this group
392
391
; ^zcoreAsset("Group",[groupname],"assets",[assetname],[modename])=""
393
ValidateGroupName(name,exists)
394
; TODO
395
if $Data(name)'=1 Quit "0~Group name argument not supplied"
396
if name'?5.16AN1.5(1"."1.20AN) Quit "0~Group name format not accepted"
397
set:'$Data(exists) exists=0
398
if exists,$Data(^zcoreAuth("Group",name))=0 Quit "0~Group """_name_""" doesn't exist"
Quit 1
399
GroupCreate(groupname)
400
set ret=$$ValidateGroupName(name)
401
402
set ret=$$ValidateGroupName(groupname)
; if group already exists error
403
404
if $Data(^zcoreAuth("Group",groupname))'=0 Quit "0~Group """_name_""" already exists"
405
GroupDelete
406
GroupDelete(groupname)
407
408
set ret=$$ValidateGroupName(groupname,1) quit:'ret ret
409
Kill ^zcoreAuth("Group",groupname)
410
GroupAssignUser(groupname,username)
411
set ret=$$ValidateGroupName(name,1) quit:'ret ret
412
set ret=$$ValidateAssetName(.name,1) quit:'ret ret
413
414
set ret=$$ValidateFormatUsername(.username,1) quit:'ret ret
Quit
415
set ^zcoreAsset("Group",name,"users",username)=""
416
GroupRemoveUser(groupname,username)
417
418
419
; Delete even if user no longer exists
420
set ret=$$ValidateAssetName(.name) quit:'ret ret
421
set ret=$$ValidateFormatUsername(.username) quit:'ret ret
422
kill ^zcoreAsset("Group",groupname,"users",username)
423
; usernames - Pass by reference
424
GroupListUsers(groupname,usernames)
425
426
427
428
merge usernames=^zcoreAsset("Group",groupname,"users")
429
; Argument "asset" may be an assetname (no modes)
430
; asset="LoggingFiles"
431
; or argument "asset" may be an array
432
; Presence of a mode indicates that it is enabled for the group
436
; Absence of a mode indicates that it is disabled for the group
437
GroupAddAsset(groupname,asset)
438
439
440
441
442
set ret=$$ValidateAssetName(.asset) quit:'ret ret
443
merge ^zcoreAsset("Group",groupname,"assets",asset)=asset
444
set ^zcoreAsset("Group",groupname,"assets",asset)=""
445
GroupRemoveAsset(groupname,asset)
446
447
448
449
450
451
kill ^zcoreAsset("Group",groupname,"assets",asset)
433
452
434
GroupListAssets(groupname)
453
GroupListAssets(groupname,assetnames)
435
454
new k4,ret
455
456
set k4="" for set k4=$Order(^zcoreAsset("Group",groupname,"assets",k4)) quit:k4="" set assetnames(k4)=""
457
GroupAssetAddMode(groupname,assetname,mode)
458
459
460
461
462
463
set ret=$$ValidateAssetMode(.mode) quit:'ret ret
464
set ^zcoreAsset("Group",groupname,"assets",assetname,mode)=""
465
GroupAssetRemoveMode(groupname,assetname,mode)
466
467
468
469
470
471
472
kill ^zcoreAsset("Group",groupname,"assets",assetname,mode)
473
GroupAssetListModes(groupname,assetname,modes)
474
475
476
477
478
479
merge modes=^zcoreAsset("Group",groupname,"assets",assetname)
480
Console
481
482
604
do assertEqual^zcoreUnit(1,$$UserIsEmailVerified^zcoreAuth("username"),"2. UserSetEmailVerified")
639
605
set x=$$UserDelete("username") ; remove test account
640
606
641
607
;-----------------------
642
;----------------------- ValidateAssetName ----------------------
643
do assertNotEqual^zcoreUnit(1,$$ValidateAssetName())
644
do assertNotEqual^zcoreUnit(1,$$ValidateAssetName("bla"))
645
do assertNotEqual^zcoreUnit(0,$$ValidateAssetName("assetname"))
646
do assertNotEqual^zcoreUnit(1,$$ValidateAssetName("assetname",1))
647
;----------------------- ValidateAssetMode ----------------------
648
do assertNotEqual^zcoreUnit(1,$$ValidateAssetMode())
649
do assertNotEqual^zcoreUnit(1,$$ValidateAssetMode("bla"))
650
do assertNotEqual^zcoreUnit(0,$$ValidateAssetMode("modename"))
651
652
;----------------------- AssetCreate ----------------------------
653
; startup prep
654
Kill ^zcoreAuth("Asset","assetname")
655
do assertNotEqual^zcoreUnit(1,$$AssetCreate())
656
do assertNotEqual^zcoreUnit(1,$$AssetCreate("bla"))
657
do assertEqual^zcoreUnit(1,$$AssetCreate("assetname"))
658
do assertEqual^zcoreUnit(1,$Data(^zcoreAuth("Asset","assetname")))
659
; cannot create duplicate name
660
do assertEqual^zcoreUnit(0,+$$AssetCreate("assetname"))
661
662
;----------------------- AssetDelete ----------------------------
663
; start prep depends on earlier test
664
do assertNotEqual^zcoreUnit(1,$$AssetDelete())
665
do assertNotEqual^zcoreUnit(1,$$AssetDelete("bla"))
666
do assertNotEqual^zcoreUnit(1,$$AssetDelete("notexistsassetname"))
667
do assertEqual^zcoreUnit(1,$$AssetDelete("assetname"))
668
do assertEqual^zcoreUnit(0,$$AssetDelete("assetname"))
669
670
;----------------------- AssetAddMode ---------------------------
671
672
do assertEqual^zcoreUnit(1,$$AssetAddMode())
673
do assertEqual^zcoreUnit(1,$$AssetAddMode("notexixstsasset"))
674
do assertEqual^zcoreUnit(1,$$AssetAddMode("assetname"))
675
do assertEqual^zcoreUnit(1,$$AssetAddMode("assetname",""))
676
do assertEqual^zcoreUnit(1,$$AssetAddMode("assetname","write"))
677
do assertNotEqual^zcoreUnit(1,$$AssetAddMode("assetname","write"))
678
679
;----------------------- AssetDeleteMode ------------------------
680
do assertNotEqual^zcoreUnit(1,$$AssetDeleteMode())
681
do assertNotEqual^zcoreUnit(1,$$AssetDeleteMode("assetname"))
682
do assertNotEqual^zcoreUnit(1,$$AssetDeleteMode("assetname","bla"))
683
do assertEqual^zcoreUnit(1,$$AssetDeleteMode("assetname","write"))
684
do assertNotEqual^zcoreUnit(1,$$AssetDeleteMode("assetname","write"))
685
686
687
688
608
689
609
690
; ^zcoreAuth("Asset","SupportWiki","Write"); ^zcoreAuth("Asset","SupportWiki","Write"); ^zcoreAuth("Asset","SupportWiki","Delete"); ^zcoreAuth("Asset","SupportWiki","Delete");set ret=$$Access("zcoreAuth","admin") quit:'ret ret;set ret=$$Access("zcoreAuth","admin") quit:'ret retif $Data(^zcoreAuth("Asset",name))'=0 Quit "0~Asset already exists"set ^zcoreAuth("Asset",name)=""set ^zcoreAuth("Asset",name)=""for set key=$order(modes(key)) quit:key="" set ^zcoreAuth("Asset",name,key)=""for set key=$order(modes(key)) quit:key="" set ^zcoreAuth("Asset",name,key)=""set ret=$$Access("zcoreAuth","admin") quit:'ret ret;set ret=$$Access("zcoreAuth","admin") quit:'ret retif $Data(^zcoreAuth("Asset",name))=0 Quit "0~Asset doesn't exist"kill ^zcoreAuth("Asset",name)kill ^zcoreAuth("Asset",name)set ret=$$Access("zcoreAuth","admin") quit:'ret ret;set ret=$$Access("zcoreAuth","admin") quit:'ret retif $Data(^zcoreAuth("Asset",name,mode))=1 quit "0~Mode already exists"if $Data(^zcoreAuth("Asset",name,mode))=1 quit "0~Mode already exists"set ret=$$Access("zcoreAuth","admin") quit:'ret ret;set ret=$$Access("zcoreAuth","admin") quit:'ret retif $Data(^zcoreAuth("Asset",name,mode))=0 quit "0~Mode doesn't exist"kill ^zcore("Asset",name,mode)kill ^zcore("Asset",name,mode); ^zcoreAsset("Group",[groupname],"assets",[assetname],[modename])=""; ^zcoreAsset("Group",[groupname],"assets",[assetname],[modename])=""; TODOif $Data(name)'=1 Quit "0~Group name argument not supplied"if name'?5.16AN1.5(1"."1.20AN) Quit "0~Group name format not accepted"set:'$Data(exists) exists=0if exists,$Data(^zcoreAuth("Group",name))=0 Quit "0~Group """_name_""" doesn't exist"set ret=$$ValidateGroupName(name)new retset ret=$$ValidateGroupName(groupname); TODOif $Data(^zcoreAuth("Group",groupname))'=0 Quit "0~Group """_name_""" already exists"GroupDelete(groupname)set ret=$$ValidateGroupName(name)new ret; TODOset ret=$$ValidateGroupName(groupname,1) quit:'ret retKill ^zcoreAuth("Group",groupname)set ret=$$ValidateGroupName(name,1) quit:'ret retnew retset ret=$$ValidateAssetName(.name,1) quit:'ret retset ret=$$ValidateGroupName(groupname,1) quit:'ret ret; TODOset ret=$$ValidateFormatUsername(.username,1) quit:'ret retQuitset ^zcoreAsset("Group",name,"users",username)=""Quit 1set ret=$$ValidateGroupName(name,1) quit:'ret retnew retset ret=$$ValidateGroupName(groupname,1) quit:'ret retset ret=$$ValidateAssetName(.name) quit:'ret retset ret=$$ValidateFormatUsername(.username) quit:'ret ret; TODOkill ^zcoreAsset("Group",groupname,"users",username)Quit 1set ret=$$ValidateGroupName(name,1) quit:'ret retnew ret; TODOset ret=$$ValidateGroupName(groupname,1) quit:'ret retQuitmerge usernames=^zcoreAsset("Group",groupname,"users")Quit 1; TODOnew retset ret=$$ValidateGroupName(groupname,1) quit:'ret ret; Delete even if user no longer existsset ret=$$ValidateAssetName(.asset) quit:'ret retmerge ^zcoreAsset("Group",groupname,"assets",asset)=assetset ^zcoreAsset("Group",groupname,"assets",asset)=""; TODOnew retset ret=$$ValidateGroupName(groupname,1) quit:'ret ret; Delete even if user no longer existsset ret=$$ValidateAssetName(.asset) quit:'ret retkill ^zcoreAsset("Group",groupname,"assets",asset)GroupListAssets(groupname,assetnames); TODOnew k4,retset ret=$$ValidateGroupName(groupname,1) quit:'ret retset k4="" for set k4=$Order(^zcoreAsset("Group",groupname,"assets",k4)) quit:k4="" set assetnames(k4)=""; TODOnew retset ret=$$ValidateGroupName(groupname,1) quit:'ret ret; Delete even if user no longer existsset ret=$$ValidateAssetName(.asset) quit:'ret retset ret=$$ValidateAssetMode(.mode) quit:'ret retset ^zcoreAsset("Group",groupname,"assets",assetname,mode)=""; TODOnew retset ret=$$ValidateGroupName(groupname,1) quit:'ret ret; Delete even if user no longer existsset ret=$$ValidateAssetName(.asset) quit:'ret retset ret=$$ValidateAssetMode(.mode) quit:'ret retkill ^zcoreAsset("Group",groupname,"assets",assetname,mode); TODOnew retset ret=$$ValidateGroupName(groupname,1) quit:'ret ret; Delete even if user no longer existsset ret=$$ValidateAssetName(.asset) quit:'ret retmerge modes=^zcoreAsset("Group",groupname,"assets",assetname)do assertEqual^zcoreUnit(1,$$UserIsEmailVerified^zcoreAuth("username"),"2. UserSetEmailVerified")do assertEqual^zcoreUnit(1,$$UserIsEmailVerified^zcoreAuth("username"),"2. UserSetEmailVerified")set x=$$UserDelete("username") ; remove test accountset x=$$UserDelete("username") ; remove test account;----------------------- ValidateAssetName ----------------------do assertNotEqual^zcoreUnit(1,$$ValidateAssetName())do assertNotEqual^zcoreUnit(1,$$ValidateAssetName("bla"))do assertNotEqual^zcoreUnit(0,$$ValidateAssetName("assetname"))do assertNotEqual^zcoreUnit(1,$$ValidateAssetName("assetname",1));----------------------- ValidateAssetMode ----------------------do assertNotEqual^zcoreUnit(1,$$ValidateAssetMode())do assertNotEqual^zcoreUnit(1,$$ValidateAssetMode("bla"))do assertNotEqual^zcoreUnit(0,$$ValidateAssetMode("modename"));----------------------- AssetCreate ----------------------------; startup prepKill ^zcoreAuth("Asset","assetname")do assertNotEqual^zcoreUnit(1,$$AssetCreate())do assertNotEqual^zcoreUnit(1,$$AssetCreate("bla"))do assertEqual^zcoreUnit(1,$$AssetCreate("assetname"))do assertEqual^zcoreUnit(1,$Data(^zcoreAuth("Asset","assetname"))); cannot create duplicate namedo assertEqual^zcoreUnit(0,+$$AssetCreate("assetname"));----------------------- AssetDelete ----------------------------; start prep depends on earlier testdo assertNotEqual^zcoreUnit(1,$$AssetDelete())do assertNotEqual^zcoreUnit(1,$$AssetDelete("bla"))do assertNotEqual^zcoreUnit(1,$$AssetDelete("notexistsassetname"))do assertEqual^zcoreUnit(1,$$AssetDelete("assetname"))do assertEqual^zcoreUnit(0,$$AssetDelete("assetname"));----------------------- AssetAddMode ---------------------------do assertEqual^zcoreUnit(1,$$AssetCreate("assetname"))do assertEqual^zcoreUnit(1,$$AssetAddMode())do assertEqual^zcoreUnit(1,$$AssetAddMode("notexixstsasset"))do assertEqual^zcoreUnit(1,$$AssetAddMode("assetname"))do assertEqual^zcoreUnit(1,$$AssetAddMode("assetname",""))do assertEqual^zcoreUnit(1,$$AssetAddMode("assetname","write"))do assertNotEqual^zcoreUnit(1,$$AssetAddMode("assetname","write"));----------------------- AssetDeleteMode ------------------------do assertNotEqual^zcoreUnit(1,$$AssetDeleteMode())do assertNotEqual^zcoreUnit(1,$$AssetDeleteMode("assetname"))do assertNotEqual^zcoreUnit(1,$$AssetDeleteMode("assetname","bla"))do assertEqual^zcoreUnit(1,$$AssetDeleteMode("assetname","write"))do assertNotEqual^zcoreUnit(1,$$AssetDeleteMode("assetname","write"))