permissions

The permissions plugin is used to verify access is allowed to the current or another user.

The plugin is written so you can send a signal to check whether any given user has access to any given URI. This is particularly useful to test whether a box can or cannot be shown. This also works with a very low granularity. For example, a menu item can be hidden because its destination page is not anyway accessible by that user.

The plugin first checks whether the permission information for the feat were cached. If so, it uses the cached permissions. The cached permissions are discarded after a ...

path

The path plugin is a low level plugin used to dispatch a call to a Snap! Website. This is the one plugin that the snap_child object calls once ready.

The path of the HTTP request is used to determine whether a page exists as is in the database. If so, it uses the page owner information to know which plugin owns that page (most pages are owned by the output plugin.) If the plugin is not currently installed, you get a 404 Plugin Missing error.

If the plugin exists and is installed, we call its execute function. Many plugins will in turn use the layout and content plugins to generate the ...

password

The password plugin is used to handle user passwords. Especially, it offers a way to define a password policy.

At this point the password policy offered is as found on most website, not the best as we already know, but certainly much better than not having a policy at all, especially if you have an e-Commerce website. The plugin also offers a function to generate a password that will validate against the current password policy of the website.

Note that various ways to log in your website can each include a different type of password policy. For example, the oauth2 plugin offers its own ...

output

The output plugin is an extension to the content plugin. It is used to actually output the content as it also has access to the layout and messages plugins. This helps in having a simple dependency tree between our various plugins.

The output plugin also includes a few low level JavaScript libraries, its own, called output.js, an extension to allow popups, called popup.js, and external libraries such as jquery.js.

The output is also defining various default for all the other plugins such as the default plugin logo that looks like a puzzle piece.

oauth2

The OAuth2 capability allows you to access your website using OAuth2 credentials. The oauth2 plugin offers a way to generate an OAuth2 login and password which you can use to log in your account using other tools (from another website, a desktop application, or an automated background process.)

The OAuth2 system currently supports a way to log in as an administrator. At some point we will allow each user to have an OAuth2 account so we can implement a really fast desktop application one can use to create post very quickly.

mimetype

Files that get uploaded to the server are all assigned a MIME type. This includes all the files that come with a plugin or a layout.

This plugin handles hundred of MIME types. It includes icons to dislpay for a given type. It knows the name and equivalents of many types.

This includes the ability to determine the MIME type on the client side (through JavaScript.)

messages

The messages plugin is a low level plugin that handles error, warning, and informational messages that other plugins are generating.

A few really low level plugins cannot use the messages plugin (because the messages plugin depends on them.) Those plugins will only generate logs and throw when an unrecoverable error occurs.

The output.js scripts from the output plugin include the necessary code to actually display the messages on the screen. It is done using JavaScript because the messages are shown in a fixed popup box which the server does not know anything about.

The server_access plugin ...

menu

The menu plugin allows for website owners to setup navigation menus. By default a website comes with an administrative menu only. This administrative menu will allow a user to navigate the website in order to create and manage its pages and plugins.

The plugin includes the building of such menus and the way it is displayed and other menu administration features.

mailinglist

The mailinglist plugin offers a website a way to send emails to a group of people who signed up to a certain mailing list.

The system offers a way to enter a mailing list email and the Snap! system converts that special email address in one email per user who registered. Although it would be possible to have the list of emails defined in your mail system instead, by having it in Snap! directly allows us to enforce emailing policies defined on the Snap! Websites. For example, a user could ask to receive one email per week maximum with a digest of whatever was sent to him within that week. ...

locale

The Snap! locale environment includes three plugins.

Locale

The locale plugin is a very low level plugin that is used by others to setup the locale (language/country) and timezone (date/time) to be used on a hit from a client.

By default, the website is set to "en_US" and "America/Los Angeles" because we started the development of the Snap! system in California. However, a logged in user may have changed that locale to his own locale. The total list of available locales is defined using the list found on your server (some 460 on Linux at time of writing.) Also other ...

Snap! Websites
An Open Source CMS System in C++

Contact Us Directly