List 6-113 Chk_Viewプロシージャ
1: Public Sub Chk_View(ByRef objContext As ObjectContext, _
ByRef IsDeleted As DataObj.DELETEDFLAG, _
ByRef SlipStatus As DataObj.SlipStatus)
2: ' 参照権限があるかどうかを調査
3:
4: ' 存在するかどうか
5: If IsDeleted = ID_NotFound Then
6: ' 見つからない
7: Err.Raise Err_NOTFOUND, App.Title, _
"指定された伝票番号を持つ伝票が見つかりません"
8: End If
9:
10: ' セキュリティ機能が有効であることを調査
11: If Not objContext.IsSecurityEnabled() Then
12: ' セキュリティ設定が無効
13: Err.Raise ERR_NOSECURE, App.Title, _
"セキュリティ機構が無効です"
14: End If
15:
16: ' SalesManager,SalesAdmin,AllAdminロールに属すれば参照可能
17: If objContext.IsCallerInRole("SalesManager") Or _
objContext.IsCallerInRole("SalesAdmin") Or _
objContext.IsCallerInRole("AllAdmin") Then
18: ' SalesManagerロール,SalesAdminロール,AllAdminロールに所属
19: ' 以降のチェックは不要
20: Exit Sub
21: End If
22:
23:
24: ' 削除ずみかどうか
25: If IsDeleted = ID_Deleted Then
26: ' 削除ずみである
27: Err.Raise ERR_NOSECURE, App.Title, _
"指定された伝票番号を持つ伝票が存在しません"
28: End If
29:
30: ' 削除ずみでなければSalesロールに属すれば参照可能
31: If objContext.IsCallerInRole("Sales") Then
32: ' 以降のチェックは不要
33: Exit Sub
34: End If
35:
36: ' 伝票の状態を判定
37: If SlipStatus >= Consented Then
38: ' 承認ずみになっているならば,Productsロールや
39: ' ProductsAdminロールに属するユーザーは参照可能
40: If objContext.IsCallerInRole("Products") Or _
objContext.IsCallerInRole("ProductsAdmin") Then
41: ' 以降のチェックは不要
42: Exit Sub
43: End If
44: End If
45:
46: If SlipStatus >= Send Then
47: ' 発送ずみになっているならば,Accountingロールや
48: ' AccountingAdminロールに属するユーザーは参照可能
49: If objContext.IsCallerInRole("Accounting") Or _
objContext.IsCallerInRole("AccountingAdmin") Then
50: ' 以降のチェックは不要
51: Exit Sub
52: End If
53: End If
54: End Sub