Index: trunk/kernel/units/languages/languages_config.php =================================================================== diff -u -N -r4636 -r4637 --- trunk/kernel/units/languages/languages_config.php (.../languages_config.php) (revision 4636) +++ trunk/kernel/units/languages/languages_config.php (.../languages_config.php) (revision 4637) @@ -96,7 +96,7 @@ 'icon' => 'conf_regional', 'label' => 'la_tab_Regional', 'url' => Array('t' => 'regional/languages_list', 'index_file' => 'index4.php', 'pass' => 'm'), - 'permissions' => Array('view', 'add', 'edit', 'delete'), + 'permissions' => Array('view', 'add', 'edit', 'delete', 'advanced:set_primary', 'advanced:import', 'advanced:export'), 'priority' => 4, 'type' => stTREE, ), Index: trunk/core/kernel/utility/http_query.php =================================================================== diff -u -N -r4636 -r4637 --- trunk/core/kernel/utility/http_query.php (.../http_query.php) (revision 4636) +++ trunk/core/kernel/utility/http_query.php (.../http_query.php) (revision 4637) @@ -505,7 +505,9 @@ $sql = 'SELECT FileId FROM '.TABLE_PREFIX.'ThemeFiles - WHERE (FilePath = '.$this->Conn->qstr($t_parts['path']).') AND (FileName = '.$this->Conn->qstr($t_parts['file'].'.tpl').')'; + WHERE (FilePath = '.$this->Conn->qstr($t_parts['path']).') AND + (FileName = '.$this->Conn->qstr($t_parts['file'].'.tpl').') AND + (ThemeId = '.$this->Get('m_theme').')'; // $sql = 'SELECT FileId FROM '.TABLE_PREFIX.'ThemeFiles WHERE CONCAT(FilePath, "/", FileName) = '.$this->Conn->qstr('/'.$template_path.'.tpl'); $template_found = $this->Conn->GetOne($sql); Index: trunk/core/units/users/users_config.php =================================================================== diff -u -N -r4636 -r4637 --- trunk/core/units/users/users_config.php (.../users_config.php) (revision 4636) +++ trunk/core/units/users/users_config.php (.../users_config.php) (revision 4637) @@ -99,7 +99,7 @@ 'icon' => 'users', 'label' => 'la_tab_User_List', 'url' => Array('index_file' => 'users/user_list.php', 'pass' => 'm', 'resetpage' => 1), - 'permissions' => Array('view', 'add', 'edit', 'delete', 'advanced:ban', 'advanced:send_email'), + 'permissions' => Array('view', 'add', 'edit', 'delete', 'advanced:ban', 'advanced:send_email', 'advanced:add_favorite', 'advanced:remove_favorite',), 'priority' => 1, 'type' => stTREE, ), @@ -165,7 +165,7 @@ ) ), - 'SubItems' => Array('addr', 'u-cdata', 'u-ug'), + 'SubItems' => Array('addr', 'u-cdata', 'u-ug', 'fav'), 'FilterMenu' => Array( 'Groups' => Array( Index: trunk/kernel/units/users/users_config.php =================================================================== diff -u -N -r4636 -r4637 --- trunk/kernel/units/users/users_config.php (.../users_config.php) (revision 4636) +++ trunk/kernel/units/users/users_config.php (.../users_config.php) (revision 4637) @@ -99,7 +99,7 @@ 'icon' => 'users', 'label' => 'la_tab_User_List', 'url' => Array('index_file' => 'users/user_list.php', 'pass' => 'm', 'resetpage' => 1), - 'permissions' => Array('view', 'add', 'edit', 'delete', 'advanced:ban', 'advanced:send_email'), + 'permissions' => Array('view', 'add', 'edit', 'delete', 'advanced:ban', 'advanced:send_email', 'advanced:add_favorite', 'advanced:remove_favorite',), 'priority' => 1, 'type' => stTREE, ), @@ -165,7 +165,7 @@ ) ), - 'SubItems' => Array('addr', 'u-cdata', 'u-ug'), + 'SubItems' => Array('addr', 'u-cdata', 'u-ug', 'fav'), 'FilterMenu' => Array( 'Groups' => Array( Index: trunk/admin/install/langpacks/english.lang =================================================================== diff -u -N -r4493 -r4637 --- trunk/admin/install/langpacks/english.lang (.../english.lang) (revision 4493) +++ trunk/admin/install/langpacks/english.lang (.../english.lang) (revision 4637) @@ -22,6 +22,7 @@ QmFuIHVzZXIgbmFtZQ== SW1wb3J0ZWQ= Qm9yZGVycw== + Q2hhbmdl RG93bg== VXA= T0s= @@ -73,13 +74,15 @@ VmFsaWRhdGVkIE9u VmFsdWU= Vmlld3M= + QWRkaXRpb25hbA== QmFzZWQgT24= RGVzY3JpcHRpb24= RHVyYXRpb24= RHVyYXRpb24gVHlwZQ== RW1haWw= RXZlbnQ= Rmlyc3QgTmFtZQ== + R3JvdXAgTmFtZQ== U3lzdGVt TGFiZWw= TGFzdCBDaGFuZ2Vk @@ -90,13 +93,20 @@ TW9kdWxl TmFtZQ== UGFjayBOYW1l + QWRk + RGVsZXRl + RWRpdA== + UGVybWlzc2lvbiBOYW1l + QWNjZXNz + Vmlldw== VHlwZQ== UHJpbWFyeSBHcm91cA== UHJpbWFyeSBWYWx1ZQ== U2VsZWN0b3I= U3RhdHVz VmFsdWU= VHlwZQ== + VXNlciBDb3VudA== VmlzaXQgRGF0ZQ== SUQ= QXNjZW5kaW5n @@ -110,6 +120,7 @@ Rmlyc3QgRGF5IE9mIFdlZWs= UmVkaXJlY3QgdG8gSFRUUCB3aGVuIFNTTCBpcyBub3QgcmVxdWlyZWQ= TmFtZQ== + SW5zdWZmaWNlbnQgcGVybWlzc2lvbnMgdGVtcGxhdGU= UmVnaXN0cmF0aW9uIE51bWJlcg== UmVxdWlyZSBTU0wgZm9yIGxvZ2luICYgY2hlY2tvdXQ= U2VydmVyIE5hbWU= @@ -151,6 +162,7 @@ VGhpcyBzZWN0aW9uIGFsbG93cyB0byBtYW5hZ2UgSW4tbmV3eiBvdXRwdXQgc2V0dGluZ3M= VGhpcyBzZWN0aW9uIGFsbG93cyB0byBtYW5hZ2UgSW4tbmV3eiBkZWZhdWx0IHNlYXJjaCBjb25maWd1cmF0aW9u SW4tTmV3eiBnZW5lcmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucw== + VGhpcyBzZWN0aW9uIGFsbG93cyB0byBpbnN0YWxsIG5ldyBtb2R1bGVz VGhpcyBzZWN0aW9uIGFsbG93cyB5b3UgdG8gbWFuYWdlIGNhdGVnb3JpZXMgYW5kIGl0ZW1zIGFjcm9zcyBhbGwgY2F0ZWdvcmllcw== VGhpcyBzZWN0aW9uIGFsbG93cyB0byBwZXJmb3JtIHN5c3RlbSBiYWNrdXBz VGhpcyBzZWN0aW9uIGFsbG93cyB5b3UgdG8gYnJvd3NlIHRoZSBjYXRhbG9nIGFuZCBtYW5hZ2UgY2F0ZWdvcmllcyBhbmQgaXRlbXM= @@ -169,7 +181,8 @@ VGhpcyBzZWN0aW9uIGFsbG93cyB0byBpbXBvcnQgZGF0YSBmcm9tIG90aGVyIHByb2dyYW1zIGludG8gSW4tcG9ydGFs VGhpcyBzZWN0aW9uIHNob3dzIHN1bW1hcnkgc3RhdGlzdGljcw== VGhpcyBzZWN0aW9uIGFsbG93cyB0byBwZXJmb3JtIGRhdGEgaW1wb3J0IGZyb20gb3RoZXIgc3lzdGVtcw== - TWFuYWdlIHNldHRpbmdzIG9mIGFsbCBtb2R1bGVzIHdoaWNoIGFyZSBpbnN0YWxsZWQgb24geW91ciBJbi1wb3J0YWwgc3lzdGVtLg== + TWFuYWdlIHN0YXR1cyBvZiBhbGwgbW9kdWxlcyB3aGljaCBhcmUgaW5zdGFsbGVkIG9uIHlvdXIgSW4tcG9ydGFsIHN5c3RlbS4= + VGhpcyBzZWN0aW9uIGFsbG93cyB0byBlbmFibGVkIGFuZCBkaXNhYmxlIG1vZHVsZXM= VmlldyBzeXN0ZW0gc3RhdGlzdGljcywgbG9ncyBhbmQgcmVwb3J0cw== VGhpcyBzZWN0aW9uIGFsbG93cyB0byBwZXJmb3JtIGRhdGFiYXNlIHJlc3RvcmVz VGhpcyBzZWN0aW9uIGRpc3BsYXlzIGEgbGlzdCBvZiBhbGwgcmV2aWV3cyBpbiB0aGUgc3lzdGVtLg== @@ -179,6 +192,7 @@ TWFuYWdlIHRoZSBzdHJ1Y3R1cmUgb2YgeW91ciBzaXRlLCBpbmNsdWRpbmcgY2F0ZWdvcmllcywgaXRlbXMgYW5kIGNhdGVnb3J5IHNldHRpbmdzLg== VGhpcyBzZWN0aW9uIGFsbG93cyB0byBwZXJmb3JtIGRpcmVjdCBTUUwgcXVlcmllcyBvbiBJbi1wb3J0YWwgZGF0YWJhc2U= TWFuYWdlIHN5c3RlbS13aWRlIHNldHRpbmdzLCBlZGl0IHRoZW1lcyBhbmQgbGFuZ3VhZ2Vz + VGhpcyBzZWN0aW9uIHNob3dzIGF2YWlsYWJsZSB0YWdzIGZvciB1c2luZyBpbiB0ZW1wbGF0ZXM= VXNlIHZhcmlvdXMgSW4tcG9ydGFsIGRhdGEgbWFuYWdlbWVudCB0b29scywgaW5jbHVkaW5nIGJhY2t1cCwgcmVzdG9yZSwgaW1wb3J0IGFuZCBleHBvcnQ= TWFuYWdlIHVzZXJzIGFuZCBncm91cHMsIHNldCB1c2VyICYgZ3JvdXAgcGVybWlzc2lvbnMgYW5kIGRlZmluZSB1c2VyIHNldHRpbmdzLg== TWFuYWdlIFVzZXIgQmFuIFJ1bGVz @@ -304,6 +318,8 @@ Rm9udCBTaXpl Rm9udCBTdHlsZQ== Rm9udCBXZWlnaHQ= + SUQ= + R3JvdXAgTmFtZQ== SGVpZ2h0 SG90 SWNvbiBVUkw= @@ -883,8 +899,10 @@ TWVzc2FnZQ== U2VjdGlvbiBPdmVydmlldw== UHJvcGVydGllcw== + UXVpY2sgTGlua3M= VGVtcGxhdGVz VHJhbnNsYXRpb24= + U2VhcmNoIFVzZXJz U2VsZWN0aW5nIENhdGVnb3JpZXM= RW1wdHkgc2VsZWN0aW9u T25lIGZpZWxkIGZvciBlYWNoIGNhdGVnb3J5IGxldmVs @@ -943,7 +961,7 @@ TWVzc2FnZQ== TWlzc2luZyBMYWJlbHM= TW9kdWxlcw== - TW9kdWxlcyAmIFNldHRpbmdz + TW9kdWxlcyBNYW5hZ2VtZW50 T3ZlcnZpZXc= UGFja2FnZSBDb250ZW50 UGVybWlzc2lvbnM= @@ -1206,9 +1224,11 @@ Wmlw QWRkaW5nIEJhc2UgU3R5bGU= QWRkaW5nIEJsb2NrIFN0eWxl + QWRkaW5nIEdyb3Vw QWRkaW5nIExhbmd1YWdl QWRkaW5nIFBocmFzZQ== QWRkaW5nIFN0eWxlc2hlZXQ= + QWRkaXRpb25hbCBQZXJtaXNzaW9ucw== QWRkIE1vZHVsZQ== QWR2YW5jZWQgVmlldw== QmFja3Vw @@ -1229,6 +1249,7 @@ RWRpdGluZyBCYXNlIFN0eWxl RWRpdGluZyBCbG9jayBTdHlsZQ== RWRpdGluZyBDYXRlZ29yeQ== + RWRpdGluZyBHcm91cA== RWRpdGluZyBMYW5ndWFnZQ== RWRpdGluZyBQaHJhc2U= RWRpdGluZyBTdHlsZXNoZWV0 @@ -1246,6 +1267,7 @@ RXhwb3J0IExhbmd1YWdlIFBhY2sgLSBTdGVwMQ== R2VuZXJhbA== R2VuZXJhbCBDb25maWd1cmF0aW9u + R3JvdXBz U2VsZWN0IGdyb3Vw SGVscA== SW1wb3J0IERhdGE= @@ -1264,9 +1286,12 @@ TW9kdWxlIFN0YXR1cw== TmV3IEJhc2UgU3R5bGU= TmV3IEJsb2NrIFN0eWxl + TmV3IEdyb3Vw TmV3IExhbmd1YWdl TmV3IFBocmFzZQ== TmV3IFN0eWxlc2hlZXQ= + Tm8gUGVybWlzc2lvbnM= + UGVybWlzc2lvbnM= UGxlYXNlIFdhaXQ= UmVnaW9uYWw= UmVnaW9uYWwgU2V0dGluZ3M= @@ -1299,6 +1324,7 @@ QWRkIFVzZXIgVG8gR3JvdXA= QXBwbHkgUnVsZXM= QXBwcm92ZQ== + QmFjaw== QmFu Q2FuY2Vs Q2xvbmU= Index: trunk/core/kernel/event_handler.php =================================================================== diff -u -N -r4627 -r4637 --- trunk/core/kernel/event_handler.php (.../event_handler.php) (revision 4627) +++ trunk/core/kernel/event_handler.php (.../event_handler.php) (revision 4637) @@ -340,9 +340,6 @@ } if (!$perm_status) { - // permission not found -> redirect to "no permissions" template - $event->setEventParam('no_permissions_template', 'no_permissions'); - // for debugging purposes $event->SetRedirectParam('section', $section); $event->SetRedirectParam('main_prefix', $main_prefix); Index: trunk/core/kernel/db/db_event_handler.php =================================================================== diff -u -N -r4636 -r4637 --- trunk/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 4636) +++ trunk/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 4637) @@ -78,6 +78,7 @@ { parent::mapPermissions(); $permissions = Array( + 'OnNew' => Array(/*'self' => 'add',*/ 'subitem' => 'add'), 'OnCreate' => Array('self' => 'add', 'subitem' => 'add|edit'), 'OnDelete' => Array('self' => 'delete', 'subitem' => 'edit|add'), 'OnMassDelete' => Array('self' => 'delete', 'subitem' => 'edit|add'), @@ -108,6 +109,8 @@ 'OnSearch' => Array('self' => 'view', 'subitem' => 'view'), 'OnSearchReset' => Array('self' => 'view', 'subitem' => 'view'), + + 'OnGoBack' => Array('self' => true, 'subitem' => true), ); $this->permMapping = array_merge($this->permMapping, $permissions); } Index: trunk/kernel/units/reviews/reviews_event_handler.php =================================================================== diff -u -N -r4627 -r4637 --- trunk/kernel/units/reviews/reviews_event_handler.php (.../reviews_event_handler.php) (revision 4627) +++ trunk/kernel/units/reviews/reviews_event_handler.php (.../reviews_event_handler.php) (revision 4637) @@ -3,6 +3,38 @@ class ReviewsEventHandler extends InpDBEventHandler { /** + * Checks permissions of user + * + * @param kEvent $event + */ + function CheckPermission(&$event) + { + if ($event->Name == 'OnAddReview') { + $item_prefix = $this->getPermPrefix($event); + return $this->Application->CheckPermission($item_prefix.'.REVIEW.PENDING', 0) || $this->Application->CheckPermission($item_prefix.'.REVIEW', 0); + } + + return parent::CheckPermission($event); + } + + /** + * Returns prefix for permissions + * + * @param kEvent $event + */ + function getPermPrefix(&$event) + { + $main_prefix = $this->Application->GetTopmostPrefix($event->Prefix); + // this will return LINK for l, ARTICLE for n, TOPIC for bb, PRODUCT for p + $item_prefix = $this->Application->getUnitOption($main_prefix, 'PermItemPrefix'); + + if (!$item_prefix) $item_prefix = 'PRODUCT'; + + return $item_prefix; + } + + + /** * Apply any custom changes to list's sql query * * @param kEvent $event @@ -131,6 +163,7 @@ } else { + $this->Application->removeObject($event->getPrefixSpecial()); $event->status == erFAIL; $event->redirect=false; $object->FieldErrors['ReviewText']['pseudo'] = 'too_frequent'; Index: trunk/kernel/units/languages/languages_event_handler.php =================================================================== diff -u -N -r4636 -r4637 --- trunk/kernel/units/languages/languages_event_handler.php (.../languages_event_handler.php) (revision 4636) +++ trunk/kernel/units/languages/languages_event_handler.php (.../languages_event_handler.php) (revision 4637) @@ -2,13 +2,27 @@ class LanguagesEventHandler extends InpDBEventHandler { + /** + * Allows to override standart permission mapping + * + */ function mapPermissions() { parent::mapPermissions(); - $this->permMapping['OnChangeLanguage'] = Array('self' => true); + $permissions = Array( + 'OnChangeLanguage' => Array('self' => true), + 'OnSetPrimary' => Array('self' => 'advanced:set_primary|add|edit'), + 'OnImportLanguage' => Array('self' => 'advanced:import'), + 'OnExportLanguage' => Array('self' => 'advanced:export'), + 'OnExportProgress' => Array('self' => 'advanced:export'), + + ); + $this->permMapping = array_merge($this->permMapping, $permissions); } + + /** * Updates table structure on new language adding/removing language * Index: trunk/core/kernel/event_manager.php =================================================================== diff -u -N -r4630 -r4637 --- trunk/core/kernel/event_manager.php (.../event_manager.php) (revision 4630) +++ trunk/core/kernel/event_manager.php (.../event_manager.php) (revision 4637) @@ -270,7 +270,8 @@ } if ($event->status == erPERM_FAIL) { - $event->redirect = $event->getEventParam('no_permissions_template') ? $event->getEventParam('no_permissions_template') : 'no_permissions'; + $event->redirect = $this->Application->IsAdmin() ? 'no_permission' : $this->Application->ConfigValue('NoPermissionTemplate'); + // restore stuff, that processOpener() changed $this->Application->RestoreVar('opener_stack'); // don't save last_template, because no_permission template does js history.back and could cause invalid opener_stack content Index: trunk/admin/install/upgrades/inportal_upgrade_v1.1.9.sql =================================================================== diff -u -N -r4607 -r4637 --- trunk/admin/install/upgrades/inportal_upgrade_v1.1.9.sql (.../inportal_upgrade_v1.1.9.sql) (revision 4607) +++ trunk/admin/install/upgrades/inportal_upgrade_v1.1.9.sql (.../inportal_upgrade_v1.1.9.sql) (revision 4637) @@ -5,5 +5,7 @@ ALTER TABLE PortalUserCustomData ADD INDEX (ResourceId); ALTER TABLE Permissions CHANGE Permission Permission VARCHAR(255) NOT NULL; +INSERT INTO ConfigurationValues VALUES ('NoPermissionTemplate', 'access_denied', 'In-Portal', 'in-portal:configure_general'); +INSERT INTO ConfigurationAdmin VALUES ('NoPermissionTemplate', 'la_Text_Website', 'la_config_nopermission_template', 'text', '', '', 17, 0); UPDATE Modules SET Version = '1.1.9' WHERE Name = 'In-Portal'; \ No newline at end of file Index: trunk/core/units/languages/languages_event_handler.php =================================================================== diff -u -N -r4636 -r4637 --- trunk/core/units/languages/languages_event_handler.php (.../languages_event_handler.php) (revision 4636) +++ trunk/core/units/languages/languages_event_handler.php (.../languages_event_handler.php) (revision 4637) @@ -2,13 +2,27 @@ class LanguagesEventHandler extends InpDBEventHandler { + /** + * Allows to override standart permission mapping + * + */ function mapPermissions() { parent::mapPermissions(); - $this->permMapping['OnChangeLanguage'] = Array('self' => true); + $permissions = Array( + 'OnChangeLanguage' => Array('self' => true), + 'OnSetPrimary' => Array('self' => 'advanced:set_primary|add|edit'), + 'OnImportLanguage' => Array('self' => 'advanced:import'), + 'OnExportLanguage' => Array('self' => 'advanced:export'), + 'OnExportProgress' => Array('self' => 'advanced:export'), + + ); + $this->permMapping = array_merge($this->permMapping, $permissions); } + + /** * Updates table structure on new language adding/removing language * Index: trunk/core/units/reviews/reviews_event_handler.php =================================================================== diff -u -N -r4627 -r4637 --- trunk/core/units/reviews/reviews_event_handler.php (.../reviews_event_handler.php) (revision 4627) +++ trunk/core/units/reviews/reviews_event_handler.php (.../reviews_event_handler.php) (revision 4637) @@ -3,6 +3,38 @@ class ReviewsEventHandler extends InpDBEventHandler { /** + * Checks permissions of user + * + * @param kEvent $event + */ + function CheckPermission(&$event) + { + if ($event->Name == 'OnAddReview') { + $item_prefix = $this->getPermPrefix($event); + return $this->Application->CheckPermission($item_prefix.'.REVIEW.PENDING', 0) || $this->Application->CheckPermission($item_prefix.'.REVIEW', 0); + } + + return parent::CheckPermission($event); + } + + /** + * Returns prefix for permissions + * + * @param kEvent $event + */ + function getPermPrefix(&$event) + { + $main_prefix = $this->Application->GetTopmostPrefix($event->Prefix); + // this will return LINK for l, ARTICLE for n, TOPIC for bb, PRODUCT for p + $item_prefix = $this->Application->getUnitOption($main_prefix, 'PermItemPrefix'); + + if (!$item_prefix) $item_prefix = 'PRODUCT'; + + return $item_prefix; + } + + + /** * Apply any custom changes to list's sql query * * @param kEvent $event @@ -131,6 +163,7 @@ } else { + $this->Application->removeObject($event->getPrefixSpecial()); $event->status == erFAIL; $event->redirect=false; $object->FieldErrors['ReviewText']['pseudo'] = 'too_frequent'; Index: trunk/admin/install/inportal_data.sql =================================================================== diff -u -N -r4298 -r4637 --- trunk/admin/install/inportal_data.sql (.../inportal_data.sql) (revision 4298) +++ trunk/admin/install/inportal_data.sql (.../inportal_data.sql) (revision 4637) @@ -60,6 +60,7 @@ INSERT INTO ConfigurationAdmin VALUES ('UseJSRedirect', 'la_Text_Website', 'la_config_use_js_redirect', 'checkbox', '', '', 17, 0); INSERT INTO ConfigurationAdmin VALUES ('MaxImportCategoryLevels', 'la_Text_General', 'la_prompt_max_import_category_levels', 'text', '', '', 9, 1); INSERT INTO ConfigurationAdmin VALUES ('UseCronForRegularEvent', 'la_Text_Website', 'la_UseCronForRegularEvent', 'checkbox', NULL, NULL, 18, 0); +INSERT INTO ConfigurationAdmin VALUES ('NoPermissionTemplate', 'la_Text_Website', 'la_config_nopermission_template', 'text', '', '', 17, 0); INSERT INTO ConfigurationValues VALUES ('Columns_Category', '2', 'In-Portal', 'Categories') INSERT INTO ConfigurationValues VALUES ('DomainSelect','1','In-Portal','in-portal:configure_general') @@ -192,6 +193,7 @@ INSERT INTO ConfigurationValues VALUES ('UseJSRedirect', '0', 'In-Portal', 'in-portal:configure_general'); INSERT INTO ConfigurationValues VALUES ('MaxImportCategoryLevels', '10', 'In-Portal', 'in-portal:configure_categories'); INSERT INTO ConfigurationValues VALUES ('UseCronForRegularEvent', '0', 'In-Portal', 'in-portal:configure_general'); +INSERT INTO ConfigurationValues VALUES ('NoPermissionTemplate', 'access_denied', 'In-Portal', 'in-portal:configure_general'); INSERT INTO Events VALUES (30, 'USER.ADD', 1, 0, 'In-Portal:Users', 'la_event_user.add', 0) INSERT INTO Events VALUES (32, 'USER.ADD', 2, 0, 'In-Portal:Users', 'la_event_user.add', 1) Index: trunk/core/units/languages/languages_config.php =================================================================== diff -u -N -r4636 -r4637 --- trunk/core/units/languages/languages_config.php (.../languages_config.php) (revision 4636) +++ trunk/core/units/languages/languages_config.php (.../languages_config.php) (revision 4637) @@ -96,7 +96,7 @@ 'icon' => 'conf_regional', 'label' => 'la_tab_Regional', 'url' => Array('t' => 'regional/languages_list', 'index_file' => 'index4.php', 'pass' => 'm'), - 'permissions' => Array('view', 'add', 'edit', 'delete'), + 'permissions' => Array('view', 'add', 'edit', 'delete', 'advanced:set_primary', 'advanced:import', 'advanced:export'), 'priority' => 4, 'type' => stTREE, ),