SurveyPermissionsController

Extends\LSBaseController

Class LSBaseController

this controller will have all the necessary methods from the old AdminController

package

Default

Methods

Basic initialiser to the base controller class

__construct(string $id,\CWebModule $module = null)
inherited
access

public

Arguments

$id

string

$module

\CWebModule

Check that installation was already done by looking for config.php Will redirect to the installer script if not exists.

_checkInstallation(): void
inherited
access

protected

It's import to have the accessRules set (security issue).

accessRules(): array

Only logged in users should have access to actions. All other permissions should be checked in the action itself.

Response

array

Add a user to permission table for this survey.

actionAddUser( $surveyid): void

Opens the permission settings site if user could be added.

Arguments

$surveyid

Add group users to permission table for this survey.

actionAddUserGroup( $surveyid): void

and redirects to settings permission page

Arguments

$surveyid

Deletes all survey permissions the user has.

actionDeleteUserPermissions(): void

actionIndex

actionIndex( $surveyid): array|mixed|string|array<mixed,string>|null

Arguments

$surveyid

Response

array|mixed|string|array<mixed,string>|null

Save permissions for a user or a usergroup

actionSavePermissions( $surveyid): void
Throws
\CHttpException

Arguments

$surveyid

Open settings permission page

actionSettingsPermissions( $surveyid, $action, $id): void

Arguments

$surveyid

int

$action

string the action could be 'user' or 'usergroup'

$id

int userid or groupid depending on the action

This part comes from renderWrappedTemplate (not the best way to refactoring, but a temporary solution)

beforeRender(string $view): boolean
inherited

todo REFACTORING find all actions that set $aData['surveyid'] and change the layout directly in the action

Arguments

$view

string

Response

boolean

Creates an absolute URL based on the given controller and action information.

createAbsoluteUrl(string $route,array $params = array(),string $schema = '',string $ampersand = '&'): string
inherited

Arguments

$route

string

the URL route. This should be in the format of 'ControllerID/ActionID'.

$params

array

additional GET parameters (name=>value). Both the name and value will be URL-encoded.

$schema

string

schema to use (e.g. http, https). If empty, the schema used for the current request will be used.

$ampersand

string

the token separating name-value pairs in the URL.

Response

string

the constructed URL

customInit

customInit()
inherited

Loads a helper

loadHelper(string $helper): void
inherited
access

public

Arguments

$helper

string

Loads a library

loadLibrary(string $library): void
inherited
access

public

Arguments

$library

string

Loads page states from a hidden input.

loadPageStates(): array
inherited

Response

array

the loaded page states

Method to render an array as a json document (this one called by a lot of actions in different controllers)

renderJSON(array $aData, $success = true): void
inherited

Arguments

$aData

array

$success

Checks for action specific authorization and then executes an action

run(string $action): void
inherited

TODO: check the dbupdate mechanism, do we really want to check db update before every action??

access

public

Throws
\CException
\CHttpException

Arguments

$action

string

Load and set session vars

sessionControl(): void
inherited

todo REFACTORING see comments in mehtod

access

protected

Properties

this is needed for the preview rendering inside the questioneditor

sTemplate :null
inherited
var

this is needed for the preview rendering inside the questioneditor

Type(s)

null

import for all new controllers/actions (REFACTORING) to pass data before rendering the content

aData :array
inherited
var

import for all new controllers/actions (REFACTORING) to pass data before rendering the content

Type(s)

array

userId of the logged in user

userId :integer
inherited
var

userId of the logged in user

Type(s)

integer

This array contains the survey / group / question id used by the menu widget.

navData :array
inherited
var

Type(s)

array