# Capabilities Classes

# Capabilities Classes

## Introduction

To introduce user limitations as defined on a per site basis, LiveJournal has implemented the use of capabilities — customizable limits that can be defined én massé, or split between different user types.

Completing the idea of per site definitions, we've implemented a system where capabilities can be defined in classes, and classes can either be turned on or off for each account.

Capability classes are most effectively used when making distinctions between normal user accounts and privileged user accounts; for example, on LiveJournal.com, we make a distinction between normal accounts, early adopter accounts, and paid accounts, (with a couple of variations on the latter) — the purpose of the distinction being to give paying members a better incentive to stick around and help fund the site.

## Setting Capabilities

explains how to initially set the capability defaults, and how to setup capability classes that you can use to define different account types.

If there comes a need where a user's account should change classes, then it is easy to administrate from the URI `/admin/capedit.bml`. Simply login as the system account, and apply (or unapply) the different classes as necessary for a specific user.

### Setting the same capability twice

If two capability classes set the same capability, and an account is defined under both classes, then the conflicting capability values are compared against each other, and the optimal setting is used where appropriate.

## Capabilities Reference

The following is a list of capabilities that you can define per class. If you have any capabilities that you have defined locally, then they will be listed here as well.

&lj.admin.cap_list;