@@ -534,7 +534,7 @@ export default class PermissionsDialog extends React.Component {
534
534
// hide suggestions to avoid ugly footer overlap
535
535
this . refEntry . current . setHidden ( hidden ) ;
536
536
// also show indicator when input is not visible
537
- this . refScrollHint . current . toggleActive ( hidden ) ;
537
+ // this.refScrollHint.current.toggleActive(hidden);
538
538
} ;
539
539
540
540
this . observer = new IntersectionObserver ( callback , {
@@ -589,13 +589,15 @@ export default class PermissionsDialog extends React.Component {
589
589
perms . delete = perms . delete || Map ( ) ;
590
590
perms . addField = perms . addField || Map ( ) ;
591
591
592
- ( pointerPermsSubset . get = perms . get . pointerFields || [ ] ) ,
593
- ( pointerPermsSubset . find = perms . find . pointerFields || [ ] ) ,
594
- ( pointerPermsSubset . count = perms . count . pointerFields || [ ] ) ,
595
- ( pointerPermsSubset . create = perms . create . pointerFields || [ ] ) ,
596
- ( pointerPermsSubset . update = perms . update . pointerFields || [ ] ) ,
597
- ( pointerPermsSubset . delete = perms . delete . pointerFields || [ ] ) ,
598
- ( pointerPermsSubset . addField = perms . addField . pointerFields || [ ] ) ;
592
+ // The double check is necessary because the permissions object seems to be empty when accessing the CLP section
593
+ // if the class was recently created.
594
+ ( pointerPermsSubset . get = permissions . get && permissions . get . pointerFields || [ ] ) ,
595
+ ( pointerPermsSubset . find = permissions . find && permissions . find . pointerFields || [ ] ) ,
596
+ ( pointerPermsSubset . count = permissions . count && permissions . count . pointerFields || [ ] ) ,
597
+ ( pointerPermsSubset . create = permissions . create && permissions . create . pointerFields || [ ] ) ,
598
+ ( pointerPermsSubset . update = permissions . update && permissions . update . pointerFields || [ ] ) ,
599
+ ( pointerPermsSubset . delete = permissions . delete && permissions . delete . pointerFields || [ ] ) ,
600
+ ( pointerPermsSubset . addField = permissions . addField && permissions . addField . pointerFields || [ ] ) ;
599
601
}
600
602
601
603
let pointerPerms = { } ;
@@ -764,6 +766,7 @@ export default class PermissionsDialog extends React.Component {
764
766
let nextKeys ;
765
767
let nextEntryTypes ;
766
768
let nextPerms = this . state . perms ;
769
+ let nextPointerPerms = this . state . pointerPerms ;
767
770
768
771
if ( next . user || next . role ) {
769
772
id = next . user ? next . user . id : next . role . id ;
@@ -791,17 +794,32 @@ export default class PermissionsDialog extends React.Component {
791
794
}
792
795
793
796
// create new permissions
794
- if ( this . props . advanced ) {
795
- nextPerms = nextPerms . setIn ( [ 'get' , key ] , true ) ;
796
- nextPerms = nextPerms . setIn ( [ 'find' , key ] , true ) ;
797
- nextPerms = nextPerms . setIn ( [ 'count' , key ] , true ) ;
798
- nextPerms = nextPerms . setIn ( [ 'create' , key ] , true ) ;
799
- nextPerms = nextPerms . setIn ( [ 'update' , key ] , true ) ;
800
- nextPerms = nextPerms . setIn ( [ 'delete' , key ] , true ) ;
801
- nextPerms = nextPerms . setIn ( [ 'addField' , key ] , true ) ;
797
+ if ( next . pointer ) {
798
+ if ( this . props . advanced ) {
799
+ nextPointerPerms = nextPointerPerms . setIn ( [ entry , 'get' ] , true )
800
+ nextPointerPerms = nextPointerPerms . setIn ( [ entry , 'find' ] , true )
801
+ nextPointerPerms = nextPointerPerms . setIn ( [ entry , 'count' ] , true )
802
+ nextPointerPerms = nextPointerPerms . setIn ( [ entry , 'create' ] , true )
803
+ nextPointerPerms = nextPointerPerms . setIn ( [ entry , 'update' ] , true )
804
+ nextPointerPerms = nextPointerPerms . setIn ( [ entry , 'delete' ] , true )
805
+ nextPointerPerms = nextPointerPerms . setIn ( [ entry , 'addField' ] , true )
806
+ } else {
807
+ nextPointerPerms = nextPointerPerms . setIn ( [ entry , 'read' ] , true )
808
+ nextPointerPerms = nextPointerPerms . setIn ( [ entry , 'write' ] , true )
809
+ }
802
810
} else {
803
- nextPerms = nextPerms . setIn ( [ 'read' , key ] , true ) ;
804
- nextPerms = nextPerms . setIn ( [ 'write' , key ] , true ) ;
811
+ if ( this . props . advanced ) {
812
+ nextPerms = nextPerms . setIn ( [ 'get' , key ] , true ) ;
813
+ nextPerms = nextPerms . setIn ( [ 'find' , key ] , true ) ;
814
+ nextPerms = nextPerms . setIn ( [ 'count' , key ] , true ) ;
815
+ nextPerms = nextPerms . setIn ( [ 'create' , key ] , true ) ;
816
+ nextPerms = nextPerms . setIn ( [ 'update' , key ] , true ) ;
817
+ nextPerms = nextPerms . setIn ( [ 'delete' , key ] , true ) ;
818
+ nextPerms = nextPerms . setIn ( [ 'addField' , key ] , true ) ;
819
+ } else {
820
+ nextPerms = nextPerms . setIn ( [ 'read' , key ] , true ) ;
821
+ nextPerms = nextPerms . setIn ( [ 'write' , key ] , true ) ;
822
+ }
805
823
}
806
824
807
825
nextKeys = this . state . newKeys . concat ( [ key ] ) ;
@@ -810,6 +828,7 @@ export default class PermissionsDialog extends React.Component {
810
828
return this . setState (
811
829
{
812
830
perms : nextPerms ,
831
+ pointerPerms : nextPointerPerms ,
813
832
newKeys : nextKeys ,
814
833
entryTypes : nextEntryTypes ,
815
834
newEntry : '' ,
@@ -911,7 +930,7 @@ export default class PermissionsDialog extends React.Component {
911
930
return ;
912
931
}
913
932
if ( k === 'requiresAuthentication' && ! v ) {
914
- // only acceppt requiresAuthentication with true
933
+ // only acceppt requiresAuthentication with true
915
934
return
916
935
}
917
936
if ( v ) {
@@ -964,7 +983,7 @@ export default class PermissionsDialog extends React.Component {
964
983
// types is immutable.js Map
965
984
const type = ( types && types . get ( key ) ) || { } ;
966
985
967
- let pointer ;
986
+ let pointer = this . state . pointerPerms . has ( key ) ;
968
987
let label = < span > { key } </ span > ;
969
988
970
989
if ( type . user ) {
@@ -996,7 +1015,7 @@ export default class PermissionsDialog extends React.Component {
996
1015
</ p >
997
1016
</ span >
998
1017
) ;
999
- } else if ( type . pointer ) {
1018
+ } else if ( pointer ) {
1000
1019
// get class info from schema
1001
1020
let { type, targetClass } = columns [ key ] ;
1002
1021
@@ -1238,7 +1257,7 @@ export default class PermissionsDialog extends React.Component {
1238
1257
) }
1239
1258
{ this . props . advanced
1240
1259
? this . state . pointers . map ( pointer =>
1241
- this . renderRow ( pointer , true )
1260
+ this . renderRow ( pointer , this . state . columns )
1242
1261
)
1243
1262
: null }
1244
1263
{ this . state . newKeys . map ( key =>
0 commit comments