# CMS: what it covers

> **Audience:** content editors maintaining what customers see on the ordering channels.
> **You need:** *CMS — view* to browse, *CMS — edit* to change, *CMS — delete* to remove. Three separate levels.

The CMS covers the content layer of the ordering experience: the images and text customers see, and the complaints structure behind customer service.

## Two areas

| Area | What it holds |
|---|---|
| **Resources** | Banners, logos, documents, and the presentation of promotions, products, toppings and payment methods |
| **Complaints** | The tree of complaint types used when logging a customer complaint |

They share the same permissions but are otherwise independent.

## Three permission levels, not two

Most console areas have view and edit. The CMS has a third:

| Level | Lets you |
|---|---|
| **View** | Browse resources and the complaints tree |
| **Edit** | Create and change resources, and add or edit complaint nodes |
| **Delete** | Remove a node from the complaints tree |

Delete is deliberately separate. Removing a node from the complaints tree affects how complaints are categorised from that point on, which is harder to reverse than editing a label.

`cms_editor` is the role built for this area and holds all three.

## Content is per source

This is the concept that makes the rest of the CMS make sense.

Resources are stored **per source** — web, app, kiosk, each aggregator. The same brand can show a different banner on the web than in the app, because they are different records.

So when you edit a resource you are always editing it *for a source*. Changing the web banner does not change the app banner.

> This also means "the banner didn't change" is usually the wrong source selected rather than a failed save. Check the selector before re-uploading.

Your own scope can further limit which sources you see — see [How scope works in practice](/books/console-yF7/page/how-scope-works-in-practice).

## The pages in this chapter

| Topic | Page |
|---|---|
| Resource types and the source selector | [Resources and sources](/books/console-yF7/page/resources-and-sources) |
| Finding incomplete content | [Content validation](/books/console-yF7/page/content-validation) |
| The complaints tree | [The complaints tree](/books/console-yF7/page/the-complaints-tree) |
| Editing banners, step by step | [CMS - Resources: Banners](/books/console-yF7/page/cms-resources-banners) |
| Documents per language | [CMS - Resources: Documents](/books/console-yF7/page/cms-resources-documents) |
| The resources screen | [CMS - Resources](/books/console-yF7/page/cms-resources) |
| Loading complaints from a file | [CMS - Complaints CSV Upload](/books/console-yF7/page/cms-complaints-csv-upload) |