52 private $groupPermissions;
55 private $revokePermissions;
58 private $groupInheritance;
80 $inheritsFrom = $this->groupInheritance[$group] ?? false;
81 $has = isset( $this->groupPermissions[$group][$permission] ) &&
82 $this->groupPermissions[$group][$permission];
85 if ( !$has && $inheritsFrom !==
false ) {
86 $has = isset( $this->groupPermissions[$inheritsFrom][$permission] ) &&
87 $this->groupPermissions[$inheritsFrom][$permission];
95 $revoked = isset( $this->revokePermissions[$group][$permission] ) &&
96 $this->revokePermissions[$group][$permission];
97 if ( !$revoked && $inheritsFrom !==
false ) {
98 $revoked = isset( $this->revokePermissions[$inheritsFrom][$permission] ) &&
99 $this->revokePermissions[$inheritsFrom][$permission];
116 $rights = array_keys( array_filter( $this->groupPermissions[$group] ?? [] ) );
117 $inheritsFrom = $this->groupInheritance[$group] ??
false;
118 if ( $inheritsFrom !==
false ) {
119 $rights = array_merge(
122 array_keys( array_filter( $this->groupPermissions[$inheritsFrom] ?? [] ) )
126 return array_unique( $rights );
137 $rights = array_keys( array_filter( $this->revokePermissions[$group] ?? [] ) );
138 $inheritsFrom = $this->groupInheritance[$group] ??
false;
139 if ( $inheritsFrom !==
false ) {
140 $rights = array_merge(
143 array_keys( array_filter( $this->revokePermissions[$inheritsFrom] ?? [] ) )
147 return array_unique( $rights );
164 foreach ( $groups as $group ) {
165 $checkGroups[] = $group;
166 if ( isset( $this->groupInheritance[$group] ) ) {
167 $checkGroups[] = $this->groupInheritance[$group];
172 foreach ( $checkGroups as $group ) {
173 if ( isset( $this->groupPermissions[$group] ) ) {
174 $rights = array_merge(
177 array_keys( array_filter( $this->groupPermissions[$group] ) )
182 foreach ( $checkGroups as $group ) {
183 if ( isset( $this->revokePermissions[$group] ) ) {
184 $rights = array_diff(
186 array_keys( array_filter( $this->revokePermissions[$group] ) )
190 return array_unique( $rights );
201 $groups = array_unique( array_merge(
202 array_keys( $this->groupPermissions ),
203 array_keys( $this->groupInheritance )
205 foreach ( $groups as $group ) {
206 if ( $this->groupHasPermission( $group, $permission ) ) {
207 $allowedGroups[] = $group;
210 return $allowedGroups;
A class containing constants representing the names of configuration variables.
const GroupInheritsPermissions
Name constant for the GroupInheritsPermissions setting, for use with Config::get()
const RevokePermissions
Name constant for the RevokePermissions setting, for use with Config::get()
const GroupPermissions
Name constant for the GroupPermissions setting, for use with Config::get()