# Update the status of a page while the status is false

**URL:** <https://forum.getkirby.com/t/update-the-status-of-a-page-while-the-status-is-false/15270>\
**Category:** Questions\
**Tags:** v3\
**Created:** [August 16, 2019, 12:38pm UTC](https://forum.getkirby.com/t/update-the-status-of-a-page-while-the-status-is-false/15270 "2019-08-16T12:38:28Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![ahmetbora](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/ahmetbora/32/11671_2.png) [@ahmetbora](https://forum.getkirby.com/u/ahmetbora)\
**Post date:** [August 16, 2019, 12:38pm UTC](https://forum.getkirby.com/t/update-the-status-of-a-page-while-the-status-is-false/15270/1 "2019-08-16T12:38:28Z")

</div>

`order.yml` blueprint:

```
options:
    status: false
    url: false
    delete: false
    duplicate: false
    preview: false
    read:
        *: false
        admin: true
        accounting: true

```

Order pages are created only when payment is completed.  
So it is not created from the panel. So I didn’t let the status change.  
But when the user creates the order from the frontend, I can’t change the status because the page is created as a draft.

Is there a solution to this? Like forcing it…

Tried to give permission to `customer` role but failed again:

```
options:
    status:
        *: false
        customer: true
    url: false
    delete: false
    duplicate: false
    preview: false
    read:
        *: false
        admin: true
        accounting: true

```

**Frontend side:**

```
$orderPage->changeStatus("unlisted");

```

> The status for this page cannot be changed

Actually works with `customer` permission. The reason it didn’t work was the impersonate method that used in other file:

```
kirby()->impersonate("kirby");

```

So will not work `impersonate` and `logged user session` together

---

<div class="post-metadata">

**Author:** ![texnixe](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/texnixe/32/5754_2.png) [@texnixe](https://forum.getkirby.com/u/texnixe)\
**Post date:** [August 16, 2019, 1:03pm UTC](https://forum.getkirby.com/t/update-the-status-of-a-page-while-the-status-is-false/15270/2 "2019-08-16T13:03:13Z")

</div>

I think there is an issue somewhere for allowing to force override those blueprint settings 🚶‍♀️

> <https://github.com/getkirby/ideas/issues/171>

---

<div class="post-metadata">

**Author:** ![texnixe](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/texnixe/32/5754_2.png) [@texnixe](https://forum.getkirby.com/u/texnixe)\
**Post date:** [August 16, 2019, 1:07pm UTC](https://forum.getkirby.com/t/update-the-status-of-a-page-while-the-status-is-false/15270/3 "2019-08-16T13:07:19Z")

</div>

Since you can also use a logged in user for authentication, you could use this user for impersonation instead of the Almighty? Haven’t tried that but could work with your blueprint setting per user role.

---

<div class="post-metadata">

**Author:** ![ahmetbora](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/ahmetbora/32/11671_2.png) [@ahmetbora](https://forum.getkirby.com/u/ahmetbora)\
**Post date:** [August 16, 2019, 1:08pm UTC](https://forum.getkirby.com/t/update-the-status-of-a-page-while-the-status-is-false/15270/4 "2019-08-16T13:08:34Z")

</div>

It would be nice if we could also send the status param while creating the page.  
It automatically validates if the status parameter is sent.

---

<div class="post-metadata">

**Author:** ![ahmetbora](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/ahmetbora/32/11671_2.png) [@ahmetbora](https://forum.getkirby.com/u/ahmetbora)\
**Post date:** [August 16, 2019, 1:14pm UTC](https://forum.getkirby.com/t/update-the-status-of-a-page-while-the-status-is-false/15270/5 "2019-08-16T13:14:28Z")

</div>

I understood what you said, but the other file was actually an extension.  
Since this is my own extension, there is no problem right now.

But if there is a plugin that requires a super user, the user session will be ignored for that page.

I think we need to develop this `impersonate()` method.  
The current session needs to be resolved without overwriting it.
