-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathac.app
executable file
·98 lines (87 loc) · 2.72 KB
/
ac.app
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
module ac
entity User {
name :: String
password :: Secret
}
principal is User with credentials name, password
page init() {
var name : String := "admin";
var pass : Secret;
if( ( from User ).length > 0 ) {
output( "The one and only user already exists, your bank account will now be plundered" )
} else {
form {
label( "Username:" ) { input( name ) }
label( "Password:" ) { input( pass ) }
submit save() { "save" }
}
}
action save() {
User {
name := name
password := pass.digest()
} .save();
return root();
}
}
page dologin() {
init{
if( ( from User ).length < 1 ) { return init(); }
}
authentication()
}
page renewAdmin() {
var user := securityContext.principal;
var newName := user.name;
var newPass : Secret;
form {
label( "new username:" ) { input( newName ) }
label( "new password:" ) { input( newPass ) }
submit save() { "save" }
}
action save() {
logout();
user.name := newName;
user.password := newPass.digest();
user.save();
return root();
}
}
access control rules
rule page root() {true}
rule page showFile( * ) {true}
rule page viewFile( * ) {true}
rule page search( * ) {true}
rule page manage() {loggedIn() }
rule ajaxtemplate paginatedTemplate( * ) {true}
rule ajaxtemplate paginatedResults( * ) {true}
rule ajaxtemplate addRepo( * ) {true}
rule ajaxtemplate addRepoBtn( * ) {true}
rule ajaxtemplate showRepos( * ) {true}
rule ajaxtemplate showRequests( * ) {true}
rule ajaxtemplate showPathFacets( * ) {true}
rule ajaxtemplate showReposLink( * ) {true}
rule ajaxtemplate repos( * ) {true}
rule ajaxtemplate msgPreview( * ) {true}
rule ajaxtemplate addProjectModal( * ) {true}
rule ajaxtemplate refreshScheduleControl( * ) {loggedIn() }
rule ajaxtemplate showLog( * ) {loggedIn() }
rule ajaxtemplate viewFacets( * ) {true}
rule ajaxtemplate highlightedResultToggled( * ) {true}
rule ajaxtemplate showManageProjects( * ) {loggedIn() }
rule ajaxtemplate paginationButtons( * ) {true}
rule ajaxtemplate showProjects ( * ) {true}
rule ajaxtemplate showProject ( * ) {true}
rule page fileUpload( * ) { loggedIn() }
rule page pendingRequests( * ) {true}
rule page skippedFiles( * ) {true}
rule page autocompleteService( * ) {true}
rule page init( * ) {true}
rule page dologin() {true}
rule page renewAdmin() {loggedIn() }
rule page doSearch( * ) { true }
rule page searchStats( * ) { loggedIn() }
rule page editLangConstruct( arg : LangConstruct ) { loggedIn() }
rule page createLangConstruct() { loggedIn() }
rule logsql { loggedIn() }
rule page download( * ) {true}