38 private $groupPermissions;
41 private $revokePermissions;
44 private $groupInheritance;
66 $inheritsFrom = $this->groupInheritance[$group] ?? false;
67 $has = isset( $this->groupPermissions[$group][$permission] ) &&
68 $this->groupPermissions[$group][$permission];
71 if ( !$has && $inheritsFrom !==
false ) {
72 $has = isset( $this->groupPermissions[$inheritsFrom][$permission] ) &&
73 $this->groupPermissions[$inheritsFrom][$permission];
81 $revoked = isset( $this->revokePermissions[$group][$permission] ) &&
82 $this->revokePermissions[$group][$permission];
83 if ( !$revoked && $inheritsFrom !==
false ) {
84 $revoked = isset( $this->revokePermissions[$inheritsFrom][$permission] ) &&
85 $this->revokePermissions[$inheritsFrom][$permission];
102 $rights = array_keys( array_filter( $this->groupPermissions[$group] ?? [] ) );
103 $inheritsFrom = $this->groupInheritance[$group] ??
false;
104 if ( $inheritsFrom !==
false ) {
105 $rights = array_merge(
108 array_keys( array_filter( $this->groupPermissions[$inheritsFrom] ?? [] ) )
112 return array_unique( $rights );
123 $rights = array_keys( array_filter( $this->revokePermissions[$group] ?? [] ) );
124 $inheritsFrom = $this->groupInheritance[$group] ??
false;
125 if ( $inheritsFrom !==
false ) {
126 $rights = array_merge(
129 array_keys( array_filter( $this->revokePermissions[$inheritsFrom] ?? [] ) )
133 return array_unique( $rights );
150 foreach ( $groups as $group ) {
151 $checkGroups[] = $group;
152 if ( isset( $this->groupInheritance[$group] ) ) {
153 $checkGroups[] = $this->groupInheritance[$group];
158 foreach ( $checkGroups as $group ) {
159 if ( isset( $this->groupPermissions[$group] ) ) {
160 $rights = array_merge(
163 array_keys( array_filter( $this->groupPermissions[$group] ) )
168 foreach ( $checkGroups as $group ) {
169 if ( isset( $this->revokePermissions[$group] ) ) {
170 $rights = array_diff(
172 array_keys( array_filter( $this->revokePermissions[$group] ) )
176 return array_unique( $rights );
187 $groups = array_unique( array_merge(
188 array_keys( $this->groupPermissions ),
189 array_keys( $this->groupInheritance )
191 foreach ( $groups as $group ) {
192 if ( $this->groupHasPermission( $group, $permission ) ) {
193 $allowedGroups[] = $group;
196 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()