| @@ 1065-1083 (lines=19) @@ | ||
| 1062 | * @param Member $member |
|
| 1063 | * @return bool |
|
| 1064 | */ |
|
| 1065 | public function canPublish($member = null) |
|
| 1066 | { |
|
| 1067 | if (!$member) { |
|
| 1068 | $member = Member::currentUser(); |
|
| 1069 | } |
|
| 1070 | ||
| 1071 | // Check extension |
|
| 1072 | $extended = $this->extendedCan('canPublish', $member); |
|
| 1073 | if ($extended !== null) { |
|
| 1074 | return $extended; |
|
| 1075 | } |
|
| 1076 | ||
| 1077 | if (Permission::checkMember($member, "ADMIN")) { |
|
| 1078 | return true; |
|
| 1079 | } |
|
| 1080 | ||
| 1081 | // Default to relying on edit permission |
|
| 1082 | return $this->canEdit($member); |
|
| 1083 | } |
|
| 1084 | ||
| 1085 | /** |
|
| 1086 | * This function should return true if the current user can delete this page. It can be overloaded to customise the |
|
| @@ 1199-1219 (lines=21) @@ | ||
| 1196 | * unit tests) |
|
| 1197 | * @return bool True if the current user can edit this page |
|
| 1198 | */ |
|
| 1199 | public function canEdit($member = null) |
|
| 1200 | { |
|
| 1201 | if (!$member) { |
|
| 1202 | $member = Member::currentUser(); |
|
| 1203 | } |
|
| 1204 | ||
| 1205 | // Standard mechanism for accepting permission changes from extensions |
|
| 1206 | $extended = $this->extendedCan('canEdit', $member); |
|
| 1207 | if ($extended !== null) { |
|
| 1208 | return $extended; |
|
| 1209 | } |
|
| 1210 | ||
| 1211 | // Default permissions |
|
| 1212 | if (Permission::checkMember($member, "SITETREE_EDIT_ALL")) { |
|
| 1213 | return true; |
|
| 1214 | } |
|
| 1215 | ||
| 1216 | // Check inherited permissions |
|
| 1217 | return static::getPermissionChecker() |
|
| 1218 | ->canEdit($this->ID, $member); |
|
| 1219 | } |
|
| 1220 | ||
| 1221 | /** |
|
| 1222 | * Stub method to get the site config, unless the current class can provide an alternate. |
|