Page MenuHomeIn-Portal Phabricator

in-portal
No OneTemporary

File Metadata

Created
Tue, Sep 23, 7:39 AM

in-portal

Index: branches/unlabeled/unlabeled-1.1.2/admin/install/upgrades/changelog_1_2_0.txt
===================================================================
--- branches/unlabeled/unlabeled-1.1.2/admin/install/upgrades/changelog_1_2_0.txt (revision 5477)
+++ branches/unlabeled/unlabeled-1.1.2/admin/install/upgrades/changelog_1_2_0.txt (revision 5478)
@@ -1,443 +1,443 @@
File in-portal/globals.php changed
File in-portal/index.php changed
File in-portal/admin/addreview_direct.php changed
File in-portal/admin/advanced_view.php changed
File in-portal/admin/browse.php changed
File in-portal/admin/head.php is removed; release_1_1_8 revision 1.12
File in-portal/admin/index.php changed
File in-portal/admin/index4.php changed
File in-portal/admin/index4_direct.php is new; release_1_2_0 revision 1.2
File in-portal/admin/install.php changed
File in-portal/admin/login.php is removed; release_1_1_8 revision 1.6
File in-portal/admin/relation_select.php changed
File in-portal/admin/reviews.php changed
File in-portal/admin/tag_listing.php changed
File in-portal/admin/backup/backup1.php changed
File in-portal/admin/backup/backup2.php changed
File in-portal/admin/backup/backup3.php changed
File in-portal/admin/backup/export1.php changed
File in-portal/admin/backup/restore1.php changed
File in-portal/admin/backup/restore2.php changed
File in-portal/admin/backup/restore3.php changed
File in-portal/admin/backup/restore4.php changed
File in-portal/admin/category/addcategory.php changed
File in-portal/admin/category/addcategory_permissions.php changed
File in-portal/admin/category/addimage.php changed
File in-portal/admin/category/category_items.php is new; release_1_2_0 revision 1.4
File in-portal/admin/category/permcacheupdate.php changed
File in-portal/admin/config/addtheme.php changed
File in-portal/admin/config/addtheme_templates.php changed
File in-portal/admin/config/config_general.php is removed; release_1_1_8 revision 1.3
File in-portal/admin/config/config_theme.php changed
File in-portal/admin/config/edit_banlist.php changed
File in-portal/admin/config/edit_config.php is removed; release_1_1_8 revision 1.9
File in-portal/admin/config/edit_template.php changed
File in-portal/admin/config/email_edit.php changed
File in-portal/admin/config/module_email.php is removed; release_1_1_8 revision 1.13
File in-portal/admin/email/do_send.php changed
File in-portal/admin/help/manual.pdf changed
File in-portal/admin/icons/icon24_advanced_view.gif is removed; release_1_1_8 revision 1.2
File in-portal/admin/icons/icon24_reviews.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/icons/icon24_server_info.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/icons/icon24_settings_censor.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/icons/icon24_settings_contacts.gif is removed; release_1_1_8 revision 1.2
File in-portal/admin/icons/icon24_settings_smiley.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/icons/icon24_validate.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/icons/icon46_cat_settings.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/icons/icon46_list_email_log.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/icons/icon46_list_server_info.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/icons/icon46_list_settings_contacts.gif is removed; release_1_1_8 revision 1.2
File in-portal/admin/icons/icon46_list_settings_custom.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/icons/icon46_list_settings_email.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/icons/icon46_list_settings_general.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/icons/icon46_list_settings_output.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/icons/icon46_list_settings_search.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/icons/icon46_list_validate.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/icons/icon46_user_settings.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/import/step1.php changed
File in-portal/admin/import/step2.php changed
File in-portal/admin/import/step3.php changed
File in-portal/admin/import/step4.php changed
File in-portal/admin/include/elements.php changed
File in-portal/admin/include/mainscript.js changed
File in-portal/admin/include/mainscript.php changed
File in-portal/admin/include/sections.php changed
File in-portal/admin/install/inportal_data.sql changed
File in-portal/admin/install/inportal_remove.sql changed
File in-portal/admin/install/inportal_schema.sql changed
File in-portal/admin/install/install_lib.php changed
File in-portal/admin/install/prerequisit_errors.php changed
File in-portal/admin/install/langpacks/english.lang changed
-File in-portal/admin/install/upgrades/changelog_1_2_0.txt is new; release_1_2_0 revision 1.1.2.8
+File in-portal/admin/install/upgrades/changelog_1_2_0.txt is new; release_1_2_0 revision 1.1.2.9
File in-portal/admin/install/upgrades/inportal_upgrade_v1.2.0.sql is new; release_1_2_0 revision 1.3.2.6
File in-portal/admin/install/upgrades/readme_1_2_0.txt is new; release_1_2_0 revision 1.1.2.2
File in-portal/admin/logs/email_log.php changed
File in-portal/admin/logs/searchlog.php changed
File in-portal/admin/logs/session_list.php changed
File in-portal/admin/logs/summary.php changed
File in-portal/admin/modules/addmodule.php changed
File in-portal/admin/tools/server_info.php changed
File in-portal/admin/tools/sql_query.php changed
File in-portal/admin/tools/sql_result.php changed
File in-portal/admin/tree/ftiens4.js is removed; release_1_1_8 revision 1.2
File in-portal/admin/tree/ftv2blank.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/tree/ftv2doc.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/tree/ftv2folderclosed.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/tree/ftv2folderopen.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/tree/ftv2lastnode.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/tree/ftv2link.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/tree/ftv2mlastnode.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/tree/ftv2mnode.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/tree/ftv2node.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/tree/ftv2plastnode.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/tree/ftv2pnode.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/tree/ftv2vertline.gif is removed; release_1_1_8 revision 1.1
File in-portal/admin/tree/tree.php is removed; release_1_1_8 revision 1.13.2.1
File in-portal/admin/tree/ua.js is removed; release_1_1_8 revision 1.1
File in-portal/admin/users/addgroup.php is removed; release_1_1_8 revision 1.11.20.1
File in-portal/admin/users/addgroup_permissions.php is removed; release_1_1_8 revision 1.8
File in-portal/admin/users/addgroup_users.php is removed; release_1_1_8 revision 1.15.32.1
File in-portal/admin/users/addrule.php changed
File in-portal/admin/users/adduser.php changed
File in-portal/admin/users/adduser_custom.php changed
File in-portal/admin/users/adduser_groups.php changed
File in-portal/admin/users/adduser_images.php changed
File in-portal/admin/users/adduser_items.php changed
File in-portal/admin/users/adduser_permissions.php changed
File in-portal/admin/users/banuser.php changed
File in-portal/admin/users/group_addpermission.php is removed; release_1_1_8 revision 1.9
File in-portal/admin/users/user_addimage.php changed
File in-portal/admin/users/user_addpermission.php changed
File in-portal/admin/users/user_editgroup.php changed
File in-portal/admin/users/user_list.php changed
File in-portal/kernel/action.php changed
File in-portal/kernel/constants.php changed
File in-portal/kernel/frontaction.php changed
File in-portal/kernel/parser.php changed
File in-portal/kernel/searchaction.php changed
File in-portal/kernel/startup.php changed
File in-portal/kernel/admin/include/navmenu.php changed
File in-portal/kernel/admin/include/help/configure_categories.txt is removed; release_1_1_8 revision 1.1
File in-portal/kernel/admin/include/help/configure_general.txt is removed; release_1_1_8 revision 1.6
File in-portal/kernel/admin/include/help/configure_users.txt is removed; release_1_1_8 revision 1.1
File in-portal/kernel/admin/include/help/editcategory_items.txt is new; release_1_2_0 revision 1.1.2.1
File in-portal/kernel/admin/include/help/reports.txt is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin/include/help/root.txt is removed; release_1_1_8 revision 1.1
File in-portal/kernel/admin/include/help/site.txt is removed; release_1_1_8 revision 1.1
File in-portal/kernel/admin/include/help/system.txt is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin/include/help/users.txt is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin/include/summary/root.php changed
File in-portal/kernel/admin/include/toolbar/advanced_view.php changed
File in-portal/kernel/admin/include/toolbar/browse.php changed
File in-portal/kernel/admin/include/toolbar/configure_users.php is removed; release_1_1_8 revision 1.1
File in-portal/kernel/admin/include/toolbar/editcategory_relationselect.php changed
File in-portal/kernel/admin_templates/category_selector.tpl changed
File in-portal/kernel/admin_templates/head.tpl is new; release_1_2_0 revision 1.4
File in-portal/kernel/admin_templates/help.tpl changed
File in-portal/kernel/admin_templates/import_redirect.tpl changed
File in-portal/kernel/admin_templates/index.tpl changed
File in-portal/kernel/admin_templates/login.tpl is new; release_1_2_0 revision 1.3
File in-portal/kernel/admin_templates/no_permission.tpl is new; release_1_2_0 revision 1.5
File in-portal/kernel/admin_templates/sections_list.tpl is new; release_1_2_0 revision 1.8.2.1
File in-portal/kernel/admin_templates/tree.tpl is new; release_1_2_0 revision 1.14
File in-portal/kernel/admin_templates/user_selector.tpl is new; release_1_2_0 revision 1.4
File in-portal/kernel/admin_templates/category/category_items.tpl is new; release_1_2_0 revision 1.2
File in-portal/kernel/admin_templates/config/config_email.tpl changed
File in-portal/kernel/admin_templates/config/config_general.tpl is new; release_1_2_0 revision 1.3
File in-portal/kernel/admin_templates/config/config_search.tpl changed
File in-portal/kernel/admin_templates/config/config_search_edit.tpl is new; release_1_2_0 revision 1.4
File in-portal/kernel/admin_templates/config/config_universal.tpl changed
File in-portal/kernel/admin_templates/custom_fields/custom_fields_edit.tpl changed
File in-portal/kernel/admin_templates/custom_fields/custom_fields_list.tpl changed
File in-portal/kernel/admin_templates/groups/groups_edit.tpl is new; release_1_2_0 revision 1.3
File in-portal/kernel/admin_templates/groups/groups_edit_permissions.tpl is new; release_1_2_0 revision 1.8.2.1
File in-portal/kernel/admin_templates/groups/groups_edit_tabs.tpl is new; release_1_2_0 revision 1.1.2.1
File in-portal/kernel/admin_templates/groups/groups_edit_users.tpl is new; release_1_2_0 revision 1.4
File in-portal/kernel/admin_templates/groups/groups_list.tpl is new; release_1_2_0 revision 1.3
File in-portal/kernel/admin_templates/groups/permissions_selector.tpl is new; release_1_2_0 revision 1.7.2.1
File in-portal/kernel/admin_templates/img/globe.gif changed
File in-portal/kernel/admin_templates/img/logo.gif changed
File in-portal/kernel/admin_templates/img/icons/icon24_advanced_view.gif is new; release_1_2_0 revision 1.1
File in-portal/kernel/admin_templates/img/icons/icon24_affiliates.gif is removed; release_1_1_8 revision 1.1
File in-portal/kernel/admin_templates/img/icons/icon24_currencies.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon24_discounts.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon24_download_log.gif is removed; release_1_1_8 revision 1.1
File in-portal/kernel/admin_templates/img/icons/icon24_email_log.gif is new; release_1_2_0 revision 1.1
File in-portal/kernel/admin_templates/img/icons/icon24_in-commerce.gif is removed; release_1_1_8 revision 1.1
File in-portal/kernel/admin_templates/img/icons/icon24_lock_login.gif is new; release_1_2_0 revision 1.1
File in-portal/kernel/admin_templates/img/icons/icon24_manufacturers.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon24_orders.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon24_paid_listings.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon24_payment_log.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon24_payment_types.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon24_reviews.gif is new; release_1_2_0 revision 1.1
File in-portal/kernel/admin_templates/img/icons/icon24_server_info.gif is new; release_1_2_0 revision 1.1
File in-portal/kernel/admin_templates/img/icons/icon24_settings_censor.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon24_settings_smiley.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon24_shipping.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon24_taxes.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon46_affiliate_payment_types.gif is removed; release_1_1_8 revision 1.1
File in-portal/kernel/admin_templates/img/icons/icon46_affiliate_plans.gif is removed; release_1_1_8 revision 1.1
File in-portal/kernel/admin_templates/img/icons/icon46_affiliates.gif is removed; release_1_1_8 revision 1.1
File in-portal/kernel/admin_templates/img/icons/icon46_currencies.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon46_discounts.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon46_download_log.gif is removed; release_1_1_8 revision 1.1
File in-portal/kernel/admin_templates/img/icons/icon46_in-commerce.gif is removed; release_1_1_8 revision 1.1
File in-portal/kernel/admin_templates/img/icons/icon46_list_advanced_view.gif is new; release_1_2_0 revision 1.1
File in-portal/kernel/admin_templates/img/icons/icon46_list_affiliates.gif is removed; release_1_1_8 revision 1.1
File in-portal/kernel/admin_templates/img/icons/icon46_list_currencies.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon46_list_discounts.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon46_list_download_log.gif is removed; release_1_1_8 revision 1.1
File in-portal/kernel/admin_templates/img/icons/icon46_list_email_log.gif is new; release_1_2_0 revision 1.1
File in-portal/kernel/admin_templates/img/icons/icon46_list_in-commerce.gif is removed; release_1_1_8 revision 1.1
File in-portal/kernel/admin_templates/img/icons/icon46_list_manufacturers.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon46_list_orders.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon46_list_payment_log.gif is removed; release_1_1_8 revision 1.1
File in-portal/kernel/admin_templates/img/icons/icon46_list_payment_types.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon46_list_reviews.gif is new; release_1_2_0 revision 1.1
File in-portal/kernel/admin_templates/img/icons/icon46_list_server_info.gif is new; release_1_2_0 revision 1.1
File in-portal/kernel/admin_templates/img/icons/icon46_list_shipping.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon46_list_taxes.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon46_listing_types.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon46_listings.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon46_manufacturers.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon46_orders.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon46_paid_listings.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon46_payment_log.gif is removed; release_1_1_8 revision 1.1
File in-portal/kernel/admin_templates/img/icons/icon46_payment_types.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon46_products.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon46_settings_categories.gif is new; release_1_2_0 revision 1.1
File in-portal/kernel/admin_templates/img/icons/icon46_settings_users.gif is new; release_1_2_0 revision 1.1
File in-portal/kernel/admin_templates/img/icons/icon46_shipping.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/icons/icon46_taxes.gif is removed; release_1_1_8 revision 1.2
File in-portal/kernel/admin_templates/img/itemicons/icon16_group.gif is new; release_1_2_0 revision 1.1
File in-portal/kernel/admin_templates/img/itemicons/icon16_group_disabled.gif is new; release_1_2_0 revision 1.1
File in-portal/kernel/admin_templates/img/summary/searchbox_bg.gif changed
File in-portal/kernel/admin_templates/img/summary/usersbox_bg.gif changed
File in-portal/kernel/admin_templates/img/toolbar/tool_merge_links.gif is new; release_1_2_0 revision 1.1
File in-portal/kernel/admin_templates/img/toolbar/tool_merge_links_f2.gif is new; release_1_2_0 revision 1.1
File in-portal/kernel/admin_templates/img/toolbar/tool_merge_links_f3.gif is new; release_1_2_0 revision 1.1
File in-portal/kernel/admin_templates/img/tree/ftv2blank.gif is new; release_1_2_0 revision 1.1
File in-portal/kernel/admin_templates/img/tree/ftv2lastnode.gif is new; release_1_2_0 revision 1.1
File in-portal/kernel/admin_templates/img/tree/ftv2mlastnode.gif is new; release_1_2_0 revision 1.1
File in-portal/kernel/admin_templates/img/tree/ftv2mnode.gif is new; release_1_2_0 revision 1.1
File in-portal/kernel/admin_templates/img/tree/ftv2node.gif is new; release_1_2_0 revision 1.1
File in-portal/kernel/admin_templates/img/tree/ftv2plastnode.gif is new; release_1_2_0 revision 1.1
File in-portal/kernel/admin_templates/img/tree/ftv2pnode.gif is new; release_1_2_0 revision 1.1
File in-portal/kernel/admin_templates/img/tree/ftv2vertline.gif is new; release_1_2_0 revision 1.1
File in-portal/kernel/admin_templates/incs/blocks.tpl changed
File in-portal/kernel/admin_templates/incs/config_blocks.tpl changed
File in-portal/kernel/admin_templates/incs/custom_blocks.tpl changed
File in-portal/kernel/admin_templates/incs/export.js changed
File in-portal/kernel/admin_templates/incs/footer.tpl changed
File in-portal/kernel/admin_templates/incs/footer_mini.tpl is new; release_1_2_0 revision 1.2
File in-portal/kernel/admin_templates/incs/form_blocks.tpl changed
File in-portal/kernel/admin_templates/incs/grid.js changed
File in-portal/kernel/admin_templates/incs/grid_blocks.tpl changed
File in-portal/kernel/admin_templates/incs/header.tpl changed
File in-portal/kernel/admin_templates/incs/header_mini.tpl is new; release_1_2_0 revision 1.2
File in-portal/kernel/admin_templates/incs/script.js changed
File in-portal/kernel/admin_templates/incs/sections_list.css is new; release_1_2_0 revision 1.2
File in-portal/kernel/admin_templates/incs/style.css changed
File in-portal/kernel/admin_templates/incs/tree.js is new; release_1_2_0 revision 1.7
File in-portal/kernel/admin_templates/modules/modules_list.tpl is new; release_1_2_0 revision 1.4
File in-portal/kernel/admin_templates/popups/translator.tpl changed
File in-portal/kernel/admin_templates/regional/email_messages_edit.tpl changed
File in-portal/kernel/admin_templates/regional/languages_edit.tpl changed
File in-portal/kernel/admin_templates/regional/languages_edit_email_events.tpl changed
File in-portal/kernel/admin_templates/regional/languages_edit_phrases.tpl changed
File in-portal/kernel/admin_templates/regional/languages_export.tpl changed
File in-portal/kernel/admin_templates/regional/languages_export_step2.tpl changed
File in-portal/kernel/admin_templates/regional/languages_import.tpl changed
File in-portal/kernel/admin_templates/regional/languages_import_step2.tpl changed
File in-portal/kernel/admin_templates/regional/languages_list.tpl changed
File in-portal/kernel/admin_templates/regional/phrases_edit.tpl changed
File in-portal/kernel/admin_templates/stylesheets/base_style_edit.tpl changed
File in-portal/kernel/admin_templates/stylesheets/block_style_edit.tpl changed
File in-portal/kernel/admin_templates/stylesheets/style_editor.tpl changed
File in-portal/kernel/admin_templates/stylesheets/stylesheets_edit.tpl changed
File in-portal/kernel/admin_templates/stylesheets/stylesheets_edit_base.tpl changed
File in-portal/kernel/admin_templates/stylesheets/stylesheets_edit_block.tpl changed
File in-portal/kernel/admin_templates/stylesheets/stylesheets_list.tpl changed
File in-portal/kernel/admin_templates/summary/root.tpl is new; release_1_2_0 revision 1.2
File in-portal/kernel/admin_templates/visits/visits_list.tpl changed
File in-portal/kernel/admin_templates/xml/tree_categories.tpl is new; release_1_2_0 revision 1.2.2.1
File in-portal/kernel/cache/.cvsignore changed
File in-portal/kernel/images/.cvsignore changed
File in-portal/kernel/images/pending/.cvsignore changed
File in-portal/kernel/include/category.php changed
File in-portal/kernel/include/config.php changed
File in-portal/kernel/include/customfield.php changed
File in-portal/kernel/include/custommetadata.php changed
File in-portal/kernel/include/debugger.php changed
File in-portal/kernel/include/emailmessage.php changed
File in-portal/kernel/include/image.php changed
File in-portal/kernel/include/item.php changed
File in-portal/kernel/include/itemtypes.php changed
File in-portal/kernel/include/modlist.php changed
File in-portal/kernel/include/modules.php changed
File in-portal/kernel/include/parse.php changed
File in-portal/kernel/include/portaluser.php changed
File in-portal/kernel/include/searchitems.php changed
File in-portal/kernel/include/syscache.php changed
File in-portal/kernel/include/theme.php changed
File in-portal/kernel/include/usersession.php changed
File in-portal/kernel/include/adodb/adodb.inc.php changed
File in-portal/kernel/module_help/config_list_categories.txt is new; release_1_2_0 revision 1.1
File in-portal/kernel/module_help/config_list_general.txt is new; release_1_2_0 revision 1.1
File in-portal/kernel/module_help/config_list_users.txt is new; release_1_2_0 revision 1.1
File in-portal/kernel/module_help/tree_reports.txt is new; release_1_2_0 revision 1.1
File in-portal/kernel/module_help/tree_root.txt is new; release_1_2_0 revision 1.1
File in-portal/kernel/module_help/tree_site.txt is new; release_1_2_0 revision 1.1
File in-portal/kernel/module_help/tree_system.txt is new; release_1_2_0 revision 1.1
File in-portal/kernel/module_help/tree_users.txt is new; release_1_2_0 revision 1.1
File in-portal/kernel/units/admin/admin_config.php is new; release_1_2_0 revision 1.12.2.1
File in-portal/kernel/units/admin/admin_tag_processor.php is new; release_1_2_0 revision 1.17.2.1
File in-portal/kernel/units/categories/categories_config.php changed
File in-portal/kernel/units/categories/categories_event_handler.php changed
File in-portal/kernel/units/categories/categories_item.php changed
File in-portal/kernel/units/categories/categories_tag_processor.php changed
File in-portal/kernel/units/category_items/category_items_config.php changed
File in-portal/kernel/units/category_items/category_items_event_handler.php changed
File in-portal/kernel/units/config_general/config_general_config.php is removed; release_1_1_8 revision 1.3
File in-portal/kernel/units/config_general/config_general_event_handler.php is removed; release_1_1_8 revision 1.2
File in-portal/kernel/units/config_general/config_general_tag_processor.php is removed; release_1_1_8 revision 1.5.2.1
File in-portal/kernel/units/config_search/config_search_config.php changed
File in-portal/kernel/units/config_search/config_search_event_handler.php changed
File in-portal/kernel/units/configuration/configuration.php is new; release_1_2_0 revision 1.1
File in-portal/kernel/units/configuration/configuration_config.php changed
File in-portal/kernel/units/configuration/configuration_event_handler.php changed
File in-portal/kernel/units/configuration/configuration_tag_processor.php changed
File in-portal/kernel/units/custom_data/custom_data_config.php changed
File in-portal/kernel/units/custom_fields/custom_fields_config.php changed
File in-portal/kernel/units/custom_fields/custom_fields_event_handler.php changed
File in-portal/kernel/units/email_events/email_events_event_handler.php changed
File in-portal/kernel/units/general/cat_dbitem.php changed
File in-portal/kernel/units/general/cat_dbitem_export.php changed
File in-portal/kernel/units/general/cat_event_handler.php changed
File in-portal/kernel/units/general/custom_fields.php changed
File in-portal/kernel/units/general/general_config.php changed
File in-portal/kernel/units/general/inp1_parser.php changed
File in-portal/kernel/units/general/inp_db_event_handler.php changed
File in-portal/kernel/units/general/inp_ses_storage.php changed
File in-portal/kernel/units/general/main_event_handler.php changed
File in-portal/kernel/units/general/my_application.php changed
File in-portal/kernel/units/general/xml_helper.php changed
File in-portal/kernel/units/general/helpers/mod_rewrite_helper.php is new; release_1_2_0 revision 1.2
File in-portal/kernel/units/general/helpers/modules.php is new; release_1_2_0 revision 1.5
File in-portal/kernel/units/general/helpers/multilanguage.php changed
File in-portal/kernel/units/general/helpers/permissions_helper.php is new; release_1_2_0 revision 1.8.2.5
File in-portal/kernel/units/general/helpers/sections_helper.php is new; release_1_2_0 revision 1.6
File in-portal/kernel/units/groups/groups_config.php is new; release_1_2_0 revision 1.8.2.2
File in-portal/kernel/units/groups/groups_event_handler.php is new; release_1_2_0 revision 1.1
File in-portal/kernel/units/groups/groups_item.php is new; release_1_2_0 revision 1.1.2.1
File in-portal/kernel/units/help/help_tag_processor.php changed
File in-portal/kernel/units/images/image_event_handler.php is new; release_1_2_0 revision 1.1
File in-portal/kernel/units/images/image_tag_processor.php is new; release_1_2_0 revision 1.1.4.1
File in-portal/kernel/units/images/images.php is new; release_1_2_0 revision 1.1
File in-portal/kernel/units/images/images_config.php is new; release_1_2_0 revision 1.3
File in-portal/kernel/units/languages/import_xml.php changed
File in-portal/kernel/units/languages/languages_config.php changed
File in-portal/kernel/units/languages/languages_event_handler.php changed
File in-portal/kernel/units/languages/languages_item.php changed
File in-portal/kernel/units/modules/modules_config.php changed
File in-portal/kernel/units/modules/modules_event_handler.php changed
File in-portal/kernel/units/modules/modules_tag_processor.php changed
File in-portal/kernel/units/permissions/permissions_config.php is new; release_1_2_0 revision 1.2
File in-portal/kernel/units/permissions/permissions_event_handler.php is new; release_1_2_0 revision 1.1.2.1
File in-portal/kernel/units/permissions/permissions_tag_processor.php is new; release_1_2_0 revision 1.1
File in-portal/kernel/units/phrases/phrases_config.php changed
File in-portal/kernel/units/phrases/phrases_event_handler.php changed
File in-portal/kernel/units/relationship/relationship_config.php is new; release_1_2_0 revision 1.2
File in-portal/kernel/units/relationship/relationship_event_handler.php is new; release_1_2_0 revision 1.4.2.1
File in-portal/kernel/units/reviews/reviews_config.php is new; release_1_2_0 revision 1.2
File in-portal/kernel/units/reviews/reviews_event_handler.php is new; release_1_2_0 revision 1.4.2.1
File in-portal/kernel/units/reviews/reviews_tag_processor.php is new; release_1_2_0 revision 1.2.2.1
File in-portal/kernel/units/selectors/selectors_event_handler.php changed
File in-portal/kernel/units/statistics/statistics_config.php is new; release_1_2_0 revision 1.1
File in-portal/kernel/units/statistics/statistics_event_handler.php is new; release_1_2_0 revision 1.2
File in-portal/kernel/units/statistics/statistics_tag_processor.php is new; release_1_2_0 revision 1.3.2.1
File in-portal/kernel/units/stylesheets/stylesheets_config.php changed
File in-portal/kernel/units/stylesheets/stylesheets_event_handler.php changed
File in-portal/kernel/units/stylesheets/stylesheets_item.php changed
File in-portal/kernel/units/themes/themes_config.php changed
File in-portal/kernel/units/themes/themes_tag_processor.php changed
File in-portal/kernel/units/translator/translator_config.php changed
File in-portal/kernel/units/translator/translator_event_handler.php changed
File in-portal/kernel/units/user_groups/user_groups_config.php is new; release_1_2_0 revision 1.2
File in-portal/kernel/units/users/users_config.php changed
File in-portal/kernel/units/users/users_event_handler.php changed
File in-portal/kernel/units/users/users_item.php changed
File in-portal/kernel/units/users/users_syncronize.php changed
File in-portal/kernel/units/users/users_tag_processor.php changed
File in-portal/kernel/units/visits/visits_event_handler.php changed
File in-portal/themes/default/login/login_form.tpl changed
File in-portal/themes/default/misc/right_login.tpl changed
File in-portal/themes/default/register/register_dob.tpl changed
File in-portal/themes/default/register/register_form.tpl changed
File kernel4_dev/kernel4/application.php changed
File kernel4_dev/kernel4/event_handler.php changed
File kernel4_dev/kernel4/event_manager.php changed
File kernel4_dev/kernel4/globals.php changed
File kernel4_dev/kernel4/kbase.php changed
File kernel4_dev/kernel4/startup.php changed
File kernel4_dev/kernel4/db/db_connection.php changed
File kernel4_dev/kernel4/db/db_event_handler.php changed
File kernel4_dev/kernel4/db/db_tag_processor.php changed
File kernel4_dev/kernel4/db/dbitem.php changed
File kernel4_dev/kernel4/db/dblist.php changed
File kernel4_dev/kernel4/languages/phrases_cache.php changed
File kernel4_dev/kernel4/parser/construct_tags.php changed
File kernel4_dev/kernel4/parser/tags.php changed
File kernel4_dev/kernel4/parser/template.php changed
File kernel4_dev/kernel4/parser/template_parser.php changed
File kernel4_dev/kernel4/processors/main_processor.php changed
File kernel4_dev/kernel4/processors/tag_processor.php changed
File kernel4_dev/kernel4/session/session.php changed
File kernel4_dev/kernel4/utility/adodb-time.inc.php changed
File kernel4_dev/kernel4/utility/cache.php changed
File kernel4_dev/kernel4/utility/debugger.php changed
File kernel4_dev/kernel4/utility/email.php changed
File kernel4_dev/kernel4/utility/event.php changed
File kernel4_dev/kernel4/utility/factory.php changed
File kernel4_dev/kernel4/utility/formatters.php is removed; release_1_1_8 revision 1.32
File kernel4_dev/kernel4/utility/http_query.php changed
File kernel4_dev/kernel4/utility/params.php changed
File kernel4_dev/kernel4/utility/temp_handler.php changed
File kernel4_dev/kernel4/utility/unit_config_reader.php changed
File kernel4_dev/kernel4/utility/debugger/debugger.css is new; release_1_2_0 revision 1.2
File kernel4_dev/kernel4/utility/debugger/debugger.js is new; release_1_2_0 revision 1.5
File kernel4_dev/kernel4/utility/debugger/debugger_responce.php is new; release_1_2_0 revision 1.2
File kernel4_dev/kernel4/utility/formatters/ccdate_formatter.php is new; release_1_2_0 revision 1.1
File kernel4_dev/kernel4/utility/formatters/date_formatter.php is new; release_1_2_0 revision 1.1.2.1
File kernel4_dev/kernel4/utility/formatters/filesize_formatter.php is new; release_1_2_0 revision 1.1
File kernel4_dev/kernel4/utility/formatters/formatter.php is new; release_1_2_0 revision 1.1
File kernel4_dev/kernel4/utility/formatters/formatters_config.php is new; release_1_2_0 revision 1.3
File kernel4_dev/kernel4/utility/formatters/left_formatter.php is new; release_1_2_0 revision 1.1.2.1
File kernel4_dev/kernel4/utility/formatters/multilang_formatter.php is new; release_1_2_0 revision 1.1
File kernel4_dev/kernel4/utility/formatters/options_formatter.php is new; release_1_2_0 revision 1.1
File kernel4_dev/kernel4/utility/formatters/password_formatter.php is new; release_1_2_0 revision 1.1
File kernel4_dev/kernel4/utility/formatters/serialized_formatter.php is new; release_1_2_0 revision 1.1
File kernel4_dev/kernel4/utility/formatters/unit_formatter.php is new; release_1_2_0 revision 1.1
File kernel4_dev/kernel4/utility/formatters/upload_formatter.php is new; release_1_2_0 revision 1.1
File cmseditor/editor/_source/internals/fck_2.js changed
File cmseditor/editor/filemanager/browser/default/Browser.css changed
File cmseditor/editor/filemanager/browser/default/browser.html changed
File cmseditor/editor/filemanager/browser/default/frmresourceslist.html changed
File cmseditor/editor/filemanager/browser/default/frmupload.html changed
File cmseditor/editor/filemanager/browser/default/connectors/php/commands.php changed
File cmseditor/editor/filemanager/browser/default/connectors/php/config.php changed
File cmseditor/editor/filemanager/browser/default/connectors/php/connector.php changed
File cmseditor/editor/filemanager/browser/default/images/sort_asc.gif is new; release_1_2_0 revision 1.1
File cmseditor/editor/filemanager/browser/default/images/sort_desc.gif is new; release_1_2_0 revision 1.1
File cmseditor/editor/filemanager/browser/default/images/sort_no.gif is new; release_1_2_0 revision 1.1
File cmseditor/editor/js/fckeditorcode_gecko_2.js changed
File cmseditor/editor/js/fckeditorcode_ie_2.js changed
Changes in phrases and events:
Changed label "la_Description_in-portal:modules" of type "1"
Changed label "la_Description_in-portal:modules" of type "1"
Changed label "la_Description_in-portal:mod_status" of type "1"
Property changes on: branches/unlabeled/unlabeled-1.1.2/admin/install/upgrades/changelog_1_2_0.txt
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.9
\ No newline at end of property
+1.1.2.10
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.60.2/kernel/units/users/users_event_handler.php
===================================================================
--- branches/unlabeled/unlabeled-1.60.2/kernel/units/users/users_event_handler.php (revision 5477)
+++ branches/unlabeled/unlabeled-1.60.2/kernel/units/users/users_event_handler.php (revision 5478)
@@ -1,1021 +1,1022 @@
<?php
class UsersEventHandler extends InpDBEventHandler
{
/**
* Allows to override standart permission mapping
*
*/
function mapPermissions()
{
parent::mapPermissions();
$permissions = Array(
// admin
'OnSetPersistantVariable' => Array('self' => 'view'), // because setting to logged in user only
-
+
// front
'OnRefreshForm' => Array('self' => true),
-
+
'OnForgotPassword' => Array('self' => true),
'OnResetPassword' => Array('self' => true),
'OnResetPasswordConfirmed' => Array('self' => true),
-
+
'OnSubscribeQuery' => Array('self' => true),
'OnSubscribeUser' => Array('self' => true),
-
+
'OnRecommend' => Array('self' => true),
);
$this->permMapping = array_merge($this->permMapping, $permissions);
}
-
+
/**
* Checks permissions of user
*
* @param kEvent $event
*/
function CheckPermission(&$event)
{
if ($event->Name == 'OnLogin' || $event->Name == 'OnLogout') {
// permission is checked in OnLogin event directly
return true;
}
-
+
if (!$this->Application->IsAdmin()) {
$user_id = $this->Application->GetVar('u_id');
$items_info = $this->Application->GetVar($event->getPrefixSpecial(true));
-
+
if ($event->Name == 'OnCreate' && $user_id == -2) {
// "Guest" can create new users
return true;
}
-
+
if ($event->Name == 'OnUpdate' && $user_id > 0) {
$user_dummy =& $this->Application->recallObject($event->Prefix.'.-item', null, Array('skip_autoload' => true));
foreach ($items_info as $id => $field_values) {
if ($id != $user_id) {
// registered users can update their record only
return false;
}
-
+
$user_dummy->Load($id);
$status_field = array_shift($this->Application->getUnitOption($event->Prefix, 'StatusField'));
-
+
if ($user_dummy->GetDBField($status_field) != STATUS_ACTIVE) {
// not active user is not allowed to update his record (he could not activate himself manually)
return false;
}
-
+
if (isset($field_values[$status_field]) && $user_dummy->GetDBField($status_field) != $field_values[$status_field]) {
// user can't change status by himself
return false;
}
}
return true;
}
-
+
if ($event->Name == 'OnUpdate' && $user_id <= 0) {
// guests are not allowed to update their record, because they don't have it :)
return false;
}
}
-
+
return parent::CheckPermission($event);
}
-
+
function OnSessionExpire()
{
if( $this->Application->IsAdmin() ) {
$this->Application->Redirect('index', Array('expired' => 1), '', 'index4.php');
}
else {
$http_query =& $this->Application->recallObject('HTTPQuery');
$get = $http_query->getRedirectParams();
$t = $this->Application->GetVar('t');
$get['js_redirect'] = $this->Application->ConfigValue('UseJSRedirect');
$this->Application->Redirect($t ? $t : 'index', $get);
}
}
/**
* Checks user data and logs it in if allowed
*
* @param kEvent $event
*/
function OnLogin(&$event)
{
$object =& $this->Application->recallObject('u', null, Array('skip_autoload' => true));
$password = $this->Application->GetVar('password');
if(!$password)
{
$object->SetError('ValidateLogin', 'blank_password', 'lu_blank_password');
$event->status = erFAIL;
return false;
}
$email_as_login = $this->Application->ConfigValue('Email_As_Login');
list($login_field, $submit_field) = $email_as_login ? Array('Email', 'email') : Array('Login', 'login');
$login_value = $this->Application->GetVar($submit_field);
-
+
if ($this->Application->IsAdmin() && ($login_value == 'root')) {
// logging in "root" (admin only)
$root_password = $this->Application->ConfigValue('RootPass');
if ($root_password != md5($password)) {
$object->SetError('ValidateLogin', 'invalid_password', 'lu_invalid_password');
$event->status = erFAIL;
return false;
}
elseif ($this->checkLoginPermission($login_value)) {
$user_id = -1;
$object->Load($user_id);
$object->SetDBField('Login', $login_value);
-
+
$session =& $this->Application->recallObject('Session');
$session->SetField('PortalUserId', $user_id);
// $session->SetField('GroupList', implode(',', $groups) );
$this->Application->SetVar('u_id', $user_id);
$this->Application->StoreVar('user_id', $user_id);
-
+
$this->processLoginRedirect($event, $password);
return true;
}
else {
$object->SetError('ValidateLogin', 'invalid_license', 'la_invalid_license');
$event->status = erFAIL;
return false;
}
}
-
+
/*$sql = 'SELECT PortalUserId FROM '.$object->TableName.' WHERE (%s = %s) AND (Password = MD5(%s))';
$user_id = $this->Conn->GetOne( sprintf($sql, $login_field, $this->Conn->qstr($login_value), $this->Conn->qstr($password) ) );*/
$sql = 'SELECT PortalUserId FROM '.$object->TableName.' WHERE (Email = %1$s OR Login = %1$s) AND (Password = MD5(%2$s))';
$user_id = $this->Conn->GetOne( sprintf($sql, $this->Conn->qstr($login_value), $this->Conn->qstr($password) ) );
if ($user_id) {
$object->Load($user_id);
if ($object->GetDBField('Status') == STATUS_ACTIVE) {
$groups = $object->getMembershipGroups(true);
if(!$groups) $groups = Array();
if ( !$this->Application->IsAdmin() ) array_push($groups, $this->Application->ConfigValue('User_LoggedInGroup') );
$this->Application->StoreVar( 'UserGroups', implode(',', $groups) );
if ($this->checkLoginPermission($login_value)) {
$session =& $this->Application->recallObject('Session');
$session->SetField('PortalUserId', $user_id);
$session->SetField('GroupList', implode(',', $groups) );
$this->Application->SetVar('u_id', $user_id);
$this->Application->StoreVar('user_id', $user_id);
$this->Application->setVisitField('PortalUserId', $user_id);
$this_login = (int)$object->getPersistantVar('ThisLogin');
$object->setPersistantVar('LastLogin', $this_login);
$object->setPersistantVar('ThisLogin', adodb_mktime());
}
else {
$object->Load(-2);
$object->SetError('ValidateLogin', 'no_permission', 'lu_no_permissions');
$event->status = erFAIL;
}
$this->processLoginRedirect($event, $password);
}
else {
$event->redirect = $this->Application->GetVar('pending_disabled_template');
}
}
else
{
+ $object->SetID(-2);
$object->SetError('ValidateLogin', 'invalid_password', 'lu_invalid_password');
$event->status = erFAIL;
}
}
/**
* Enter description here...
*
* @param string $user_name
* @return bool
*/
function checkLoginPermission($user_name)
{
$ret = true;
if ($this->Application->IsAdmin()) {
$modules_helper =& $this->Application->recallObject('ModulesHelper');
if ($user_name != 'root') {
// root is virtual user, so allow him to login to admin in any case
$ret = $this->Application->CheckPermission('ADMIN', 1);
}
$ret = $ret && $modules_helper->checkLogin();
}
else {
$ret = $this->Application->CheckPermission('LOGIN', 1);
}
return $ret;
}
-
+
/**
* Process all required data and redirect logged-in user
*
* @param kEvent $event
*/
function processLoginRedirect(&$event, $password)
{
$object =& $event->getObject();
-
+
$next_template = $this->Application->GetVar('next_template');
if ($next_template == '_ses_redirect') {
$location = $this->Application->BaseURL().$this->Application->RecallVar($next_template);
if( $this->Application->isDebugMode() && constOn('DBG_REDIRECT') )
{
$this->Application->Debugger->appendTrace();
echo "<b>Debug output above!!!</b> Proceed to redirect: <a href=\"$location\">$location</a><br>";
}
else {
header('Location: '.$location);
}
-
+
$session =& $this->Application->recallObject('Session');
$session->SaveData();
exit;
}
if ($next_template) {
$event->redirect = $next_template;
}
-
+
if ($this->Application->ConfigValue('UseJSRedirect')) {
$event->SetRedirectParam('js_redirect', 1);
}
-
+
$sync_manager =& $this->Application->recallObjectP('UsersSyncronizeManager', null, Array(), 'InPortalSyncronize');
$sync_manager->performAction('LoginUser', $object->GetDBField('Login'), $password);
}
-
+
/**
* Called when user logs in using old in-portal
*
* @param kEvent $event
*/
function OnInpLogin(&$event)
{
$sync_manager =& $this->Application->recallObjectP('UsersSyncronizeManager', null, Array(), 'InPortalSyncronize');
$sync_manager->performAction('LoginUser', $event->getEventParam('user'), $event->getEventParam('pass') );
-
+
if ($event->redirect && is_string($event->redirect)) {
// some real template specified instead of true
$this->Application->Redirect($event->redirect, $event->redirect_params);
}
}
/**
* Called when user logs in using old in-portal
*
* @param kEvent $event
*/
function OnInpLogout(&$event)
{
$sync_manager =& $this->Application->recallObjectP('UsersSyncronizeManager', null, Array(), 'InPortalSyncronize');
$sync_manager->performAction('LogoutUser');
}
function OnLogout(&$event)
{
$sync_manager =& $this->Application->recallObjectP('UsersSyncronizeManager', null, Array(), 'InPortalSyncronize');
$sync_manager->performAction('LogoutUser');
$session =& $this->Application->recallObject('Session');
$session->SetField('PortalUserId', -2);
$this->Application->SetVar('u_id', -2);
$this->Application->StoreVar('user_id', -2);
$object =& $this->Application->recallObject('u');
$object->Load(-2);
$this->Application->DestroySession();
$group_list = $this->Application->ConfigValue('User_GuestGroup').','.$this->Application->ConfigValue('User_LoggedInGroup');
$session->SetField('GroupList', $group_list);
$this->Application->StoreVar('UserGroups', $group_list);
if ($this->Application->ConfigValue('UseJSRedirect')) {
$event->SetRedirectParam('js_redirect', 1);
}
}
/**
* Prefill states dropdown with correct values
*
* @param kEvent $event
* @access public
*/
function OnPrepareStates(&$event)
{
$cs_helper =& $this->Application->recallObject('CountryStatesHelper');
$cs_helper->PopulateStates($event, 'State', 'Country');
$object =& $event->getObject();
if( $object->isRequired('Country') && $cs_helper->CountryHasStates( $object->GetDBField('Country') ) ) $object->setRequired('State', true);
$object->setLogin();
}
/**
* Redirects user after succesfull registration to confirmation template (on Front only)
*
* @param kEvent $event
*/
function OnAfterItemCreate(&$event)
{
$is_subscriber = $this->Application->GetVar('IsSubscriber');
if(!$is_subscriber)
{
$object =& $event->getObject();
$sql = 'UPDATE '.TABLE_PREFIX.'UserGroup
SET PrimaryGroup = 0
WHERE PortalUserId = '.$object->GetDBField('PortalUserId');
$this->Conn->Query($sql);
$group_id = $this->Application->ConfigValue('User_NewGroup');
$sql = 'REPLACE INTO '.TABLE_PREFIX.'UserGroup(PortalUserId,GroupId,PrimaryGroup) VALUES (%s,%s,1)';
$this->Conn->Query( sprintf($sql, $object->GetID(), $group_id) );
}
}
/**
* Login user if possible, if not then redirect to corresponding template
*
* @param kEvent $event
*/
function autoLoginUser(&$event)
{
$object =& $event->getObject();
$this->Application->SetVar('u_id', $object->GetID() );
if($object->GetDBField('Status') == STATUS_ACTIVE)
{
$email_as_login = $this->Application->ConfigValue('Email_As_Login');
list($login_field, $submit_field) = $email_as_login ? Array('Email', 'email') : Array('Login', 'login');
$this->Application->SetVar($submit_field, $object->GetDBField($login_field) );
$this->Application->SetVar('password', $object->GetDBField('Password_plain') );
$event->CallSubEvent('OnLogin');
}
}
/**
- * When creating user & user with such email exists then force to use OnUpdate insted of OnCreate
+ * When creating user & user with such email exists then force to use OnUpdate insted of ?
*
* @param kEvent $event
*/
function OnSubstituteSubscriber(&$event)
{
$ret = false;
$object =& $event->getObject( Array('skip_autoload' => true) );
$items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) );
if($items_info)
{
list($id, $field_values) = each($items_info);
$user_email = $field_values['Email'];
if($user_email)
{
// check if is subscriber
$verify_user =& $this->Application->recallObject('u.verify', null, Array('skup_autoload' => true) );
$verify_user->Load($user_email, 'Email');
if( $verify_user->isLoaded() && $verify_user->isSubscriberOnly() )
{
$items_info = Array( $verify_user->GetDBField('PortalUserId') => $field_values );
$this->Application->SetVar($event->getPrefixSpecial(true), $items_info);
$ret = true;
}
}
}
if( isset($event->MasterEvent) )
{
$event->MasterEvent->setEventParam('is_subscriber_only', $ret);
}
else
{
$event->setEventParam('is_subscriber_only', $ret);
}
}
/**
* Enter description here...
*
* @param kEvent $event
* @return bool
*/
function isSubscriberOnly(&$event)
{
$event->CallSubEvent('OnSubstituteSubscriber');
$is_subscriber = false;
if( $event->getEventParam('is_subscriber_only') )
{
$is_subscriber = true;
$object =& $event->getObject( Array('skip_autoload' => true) );
$this->OnUpdate($event);
if($event->status == erSUCCESS)
{
$this->OnAfterItemCreate($event);
$object->SendEmailEvents();
if( !$this->Application->IsAdmin() && ($event->status == erSUCCESS) && $event->redirect) $this->autoLoginUser($event);
}
}
return $is_subscriber;
}
/**
* Creates new user
*
* @param kEvent $event
*/
function OnCreate(&$event)
{
if( !$this->Application->IsAdmin() ) $this->setUserStatus($event);
if( !$this->isSubscriberOnly($event) )
{
$cs_helper =& $this->Application->recallObject('CountryStatesHelper');
$cs_helper->CheckStateField($event, 'State', 'Country');
parent::OnCreate($event);
$object =& $event->getObject( Array('skip_autoload' => true) );
$this->Application->SetVar('u_id', $object->getID() );
$this->setNextTemplate($event);
if( !$this->Application->IsAdmin() && ($event->status == erSUCCESS) && $event->redirect)
{
$object->SendEmailEvents();
$this->autoLoginUser($event);
}
}
}
/**
* Set's new user status based on config options
*
* @param kEvent $event
*/
function setUserStatus(&$event)
{
$object =& $event->getObject( Array('skip_autoload' => true) );
$new_users_allowed = $this->Application->ConfigValue('User_Allow_New');
// 1 - Instant, 2 - Not Allowed, 3 - Pending
switch ($new_users_allowed)
{
case 1: // Instant
$object->SetDBField('Status', 1);
$next_template = $this->Application->GetVar('registration_confirm_template');
if($next_template) $event->redirect = $next_template;
break;
case 3: // Pending
$next_template = $this->Application->GetVar('registration_confirm_pending_template');
if($next_template) $event->redirect = $next_template;
$object->SetDBField('Status', 2);
break;
case 2: // Not Allowed
$object->SetDBField('Status', 0);
break;
}
/*if ($object->GetDBField('PaidMember') == 1) {
$this->Application->HandleEvent($add_to_cart, 'ord:OnAddToCart');
$event->redirect = 'in-commerce/checkout/shop_cart';
} */
}
/**
* Set's new unique resource id to user
*
* @param kEvent $event
*/
function OnBeforeItemCreate(&$event)
{
$email_as_login = $this->Application->ConfigValue('Email_As_Login');
$object =& $event->getObject();
if ($email_as_login) {
$object->Fields['Email']['error_msgs']['unique'] = $this->Application->Phrase('lu_user_and_email_already_exist');
}
}
/**
* Set's new unique resource id to user
*
* @param kEvent $event
*/
function OnAfterItemValidate(&$event)
{
$object =& $event->getObject();
$resource_id = $object->GetDBField('ResourceId');
if (!$resource_id)
{
$object->SetDBField('ResourceId', $this->Application->NextResourceId() );
}
}
/**
* Enter description here...
*
* @param kEvent $event
*/
function OnRecommend(&$event){
$friend_email = $this->Application->GetVar('friend_email');
$friend_name = $this->Application->GetVar('friend_email');
if (preg_match("/^[_a-zA-Z0-9-\.]+@[a-zA-Z0-9-\.]+\.[a-z]{2,4}$/", $friend_email))
{
$send_params = array();
$send_params['to_email']=$friend_email;
$send_params['to_name']=$friend_name;
$user_id = $this->Application->GetVar('u_id');
$email_event = &$this->Application->EmailEventUser('SITE.SUGGEST', $user_id, $send_params);
if ($email_event->status == erSUCCESS){
$event->redirect_params = array('opener' => 's', 'pass' => 'all');
$event->redirect = $this->Application->GetVar('template_success');
}
else {
// $event->redirect_params = array('opener' => 's', 'pass' => 'all');
// $event->redirect = $this->Application->GetVar('template_fail');
$object =& $this->Application->recallObject('u');
$object->ErrorMsgs['send_error'] = $this->Application->Phrase('lu_email_send_error');
$object->FieldErrors['Email']['pseudo'] = 'send_error';
$event->status = erFAIL;
}
}
else {
$object =& $this->Application->recallObject('u');
$object->ErrorMsgs['invalid_email'] = $this->Application->Phrase('lu_InvalidEmail');
$object->FieldErrors['Email']['pseudo'] = 'invalid_email';
$event->status = erFAIL;
}
}
/**
* Saves address changes and mades no redirect
*
* @param kEvent $event
*/
function OnUpdateAddress(&$event)
{
$object =& $event->getObject( Array('skip_autoload' => true) );
$items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) );
if($items_info)
{
list($id,$field_values) = each($items_info);
if($id > 0) $object->Load($id);
$object->SetFieldsFromHash($field_values);
$object->setID($id);
$object->Validate();
}
$event->redirect = false;
}
function OnSubscribeQuery(&$event){
$user_email = $this->Application->GetVar('subscriber_email');
if ( preg_match("/^[_a-zA-Z0-9-\.]+@[a-zA-Z0-9-\.]+\.[a-z]{2,4}$/", $user_email) ){
-
+
$object = &$this->Application->recallObject($this->Prefix.'.subscriber', null, Array('skip_autoload' => true));
$this->Application->StoreVar('SubscriberEmail', $user_email);
if( $object->Load(array('Email'=>$user_email)) ){
$group_info = $this->GetGroupInfo($object->GetID());
if($group_info){
$event->redirect = $this->Application->GetVar('unsubscribe_template');
}
else {
$event->redirect = $this->Application->GetVar('subscribe_template');
}
}
else {
$event->redirect = $this->Application->GetVar('subscribe_template');
$this->Application->StoreVar('SubscriberEmail', $user_email);
}
}
else {
$object =& $this->Application->recallObject('u');
$object->ErrorMsgs['invalid_email'] = $this->Application->Phrase('lu_InvalidEmail');
$object->FieldErrors['SubscribeEmail']['pseudo'] = 'invalid_email';
$event->status = erFAIL;
}
//subscribe_query_ok_template
}
function OnSubscribeUser(&$event){
$object = &$this->Application->recallObject($this->Prefix.'.subscriber', Array('skip_autoload' => true));
$user_email = $this->Application->RecallVar('SubscriberEmail');
if (preg_match("/^[_a-zA-Z0-9-\.]+@[a-zA-Z0-9-\.]+\.[a-z]{2,4}$/", $user_email)){
if($object->Load(array('Email'=>$user_email))){
$group_info = $this->GetGroupInfo($object->GetID());
if ($group_info){
if ($event->getEventParam('no_unsubscribe')) return;
if ($group_info['PrimaryGroup']){
// delete user
$object->Delete();
}
else {
$this->RemoveSubscriberGroup($object->GetID());
}
$event->redirect = $this->Application->GetVar('unsubscribe_ok_template');
}
else {
$this->AddSubscriberGroup($object->GetID(), 0);
$event->redirect = $this->Application->GetVar('subscribe_ok_template');
}
}
else {
$object->SetField('Email', $user_email);
$object->SetField('Login', $user_email);
$object->SetDBField('dob', 1);
$object->SetDBField('dob_date', 1);
$object->SetDBField('dob_time', 1);
$ip = getenv('HTTP_X_FORWARDED_FOR')?getenv('HTTP_X_FORWARDED_FOR'):getenv('REMOTE_ADDR');
$object->SetDBField('ip', $ip);
$this->Application->SetVar('IsSubscriber', 1);
if ($object->Create()) {
$this->AddSubscriberGroup($object->GetID(), 1);
$event->redirect = $this->Application->GetVar('subscribe_ok_template');
}
$this->Application->SetVar('IsSubscriber', 0);
}
}
else {
// error handling here
$event->redirect = $this->Application->GetVar('subscribe_fail_template');
}
}
function AddSubscriberGroup($user_id, $is_primary){
$group_id = $this->Application->ConfigValue('User_SubscriberGroup');
$sql = 'INSERT INTO '.TABLE_PREFIX.'UserGroup(PortalUserId,GroupId,PrimaryGroup) VALUES (%s,%s,'.$is_primary.')';
$this->Conn->Query( sprintf($sql, $user_id, $group_id) );
$this->Application->EmailEventAdmin('USER.SUBSCRIBE', $user_id);
$this->Application->EmailEventUser('USER.SUBSCRIBE', $user_id);
}
function RemoveSubscriberGroup($user_id){
$group_id = $this->Application->ConfigValue('User_SubscriberGroup');
$sql = 'DELETE FROM '.TABLE_PREFIX.'UserGroup WHERE PortalUserId='.$user_id.' AND GroupId='.$this->Application->ConfigValue('User_SubscriberGroup');
$this->Conn->Query($sql);
$this->Application->EmailEventAdmin('USER.UNSUBSCRIBE', $user_id);
$this->Application->EmailEventUser('USER.UNSUBSCRIBE', $user_id);
}
function GetGroupInfo($user_id){
$group_info = $this->Conn->GetRow('SELECT * FROM '.TABLE_PREFIX.'UserGroup
WHERE PortalUserId='.$user_id.'
AND GroupId='.$this->Application->ConfigValue('User_SubscriberGroup'));
return $group_info;
}
function OnForgotPassword(&$event){
$user_object = &$this->Application->recallObject('u.forgot', null, Array('skip_autoload' => true));
$user_current_object = &$this->Application->recallObject('u');
$username = $this->Application->GetVar('username');
$email = $this->Application->GetVar('email');
$found = false;
$allow_reset = true;
if( strlen($username) )
{
if( $user_object->Load(array('Login'=>$username)) )
$found = ($user_object->GetDBField("Login")==$username && $user_object->GetDBField("Status")==1) && strlen($user_object->GetDBField("Password"));
}
else if( strlen($email) )
{
if( $user_object->Load(array('Email'=>$email)) )
$found = ($user_object->GetDBField("Email")==$email && $user_object->GetDBField("Status")==1) && strlen($user_object->GetDBField("Password"));
}
if( $user_object->isLoaded() )
{
$PwResetConfirm = $user_object->GetDBField('PwResetConfirm');
$PwRequestTime = $user_object->GetDBField('PwRequestTime');
$PassResetTime = $user_object->GetDBField('PassResetTime');
//$MinPwResetDelay = $user_object->GetDBField('MinPwResetDelay');
$MinPwResetDelay = $this->Application->ConfigValue('Users_AllowReset');
$allow_reset = (strlen($PwResetConfirm) ?
adodb_mktime() > $PwRequestTime + $MinPwResetDelay :
adodb_mktime() > $PassResetTime + $MinPwResetDelay);
}
if($found && $allow_reset)
{
$this->Application->StoreVar('tmp_user_id', $user_object->GetDBField("PortalUserId"));
$this->Application->StoreVar('tmp_email', $user_object->GetDBField("Email"));
$this->Application->EmailEventUser('INCOMMERCEUSER.PSWDC', $user_object->GetDBField("PortalUserId"));
$event->redirect = $this->Application->GetVar('template_success');
}
else
{
if(!strlen($username) && !strlen($email))
{
$user_current_object->ErrorMsgs['forgotpw_nodata'] = $this->Application->Phrase('lu_ferror_forgotpw_nodata');
$user_current_object->FieldErrors['Login']['pseudo'] = 'lu_ferror_forgotpw_nodata';
}
else
{
if($allow_reset)
{
if( strlen($username) ){
$user_current_object->ErrorMsgs['unknown_username'] = $this->Application->Phrase('lu_ferror_unknown_username');
$user_current_object->FieldErrors['Login']['pseudo']='unknown_username';
}
if( strlen($email) ){
$user_current_object->ErrorMsgs['unknown_email'] = $this->Application->Phrase('lu_ferror_unknown_email');
$user_current_object->FieldErrors['Email']['pseudo']='unknown_email';
}
}
else
{
$user_current_object->ErrorMsgs['reset_denied'] = $this->Application->Phrase('lu_ferror_reset_denied');
if( strlen($username) ){
$user_current_object->FieldErrors['Login']['pseudo']='reset_denied';
}
if( strlen($email) ){
$user_current_object->FieldErrors['Email']['pseudo']='reset_denied';
}
}
}
if($user_current_object->FieldErrors){
$event->redirect = false;
}
}
}
/**
* Enter description here...
*
* @param kEvent $event
*/
function OnResetPassword(&$event){
$user_object = &$this->Application->recallObject('u.forgot');
if($user_object->Load($this->Application->RecallVar('tmp_user_id'))){
$this->Application->EmailEventUser('INCOMMERCEUSER.PSWDC', $user_object->GetDBField("PortalUserId"));
$event->redirect = $this->Application->GetVar('template_success');
$mod_object =& $this->Application->recallObject('mod.'.'In-Commerce');
$m_cat_id = $mod_object->GetDBField('RootCat');
$event->SetRedirectParam('pass', 'm');
//$event->SetRedirectParam('m_cat_id', $m_cat_id);
$this->Application->SetVar('m_cat_id', $m_cat_id);
}
}
function OnResetPasswordConfirmed(&$event){
$passed_key = $this->Application->GetVar('user_key');
$user_object = &$this->Application->recallObject('u.forgot');
$user_current_object = &$this->Application->recallObject('u');
if (strlen(trim($passed_key)) == 0) {
$event->redirect_params = array('opener' => 's', 'pass' => 'all');
$event->redirect = false;
$user_current_object->ErrorMsgs['code_is_not_valid'] = $this->Application->Phrase('lu_code_is_not_valid');
$user_current_object->FieldErrors['PwResetConfirm']['pseudo'] = 'code_is_not_valid';
}
if($user_object->Load(array('PwResetConfirm'=>$passed_key)))
{
$exp_time = $user_object->GetDBField('PwRequestTime') + 3600;
$user_object->SetDBField("PwResetConfirm", '');
$user_object->SetDBField("PwRequestTime", 0);
if ( $exp_time > adodb_mktime() )
{
//$m_var_list_update['codevalidationresult'] = 'lu_resetpw_confirm_text';
$newpw = makepassword4();
$this->Application->StoreVar('password', $newpw);
$user_object->SetDBField("Password",$newpw);
$user_object->SetDBField("PassResetTime", adodb_mktime());
$user_object->SetDBField("PwResetConfirm", '');
$user_object->SetDBField("PwRequestTime", 0);
$user_object->Update();
$this->Application->SetVar('ForgottenPassword', $newpw);
$email_event_user = &$this->Application->EmailEventUser('INCOMMERCEUSER.PSWD', $user_object->GetDBField('PortalUserId'));
$email_event_admin = &$this->Application->EmailEventAdmin('INCOMMERCEUSER.PSWD');
$this->Application->DeleteVar('ForgottenPassword');
if ($email_event_user->status == erSUCCESS){
$event->redirect_params = array('opener' => 's', 'pass' => 'all');
$event->redirect = $this->Application->GetVar('template_success');
}
$user_object->SetDBField("Password",md5($newpw));
$user_object->Update();
} else {
$user_current_object->ErrorMsgs['code_expired'] = $this->Application->Phrase('lu_code_expired');
$user_current_object->FieldErrors['PwResetConfirm']['pseudo'] = 'code_expired';
$event->redirect = false;
}
} else {
$user_current_object->ErrorMsgs['code_is_not_valid'] = $this->Application->Phrase('lu_code_is_not_valid');
$user_current_object->FieldErrors['PwResetConfirm']['pseudo'] = 'code_is_not_valid';
$event->redirect = false;
}
}
function OnUpdate(&$event)
{
$cs_helper =& $this->Application->recallObject('CountryStatesHelper');
$cs_helper->CheckStateField($event, 'State', 'Country');
parent::OnUpdate($event);
$this->setNextTemplate($event);
}
/**
* Enter description here...
*
* @param kEvent $event
*/
function setNextTemplate(&$event)
{
if( !$this->Application->IsAdmin() )
{
$event->redirect_params['opener'] = 's';
$object =& $event->getObject();
if($object->GetDBField('Status') == STATUS_ACTIVE)
{
$next_template = $this->Application->GetVar('next_template');
if($next_template) $event->redirect = $next_template;
}
}
}
/**
* Delete users from groups if their membership is expired
*
* @param kEvent $event
*/
function OnCheckExpiredMembership(&$event)
{
// send pre-expiration reminders: begin
$pre_expiration = adodb_mktime() + $this->Application->ConfigValue('User_MembershipExpirationReminder') * 3600 * 24;
$sql = 'SELECT PortalUserId, GroupId
FROM '.TABLE_PREFIX.'UserGroup
WHERE (MembershipExpires IS NOT NULL) AND (ExpirationReminderSent = 0) AND (MembershipExpires < '.$pre_expiration.')';
$skip_clause = $event->getEventParam('skip_clause');
if ($skip_clause) {
$sql .= ' AND !('.implode(') AND !(', $skip_clause).')';
}
$records = $this->Conn->Query($sql);
if ($records) {
$conditions = Array();
foreach ($records as $record) {
$email_event_user =& $this->Application->EmailEventUser('USER.MEMBERSHIP.EXPIRATION.NOTICE', $record['PortalUserId']);
$email_event_admin =& $this->Application->EmailEventAdmin('USER.MEMBERSHIP.EXPIRATION.NOTICE');
$conditions[] = '(PortalUserId = '.$record['PortalUserId'].' AND GroupId = '.$record['GroupId'].')';
}
$sql = 'UPDATE '.TABLE_PREFIX.'UserGroup
SET ExpirationReminderSent = 1
WHERE '.implode(' OR ', $conditions);
$this->Conn->Query($sql);
}
// send pre-expiration reminders: end
// remove users from groups with expired membership: begin
$sql = 'SELECT PortalUserId
FROM '.TABLE_PREFIX.'UserGroup
WHERE (MembershipExpires IS NOT NULL) AND (MembershipExpires < '.adodb_mktime().')';
$user_ids = $this->Conn->GetCol($sql);
if ($user_ids) {
foreach ($user_ids as $id) {
$email_event_user =& $this->Application->EmailEventUser('USER.MEMBERSHIP.EXPIRED', $id);
$email_event_admin =& $this->Application->EmailEventAdmin('USER.MEMBERSHIP.EXPIRED');
}
}
$sql = 'DELETE FROM '.TABLE_PREFIX.'UserGroup
WHERE (MembershipExpires IS NOT NULL) AND (MembershipExpires < '.adodb_mktime().')';
$this->Conn->Query($sql);
// remove users from groups with expired membership: end
}
/**
* Enter description here...
*
* @param kEvent $event
*/
function OnRefreshForm(&$event)
{
$event->redirect = false;
$item_info = $this->Application->GetVar($event->Prefix_Special);
list($id, $fields) = each($item_info);
$object =& $event->getObject( Array('skip_autoload' => true) );
$object->setID($id);
$object->IgnoreValidation = true;
$object->SetFieldsFromHash($fields);
}
-
+
/**
* Sets persistant variable
*
* @param kEvent $event
*/
function OnSetPersistantVariable(&$event)
{
$object =& $event->getObject();
-
+
$field = $this->Application->GetVar('field');
$value = $this->Application->GetVar('value');
$object->setPersistantVar($field, $value);
-
+
$force_tab = $this->Application->GetVar('SetTab');
if ($force_tab) {
$this->Application->StoreVar('force_tab', $force_tab);
}
}
}
?>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.60.2/kernel/units/users/users_event_handler.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.60.2.3
\ No newline at end of property
+1.60.2.4
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.60.2/core/units/users/users_event_handler.php
===================================================================
--- branches/unlabeled/unlabeled-1.60.2/core/units/users/users_event_handler.php (revision 5477)
+++ branches/unlabeled/unlabeled-1.60.2/core/units/users/users_event_handler.php (revision 5478)
@@ -1,1021 +1,1022 @@
<?php
class UsersEventHandler extends InpDBEventHandler
{
/**
* Allows to override standart permission mapping
*
*/
function mapPermissions()
{
parent::mapPermissions();
$permissions = Array(
// admin
'OnSetPersistantVariable' => Array('self' => 'view'), // because setting to logged in user only
-
+
// front
'OnRefreshForm' => Array('self' => true),
-
+
'OnForgotPassword' => Array('self' => true),
'OnResetPassword' => Array('self' => true),
'OnResetPasswordConfirmed' => Array('self' => true),
-
+
'OnSubscribeQuery' => Array('self' => true),
'OnSubscribeUser' => Array('self' => true),
-
+
'OnRecommend' => Array('self' => true),
);
$this->permMapping = array_merge($this->permMapping, $permissions);
}
-
+
/**
* Checks permissions of user
*
* @param kEvent $event
*/
function CheckPermission(&$event)
{
if ($event->Name == 'OnLogin' || $event->Name == 'OnLogout') {
// permission is checked in OnLogin event directly
return true;
}
-
+
if (!$this->Application->IsAdmin()) {
$user_id = $this->Application->GetVar('u_id');
$items_info = $this->Application->GetVar($event->getPrefixSpecial(true));
-
+
if ($event->Name == 'OnCreate' && $user_id == -2) {
// "Guest" can create new users
return true;
}
-
+
if ($event->Name == 'OnUpdate' && $user_id > 0) {
$user_dummy =& $this->Application->recallObject($event->Prefix.'.-item', null, Array('skip_autoload' => true));
foreach ($items_info as $id => $field_values) {
if ($id != $user_id) {
// registered users can update their record only
return false;
}
-
+
$user_dummy->Load($id);
$status_field = array_shift($this->Application->getUnitOption($event->Prefix, 'StatusField'));
-
+
if ($user_dummy->GetDBField($status_field) != STATUS_ACTIVE) {
// not active user is not allowed to update his record (he could not activate himself manually)
return false;
}
-
+
if (isset($field_values[$status_field]) && $user_dummy->GetDBField($status_field) != $field_values[$status_field]) {
// user can't change status by himself
return false;
}
}
return true;
}
-
+
if ($event->Name == 'OnUpdate' && $user_id <= 0) {
// guests are not allowed to update their record, because they don't have it :)
return false;
}
}
-
+
return parent::CheckPermission($event);
}
-
+
function OnSessionExpire()
{
if( $this->Application->IsAdmin() ) {
$this->Application->Redirect('index', Array('expired' => 1), '', 'index4.php');
}
else {
$http_query =& $this->Application->recallObject('HTTPQuery');
$get = $http_query->getRedirectParams();
$t = $this->Application->GetVar('t');
$get['js_redirect'] = $this->Application->ConfigValue('UseJSRedirect');
$this->Application->Redirect($t ? $t : 'index', $get);
}
}
/**
* Checks user data and logs it in if allowed
*
* @param kEvent $event
*/
function OnLogin(&$event)
{
$object =& $this->Application->recallObject('u', null, Array('skip_autoload' => true));
$password = $this->Application->GetVar('password');
if(!$password)
{
$object->SetError('ValidateLogin', 'blank_password', 'lu_blank_password');
$event->status = erFAIL;
return false;
}
$email_as_login = $this->Application->ConfigValue('Email_As_Login');
list($login_field, $submit_field) = $email_as_login ? Array('Email', 'email') : Array('Login', 'login');
$login_value = $this->Application->GetVar($submit_field);
-
+
if ($this->Application->IsAdmin() && ($login_value == 'root')) {
// logging in "root" (admin only)
$root_password = $this->Application->ConfigValue('RootPass');
if ($root_password != md5($password)) {
$object->SetError('ValidateLogin', 'invalid_password', 'lu_invalid_password');
$event->status = erFAIL;
return false;
}
elseif ($this->checkLoginPermission($login_value)) {
$user_id = -1;
$object->Load($user_id);
$object->SetDBField('Login', $login_value);
-
+
$session =& $this->Application->recallObject('Session');
$session->SetField('PortalUserId', $user_id);
// $session->SetField('GroupList', implode(',', $groups) );
$this->Application->SetVar('u_id', $user_id);
$this->Application->StoreVar('user_id', $user_id);
-
+
$this->processLoginRedirect($event, $password);
return true;
}
else {
$object->SetError('ValidateLogin', 'invalid_license', 'la_invalid_license');
$event->status = erFAIL;
return false;
}
}
-
+
/*$sql = 'SELECT PortalUserId FROM '.$object->TableName.' WHERE (%s = %s) AND (Password = MD5(%s))';
$user_id = $this->Conn->GetOne( sprintf($sql, $login_field, $this->Conn->qstr($login_value), $this->Conn->qstr($password) ) );*/
$sql = 'SELECT PortalUserId FROM '.$object->TableName.' WHERE (Email = %1$s OR Login = %1$s) AND (Password = MD5(%2$s))';
$user_id = $this->Conn->GetOne( sprintf($sql, $this->Conn->qstr($login_value), $this->Conn->qstr($password) ) );
if ($user_id) {
$object->Load($user_id);
if ($object->GetDBField('Status') == STATUS_ACTIVE) {
$groups = $object->getMembershipGroups(true);
if(!$groups) $groups = Array();
if ( !$this->Application->IsAdmin() ) array_push($groups, $this->Application->ConfigValue('User_LoggedInGroup') );
$this->Application->StoreVar( 'UserGroups', implode(',', $groups) );
if ($this->checkLoginPermission($login_value)) {
$session =& $this->Application->recallObject('Session');
$session->SetField('PortalUserId', $user_id);
$session->SetField('GroupList', implode(',', $groups) );
$this->Application->SetVar('u_id', $user_id);
$this->Application->StoreVar('user_id', $user_id);
$this->Application->setVisitField('PortalUserId', $user_id);
$this_login = (int)$object->getPersistantVar('ThisLogin');
$object->setPersistantVar('LastLogin', $this_login);
$object->setPersistantVar('ThisLogin', adodb_mktime());
}
else {
$object->Load(-2);
$object->SetError('ValidateLogin', 'no_permission', 'lu_no_permissions');
$event->status = erFAIL;
}
$this->processLoginRedirect($event, $password);
}
else {
$event->redirect = $this->Application->GetVar('pending_disabled_template');
}
}
else
{
+ $object->SetID(-2);
$object->SetError('ValidateLogin', 'invalid_password', 'lu_invalid_password');
$event->status = erFAIL;
}
}
/**
* Enter description here...
*
* @param string $user_name
* @return bool
*/
function checkLoginPermission($user_name)
{
$ret = true;
if ($this->Application->IsAdmin()) {
$modules_helper =& $this->Application->recallObject('ModulesHelper');
if ($user_name != 'root') {
// root is virtual user, so allow him to login to admin in any case
$ret = $this->Application->CheckPermission('ADMIN', 1);
}
$ret = $ret && $modules_helper->checkLogin();
}
else {
$ret = $this->Application->CheckPermission('LOGIN', 1);
}
return $ret;
}
-
+
/**
* Process all required data and redirect logged-in user
*
* @param kEvent $event
*/
function processLoginRedirect(&$event, $password)
{
$object =& $event->getObject();
-
+
$next_template = $this->Application->GetVar('next_template');
if ($next_template == '_ses_redirect') {
$location = $this->Application->BaseURL().$this->Application->RecallVar($next_template);
if( $this->Application->isDebugMode() && constOn('DBG_REDIRECT') )
{
$this->Application->Debugger->appendTrace();
echo "<b>Debug output above!!!</b> Proceed to redirect: <a href=\"$location\">$location</a><br>";
}
else {
header('Location: '.$location);
}
-
+
$session =& $this->Application->recallObject('Session');
$session->SaveData();
exit;
}
if ($next_template) {
$event->redirect = $next_template;
}
-
+
if ($this->Application->ConfigValue('UseJSRedirect')) {
$event->SetRedirectParam('js_redirect', 1);
}
-
+
$sync_manager =& $this->Application->recallObjectP('UsersSyncronizeManager', null, Array(), 'InPortalSyncronize');
$sync_manager->performAction('LoginUser', $object->GetDBField('Login'), $password);
}
-
+
/**
* Called when user logs in using old in-portal
*
* @param kEvent $event
*/
function OnInpLogin(&$event)
{
$sync_manager =& $this->Application->recallObjectP('UsersSyncronizeManager', null, Array(), 'InPortalSyncronize');
$sync_manager->performAction('LoginUser', $event->getEventParam('user'), $event->getEventParam('pass') );
-
+
if ($event->redirect && is_string($event->redirect)) {
// some real template specified instead of true
$this->Application->Redirect($event->redirect, $event->redirect_params);
}
}
/**
* Called when user logs in using old in-portal
*
* @param kEvent $event
*/
function OnInpLogout(&$event)
{
$sync_manager =& $this->Application->recallObjectP('UsersSyncronizeManager', null, Array(), 'InPortalSyncronize');
$sync_manager->performAction('LogoutUser');
}
function OnLogout(&$event)
{
$sync_manager =& $this->Application->recallObjectP('UsersSyncronizeManager', null, Array(), 'InPortalSyncronize');
$sync_manager->performAction('LogoutUser');
$session =& $this->Application->recallObject('Session');
$session->SetField('PortalUserId', -2);
$this->Application->SetVar('u_id', -2);
$this->Application->StoreVar('user_id', -2);
$object =& $this->Application->recallObject('u');
$object->Load(-2);
$this->Application->DestroySession();
$group_list = $this->Application->ConfigValue('User_GuestGroup').','.$this->Application->ConfigValue('User_LoggedInGroup');
$session->SetField('GroupList', $group_list);
$this->Application->StoreVar('UserGroups', $group_list);
if ($this->Application->ConfigValue('UseJSRedirect')) {
$event->SetRedirectParam('js_redirect', 1);
}
}
/**
* Prefill states dropdown with correct values
*
* @param kEvent $event
* @access public
*/
function OnPrepareStates(&$event)
{
$cs_helper =& $this->Application->recallObject('CountryStatesHelper');
$cs_helper->PopulateStates($event, 'State', 'Country');
$object =& $event->getObject();
if( $object->isRequired('Country') && $cs_helper->CountryHasStates( $object->GetDBField('Country') ) ) $object->setRequired('State', true);
$object->setLogin();
}
/**
* Redirects user after succesfull registration to confirmation template (on Front only)
*
* @param kEvent $event
*/
function OnAfterItemCreate(&$event)
{
$is_subscriber = $this->Application->GetVar('IsSubscriber');
if(!$is_subscriber)
{
$object =& $event->getObject();
$sql = 'UPDATE '.TABLE_PREFIX.'UserGroup
SET PrimaryGroup = 0
WHERE PortalUserId = '.$object->GetDBField('PortalUserId');
$this->Conn->Query($sql);
$group_id = $this->Application->ConfigValue('User_NewGroup');
$sql = 'REPLACE INTO '.TABLE_PREFIX.'UserGroup(PortalUserId,GroupId,PrimaryGroup) VALUES (%s,%s,1)';
$this->Conn->Query( sprintf($sql, $object->GetID(), $group_id) );
}
}
/**
* Login user if possible, if not then redirect to corresponding template
*
* @param kEvent $event
*/
function autoLoginUser(&$event)
{
$object =& $event->getObject();
$this->Application->SetVar('u_id', $object->GetID() );
if($object->GetDBField('Status') == STATUS_ACTIVE)
{
$email_as_login = $this->Application->ConfigValue('Email_As_Login');
list($login_field, $submit_field) = $email_as_login ? Array('Email', 'email') : Array('Login', 'login');
$this->Application->SetVar($submit_field, $object->GetDBField($login_field) );
$this->Application->SetVar('password', $object->GetDBField('Password_plain') );
$event->CallSubEvent('OnLogin');
}
}
/**
- * When creating user & user with such email exists then force to use OnUpdate insted of OnCreate
+ * When creating user & user with such email exists then force to use OnUpdate insted of ?
*
* @param kEvent $event
*/
function OnSubstituteSubscriber(&$event)
{
$ret = false;
$object =& $event->getObject( Array('skip_autoload' => true) );
$items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) );
if($items_info)
{
list($id, $field_values) = each($items_info);
$user_email = $field_values['Email'];
if($user_email)
{
// check if is subscriber
$verify_user =& $this->Application->recallObject('u.verify', null, Array('skup_autoload' => true) );
$verify_user->Load($user_email, 'Email');
if( $verify_user->isLoaded() && $verify_user->isSubscriberOnly() )
{
$items_info = Array( $verify_user->GetDBField('PortalUserId') => $field_values );
$this->Application->SetVar($event->getPrefixSpecial(true), $items_info);
$ret = true;
}
}
}
if( isset($event->MasterEvent) )
{
$event->MasterEvent->setEventParam('is_subscriber_only', $ret);
}
else
{
$event->setEventParam('is_subscriber_only', $ret);
}
}
/**
* Enter description here...
*
* @param kEvent $event
* @return bool
*/
function isSubscriberOnly(&$event)
{
$event->CallSubEvent('OnSubstituteSubscriber');
$is_subscriber = false;
if( $event->getEventParam('is_subscriber_only') )
{
$is_subscriber = true;
$object =& $event->getObject( Array('skip_autoload' => true) );
$this->OnUpdate($event);
if($event->status == erSUCCESS)
{
$this->OnAfterItemCreate($event);
$object->SendEmailEvents();
if( !$this->Application->IsAdmin() && ($event->status == erSUCCESS) && $event->redirect) $this->autoLoginUser($event);
}
}
return $is_subscriber;
}
/**
* Creates new user
*
* @param kEvent $event
*/
function OnCreate(&$event)
{
if( !$this->Application->IsAdmin() ) $this->setUserStatus($event);
if( !$this->isSubscriberOnly($event) )
{
$cs_helper =& $this->Application->recallObject('CountryStatesHelper');
$cs_helper->CheckStateField($event, 'State', 'Country');
parent::OnCreate($event);
$object =& $event->getObject( Array('skip_autoload' => true) );
$this->Application->SetVar('u_id', $object->getID() );
$this->setNextTemplate($event);
if( !$this->Application->IsAdmin() && ($event->status == erSUCCESS) && $event->redirect)
{
$object->SendEmailEvents();
$this->autoLoginUser($event);
}
}
}
/**
* Set's new user status based on config options
*
* @param kEvent $event
*/
function setUserStatus(&$event)
{
$object =& $event->getObject( Array('skip_autoload' => true) );
$new_users_allowed = $this->Application->ConfigValue('User_Allow_New');
// 1 - Instant, 2 - Not Allowed, 3 - Pending
switch ($new_users_allowed)
{
case 1: // Instant
$object->SetDBField('Status', 1);
$next_template = $this->Application->GetVar('registration_confirm_template');
if($next_template) $event->redirect = $next_template;
break;
case 3: // Pending
$next_template = $this->Application->GetVar('registration_confirm_pending_template');
if($next_template) $event->redirect = $next_template;
$object->SetDBField('Status', 2);
break;
case 2: // Not Allowed
$object->SetDBField('Status', 0);
break;
}
/*if ($object->GetDBField('PaidMember') == 1) {
$this->Application->HandleEvent($add_to_cart, 'ord:OnAddToCart');
$event->redirect = 'in-commerce/checkout/shop_cart';
} */
}
/**
* Set's new unique resource id to user
*
* @param kEvent $event
*/
function OnBeforeItemCreate(&$event)
{
$email_as_login = $this->Application->ConfigValue('Email_As_Login');
$object =& $event->getObject();
if ($email_as_login) {
$object->Fields['Email']['error_msgs']['unique'] = $this->Application->Phrase('lu_user_and_email_already_exist');
}
}
/**
* Set's new unique resource id to user
*
* @param kEvent $event
*/
function OnAfterItemValidate(&$event)
{
$object =& $event->getObject();
$resource_id = $object->GetDBField('ResourceId');
if (!$resource_id)
{
$object->SetDBField('ResourceId', $this->Application->NextResourceId() );
}
}
/**
* Enter description here...
*
* @param kEvent $event
*/
function OnRecommend(&$event){
$friend_email = $this->Application->GetVar('friend_email');
$friend_name = $this->Application->GetVar('friend_email');
if (preg_match("/^[_a-zA-Z0-9-\.]+@[a-zA-Z0-9-\.]+\.[a-z]{2,4}$/", $friend_email))
{
$send_params = array();
$send_params['to_email']=$friend_email;
$send_params['to_name']=$friend_name;
$user_id = $this->Application->GetVar('u_id');
$email_event = &$this->Application->EmailEventUser('SITE.SUGGEST', $user_id, $send_params);
if ($email_event->status == erSUCCESS){
$event->redirect_params = array('opener' => 's', 'pass' => 'all');
$event->redirect = $this->Application->GetVar('template_success');
}
else {
// $event->redirect_params = array('opener' => 's', 'pass' => 'all');
// $event->redirect = $this->Application->GetVar('template_fail');
$object =& $this->Application->recallObject('u');
$object->ErrorMsgs['send_error'] = $this->Application->Phrase('lu_email_send_error');
$object->FieldErrors['Email']['pseudo'] = 'send_error';
$event->status = erFAIL;
}
}
else {
$object =& $this->Application->recallObject('u');
$object->ErrorMsgs['invalid_email'] = $this->Application->Phrase('lu_InvalidEmail');
$object->FieldErrors['Email']['pseudo'] = 'invalid_email';
$event->status = erFAIL;
}
}
/**
* Saves address changes and mades no redirect
*
* @param kEvent $event
*/
function OnUpdateAddress(&$event)
{
$object =& $event->getObject( Array('skip_autoload' => true) );
$items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) );
if($items_info)
{
list($id,$field_values) = each($items_info);
if($id > 0) $object->Load($id);
$object->SetFieldsFromHash($field_values);
$object->setID($id);
$object->Validate();
}
$event->redirect = false;
}
function OnSubscribeQuery(&$event){
$user_email = $this->Application->GetVar('subscriber_email');
if ( preg_match("/^[_a-zA-Z0-9-\.]+@[a-zA-Z0-9-\.]+\.[a-z]{2,4}$/", $user_email) ){
-
+
$object = &$this->Application->recallObject($this->Prefix.'.subscriber', null, Array('skip_autoload' => true));
$this->Application->StoreVar('SubscriberEmail', $user_email);
if( $object->Load(array('Email'=>$user_email)) ){
$group_info = $this->GetGroupInfo($object->GetID());
if($group_info){
$event->redirect = $this->Application->GetVar('unsubscribe_template');
}
else {
$event->redirect = $this->Application->GetVar('subscribe_template');
}
}
else {
$event->redirect = $this->Application->GetVar('subscribe_template');
$this->Application->StoreVar('SubscriberEmail', $user_email);
}
}
else {
$object =& $this->Application->recallObject('u');
$object->ErrorMsgs['invalid_email'] = $this->Application->Phrase('lu_InvalidEmail');
$object->FieldErrors['SubscribeEmail']['pseudo'] = 'invalid_email';
$event->status = erFAIL;
}
//subscribe_query_ok_template
}
function OnSubscribeUser(&$event){
$object = &$this->Application->recallObject($this->Prefix.'.subscriber', Array('skip_autoload' => true));
$user_email = $this->Application->RecallVar('SubscriberEmail');
if (preg_match("/^[_a-zA-Z0-9-\.]+@[a-zA-Z0-9-\.]+\.[a-z]{2,4}$/", $user_email)){
if($object->Load(array('Email'=>$user_email))){
$group_info = $this->GetGroupInfo($object->GetID());
if ($group_info){
if ($event->getEventParam('no_unsubscribe')) return;
if ($group_info['PrimaryGroup']){
// delete user
$object->Delete();
}
else {
$this->RemoveSubscriberGroup($object->GetID());
}
$event->redirect = $this->Application->GetVar('unsubscribe_ok_template');
}
else {
$this->AddSubscriberGroup($object->GetID(), 0);
$event->redirect = $this->Application->GetVar('subscribe_ok_template');
}
}
else {
$object->SetField('Email', $user_email);
$object->SetField('Login', $user_email);
$object->SetDBField('dob', 1);
$object->SetDBField('dob_date', 1);
$object->SetDBField('dob_time', 1);
$ip = getenv('HTTP_X_FORWARDED_FOR')?getenv('HTTP_X_FORWARDED_FOR'):getenv('REMOTE_ADDR');
$object->SetDBField('ip', $ip);
$this->Application->SetVar('IsSubscriber', 1);
if ($object->Create()) {
$this->AddSubscriberGroup($object->GetID(), 1);
$event->redirect = $this->Application->GetVar('subscribe_ok_template');
}
$this->Application->SetVar('IsSubscriber', 0);
}
}
else {
// error handling here
$event->redirect = $this->Application->GetVar('subscribe_fail_template');
}
}
function AddSubscriberGroup($user_id, $is_primary){
$group_id = $this->Application->ConfigValue('User_SubscriberGroup');
$sql = 'INSERT INTO '.TABLE_PREFIX.'UserGroup(PortalUserId,GroupId,PrimaryGroup) VALUES (%s,%s,'.$is_primary.')';
$this->Conn->Query( sprintf($sql, $user_id, $group_id) );
$this->Application->EmailEventAdmin('USER.SUBSCRIBE', $user_id);
$this->Application->EmailEventUser('USER.SUBSCRIBE', $user_id);
}
function RemoveSubscriberGroup($user_id){
$group_id = $this->Application->ConfigValue('User_SubscriberGroup');
$sql = 'DELETE FROM '.TABLE_PREFIX.'UserGroup WHERE PortalUserId='.$user_id.' AND GroupId='.$this->Application->ConfigValue('User_SubscriberGroup');
$this->Conn->Query($sql);
$this->Application->EmailEventAdmin('USER.UNSUBSCRIBE', $user_id);
$this->Application->EmailEventUser('USER.UNSUBSCRIBE', $user_id);
}
function GetGroupInfo($user_id){
$group_info = $this->Conn->GetRow('SELECT * FROM '.TABLE_PREFIX.'UserGroup
WHERE PortalUserId='.$user_id.'
AND GroupId='.$this->Application->ConfigValue('User_SubscriberGroup'));
return $group_info;
}
function OnForgotPassword(&$event){
$user_object = &$this->Application->recallObject('u.forgot', null, Array('skip_autoload' => true));
$user_current_object = &$this->Application->recallObject('u');
$username = $this->Application->GetVar('username');
$email = $this->Application->GetVar('email');
$found = false;
$allow_reset = true;
if( strlen($username) )
{
if( $user_object->Load(array('Login'=>$username)) )
$found = ($user_object->GetDBField("Login")==$username && $user_object->GetDBField("Status")==1) && strlen($user_object->GetDBField("Password"));
}
else if( strlen($email) )
{
if( $user_object->Load(array('Email'=>$email)) )
$found = ($user_object->GetDBField("Email")==$email && $user_object->GetDBField("Status")==1) && strlen($user_object->GetDBField("Password"));
}
if( $user_object->isLoaded() )
{
$PwResetConfirm = $user_object->GetDBField('PwResetConfirm');
$PwRequestTime = $user_object->GetDBField('PwRequestTime');
$PassResetTime = $user_object->GetDBField('PassResetTime');
//$MinPwResetDelay = $user_object->GetDBField('MinPwResetDelay');
$MinPwResetDelay = $this->Application->ConfigValue('Users_AllowReset');
$allow_reset = (strlen($PwResetConfirm) ?
adodb_mktime() > $PwRequestTime + $MinPwResetDelay :
adodb_mktime() > $PassResetTime + $MinPwResetDelay);
}
if($found && $allow_reset)
{
$this->Application->StoreVar('tmp_user_id', $user_object->GetDBField("PortalUserId"));
$this->Application->StoreVar('tmp_email', $user_object->GetDBField("Email"));
$this->Application->EmailEventUser('INCOMMERCEUSER.PSWDC', $user_object->GetDBField("PortalUserId"));
$event->redirect = $this->Application->GetVar('template_success');
}
else
{
if(!strlen($username) && !strlen($email))
{
$user_current_object->ErrorMsgs['forgotpw_nodata'] = $this->Application->Phrase('lu_ferror_forgotpw_nodata');
$user_current_object->FieldErrors['Login']['pseudo'] = 'lu_ferror_forgotpw_nodata';
}
else
{
if($allow_reset)
{
if( strlen($username) ){
$user_current_object->ErrorMsgs['unknown_username'] = $this->Application->Phrase('lu_ferror_unknown_username');
$user_current_object->FieldErrors['Login']['pseudo']='unknown_username';
}
if( strlen($email) ){
$user_current_object->ErrorMsgs['unknown_email'] = $this->Application->Phrase('lu_ferror_unknown_email');
$user_current_object->FieldErrors['Email']['pseudo']='unknown_email';
}
}
else
{
$user_current_object->ErrorMsgs['reset_denied'] = $this->Application->Phrase('lu_ferror_reset_denied');
if( strlen($username) ){
$user_current_object->FieldErrors['Login']['pseudo']='reset_denied';
}
if( strlen($email) ){
$user_current_object->FieldErrors['Email']['pseudo']='reset_denied';
}
}
}
if($user_current_object->FieldErrors){
$event->redirect = false;
}
}
}
/**
* Enter description here...
*
* @param kEvent $event
*/
function OnResetPassword(&$event){
$user_object = &$this->Application->recallObject('u.forgot');
if($user_object->Load($this->Application->RecallVar('tmp_user_id'))){
$this->Application->EmailEventUser('INCOMMERCEUSER.PSWDC', $user_object->GetDBField("PortalUserId"));
$event->redirect = $this->Application->GetVar('template_success');
$mod_object =& $this->Application->recallObject('mod.'.'In-Commerce');
$m_cat_id = $mod_object->GetDBField('RootCat');
$event->SetRedirectParam('pass', 'm');
//$event->SetRedirectParam('m_cat_id', $m_cat_id);
$this->Application->SetVar('m_cat_id', $m_cat_id);
}
}
function OnResetPasswordConfirmed(&$event){
$passed_key = $this->Application->GetVar('user_key');
$user_object = &$this->Application->recallObject('u.forgot');
$user_current_object = &$this->Application->recallObject('u');
if (strlen(trim($passed_key)) == 0) {
$event->redirect_params = array('opener' => 's', 'pass' => 'all');
$event->redirect = false;
$user_current_object->ErrorMsgs['code_is_not_valid'] = $this->Application->Phrase('lu_code_is_not_valid');
$user_current_object->FieldErrors['PwResetConfirm']['pseudo'] = 'code_is_not_valid';
}
if($user_object->Load(array('PwResetConfirm'=>$passed_key)))
{
$exp_time = $user_object->GetDBField('PwRequestTime') + 3600;
$user_object->SetDBField("PwResetConfirm", '');
$user_object->SetDBField("PwRequestTime", 0);
if ( $exp_time > adodb_mktime() )
{
//$m_var_list_update['codevalidationresult'] = 'lu_resetpw_confirm_text';
$newpw = makepassword4();
$this->Application->StoreVar('password', $newpw);
$user_object->SetDBField("Password",$newpw);
$user_object->SetDBField("PassResetTime", adodb_mktime());
$user_object->SetDBField("PwResetConfirm", '');
$user_object->SetDBField("PwRequestTime", 0);
$user_object->Update();
$this->Application->SetVar('ForgottenPassword', $newpw);
$email_event_user = &$this->Application->EmailEventUser('INCOMMERCEUSER.PSWD', $user_object->GetDBField('PortalUserId'));
$email_event_admin = &$this->Application->EmailEventAdmin('INCOMMERCEUSER.PSWD');
$this->Application->DeleteVar('ForgottenPassword');
if ($email_event_user->status == erSUCCESS){
$event->redirect_params = array('opener' => 's', 'pass' => 'all');
$event->redirect = $this->Application->GetVar('template_success');
}
$user_object->SetDBField("Password",md5($newpw));
$user_object->Update();
} else {
$user_current_object->ErrorMsgs['code_expired'] = $this->Application->Phrase('lu_code_expired');
$user_current_object->FieldErrors['PwResetConfirm']['pseudo'] = 'code_expired';
$event->redirect = false;
}
} else {
$user_current_object->ErrorMsgs['code_is_not_valid'] = $this->Application->Phrase('lu_code_is_not_valid');
$user_current_object->FieldErrors['PwResetConfirm']['pseudo'] = 'code_is_not_valid';
$event->redirect = false;
}
}
function OnUpdate(&$event)
{
$cs_helper =& $this->Application->recallObject('CountryStatesHelper');
$cs_helper->CheckStateField($event, 'State', 'Country');
parent::OnUpdate($event);
$this->setNextTemplate($event);
}
/**
* Enter description here...
*
* @param kEvent $event
*/
function setNextTemplate(&$event)
{
if( !$this->Application->IsAdmin() )
{
$event->redirect_params['opener'] = 's';
$object =& $event->getObject();
if($object->GetDBField('Status') == STATUS_ACTIVE)
{
$next_template = $this->Application->GetVar('next_template');
if($next_template) $event->redirect = $next_template;
}
}
}
/**
* Delete users from groups if their membership is expired
*
* @param kEvent $event
*/
function OnCheckExpiredMembership(&$event)
{
// send pre-expiration reminders: begin
$pre_expiration = adodb_mktime() + $this->Application->ConfigValue('User_MembershipExpirationReminder') * 3600 * 24;
$sql = 'SELECT PortalUserId, GroupId
FROM '.TABLE_PREFIX.'UserGroup
WHERE (MembershipExpires IS NOT NULL) AND (ExpirationReminderSent = 0) AND (MembershipExpires < '.$pre_expiration.')';
$skip_clause = $event->getEventParam('skip_clause');
if ($skip_clause) {
$sql .= ' AND !('.implode(') AND !(', $skip_clause).')';
}
$records = $this->Conn->Query($sql);
if ($records) {
$conditions = Array();
foreach ($records as $record) {
$email_event_user =& $this->Application->EmailEventUser('USER.MEMBERSHIP.EXPIRATION.NOTICE', $record['PortalUserId']);
$email_event_admin =& $this->Application->EmailEventAdmin('USER.MEMBERSHIP.EXPIRATION.NOTICE');
$conditions[] = '(PortalUserId = '.$record['PortalUserId'].' AND GroupId = '.$record['GroupId'].')';
}
$sql = 'UPDATE '.TABLE_PREFIX.'UserGroup
SET ExpirationReminderSent = 1
WHERE '.implode(' OR ', $conditions);
$this->Conn->Query($sql);
}
// send pre-expiration reminders: end
// remove users from groups with expired membership: begin
$sql = 'SELECT PortalUserId
FROM '.TABLE_PREFIX.'UserGroup
WHERE (MembershipExpires IS NOT NULL) AND (MembershipExpires < '.adodb_mktime().')';
$user_ids = $this->Conn->GetCol($sql);
if ($user_ids) {
foreach ($user_ids as $id) {
$email_event_user =& $this->Application->EmailEventUser('USER.MEMBERSHIP.EXPIRED', $id);
$email_event_admin =& $this->Application->EmailEventAdmin('USER.MEMBERSHIP.EXPIRED');
}
}
$sql = 'DELETE FROM '.TABLE_PREFIX.'UserGroup
WHERE (MembershipExpires IS NOT NULL) AND (MembershipExpires < '.adodb_mktime().')';
$this->Conn->Query($sql);
// remove users from groups with expired membership: end
}
/**
* Enter description here...
*
* @param kEvent $event
*/
function OnRefreshForm(&$event)
{
$event->redirect = false;
$item_info = $this->Application->GetVar($event->Prefix_Special);
list($id, $fields) = each($item_info);
$object =& $event->getObject( Array('skip_autoload' => true) );
$object->setID($id);
$object->IgnoreValidation = true;
$object->SetFieldsFromHash($fields);
}
-
+
/**
* Sets persistant variable
*
* @param kEvent $event
*/
function OnSetPersistantVariable(&$event)
{
$object =& $event->getObject();
-
+
$field = $this->Application->GetVar('field');
$value = $this->Application->GetVar('value');
$object->setPersistantVar($field, $value);
-
+
$force_tab = $this->Application->GetVar('SetTab');
if ($force_tab) {
$this->Application->StoreVar('force_tab', $force_tab);
}
}
}
?>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.60.2/core/units/users/users_event_handler.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.60.2.3
\ No newline at end of property
+1.60.2.4
\ No newline at end of property

Event Timeline