/** * Used only for reports * @param unknown_type $external_conditions */ static function getAvailableObjectTypes($external_conditions = "") { $object_types = self::findAll(array( "conditions" => "`type` = 'content_object' AND `name` <> 'file revision' AND IF(plugin_id IS NULL OR plugin_id=0, true, (SELECT p.is_activated FROM ".TABLE_PREFIX."plugins p WHERE p.id=plugin_id) = true) AND `id` NOT IN (SELECT `object_type_id` FROM ".TabPanels::instance()->getTableName(true)." WHERE `enabled` = 0) $external_conditions" )); return $object_types; }
/** * Finish the installation - create owner company and administrator * * @param void * @return null */ function complete_installation() { if (Contacts::getOwnerCompany() instanceof Contact) { die('Owner company already exists'); // Somebody is trying to access this method even if the user already exists } // if $form_data = array_var($_POST, 'form'); tpl_assign('form_data', $form_data); if (array_var($form_data, 'submited') == 'submited') { try { $admin_password = trim(array_var($form_data, 'admin_password')); $admin_password_a = trim(array_var($form_data, 'admin_password_a')); if (trim($admin_password) == '') { throw new Error(lang('password value required')); } // if if ($admin_password != $admin_password_a) { throw new Error(lang('passwords dont match')); } // if DB::beginWork(); Contacts::delete(); // clear users table // Create a company $company = new Contact(); $company->setFirstName(array_var($form_data, 'company_name')); $company->setObjectName(); $company->setIsCompany(true); $company->save(); // Init default colors set_config_option('brand_colors_head_back', "424242"); set_config_option('brand_colors_tabs_back', "e7e7e7"); set_config_option('brand_colors_head_font', "FFFFFF"); set_config_option('brand_colors_tabs_font', "333333"); // Create the administrator user $administrator = new Contact(); $pergroup = PermissionGroups::findOne(array('conditions' => "`name`='Super Administrator'")); $administrator->setUserType($pergroup->getId()); $administrator->setCompanyId($company->getId()); $administrator->setUsername(array_var($form_data, 'admin_username')); $administrator->setPassword($admin_password); $administrator->setFirstname(array_var($form_data, 'admin_username')); $administrator->setObjectName(); $administrator->save(); $user_password = new ContactPassword(); $user_password->setContactId($administrator->getId()); $user_password->password_temp = $admin_password; $user_password->setPasswordDate(DateTimeValueLib::now()); $user_password->setPassword(cp_encrypt($admin_password, $user_password->getPasswordDate()->getTimestamp())); $user_password->save(); //Add email after save because is needed. $administrator->addEmail(array_var($form_data, 'admin_email'), 'personal', true); //permissions $permission_group = new PermissionGroup(); $permission_group->setName('Account Owner'); $permission_group->setContactId($administrator->getId()); $permission_group->setIsContext(false); $permission_group->setType("permission_groups"); $permission_group->save(); $administrator->setPermissionGroupId($permission_group->getId()); $administrator->save(); $company->setCreatedById($administrator->getId()); $company->setUpdatedById($administrator->getId()); $company->save(); $contact_pg = new ContactPermissionGroup(); $contact_pg->setContactId($administrator->getId()); $contact_pg->setPermissionGroupId($permission_group->getId()); $contact_pg->save(); // tab panel permissions $panels = TabPanels::getEnabled(); foreach ($panels as $panel) { $tpp = new TabPanelPermission(); $tpp->setPermissionGroupId($administrator->getPermissionGroupId()); $tpp->setTabPanelId($panel->getId()); $tpp->save(); } // dimension permissions $dimensions = Dimensions::findAll(); foreach ($dimensions as $dimension) { if ($dimension->getDefinesPermissions()) { $cdp = ContactDimensionPermissions::findOne(array("conditions" => "`permission_group_id` = " . $administrator->getPermissionGroupId() . " AND `dimension_id` = " . $dimension->getId())); if (!$cdp instanceof ContactDimensionPermission) { $cdp = new ContactDimensionPermission(); $cdp->setPermissionGroupId($administrator->getPermissionGroupId()); $cdp->setContactDimensionId($dimension->getId()); } $cdp->setPermissionType('allow all'); $cdp->save(); // contact member permisssion entries $members = $dimension->getAllMembers(); foreach ($members as $member) { $ots = DimensionObjectTypeContents::getContentObjectTypeIds($dimension->getId(), $member->getObjectTypeId()); $ots[] = $member->getObjectId(); foreach ($ots as $ot) { $cmp = ContactMemberPermissions::findOne(); if (!$cmp instanceof ContactMemberPermission) { $cmp = new ContactMemberPermission(array("conditions" => "`permission_group_id` = " . $administrator->getPermissionGroupId() . " AND `member_id` = " . $member->getId() . " AND `object_type_id` = {$ot}")); $cmp->setPermissionGroupId($administrator->getPermissionGroupId()); $cmp->setMemberId($member->getId()); $cmp->setObjectTypeId($ot); } $cmp->setCanWrite(1); $cmp->setCanDelete(1); $cmp->save(); } } } } // system permissions $sp = new SystemPermission(); $sp->setPermissionGroupId($administrator->getPermissionGroupId()); $sp->setAllPermissions(true); $sp->save(); // root permissions DB::executeAll("\r\n\t\t\t\tINSERT INTO " . TABLE_PREFIX . "contact_member_permissions (permission_group_id, member_id, object_type_id, can_delete, can_write)\r\n\t\t\t\t SELECT " . $administrator->getPermissionGroupId() . ", 0, rtp.object_type_id, rtp.can_delete, rtp.can_write FROM " . TABLE_PREFIX . "role_object_type_permissions rtp \r\n\t\t\t\t WHERE rtp.object_type_id NOT IN (SELECT id FROM " . TABLE_PREFIX . "object_types WHERE name IN ('mail','template','file_revision')) AND rtp.role_id in (\r\n\t\t\t\t SELECT pg.id FROM " . TABLE_PREFIX . "permission_groups pg WHERE pg.type='roles' AND pg.name IN ('Super Administrator','Administrator','Manager','Executive')\r\n\t\t\t\t )\r\n\t\t\t\tON DUPLICATE KEY UPDATE member_id=0;"); Hook::fire('after_user_add', $administrator, $null); DB::commit(); $this->redirectTo('access', 'login'); } catch (Exception $e) { tpl_assign('error', $e); DB::rollback(); } // try } // if }
/** * This function will return paginated result. Result is an array where first element is * array of returned object and second populated pagination object that can be used for * obtaining and rendering pagination data using various helpers. * * Items and pagination array vars are indexed with 0 for items and 1 for pagination * because you can't use associative indexing with list() construct * * @access public * @param array $arguments Query argumens (@see find()) Limit and offset are ignored! * @param integer $items_per_page Number of items per page * @param integer $current_page Current page number * @return array */ function paginate($arguments = null, $items_per_page = 10, $current_page = 1) { if (isset($this) && instance_of($this, 'TabPanels')) { return parent::paginate($arguments, $items_per_page, $current_page); } else { return TabPanels::instance()->paginate($arguments, $items_per_page, $current_page); } // if }
//animCollapse: false } <?php } ?> ]; if (! og.dimensionPanels.length ){ alert("In order to continue, you need to create dimensions (directly from database)."); } og.contextManager.construct(); og.objPickerTypeFilters = []; <?php $pg_id = logged_user()->getPermissionGroupId(); $obj_picker_type_filters = ObjectTypes::findAll(array("conditions" => "`type` = 'content_object'\n\t\tAND (plugin_id IS NULL OR plugin_id IN (SELECT distinct(id) FROM " . TABLE_PREFIX . "plugins WHERE is_installed = 1 AND is_activated = 1 ))\n\t\tAND `name` <> 'file revision' AND `id` NOT IN (\n\t\t\tSELECT `object_type_id` FROM " . TabPanels::instance()->getTableName(true) . " WHERE `enabled` = 0\n\t\t) OR `type` = 'comment' OR `name` = 'milestone'")); foreach ($obj_picker_type_filters as $type) { if (!$type instanceof ObjectType) { continue; } /* @var $type ObjectType */ $linkable = $type->getIsLinkableObjectType(); if ($linkable) { ?> og.objPickerTypeFilters.push({ id: '<?php echo $type->getName(); ?> ', name: '<?php echo lang($type->getName());
function enable_disable_system_modules() { ajx_current("empty"); if (!can_manage_configuration(logged_user())) { flash_error(lang('no access permissions')); ajx_current("empty"); return; } $module_list = json_decode(array_var($_REQUEST, 'modules'), true); try { DB::beginWork(); foreach ($module_list as $module_id => $enabled) { $tab_panel = TabPanels::instance()->findById($module_id); if ($tab_panel instanceof TabPanel) { $tab_panel->setEnabled($enabled > 0); $tab_panel->save(); if ($enabled > 0) { DB::execute("INSERT INTO " . TABLE_PREFIX . "tab_panel_permissions (permission_group_id, tab_panel_id) VALUES (" . logged_user()->getPermissionGroupId() . ",'" . $tab_panel->getId() . "') ON DUPLICATE KEY UPDATE tab_panel_id=tab_panel_id;"); } if ($tab_panel->getPluginId() > 0) { $plugin = Plugins::findById($tab_panel->getPluginId()); if ($plugin instanceof Plugin) { if ($enabled) { $plugin->activate(); } else { $plugin->deactivate(); } } } } } DB::commit(); } catch (Exception $e) { DB::rollback(); Logger::log("Error occurred when trying to enable/disable modules\n" . $e->getMessage() . "\n" . print_r($module_list, 1)); } }
/** * @param unknown_type $external_conditions */ static function getAvailableObjectTypesWithTimeslots($external_conditions = "") { $object_types = self::findAll(array("conditions" => "`type` IN ('content_object', 'located') AND \r\n\t\t\t`name` <> 'file revision' AND name <> 'template_task' AND name <> 'template_milestone' AND `name` <> 'template' AND \r\n\t\t\tIF(plugin_id IS NULL OR plugin_id=0, true, (SELECT p.is_activated FROM " . TABLE_PREFIX . "plugins p WHERE p.id=plugin_id) = true) AND\r\n\t\t\t`id` NOT IN (SELECT `object_type_id` FROM " . TabPanels::instance()->getTableName(true) . " WHERE `enabled` = 0) {$external_conditions}")); return $object_types; }
/** * Show update permissions page * * @param void * @return null */ function update_permissions() { $user = Contacts::findById(get_id()); if (!($user instanceof Contact && $user->isUser()) || $user->getDisabled()) { flash_error(lang('user dnx')); ajx_current("empty"); return; } // if if (!$user->canUpdatePermissions(logged_user())) { flash_error(lang('no access permissions')); ajx_current("empty"); return; } // if $redirect_to = array_var($_GET, 'redirect_to'); if (trim($redirect_to) == '' || !is_valid_url($redirect_to)) { $redirect_to = $user->getCardUserUrl(); } // if $sys_permissions_data = array_var($_POST, 'sys_perm'); if (!is_array($sys_permissions_data)) { $pg_id = $user->getPermissionGroupId(); $parameters = permission_form_parameters($pg_id); // Module Permissions $module_permissions = TabPanelPermissions::findAll(array("conditions" => "`permission_group_id` = {$pg_id}")); $module_permissions_info = array(); foreach ($module_permissions as $mp) { $module_permissions_info[$mp->getTabPanelId()] = 1; } $all_modules = TabPanels::findAll(array("conditions" => "`enabled` = 1", "order" => "ordering")); $all_modules_info = array(); foreach ($all_modules as $module) { $all_modules_info[] = array('id' => $module->getId(), 'name' => lang($module->getTitle()), 'ot' => $module->getObjectTypeId()); } // System Permissions $system_permissions = SystemPermissions::findById($pg_id); tpl_assign('module_permissions_info', $module_permissions_info); tpl_assign('all_modules_info', $all_modules_info); tpl_assign('system_permissions', $system_permissions); tpl_assign('permission_parameters', $parameters); $more_permissions = array(); Hook::fire('add_user_permissions', $pg_id, $more_permissions); tpl_assign('more_permissions', $more_permissions); // Permission Groups $groups = PermissionGroups::getNonPersonalSameLevelPermissionsGroups('`parent_id`,`id` ASC'); tpl_assign('groups', $groups); $roles = SystemPermissions::getAllRolesPermissions(); tpl_assign('roles', $roles); $tabs = TabPanelPermissions::getAllRolesModules(); tpl_assign('tabs_allowed', $tabs); tpl_assign('guest_groups', PermissionGroups::instance()->getGuestPermissionGroups()); } tpl_assign('user', $user); tpl_assign('redirect_to', $redirect_to); if (array_var($_POST, 'submitted') == 'submitted') { $user_data = array_var($_POST, 'user'); if (!is_array($user_data)) { $user_data = array(); } try { DB::beginWork(); $pg_id = $user->getPermissionGroupId(); $user->setUserType(array_var($user_data, 'type')); $user->save(); save_permissions($pg_id, $user->isGuest()); DB::commit(); flash_success(lang('success user permissions updated')); ajx_current("back"); } catch (Exception $e) { DB::rollback(); flash_error($e->getMessage()); ajx_current("empty"); } } // if }
function tabs_submit() { ajx_current("empty"); evt_add("tabs changed", null); if (!can_manage_configuration(logged_user())) { flash_error(lang('no access permissions')); ajx_current("empty"); return; } foreach ($_POST['tabs'] as $id => $tab) { $ordering = (int) $tab['ordering']; $title = mysql_real_escape_string($tab['title']); $enabled = array_var($tab, 'enabled') == "on" ? 1 : 0; if ($tp = TabPanels::instance()->findById($id)) { $tp->setOrdering($ordering); $tp->setTitle($title); $tp->setEnabled($enabled); if ($enabled) { $pg_id = logged_user()->getPermissionGroupId(); if (!TabPanelPermissions::isModuleEnabled($tp->getId(), $pg_id)) { $tpp = new TabPanelPermission(); $tpp->setPermissionGroupId($pg_id); $tpp->setTabPanelId($tp->getId()); $tpp->save(); } } $tp->save(); } } }
function getAllowedObjectTypeContents() { return DimensionObjectTypeContents::findAll(array('conditions' => array("`dimension_id` = ?\n\t\t\tAND (`content_object_type_id` IN (SELECT `id` FROM " . ObjectTypes::instance()->getTableName(true) . " WHERE `type` = 'located')\n\t\t\tOR ( \n\t\t\t\t`content_object_type_id` NOT IN (SELECT `object_type_id` FROM " . TabPanels::instance()->getTableName(true) . " WHERE `enabled` = 0) \n\t \t\t\tAND `content_object_type_id` IN (\n\t \t\t\t\tSELECT `id` FROM " . ObjectTypes::instance()->getTableName(true) . " WHERE `type` = 'content_object' AND `name` <> 'file revision'\n\t \t\t\t\t\tAND IF(plugin_id is NULL OR plugin_id = 0, TRUE, plugin_id IN (SELECT id FROM " . TABLE_PREFIX . "plugins WHERE is_activated > 0 AND is_installed > 0))\n\t \t\t\t)\n \t\t\t))", $this->getId()), 'distinct' => true)); }
/** * Finish the installation - create owner company and administrator * * @param void * @return null */ function complete_installation() { if(Contacts::getOwnerCompany() instanceof Contact) { die('Owner company already exists'); // Somebody is trying to access this method even if the user already exists } // if $form_data = array_var($_POST, 'form'); tpl_assign('form_data', $form_data); if(array_var($form_data, 'submited') == 'submited') { try { $admin_password = trim(array_var($form_data, 'admin_password')); $admin_password_a = trim(array_var($form_data, 'admin_password_a')); if(trim($admin_password) == '') { throw new Error(lang('password value required')); } // if if($admin_password <> $admin_password_a) { throw new Error(lang('passwords dont match')); } // if DB::beginWork(); Contacts::delete(); // clear users table // Create a company $company = new Contact(); $company->setFirstName(array_var($form_data, 'company_name')); $company->setObjectName(); $company->setIsCompany(true); $company->save(); // Init default colors set_config_option('brand_colors_head_back', "000000"); set_config_option('brand_colors_tabs_back', "14780e"); set_config_option('brand_colors_head_font', "ffffff"); set_config_option('brand_colors_tabs_font', "ffffff"); // Create the administrator user $administrator = new Contact(); $pergroup = PermissionGroups::findOne(array('conditions'=>"`name`='Super Administrator'")); $administrator->setUserType($pergroup->getId()); $administrator->setCompanyId($company->getId()); $administrator->setUsername(array_var($form_data, 'admin_username')); $administrator->setPassword($admin_password); $administrator->setFirstname(array_var($form_data, 'admin_username')); $administrator->setObjectName(); $administrator->save(); $user_password = new ContactPassword(); $user_password->setContactId($administrator->getId()); $user_password->password_temp = $admin_password; $user_password->setPasswordDate(DateTimeValueLib::now()); $user_password->setPassword(cp_encrypt($admin_password, $user_password->getPasswordDate()->getTimestamp())); $user_password->save(); //Add email after save because is needed. $administrator->addEmail(array_var($form_data, 'admin_email'), 'personal', true); //permissions $permission_group = new PermissionGroup(); $permission_group->setName('Account Owner'); $permission_group->setContactId($administrator->getId()); $permission_group->setIsContext(false); $permission_group->setType("permission_groups"); $permission_group->save(); $administrator->setPermissionGroupId($permission_group->getId()); $administrator->save(); $company->setCreatedById($administrator->getId()); $company->setUpdatedById($administrator->getId()); $company->save(); $contact_pg = new ContactPermissionGroup(); $contact_pg->setContactId($administrator->getId()); $contact_pg->setPermissionGroupId($permission_group->getId()); $contact_pg->save(); // tab panel permissions $panels = TabPanels::getEnabled(); foreach ($panels as $panel) { $tpp = new TabPanelPermission(); $tpp->setPermissionGroupId($administrator->getPermissionGroupId()); $tpp->setTabPanelId($panel->getId()); $tpp->save(); } // dimension permissions $dimensions = Dimensions::findAll(); foreach ($dimensions as $dimension) { if ($dimension->getDefinesPermissions()) { $cdp = ContactDimensionPermissions::findOne(array("conditions" => "`permission_group_id` = ".$administrator->getPermissionGroupId()." AND `dimension_id` = ".$dimension->getId())); if (!$cdp instanceof ContactDimensionPermission) { $cdp = new ContactDimensionPermission(); $cdp->setPermissionGroupId($administrator->getPermissionGroupId()); $cdp->setContactDimensionId($dimension->getId()); } $cdp->setPermissionType('allow all'); $cdp->save(); // contact member permisssion entries $members = $dimension->getAllMembers(); foreach ($members as $member) { $ots = DimensionObjectTypeContents::getContentObjectTypeIds($dimension->getId(), $member->getObjectTypeId()); $ots[]=$member->getObjectId(); foreach ($ots as $ot) { $cmp = ContactMemberPermissions::findOne(); if (!$cmp instanceof ContactMemberPermission) { $cmp = new ContactMemberPermission(array("conditions" => "`permission_group_id` = ".$administrator->getPermissionGroupId()." AND `member_id` = ".$member->getId()." AND `object_type_id` = $ot")); $cmp->setPermissionGroupId($administrator->getPermissionGroupId()); $cmp->setMemberId($member->getId()); $cmp->setObjectTypeId($ot); } $cmp->setCanWrite(1); $cmp->setCanDelete(1); $cmp->save(); } } } } // system permissions $sp = new SystemPermission(); $sp->setPermissionGroupId($administrator->getPermissionGroupId()); $sp->setAllPermissions(true); $sp->save(); Hook::fire('after_user_add', $administrator, $null); DB::commit(); $this->redirectTo('access', 'login'); } catch(Exception $e) { tpl_assign('error', $e); DB::rollback(); } // try } // if } // complete_installation
<?php $panel = TabPanels::instance()->findById('messages-panel'); if ($panel instanceof TabPanel && $panel->getEnabled()) { $limit = 5 ; $result = ProjectMessages::instance()->listing(array( "order" => "name", "order_dir" => "asc", "start" => 0, "limit" => $limit )) ; $active_members = array(); $context = active_context(); foreach ($context as $selection) { if ($selection instanceof Member) $active_members[] = $selection; } if (count($active_members) > 0) { $mnames = array(); $allowed_contact_ids = array(); foreach ($active_members as $member) { $mnames[] = clean($member->getName()); } $widget_title = lang('notes'). ' '. lang('in').' '. implode(", ", $mnames); } $total = $result->total ; $messages = $result->objects; $genid = gen_id(); if ($total) { include_once 'template.php';
} else { $pg_id = $contact->getPermissionGroupId(); tpl_assign('user', $contact); } $parameters = permission_form_parameters($pg_id); if ($contact->isNew()) { $parameters['root_permissions'] = $root_permissions; $parameters['member_permissions'] = $member_permissions; } // Module Permissions $module_permissions = TabPanelPermissions::findAll(array("conditions" => "`permission_group_id` = {$pg_id}")); $module_permissions_info = array(); foreach ($module_permissions as $mp) { $module_permissions_info[$mp->getTabPanelId()] = 1; } $all_modules = TabPanels::findAll(array("conditions" => "`enabled` = 1", "order" => "ordering")); $all_modules_info = array(); foreach ($all_modules as $module) { $all_modules_info[] = array('id' => $module->getId(), 'name' => lang($module->getTitle()), 'ot' => $module->getObjectTypeId()); } // System Permissions $system_permissions = SystemPermissions::findById($pg_id); tpl_assign('module_permissions_info', $module_permissions_info); tpl_assign('all_modules_info', $all_modules_info); if (!$system_permissions instanceof SystemPermission) { $system_permissions = new SystemPermission(); } tpl_assign('system_permissions', $system_permissions); tpl_assign('permission_parameters', $parameters); $more_permissions = array(); Hook::fire('add_user_permissions', $pg_id, $more_permissions);
$min_steps = 3; $more_settings_expanded = array_var($_REQUEST, 'more_settings_expanded'); if (config_option('getting_started_step') < 99 && !$more_settings_expanded) { // dimension links if (can_manage_dimension_members(logged_user())) { Hook::fire('more_panel_dimension_links', null, $links); $min_steps = count($links); } // add your first object link if (config_option('getting_started_step') < 98) { $object_count_rows = DB::executeAll("SELECT count(o.id) as cant, ot.id as ot_id, ot.name FROM " . TABLE_PREFIX . "objects o INNER JOIN " . TABLE_PREFIX . "object_types ot ON o.object_type_id=ot.id \n\t\t\tWHERE ot.name IN ('task','message','weblink','file','expense','objective','event') AND o.trashed_by_id=0 AND o.archived_by_id=0 GROUP BY ot_id"); $object_count = array(); foreach ($object_count_rows as $row) { $object_count[$row['name']] = $row['cant']; } $first_tab_panel = TabPanels::findOne(array('conditions' => "object_type_id > 0 AND enabled=1 AND id NOT IN ('more-panel', 'reporting-panel', 'mails-panel') AND \n\t\t\t\t(plugin_id is NULL OR plugin_id = 0 OR plugin_id IN (SELECT id FROM " . TABLE_PREFIX . "plugins WHERE is_activated > 0 AND is_installed > 0))", 'order' => 'ordering')); if ($first_tab_panel instanceof TabPanel) { $ot = ObjectTypes::findById($first_tab_panel->getObjectTypeId()); if ($ot instanceof ObjectType) { switch ($ot->getName()) { case "task": $selector = '.task-list-row-template .btn.btn-xs.btn-primary'; break; case "message": case "weblink": case "file": case "expense": case "objective": case "mail": case "contact": case "event":
/** * Return manager instance * * @access protected * @param void * @return TabPanels */ function manager() { if(!($this->manager instanceof TabPanels)) $this->manager = TabPanels::instance(); return $this->manager; } // manager
var tips_array = []; function addTip(div_id, title, bdy) { tips_array[cant_tips++] = new Ext.ToolTip({ target: div_id, html: bdy, title: title, hideDelay: 1500, closable: true }); } </script> <?php $calendar_panel = TabPanels::instance()->findById('calendar-panel'); if ($calendar_panel instanceof TabPanel && $calendar_panel->getEnabled()) { $genid = gen_id(); require_javascript('og/EventPopUp.js'); //$startday = date("d",mktime()) - (date("N", mktime()) %7); if (user_config_option("start_monday")) { $startday = date("j") - date("N") + 1; // beginning of the week, monday } else { $startday = date("j") - date("w"); // beginning of the week, sunday } //user_config_option('show_two_weeks_calendar',null,logged_user()->getId())? $my_weeks = 2 : $my_weeks = 1 ; $my_weeks = 2; $endday = $startday + 7 * $my_weeks; $today = DateTimeValueLib::now()->add('h', logged_user()->getTimezone());
<?php $panel = TabPanels::instance()->findById('documents-panel'); if ($panel instanceof TabPanel && $panel->getEnabled()) { $limit = 5 ; $result = ProjectFiles::instance()->listing(array( "order" => "name", "order_dir" => "asc", "start" => 0, "limit" => $limit )) ; $active_members = array(); $context = active_context(); foreach ($context as $selection) { if ($selection instanceof Member) $active_members[] = $selection; } if (count($active_members) > 0) { $mnames = array(); $allowed_contact_ids = array(); foreach ($active_members as $member) { $mnames[] = clean($member->getName()); } $widget_title = lang('documents'). ' '. lang('in').' '. implode(", ", $mnames); } $total = $result->total ; $documents = $result->objects; $genid = gen_id(); if ($total) { include_once 'template.php'; }
/** * Return manager instance * * @access protected * @param void * @return TabPanels */ function manager() { if (!$this->manager instanceof TabPanels) { $this->manager = TabPanels::instance(); } return $this->manager; }
/** * Edit group * * @param void * @return null */ function edit() { $this->setTemplate('add'); if (!can_manage_security(logged_user())) { flash_error(lang('no access permissions')); ajx_current("empty"); return; } // if $group = PermissionGroups::findById(get_id()); if (!$group instanceof PermissionGroup) { flash_error(lang('group dnx')); $this->redirectTo('administration', 'groups'); } // if $group_data = array_var($_POST, 'group'); if (!is_array($group_data)) { $pg_id = $group->getId(); $parameters = permission_form_parameters($pg_id); // Module Permissions $module_permissions = TabPanelPermissions::findAll(array("conditions" => "`permission_group_id` = {$pg_id}")); $module_permissions_info = array(); foreach ($module_permissions as $mp) { $module_permissions_info[$mp->getTabPanelId()] = 1; } $all_modules = TabPanels::findAll(array("conditions" => "`enabled` = 1", "order" => "ordering")); $all_modules_info = array(); foreach ($all_modules as $module) { $all_modules_info[] = array('id' => $module->getId(), 'name' => lang($module->getTitle()), 'ot' => $module->getObjectTypeId()); } // System Permissions $system_permissions = SystemPermissions::findById($pg_id); tpl_assign('module_permissions_info', $module_permissions_info); tpl_assign('all_modules_info', $all_modules_info); tpl_assign('system_permissions', $system_permissions); tpl_assign('permission_parameters', $parameters); // users $group_users = array(); $cpgs = ContactPermissionGroups::findAll(array("conditions" => "`permission_group_id` = {$pg_id}")); foreach ($cpgs as $cpg) { $group_users[] = $cpg->getContactId(); } tpl_assign('groupUserIds', $group_users); tpl_assign('users', Contacts::getAllUsers()); tpl_assign('pg_id', $group->getId()); tpl_assign('group', $group); tpl_assign('group_data', array('name' => $group->getName())); add_page_action(lang('delete'), "javascript:if(confirm(lang('confirm delete group'))) og.openLink('" . $group->getDeleteUrl() . "');", 'ico-trash', null, null, true); } else { try { $group->setFromAttributes($group_data); DB::beginWork(); $group->save(); // set permissions $pg_id = $group->getId(); //save_permissions($pg_id); $gr_users = $group->getUsers(); $gr_users_ids = array(); if ($post_users = array_var($_POST, 'user')) { foreach ($post_users as $user_id => $val) { if ($val == '1' && is_numeric($user_id)) { $gr_users_ids[] = $user_id; } } } foreach ($gr_users as $us) { if (!in_array($us->getId(), $gr_users_ids)) { $gr_users_ids[] = $us->getId(); } } // save users ContactPermissionGroups::delete("`permission_group_id` = {$pg_id}"); if ($users = array_var($_POST, 'user')) { foreach ($users as $user_id => $val) { if ($val == '1' && is_numeric($user_id) && Contacts::findById($user_id) instanceof Contact) { $cpg = new ContactPermissionGroup(); $cpg->setPermissionGroupId($pg_id); $cpg->setContactId($user_id); $cpg->save(); } } } //ApplicationLogs::createLog($group, ApplicationLogs::ACTION_EDIT); DB::commit(); flash_success(lang('success edit group', $group->getName())); ajx_current("back"); } catch (Exception $e) { DB::rollback(); tpl_assign('error', $e); return; } try { save_user_permissions_background(logged_user(), $pg_id, false, $gr_users_ids); } catch (Exception $e) { tpl_assign('error', $e); } } }
minHeight: 10 //animate: false, //animCollapse: false } <?php endforeach; ?> ]; og.contextManager.construct(); og.objPickerTypeFilters = []; <?php $obj_picker_type_filters = ObjectTypes::findAll(array("conditions" => "`type` = 'content_object' AND (plugin_id IS NULL OR plugin_id IN (SELECT distinct(id) FROM ".TABLE_PREFIX."plugins WHERE is_installed = 1 AND is_activated = 1 )) AND `name` <> 'file revision' AND `id` NOT IN ( SELECT `object_type_id` FROM ".TabPanels::instance()->getTableName(true)." WHERE `enabled` = 0 ) OR `type` = 'comment' OR `name` = 'milestone'")); $pg_ids = logged_user()->getPermissionGroupIds(); if (!is_array($pg_ids) || count($pg_ids) == 0) $pg_ids = array(0); foreach ($obj_picker_type_filters as $type) { if (! $type instanceof ObjectType ) continue ; /* @var $type ObjectType */ $linkable = $type->getIsLinkableObjectType(); if ($linkable) { $tab_ids = DB::executeAll("SELECT id FROM ".TABLE_PREFIX."tab_panels WHERE object_type_id = ".$type->getId()); if (count($tab_ids) > 0) { $tab_id = $tab_ids[0]['id']; if (!TabPanelPermissions::isModuleEnabled($tab_id, implode(',', $pg_ids))) { continue;
/** * Add user * * @access public * @param void * @return null */ function add_user() { $max_users = config_option('max_users'); if ($max_users && (Contacts::count() >= $max_users)) { flash_error(lang('maximum number of users reached error')); ajx_current("empty"); return; } $company = Contacts::findById(get_id('company_id')); if (!($company instanceof Contact)) { $company = owner_company(); } if (!can_manage_security(logged_user())) { flash_error(lang('no access permissions')); ajx_current("empty"); return; } // if $user = new Contact(); $user_data = array_var($_POST, 'user'); // Populate form fields if (!is_array($user_data)) { //if it is a new user $contact_id = get_id('contact_id'); $contact = Contacts::findById($contact_id); if ($contact instanceof Contact) { if (!is_valid_email($contact->getEmailAddress())){ ajx_current("empty"); flash_error(lang("contact email is required to create user")); return false; } //if it will be created from a contact $user_data = array( 'username' => $this->generateUserNameFromContact($contact), 'display_name' => $contact->getFirstname() . $contact->getSurname(), 'email' => $contact->getEmailAddress('personal'), 'contact_id' => $contact->getId(), 'password_generator' => 'random', 'type' => 'Executive', 'can_manage_time' => true, ); // array tpl_assign('ask_email', false); } else { // if it is new, and created from admin interface $user_data = array( 'password_generator' => 'random', 'company_id' => $company->getId(), 'timezone' => $company->getTimezone(), 'create_contact' => true, 'send_email_notification' => false, 'type' => 'Executive', 'can_manage_time' => true, ); tpl_assign('ask_email', true); } // System permissions tpl_assign('system_permissions', new SystemPermission()); // Module permissions $module_permissions_info = array(); $all_modules = TabPanels::findAll(array("conditions" => "`enabled` = 1", "order" => "ordering")); $all_modules_info = array(); foreach ($all_modules as $module) { $all_modules_info[] = array('id' => $module->getId(), 'name' => lang($module->getTitle()), 'ot' => $module->getObjectTypeId()); } tpl_assign('module_permissions_info', $module_permissions_info); tpl_assign('all_modules_info', $all_modules_info); // Member permissions $parameters = permission_form_parameters(0); tpl_assign('permission_parameters', $parameters); // Permission Groups $groups = PermissionGroups::getNonPersonalSameLevelPermissionsGroups('`parent_id`,`id` ASC'); tpl_assign('groups', $groups); $roles= SystemPermissions::getAllRolesPermissions(); tpl_assign('roles', $roles); $tabs= TabPanelPermissions::getAllRolesModules(); tpl_assign('tabs_allowed', $tabs); } // if tpl_assign('user', $user); tpl_assign('company', $company); tpl_assign('user_data', $user_data); //Submit User if (is_array(array_var($_POST, 'user'))) { if (!array_var($user_data, 'createPersonalProject')) { $user_data['personal_project'] = 0; } try { Contacts::validateUser($user_data); DB::beginWork(); $user = $this->createUser($user_data, array_var($_POST,'permissions')); DB::commit(); flash_success(lang('success add user', $user->getObjectName())); ajx_current("back"); } catch(Exception $e) { DB::rollback(); ajx_current("empty"); flash_error($e->getMessage()); } // try } // if } // add_user
/** * Used only for reports * @param unknown_type $external_conditions */ static function getAvailableObjectTypes($external_conditions = "") { $object_types = self::findAll(array("conditions" => "`type` = 'content_object' AND \n\t\t\t`name` <> 'file revision' AND \n\t\t\t`id` NOT IN (SELECT `object_type_id` FROM " . TabPanels::instance()->getTableName(true) . " WHERE `enabled` = 0) {$external_conditions}")); return $object_types; }