File tree Expand file tree Collapse file tree 2 files changed +37
-0
lines changed
resources/queries/labpurchasing
src/org/labkey/labpurchasing Expand file tree Collapse file tree 2 files changed +37
-0
lines changed Original file line number Diff line number Diff line change @@ -4,6 +4,31 @@ var console = require("console");
44var triggerHelper = new org . labkey . labpurchasing . LabPurchasingTriggerHelper ( LABKEY . Security . currentUser . id , LABKEY . Security . currentContainer . id ) ;
55
66function beforeInsert ( row , errors ) {
7+ beforeUpsert ( row , errors )
8+ }
9+
10+ function beforeUpdate ( row , oldRow , errors ) {
11+ beforeUpsert ( row , errors )
12+ }
13+
14+ function beforeUpsert ( row , errors ) {
15+ // Validate requestor:
16+ if ( row . requestor ) {
17+ if ( ! isNaN ( row . requestor ) && ! triggerHelper . isValidUserId ( row . requestor ) ) {
18+ errors . requestor = 'Unknown userId for requestor: ' + row . requestor ;
19+ }
20+ // Try to resolve strings:
21+ else if ( isNaN ( row . requestor ) ) {
22+ var id = triggerHelper . resolveUserId ( String ( row . requestor ) ) ;
23+ if ( ! id ) {
24+ errors . requestor = 'Unknown userId for requestor: ' + row . requestor ;
25+ }
26+ else {
27+ row . requestor = id ;
28+ }
29+ }
30+ }
31+
732 // The purpose of this is to allow the user to provide a string value for
833 // vendorId or vendorName, and attempt to resolve this against known vendors:
934 if ( ! row . vendorId || isNaN ( row . vendorId ) ) {
Original file line number Diff line number Diff line change @@ -112,4 +112,16 @@ public void sendNotifications(List<Integer> rowIds) {
112112 _log .error ("Unable to send purchasing email" , e );
113113 }
114114 }
115+
116+ public boolean isValidUserId (int userId )
117+ {
118+ return UserManager .getUser (userId ) != null ;
119+ }
120+
121+ public Integer resolveUserId (String userNameOrEmail )
122+ {
123+ User u = UserManager .getUserByDisplayName (userNameOrEmail );
124+
125+ return u == null ? null : u .getUserId ();
126+ }
115127}
You can’t perform that action at this time.
0 commit comments