define() 공개 메소드

Define a role.
public define ( $Values )
$Values
예제 #1
0
$Database = Gdn::database();
$SQL = $Database->sql();
$Construct = $Database->structure();
$Px = $Database->DatabasePrefix;
// Role Table
$Construct->table('Role');
$RoleTableExists = $Construct->tableExists();
$RoleTypeExists = $Construct->columnExists('Type');
$Construct->primaryKey('RoleID')->column('Name', 'varchar(100)')->column('Description', 'varchar(500)', true)->column('Type', array(RoleModel::TYPE_GUEST, RoleModel::TYPE_UNCONFIRMED, RoleModel::TYPE_APPLICANT, RoleModel::TYPE_MEMBER, RoleModel::TYPE_MODERATOR, RoleModel::TYPE_ADMINISTRATOR), true)->column('Sort', 'int', true)->column('Deletable', 'tinyint(1)', '1')->column('CanSession', 'tinyint(1)', '1')->column('PersonalInfo', 'tinyint(1)', '0')->set($Explicit, $Drop);
$RoleModel = new RoleModel();
if (!$RoleTableExists || $Drop) {
    // Define default roles.
    $RoleModel->Database = $Database;
    $RoleModel->SQL = $SQL;
    $Sort = 1;
    $RoleModel->define(array('Name' => 'Guest', 'Type' => RoleModel::TYPE_GUEST, 'RoleID' => 2, 'Sort' => $Sort++, 'Deletable' => '0', 'CanSession' => '0', 'Description' => t('Guest Role Description', 'Guests can only view content. Anyone browsing the site who is not signed in is considered to be a "Guest".')));
    $RoleModel->define(array('Name' => 'Unconfirmed', 'Type' => RoleModel::TYPE_UNCONFIRMED, 'RoleID' => 3, 'Sort' => $Sort++, 'Deletable' => '0', 'CanSession' => '1', 'Description' => t('Unconfirmed Role Description', 'Users must confirm their emails before becoming full members. They get assigned to this role.')));
    $RoleModel->define(array('Name' => 'Applicant', 'Type' => RoleModel::TYPE_APPLICANT, 'RoleID' => 4, 'Sort' => $Sort++, 'Deletable' => '0', 'CanSession' => '1', 'Description' => t('Applicant Role Description', 'Users who have applied for membership, but have not yet been accepted. They have the same permissions as guests.')));
    $RoleModel->define(array('Name' => 'Member', 'Type' => RoleModel::TYPE_MEMBER, 'RoleID' => 8, 'Sort' => $Sort++, 'Deletable' => '1', 'CanSession' => '1', 'Description' => t('Member Role Description', 'Members can participate in discussions.')));
    $RoleModel->define(array('Name' => 'Moderator', 'Type' => RoleModel::TYPE_MODERATOR, 'RoleID' => 32, 'Sort' => $Sort++, 'Deletable' => '1', 'CanSession' => '1', 'Description' => t('Moderator Role Description', 'Moderators have permission to edit most content.')));
    $RoleModel->define(array('Name' => 'Administrator', 'Type' => RoleModel::TYPE_ADMINISTRATOR, 'RoleID' => 16, 'Sort' => $Sort++, 'Deletable' => '1', 'CanSession' => '1', 'Description' => t('Administrator Role Description', 'Administrators have permission to do anything.')));
}
// User Table
$Construct->table('User');
$PhotoIDExists = $Construct->columnExists('PhotoID');
$PhotoExists = $Construct->columnExists('Photo');
$UserExists = $Construct->tableExists();
$ConfirmedExists = $Construct->columnExists('Confirmed');
$Construct->primaryKey('UserID')->column('Name', 'varchar(50)', false, 'key')->column('Password', 'varbinary(100)')->column('HashMethod', 'varchar(10)', true)->column('Photo', 'varchar(255)', null)->column('Title', 'varchar(100)', null)->column('Location', 'varchar(100)', null)->column('About', 'text', true)->column('Email', 'varchar(100)', false, 'index')->column('ShowEmail', 'tinyint(1)', '0')->column('Gender', array('u', 'm', 'f'), 'u')->column('CountVisits', 'int', '0')->column('CountInvitations', 'int', '0')->column('CountNotifications', 'int', null)->column('InviteUserID', 'int', true)->column('DiscoveryText', 'text', true)->column('Preferences', 'text', true)->column('Permissions', 'text', true)->column('Attributes', 'text', true)->column('DateSetInvitations', 'datetime', true)->column('DateOfBirth', 'datetime', true)->column('DateFirstVisit', 'datetime', true)->column('DateLastActive', 'datetime', true, 'index')->column('LastIPAddress', 'varchar(15)', true)->column('AllIPAddresses', 'varchar(100)', true)->column('DateInserted', 'datetime', false, 'index')->column('InsertIPAddress', 'varchar(15)', true)->column('DateUpdated', 'datetime', true)->column('UpdateIPAddress', 'varchar(15)', true)->column('HourOffset', 'int', '0')->column('Score', 'float', null)->column('Admin', 'tinyint(1)', '0')->column('Confirmed', 'tinyint(1)', '1')->column('Verified', 'tinyint(1)', '0')->column('Banned', 'tinyint(1)', '0')->column('Deleted', 'tinyint(1)', '0')->column('Points', 'int', 0)->set($Explicit, $Drop);
// Modify all users with ConfirmEmail role to be unconfirmed
if ($UserExists && !$ConfirmedExists) {