@@ -78,8 +78,6 @@ public function get(): array
78
78
public function getOnlyPermissionsNames ()
79
79
{
80
80
if (!$ this ->hasCachedPermissions ()) {
81
- sort ($ this ->onlyPermissionsNames );
82
-
83
81
return $ this ->onlyPermissionsNames ;
84
82
}
85
83
@@ -95,16 +93,36 @@ protected function customPermissions(): Permissions
95
93
foreach ($ permission as $ item ) {
96
94
// when the permission only contains permission name
97
95
if (!is_array ($ item )) {
96
+
97
+ // skip if permission exist
98
+ if (in_array ($ item , $ this ->onlyPermissionsNames )) {
99
+ continue ;
100
+ }
101
+
98
102
$ this ->permissions [$ key ][] = [
99
103
'name ' => $ item ,
100
104
'text ' => ucwords (str_replace ($ this ->splitter , ' ' , $ item )),
101
105
];
102
106
107
+ $ this ->onlyPermissionsNames [] = $ item ;
108
+
103
109
continue ;
104
110
}
105
111
106
- // when permission has valid permission structure (ex: slug, name key available)
112
+ // skip if permission array format is invalid
113
+ if (!array_key_exists ('name ' , $ item ) || !array_key_exists ('text ' , $ item )) {
114
+ continue ;
115
+ }
116
+
117
+ // skip if permission exist
118
+ if (in_array ($ item ['name ' ], $ this ->onlyPermissionsNames )) {
119
+ continue ;
120
+ }
121
+
122
+ // when permission has valid permission structure (ex: text, name key available)
107
123
$ this ->permissions [$ key ][] = $ item ;
124
+
125
+ $ this ->onlyPermissionsNames [] = $ item ['name ' ];
108
126
}
109
127
}
110
128
}
0 commit comments