2
2
Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
3
3
var export_1 = require ( "../../../manager/v2/export" ) ;
4
4
var Workflow_1 = require ( "../../../helper/Workflow" ) ;
5
- function checkAll ( pm , fns , fullPath , resource , callback ) {
5
+ function checkAll ( pm , fns , fullPath , user , resource , callback ) {
6
6
new Workflow_1 . Workflow ( )
7
- . each ( fns , function ( fn , cb ) { return fn . bind ( pm ) ( fullPath , resource , cb ) ; } )
7
+ . each ( fns , function ( fn , cb ) { return fn . bind ( pm ) ( fullPath , user , resource , cb ) ; } )
8
8
. error ( function ( e ) { return callback ( e , false ) ; } )
9
9
. done ( function ( successes ) { return callback ( null , successes . every ( function ( b ) { return ! ! b ; } ) ) ; } ) ;
10
10
}
@@ -13,6 +13,9 @@ var PrivilegeManager = (function () {
13
13
}
14
14
PrivilegeManager . prototype . can = function ( _fullPath , resource , _privilege , callback ) {
15
15
var _this = this ;
16
+ var user = resource . context . user ;
17
+ if ( user && user . isAdministrator )
18
+ return callback ( null , true ) ;
16
19
if ( _privilege . constructor !== String ) {
17
20
new Workflow_1 . Workflow ( )
18
21
. each ( _privilege , function ( privilege , cb ) { return _this . can ( _fullPath , resource , privilege , cb ) ; } )
@@ -23,61 +26,61 @@ var PrivilegeManager = (function () {
23
26
var fullPath = new export_1 . Path ( _fullPath ) ;
24
27
var privilege = _privilege ;
25
28
if ( this . _can )
26
- return this . _can ( fullPath , resource , privilege , callback ) ;
29
+ return this . _can ( fullPath , user , resource , privilege , callback ) ;
27
30
var method = this [ privilege ] ;
28
31
if ( method )
29
- method . bind ( this ) ( fullPath , resource , callback ) ;
32
+ method . bind ( this ) ( fullPath , user , resource , callback ) ;
30
33
else
31
34
callback ( null , true ) ;
32
35
} ;
33
- PrivilegeManager . prototype . canWrite = function ( fullPath , resource , callback ) {
36
+ PrivilegeManager . prototype . canWrite = function ( fullPath , user , resource , callback ) {
34
37
checkAll ( this , [
35
38
this . canWriteLocks ,
36
39
this . canWriteContent ,
37
40
this . canWriteProperties
38
- ] , fullPath , resource , callback ) ;
41
+ ] , fullPath , user , resource , callback ) ;
39
42
} ;
40
- PrivilegeManager . prototype . canWriteLocks = function ( fullPath , resource , callback ) {
43
+ PrivilegeManager . prototype . canWriteLocks = function ( fullPath , user , resource , callback ) {
41
44
callback ( null , true ) ;
42
45
} ;
43
- PrivilegeManager . prototype . canWriteContent = function ( fullPath , resource , callback ) {
46
+ PrivilegeManager . prototype . canWriteContent = function ( fullPath , user , resource , callback ) {
44
47
checkAll ( this , [
45
48
this . canWriteContentSource ,
46
49
this . canWriteContentTranslated
47
- ] , fullPath , resource , callback ) ;
50
+ ] , fullPath , user , resource , callback ) ;
48
51
} ;
49
- PrivilegeManager . prototype . canWriteContentTranslated = function ( fullPath , resource , callback ) {
52
+ PrivilegeManager . prototype . canWriteContentTranslated = function ( fullPath , user , resource , callback ) {
50
53
callback ( null , true ) ;
51
54
} ;
52
- PrivilegeManager . prototype . canWriteContentSource = function ( fullPath , resource , callback ) {
55
+ PrivilegeManager . prototype . canWriteContentSource = function ( fullPath , user , resource , callback ) {
53
56
callback ( null , true ) ;
54
57
} ;
55
- PrivilegeManager . prototype . canWriteProperties = function ( fullPath , resource , callback ) {
58
+ PrivilegeManager . prototype . canWriteProperties = function ( fullPath , user , resource , callback ) {
56
59
callback ( null , true ) ;
57
60
} ;
58
- PrivilegeManager . prototype . canRead = function ( fullPath , resource , callback ) {
61
+ PrivilegeManager . prototype . canRead = function ( fullPath , user , resource , callback ) {
59
62
checkAll ( this , [
60
63
this . canReadLocks ,
61
64
this . canReadContent ,
62
65
this . canReadProperties
63
- ] , fullPath , resource , callback ) ;
66
+ ] , fullPath , user , resource , callback ) ;
64
67
} ;
65
- PrivilegeManager . prototype . canReadLocks = function ( fullPath , resource , callback ) {
68
+ PrivilegeManager . prototype . canReadLocks = function ( fullPath , user , resource , callback ) {
66
69
callback ( null , true ) ;
67
70
} ;
68
- PrivilegeManager . prototype . canReadContent = function ( fullPath , resource , callback ) {
71
+ PrivilegeManager . prototype . canReadContent = function ( fullPath , user , resource , callback ) {
69
72
checkAll ( this , [
70
73
this . canReadContentSource ,
71
74
this . canReadContentTranslated
72
- ] , fullPath , resource , callback ) ;
75
+ ] , fullPath , user , resource , callback ) ;
73
76
} ;
74
- PrivilegeManager . prototype . canReadContentTranslated = function ( fullPath , resource , callback ) {
77
+ PrivilegeManager . prototype . canReadContentTranslated = function ( fullPath , user , resource , callback ) {
75
78
callback ( null , true ) ;
76
79
} ;
77
- PrivilegeManager . prototype . canReadContentSource = function ( fullPath , resource , callback ) {
80
+ PrivilegeManager . prototype . canReadContentSource = function ( fullPath , user , resource , callback ) {
78
81
callback ( null , true ) ;
79
82
} ;
80
- PrivilegeManager . prototype . canReadProperties = function ( fullPath , resource , callback ) {
83
+ PrivilegeManager . prototype . canReadProperties = function ( fullPath , user , resource , callback ) {
81
84
callback ( null , true ) ;
82
85
} ;
83
86
return PrivilegeManager ;
0 commit comments