Page Menu
Home
In-Portal Phabricator
Search
Configure Global Search
Log In
Files
F1069521
in-portal
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sun, Jul 20, 1:43 AM
Size
26 KB
Mime Type
text/x-diff
Expires
Tue, Jul 22, 1:43 AM (9 h, 45 m)
Engine
blob
Format
Raw Data
Handle
692427
Attached To
rINP In-Portal
in-portal
View Options
Index: trunk/kernel/units/permissions/permissions_event_handler.php
===================================================================
--- trunk/kernel/units/permissions/permissions_event_handler.php (nonexistent)
+++ trunk/kernel/units/permissions/permissions_event_handler.php (revision 4612)
@@ -0,0 +1,79 @@
+<?php
+
+class PermissionsEventHandler extends InpDBEventHandler {
+
+ /**
+ * Saves permissions while editing group
+ *
+ * @param kEvent $event
+ */
+ function OnSavePermissions(&$event)
+ {
+ $permissions = $this->Application->GetVar($event->getPrefixSpecial(true));
+ if (!$permissions) {
+ return false;
+ }
+
+ $object =& $event->getObject( Array('skip_autoload' => true) );
+ $group_id = $this->Application->GetVar('g_id');
+ $permissions_helper =& $this->Application->recallObject('PermissionsHelper');
+ $permissions_helper->LoadPermissions('g');
+
+ $delete_ids = Array();
+ $create_sql = Array();
+ $create_mask = '(%s,%s,'.$group_id.',%s,1,0)';
+
+ $new_id = (int)$this->Conn->GetOne('SELECT MIN('.$object->IDField.') FROM '.$object->TableName);
+ if($new_id > 0) $new_id = 0;
+ --$new_id;
+
+ foreach ($permissions as $section_name => $section_permissions) {
+ foreach ($section_permissions as $perm_name => $perm_value) {
+
+ if (!$permissions_helper->isOldPermission($section_name, $perm_name)) {
+ $perm_name = $section_name.'.'.$perm_name;
+ }
+
+ $db_perm_value = $permissions_helper->getPermissionValue($perm_name);
+ if ($db_perm_value == 1 && $perm_value == 0) {
+ // permission was disabled => delete it's record
+ $delete_ids[] = $permissions_helper->getPermissionID($perm_name);
+ }
+ elseif ($db_perm_value == 0 && $perm_value == 1) {
+ // permission was enabled => created it's record
+ $create_sql[] = sprintf($create_mask, $new_id--, $this->Conn->qstr($perm_name), $this->Conn->qstr($perm_value));
+ }
+ // permission state was not changed in all other cases
+ }
+ }
+
+ if ($delete_ids) {
+ $delete_sql = ' DELETE FROM '.$object->TableName.'
+ WHERE '.$object->IDField.' IN ('.implode(',', $delete_ids).')';
+ $this->Conn->Query($delete_sql);
+ }
+
+ if ($create_sql) {
+ $create_sql = ' INSERT INTO '.$object->TableName.'
+ VALUES '.implode(',', $create_sql);
+ $this->Conn->Query($create_sql);
+ }
+
+ if ($delete_ids || $create_sql) {
+ $object->setModifiedFlag();
+ }
+
+ if ($this->Application->GetVar('advanced_save') == 1) {
+ // advanced permission popup [save button]
+ $this->finalizePopup($event);
+// $event->redirect = 'incs/just_close';
+ }
+ elseif ($this->Application->GetVar('section_name') != '') {
+ // save simple permissions before opening advanced permission popup
+ $event->redirect = false;
+ }
+
+ }
+}
+
+?>
\ No newline at end of file
Property changes on: trunk/kernel/units/permissions/permissions_event_handler.php
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: trunk/kernel/units/permissions/permissions_config.php
===================================================================
--- trunk/kernel/units/permissions/permissions_config.php (nonexistent)
+++ trunk/kernel/units/permissions/permissions_config.php (revision 4612)
@@ -0,0 +1,74 @@
+<?php
+
+$config = Array(
+ 'ItemClass' => Array('class'=>'kDBItem','file'=>'','build_event'=>'OnItemBuild'),
+ 'ListClass' => Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'),
+ 'EventHandlerClass' => Array('class'=>'PermissionsEventHandler','file'=>'permissions_event_handler.php','build_event'=>'OnBuild'),
+ 'TagProcessorClass' => Array('class'=>'PermissionsTagProcessor','file'=>'permissions_tag_processor.php','build_event'=>'OnBuild'),
+ 'AutoLoad' => true,
+
+ 'Hooks' => Array(
+ Array(
+ 'Mode' => hAFTER,
+ 'Conditional' => true,
+ 'HookToPrefix' => '#PARENT#',
+ 'HookToSpecial' => '*',
+ 'HookToEvent' => Array('OnPreSave'),
+ 'DoPrefix' => '',
+ 'DoSpecial' => '*',
+ 'DoEvent' => 'OnSavePermissions',
+ ),
+ ),
+
+ 'Clones' => Array(
+ 'c-perm' => Array(
+ 'Constrain' => 'Type = 0', // non-system
+ 'ParentPrefix' => 'c',
+ 'ForeignKey' => 'CatId',
+ 'ParentTableKey' => 'CategoryId',
+ ),
+
+ 'g-perm' => Array(
+ 'Constrain' => 'Type = 1', // system
+ 'ParentPrefix' => 'g',
+ 'ForeignKey' => 'GroupId',
+ 'ParentTableKey' => 'GroupId',
+ ),
+ ),
+
+ 'QueryString' => Array(
+ 1 => 'id',
+ 2 => 'page',
+ 3 => 'event',
+ ),
+
+ 'IDField' => 'PermissionId',
+
+ 'StatusField' => Array('PermissionValue'),
+
+ 'TitleField' => 'Permission',
+
+ 'TableName' => TABLE_PREFIX.'Permissions',
+
+ 'AutoDelete' => true,
+ 'AutoClone' => true,
+
+ 'ListSQLs' => Array('' => 'SELECT %1$s.* %2$s FROM %1$s'),
+ 'ItemSQLs' => Array('' => 'SELECT %1$s.* %2$s FROM %1$s'),
+
+ 'ListSortings' => Array(
+ '' => Array(
+ 'Sorting' => Array('Permission' => 'asc'),
+ )
+ ),
+ 'Fields' => Array(
+ 'PermissionId' => Array(),
+ 'Permission' => Array('type' => 'string','not_null' => '1','default' => ''),
+ 'GroupId' => Array('type' => 'int','default' => '0'),
+ 'PermissionValue' => Array('type' => 'int','not_null' => '1','default' => '0'),
+ 'Type' => Array('type' => 'int','not_null' => '1','default' => '0'),
+ 'CatId' => Array('type' => 'int','not_null' => '1','default' => '0'),
+ ),
+ );
+
+?>
\ No newline at end of file
Property changes on: trunk/kernel/units/permissions/permissions_config.php
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: trunk/kernel/units/permissions/permissions_tag_processor.php
===================================================================
--- trunk/kernel/units/permissions/permissions_tag_processor.php (nonexistent)
+++ trunk/kernel/units/permissions/permissions_tag_processor.php (revision 4612)
@@ -0,0 +1,64 @@
+<?php
+
+ class PermissionsTagProcessor extends kDBTagProcessor {
+
+
+
+ function HasPermission($params)
+ {
+ $section_name = $params['section_name'];
+
+ $sections_helper =& $this->Application->recallObject('SectionsHelper');
+ $section_data =& $sections_helper->getSectionData($section_name);
+
+ return array_search($params['perm_name'], $section_data['permissions']) !== false;
+ }
+
+ function HasAdvancedPermissions($params)
+ {
+ $section_name = $params['section_name'];
+
+ $sections_helper =& $this->Application->recallObject('SectionsHelper');
+ $section_data =& $sections_helper->getSectionData($section_name);
+
+ $ret = false;
+ foreach ($section_data['permissions'] as $perm_name) {
+ if (preg_match('/^advanced:(.*)/', $perm_name)) {
+ $ret = true;
+ break;
+ }
+ }
+ return $ret;
+ }
+
+ function PermissionValue($params)
+ {
+ $section_name = $params['section_name'];
+
+ $sections_helper =& $this->Application->recallObject('SectionsHelper');
+ $section_data =& $sections_helper->getSectionData($section_name);
+ $perm_name = $params['perm_name'];
+
+ $permissions_helper =& $this->Application->recallObject('PermissionsHelper');
+ if (!$permissions_helper->isOldPermission($section_name, $perm_name)) {
+ $perm_name = $section_name.'.'.$perm_name;
+ }
+
+ return $permissions_helper->getPermissionValue($perm_name);
+ }
+
+ function LoadPermissions($params)
+ {
+ $permissions_helper =& $this->Application->recallObject('PermissionsHelper');
+ $prefix_parts = explode('-', $this->Prefix, 2);
+ $permissions_helper->LoadPermissions($prefix_parts[0]);
+ }
+
+ function LevelIndicator($params)
+ {
+ return $params['level'] * $params['multiply'];
+ }
+
+ }
+
+?>
\ No newline at end of file
Property changes on: trunk/kernel/units/permissions/permissions_tag_processor.php
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: trunk/kernel/units/user_groups/user_groups_config.php
===================================================================
--- trunk/kernel/units/user_groups/user_groups_config.php (nonexistent)
+++ trunk/kernel/units/user_groups/user_groups_config.php (revision 4612)
@@ -0,0 +1,94 @@
+<?php
+
+$config = Array(
+ 'Clones' => Array(
+ 'g-ug' => Array(
+ 'ParentPrefix' => 'g',
+ 'ForeignKey' => 'GroupId',
+ 'ParentTableKey' => 'GroupId',
+ ),
+
+ 'u-ug' => Array(
+ 'ParentPrefix' => 'u',
+ 'ForeignKey' => 'PortalUserId',
+ 'ParentTableKey' => 'PortalUserId',
+ ),
+
+ ),
+
+ 'ItemClass' => Array('class'=>'kDBItem','file'=>'','build_event'=>'OnItemBuild'),
+ 'ListClass' => Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'),
+ 'EventHandlerClass' => Array('class'=>'InpDBEventHandler','file'=>'','build_event'=>'OnBuild'),
+ 'TagProcessorClass' => Array('class'=>'kDBTagProcessor','file'=>'','build_event'=>'OnBuild'),
+ 'AutoLoad' => true,
+
+ 'QueryString' => Array(
+ 1 => 'id',
+ 2 => 'page',
+ 3 => 'event',
+ ),
+
+ 'IDField' => 'GroupId',
+ 'StatusField' => Array('UserStatus'),
+
+ 'TableName' => TABLE_PREFIX.'UserGroup',
+
+ 'ListSQLs' => Array( ''=>' SELECT %1$s.* %2$s FROM %1$s
+ LEFT JOIN '.TABLE_PREFIX.'PortalGroup g ON %1$s.GroupId = g.GroupId AND %1$s.PrimaryGroup = 1
+ LEFT JOIN '.TABLE_PREFIX.'PortalUser u ON u.PortalUserId = %1$s.PortalUserId'),
+
+ 'ItemSQLs' => Array( ''=>' SELECT %1$s.* %2$s FROM %1$s
+ LEFT JOIN '.TABLE_PREFIX.'PortalGroup g ON %1$s.GroupId = g.GroupId AND %1$s.PrimaryGroup = 1
+ LEFT JOIN '.TABLE_PREFIX.'PortalUser u ON u.PortalUserId = %1$s.PortalUserId'),
+
+ 'AutoDelete' => true,
+ 'AutoClone' => true,
+
+ 'CalculatedFields' => Array(
+ '' => Array(
+ 'Login' => 'u.Login',
+ 'FirstName' => 'u.FirstName',
+ 'LastName' => 'u.LastName',
+ 'Email' => 'u.Email',
+ 'PrimaryGroup' => 'g.Name',
+ 'CreatedOn' => 'u.CreatedOn',
+ 'UserStatus' => 'u.Status'
+ ),
+ ),
+
+ 'Fields' => Array(
+ 'PortalUserId' => Array('type' => 'int','not_null' => '1','default' => '0'),
+ 'GroupId' => Array(),
+ 'MembershipExpires' => Array('type' => 'int', 'formatter' => 'kDateFormatter', 'default' => ''),
+ 'PrimaryGroup' => Array('type' => 'int','not_null' => '1','default' => '1'),
+ 'ExpirationReminderSent' => Array('type' => 'int','not_null' => '1','default' => '0'),
+ ),
+
+ 'VirtualFields' => Array(
+ 'Login' => Array('type' => 'string'),
+ 'FirstName' => Array('type' => 'string'),
+ 'LastName' => Array('type' => 'string'),
+ 'Email' => Array('type' => 'string'),
+ 'PrimaryGroup' => Array('type' => 'string'),
+ 'CreatedOn' => Array('type' => 'int', 'formatter' => 'kDateFormatter', 'not_null' => 1, 'default' => '#NOW#'),
+ 'UserStatus' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array(1 => 'la_Enabled', 0 => 'la_Disabled', 2 => 'la_Pending'), 'use_phrases' => 1, 'not_null' => '1','default' => 2),
+ ),
+
+
+ 'Grids' => Array(
+ 'Default' => Array(
+ 'Icons' => Array(0 => 'icon16_user_disabled.gif', 1 => 'icon16_user.gif', 2 => 'icon16_user_pending.gif'),
+ 'Fields' => Array(
+ 'Login' => Array('title' => 'la_col_Username', 'data_block' => 'grid_checkbox_td'),
+ 'LastName' => Array( 'title'=>'la_col_LastName'),
+ 'FirstName' => Array( 'title'=>'la_col_FirstName'),
+ 'Email' => Array( 'title'=>'la_col_Email'),
+ 'PrimaryGroup' => Array( 'title'=>'la_col_PrimaryGroup'),
+ 'CreatedOn_formatted' => Array('title' => 'la_col_CreatedOn', 'sort_field' => 'CreatedOn'),
+ ),
+ ),
+ ),
+
+ );
+
+?>
\ No newline at end of file
Property changes on: trunk/kernel/units/user_groups/user_groups_config.php
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: trunk/core/units/permissions/permissions_event_handler.php
===================================================================
--- trunk/core/units/permissions/permissions_event_handler.php (nonexistent)
+++ trunk/core/units/permissions/permissions_event_handler.php (revision 4612)
@@ -0,0 +1,79 @@
+<?php
+
+class PermissionsEventHandler extends InpDBEventHandler {
+
+ /**
+ * Saves permissions while editing group
+ *
+ * @param kEvent $event
+ */
+ function OnSavePermissions(&$event)
+ {
+ $permissions = $this->Application->GetVar($event->getPrefixSpecial(true));
+ if (!$permissions) {
+ return false;
+ }
+
+ $object =& $event->getObject( Array('skip_autoload' => true) );
+ $group_id = $this->Application->GetVar('g_id');
+ $permissions_helper =& $this->Application->recallObject('PermissionsHelper');
+ $permissions_helper->LoadPermissions('g');
+
+ $delete_ids = Array();
+ $create_sql = Array();
+ $create_mask = '(%s,%s,'.$group_id.',%s,1,0)';
+
+ $new_id = (int)$this->Conn->GetOne('SELECT MIN('.$object->IDField.') FROM '.$object->TableName);
+ if($new_id > 0) $new_id = 0;
+ --$new_id;
+
+ foreach ($permissions as $section_name => $section_permissions) {
+ foreach ($section_permissions as $perm_name => $perm_value) {
+
+ if (!$permissions_helper->isOldPermission($section_name, $perm_name)) {
+ $perm_name = $section_name.'.'.$perm_name;
+ }
+
+ $db_perm_value = $permissions_helper->getPermissionValue($perm_name);
+ if ($db_perm_value == 1 && $perm_value == 0) {
+ // permission was disabled => delete it's record
+ $delete_ids[] = $permissions_helper->getPermissionID($perm_name);
+ }
+ elseif ($db_perm_value == 0 && $perm_value == 1) {
+ // permission was enabled => created it's record
+ $create_sql[] = sprintf($create_mask, $new_id--, $this->Conn->qstr($perm_name), $this->Conn->qstr($perm_value));
+ }
+ // permission state was not changed in all other cases
+ }
+ }
+
+ if ($delete_ids) {
+ $delete_sql = ' DELETE FROM '.$object->TableName.'
+ WHERE '.$object->IDField.' IN ('.implode(',', $delete_ids).')';
+ $this->Conn->Query($delete_sql);
+ }
+
+ if ($create_sql) {
+ $create_sql = ' INSERT INTO '.$object->TableName.'
+ VALUES '.implode(',', $create_sql);
+ $this->Conn->Query($create_sql);
+ }
+
+ if ($delete_ids || $create_sql) {
+ $object->setModifiedFlag();
+ }
+
+ if ($this->Application->GetVar('advanced_save') == 1) {
+ // advanced permission popup [save button]
+ $this->finalizePopup($event);
+// $event->redirect = 'incs/just_close';
+ }
+ elseif ($this->Application->GetVar('section_name') != '') {
+ // save simple permissions before opening advanced permission popup
+ $event->redirect = false;
+ }
+
+ }
+}
+
+?>
\ No newline at end of file
Property changes on: trunk/core/units/permissions/permissions_event_handler.php
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: trunk/core/units/permissions/permissions_config.php
===================================================================
--- trunk/core/units/permissions/permissions_config.php (nonexistent)
+++ trunk/core/units/permissions/permissions_config.php (revision 4612)
@@ -0,0 +1,74 @@
+<?php
+
+$config = Array(
+ 'ItemClass' => Array('class'=>'kDBItem','file'=>'','build_event'=>'OnItemBuild'),
+ 'ListClass' => Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'),
+ 'EventHandlerClass' => Array('class'=>'PermissionsEventHandler','file'=>'permissions_event_handler.php','build_event'=>'OnBuild'),
+ 'TagProcessorClass' => Array('class'=>'PermissionsTagProcessor','file'=>'permissions_tag_processor.php','build_event'=>'OnBuild'),
+ 'AutoLoad' => true,
+
+ 'Hooks' => Array(
+ Array(
+ 'Mode' => hAFTER,
+ 'Conditional' => true,
+ 'HookToPrefix' => '#PARENT#',
+ 'HookToSpecial' => '*',
+ 'HookToEvent' => Array('OnPreSave'),
+ 'DoPrefix' => '',
+ 'DoSpecial' => '*',
+ 'DoEvent' => 'OnSavePermissions',
+ ),
+ ),
+
+ 'Clones' => Array(
+ 'c-perm' => Array(
+ 'Constrain' => 'Type = 0', // non-system
+ 'ParentPrefix' => 'c',
+ 'ForeignKey' => 'CatId',
+ 'ParentTableKey' => 'CategoryId',
+ ),
+
+ 'g-perm' => Array(
+ 'Constrain' => 'Type = 1', // system
+ 'ParentPrefix' => 'g',
+ 'ForeignKey' => 'GroupId',
+ 'ParentTableKey' => 'GroupId',
+ ),
+ ),
+
+ 'QueryString' => Array(
+ 1 => 'id',
+ 2 => 'page',
+ 3 => 'event',
+ ),
+
+ 'IDField' => 'PermissionId',
+
+ 'StatusField' => Array('PermissionValue'),
+
+ 'TitleField' => 'Permission',
+
+ 'TableName' => TABLE_PREFIX.'Permissions',
+
+ 'AutoDelete' => true,
+ 'AutoClone' => true,
+
+ 'ListSQLs' => Array('' => 'SELECT %1$s.* %2$s FROM %1$s'),
+ 'ItemSQLs' => Array('' => 'SELECT %1$s.* %2$s FROM %1$s'),
+
+ 'ListSortings' => Array(
+ '' => Array(
+ 'Sorting' => Array('Permission' => 'asc'),
+ )
+ ),
+ 'Fields' => Array(
+ 'PermissionId' => Array(),
+ 'Permission' => Array('type' => 'string','not_null' => '1','default' => ''),
+ 'GroupId' => Array('type' => 'int','default' => '0'),
+ 'PermissionValue' => Array('type' => 'int','not_null' => '1','default' => '0'),
+ 'Type' => Array('type' => 'int','not_null' => '1','default' => '0'),
+ 'CatId' => Array('type' => 'int','not_null' => '1','default' => '0'),
+ ),
+ );
+
+?>
\ No newline at end of file
Property changes on: trunk/core/units/permissions/permissions_config.php
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: trunk/core/units/permissions/permissions_tag_processor.php
===================================================================
--- trunk/core/units/permissions/permissions_tag_processor.php (nonexistent)
+++ trunk/core/units/permissions/permissions_tag_processor.php (revision 4612)
@@ -0,0 +1,64 @@
+<?php
+
+ class PermissionsTagProcessor extends kDBTagProcessor {
+
+
+
+ function HasPermission($params)
+ {
+ $section_name = $params['section_name'];
+
+ $sections_helper =& $this->Application->recallObject('SectionsHelper');
+ $section_data =& $sections_helper->getSectionData($section_name);
+
+ return array_search($params['perm_name'], $section_data['permissions']) !== false;
+ }
+
+ function HasAdvancedPermissions($params)
+ {
+ $section_name = $params['section_name'];
+
+ $sections_helper =& $this->Application->recallObject('SectionsHelper');
+ $section_data =& $sections_helper->getSectionData($section_name);
+
+ $ret = false;
+ foreach ($section_data['permissions'] as $perm_name) {
+ if (preg_match('/^advanced:(.*)/', $perm_name)) {
+ $ret = true;
+ break;
+ }
+ }
+ return $ret;
+ }
+
+ function PermissionValue($params)
+ {
+ $section_name = $params['section_name'];
+
+ $sections_helper =& $this->Application->recallObject('SectionsHelper');
+ $section_data =& $sections_helper->getSectionData($section_name);
+ $perm_name = $params['perm_name'];
+
+ $permissions_helper =& $this->Application->recallObject('PermissionsHelper');
+ if (!$permissions_helper->isOldPermission($section_name, $perm_name)) {
+ $perm_name = $section_name.'.'.$perm_name;
+ }
+
+ return $permissions_helper->getPermissionValue($perm_name);
+ }
+
+ function LoadPermissions($params)
+ {
+ $permissions_helper =& $this->Application->recallObject('PermissionsHelper');
+ $prefix_parts = explode('-', $this->Prefix, 2);
+ $permissions_helper->LoadPermissions($prefix_parts[0]);
+ }
+
+ function LevelIndicator($params)
+ {
+ return $params['level'] * $params['multiply'];
+ }
+
+ }
+
+?>
\ No newline at end of file
Property changes on: trunk/core/units/permissions/permissions_tag_processor.php
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: trunk/core/units/user_groups/user_groups_config.php
===================================================================
--- trunk/core/units/user_groups/user_groups_config.php (nonexistent)
+++ trunk/core/units/user_groups/user_groups_config.php (revision 4612)
@@ -0,0 +1,94 @@
+<?php
+
+$config = Array(
+ 'Clones' => Array(
+ 'g-ug' => Array(
+ 'ParentPrefix' => 'g',
+ 'ForeignKey' => 'GroupId',
+ 'ParentTableKey' => 'GroupId',
+ ),
+
+ 'u-ug' => Array(
+ 'ParentPrefix' => 'u',
+ 'ForeignKey' => 'PortalUserId',
+ 'ParentTableKey' => 'PortalUserId',
+ ),
+
+ ),
+
+ 'ItemClass' => Array('class'=>'kDBItem','file'=>'','build_event'=>'OnItemBuild'),
+ 'ListClass' => Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'),
+ 'EventHandlerClass' => Array('class'=>'InpDBEventHandler','file'=>'','build_event'=>'OnBuild'),
+ 'TagProcessorClass' => Array('class'=>'kDBTagProcessor','file'=>'','build_event'=>'OnBuild'),
+ 'AutoLoad' => true,
+
+ 'QueryString' => Array(
+ 1 => 'id',
+ 2 => 'page',
+ 3 => 'event',
+ ),
+
+ 'IDField' => 'GroupId',
+ 'StatusField' => Array('UserStatus'),
+
+ 'TableName' => TABLE_PREFIX.'UserGroup',
+
+ 'ListSQLs' => Array( ''=>' SELECT %1$s.* %2$s FROM %1$s
+ LEFT JOIN '.TABLE_PREFIX.'PortalGroup g ON %1$s.GroupId = g.GroupId AND %1$s.PrimaryGroup = 1
+ LEFT JOIN '.TABLE_PREFIX.'PortalUser u ON u.PortalUserId = %1$s.PortalUserId'),
+
+ 'ItemSQLs' => Array( ''=>' SELECT %1$s.* %2$s FROM %1$s
+ LEFT JOIN '.TABLE_PREFIX.'PortalGroup g ON %1$s.GroupId = g.GroupId AND %1$s.PrimaryGroup = 1
+ LEFT JOIN '.TABLE_PREFIX.'PortalUser u ON u.PortalUserId = %1$s.PortalUserId'),
+
+ 'AutoDelete' => true,
+ 'AutoClone' => true,
+
+ 'CalculatedFields' => Array(
+ '' => Array(
+ 'Login' => 'u.Login',
+ 'FirstName' => 'u.FirstName',
+ 'LastName' => 'u.LastName',
+ 'Email' => 'u.Email',
+ 'PrimaryGroup' => 'g.Name',
+ 'CreatedOn' => 'u.CreatedOn',
+ 'UserStatus' => 'u.Status'
+ ),
+ ),
+
+ 'Fields' => Array(
+ 'PortalUserId' => Array('type' => 'int','not_null' => '1','default' => '0'),
+ 'GroupId' => Array(),
+ 'MembershipExpires' => Array('type' => 'int', 'formatter' => 'kDateFormatter', 'default' => ''),
+ 'PrimaryGroup' => Array('type' => 'int','not_null' => '1','default' => '1'),
+ 'ExpirationReminderSent' => Array('type' => 'int','not_null' => '1','default' => '0'),
+ ),
+
+ 'VirtualFields' => Array(
+ 'Login' => Array('type' => 'string'),
+ 'FirstName' => Array('type' => 'string'),
+ 'LastName' => Array('type' => 'string'),
+ 'Email' => Array('type' => 'string'),
+ 'PrimaryGroup' => Array('type' => 'string'),
+ 'CreatedOn' => Array('type' => 'int', 'formatter' => 'kDateFormatter', 'not_null' => 1, 'default' => '#NOW#'),
+ 'UserStatus' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array(1 => 'la_Enabled', 0 => 'la_Disabled', 2 => 'la_Pending'), 'use_phrases' => 1, 'not_null' => '1','default' => 2),
+ ),
+
+
+ 'Grids' => Array(
+ 'Default' => Array(
+ 'Icons' => Array(0 => 'icon16_user_disabled.gif', 1 => 'icon16_user.gif', 2 => 'icon16_user_pending.gif'),
+ 'Fields' => Array(
+ 'Login' => Array('title' => 'la_col_Username', 'data_block' => 'grid_checkbox_td'),
+ 'LastName' => Array( 'title'=>'la_col_LastName'),
+ 'FirstName' => Array( 'title'=>'la_col_FirstName'),
+ 'Email' => Array( 'title'=>'la_col_Email'),
+ 'PrimaryGroup' => Array( 'title'=>'la_col_PrimaryGroup'),
+ 'CreatedOn_formatted' => Array('title' => 'la_col_CreatedOn', 'sort_field' => 'CreatedOn'),
+ ),
+ ),
+ ),
+
+ );
+
+?>
\ No newline at end of file
Property changes on: trunk/core/units/user_groups/user_groups_config.php
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Event Timeline
Log In to Comment