You have been redirected from an outdated version of the article. Below is the content available on this topic. To view the old article click here.

owner

The owner keyword references the node’s owner node (if node has an owner node).

Search results for "owner"

onSave

Example 2: The owner for a node was removed. The value of the owner property in the modifications object is a single string because the relationship is defined as a “to one” relationship (a node can only have one owner).

Database Contents

By default, an object in the database is only visible for its owner, for admin users, and for users that are granted the read permission on the object. An object created by an anonymous user (provided the request is allowed by a Resource Access Grant) is a so-called ownerless node. You can configure permissions for ownerless nodes in the Configuration Tool, for example to allow not only read access, but write access as well. (Note that the object must still be made visible first.)

onSave

{
"before":{"owner":null},
"after":{"owner":null},
"added":{},
"removed":{"owner":"5ba37699ca8f4a8b92ded77c93629f0e"}
}

Manual View Selection (info)

{
"result": [
{
"id": "d46a2d3b90c94e368a70bc30acd30572",
"type": "Project",
"name": "Project #1",
"tasks": [
{
"id": "4a6894302db74c94b989fcac7e68a38e",
"name": "Task #1",
"type": "Task"
}
],
"description": "This is the description of the first project.",
"owner": null,
"priority": 2
},
{
"id": "6941a2af4c024b429ffc4851b404af72",
"type": "Project",
"name": "Project #2",
"tasks": [],
"description": "My second project.",
"owner": null,
"priority": 3
},
{
"id": "8db88530ea5949ba89cef1234e04d8e4",
"type": "Project",
"name": "Project #3",
"tasks": [],
"description": "Third project description.",
"owner": null,
"priority": 1
}
],
"query_time": "0.000159363",
"result_count": 3,
"page_count": 1,
"result_count_time": "0.000065976",
"serialization_time": "0.004041883"
}

Application Security

application.security.resolution.depth Maximum number of nodes that are traversed for security resolution.
application.security.ownerless.nodes The user permission level on ownerless nodes. One or more of: read, write, delete, accessControl
application.xml.parser.security Enables various measures to prevent XML parsing exploits.

Visibility

Since a page and all its elements are represented by nodes in the database, access to these elements can be controlled with the standard Structr node-level security model: each node has an owner and two switches that control read-only access, visibleToPublicUsers and visibleToAuthenticatedUsers.

Create Example Data

Now that we’ve created our project type, we can create database objects of this type by heading over to the Data area by clicking on Data tab in the main menu. Filter the type list in the left column by entering Project to get the list of existing projects (should be empty at the moment). Click on the “Create new Project” button (Create new Project) to create a new project. This creates a new entry in the table. The table lists properties of the new project including some system attributes like an id, name or owner. For now we will only be using the name property which can be set by clicking into the respective cell in the table and typing in the desired name. We create three projects with the names “Project 1”, “Project 2” and “Project 3”.

Layouts

This is simply a visual helper to bring order to the types on the canvas - it has no effect other than that.

Updating and Deleting Configurations is only allowed for saved layouts the current user owns or for those without an owner. Applying and downloading works for all saved layouts to enable sharing between users.

Layouts contain the current settings for relationship rendering, zoom, relationship labels, type placement and type visibility.

Node-level security

The different levels of node security checks are (in order of execution)
- (isAdmin check)
- Local Visibility Flags on the nodes
- Ownership
- Permission grants
- Graph-based permission resolution

If any check results is positive, the other checks are not executed.

Searching

These simple value-based filters can also be used on contextual properties, e.g. you can select all projects with a specific owner.

Ownership

Ownership of a node is signified by an OWNS relationship (user)-[:OWNS]->(node) between the user and the node. If present, the relationship will give the user full access (read, write, delete, accessControl) to the node.

Database Contents

Non-admin users are subject to node-level security, which you can read more about in the Security chapter. In short, a node can have an owner and a set of optional Security Relationships that determine the permissions of a user or a group on that node. Security Relationships are direct relationships between a user and some other node.

Objects

The JSON object above is a part of an example result produced by the /Project endpoint. You can see several different nested objects in the result: the root object is a Project node, the tasks array contains two Task objects, and the owner is an empty object because the view has no fields for this type. (All these details will be explained in the following sections).

Access Control and Visibility

The Access Control and Visibility dialog provides access to the security settings of a node. In this dialog, you can set, edit or remove the owner of the node, set visibility flags and configure security releationships.

Access Control and Visiblity

The Access Control and Visibility dialog provides access to the security settings of a node. In this dialog, you can set, edit or remove the owner of the node, set visibility flags and configure security releationships.

Content of Current Folder

Size for files this is the size in bytes, and for folders this is the number of subfiles and folders.
Type the type of the folder or file (for files the filetype is also shown).
Owner the user who owns the file or folder.

FtpService

The FtpService allows users to connect to the structr instance via the FTP protocol. The FTP port can be configured via the application.ftp.port key in structr.conf.

Authentication is only possible via password. After successful authentication the FTP connection lists all the files a user has read rights to starting from the root directory.
Files which the user is allowed to read, but which reside in a directory which the user is not allowed to “see”, the file will not show up in the FTP listing.

Regular users will also not be able to see file owner if they do not have read rights on those nodes.

Admin users always see every file/folder available as well as their owner.

Visibility Flags

StructrScript Example

${page.name}
${current.owner.name}