$rgroups['grp_disabled'] = cot_import('rdisabled', 'P', 'BOL') ? 1 : 0; $rgroups['grp_maintenance'] = cot_import('rmtmode', 'P', 'BOL') ? 1 : 0; $rgroups['grp_skiprights'] = cot_import('rskiprights', 'P', 'BOL') ? 1 : 0; /* === Hook === */ foreach (cot_getextplugins('admin.users.update') as $pl) { include $pl; } /* ===== */ cot_check(empty($rgroups['grp_name']), 'adm_groups_name_empty', 'rname'); cot_check(empty($rgroups['grp_title']), 'adm_groups_title_empty', 'rtitle'); if (!cot_error_found()) { $db->update($db_groups, $rgroups, "grp_id={$g}"); $was_rightless = $db->query("SELECT grp_skiprights FROM {$db_groups} WHERE grp_id = {$g}")->fetchColumn(); if ($was_rightless && !$rgroups['grp_skiprights']) { // Add missing rights from default group cot_auth_add_group($grp_id, COT_GROUP_MEMBERS); } elseif (!$was_rightless && $rgroups['grp_skiprights']) { // Remove rights cot_auth_remove_group($g); } $cache && $cache->db->remove('cot_groups', 'system'); cot_message('Updated'); } cot_redirect(cot_url('admin', array('m' => 'users', 'n' => 'edit', 'g' => $g), '', true)); } elseif ($a == 'delete' && $g > 5) { $sql = $db->delete($db_groups, "grp_id='{$g}'"); $sql = $db->delete($db_groups_users, "gru_groupid='{$g}'"); cot_auth_remove_group($g); /* === Hook === */ foreach (cot_getextplugins('admin.users.delete') as $pl) { include $pl;
/* === Hook === */ foreach (cot_getextplugins('admin.rights.first') as $pl) { include $pl; } /* ===== */ if ($a == 'update') { $ncopyrightsconf = cot_import('ncopyrightsconf', 'P', 'BOL'); $ncopyrightsfrom = cot_import('ncopyrightsfrom', 'P', 'INT'); /* === Hook === */ foreach (cot_getextplugins('admin.rights.update') as $pl) { include $pl; } /* ===== */ if ($ncopyrightsconf && !empty($cot_groups[$ncopyrightsfrom]['name']) && $g > 5) { $db->delete($db_auth, "auth_groupid={$g}"); cot_auth_add_group($g, $ncopyrightsfrom); cot_auth_clear('all'); cot_message('Added'); } elseif ($auth = cot_import('auth', 'P', 'ARR')) { $mask = array(); $db->update($db_auth, array('auth_rights' => 0), "auth_groupid={$g}"); foreach ($auth as $k => $v) { foreach ($v as $i => $j) { if (is_array($j)) { $mask = 0; foreach ($j as $l => $m) { $mask += cot_auth_getvalue($l); } $db->update($db_auth, array('auth_rights' => $mask), "auth_groupid=? AND auth_code=? AND auth_option=?", array($g, $k, $i)); } }
} $group_exists = (bool) $db->query("SELECT grp_id FROM {$db_groups} WHERE grp_alias='employer'")->fetch(); if (!$group_exists) { $rgroups['grp_name'] = 'Работодатели'; $rgroups['grp_title'] = 'Работодатель'; $rgroups['grp_desc'] = ''; $rgroups['grp_icon'] = ''; $rgroups['grp_alias'] = 'employer'; $rgroups['grp_level'] = 1; $rgroups['grp_disabled'] = 0; $rgroups['grp_maintenance'] = 0; $rgroups['grp_skiprights'] = 0; $rgroups['grp_ownerid'] = 1; $db->insert($db_groups, $rgroups); $employer_grp_id = $db->lastInsertId(); cot_auth_add_group($employer_grp_id, 4); $db->update($db_auth, array('auth_rights' => 3), "auth_groupid=" . $employer_grp_id . " AND auth_code='projects'"); // Устанавливаем права только на создание проектов } // Переносим настройки из плагина Freelancers, чтобы не потерялись на работающих сайтах if (!empty($cfg['plugin']['freelancers']['roles'])) { $rconfig['config_value'] = $cfg['plugin']['freelancers']['roles']; $db->update($db_config, $rconfig, "config_cat='usergroupselector' AND config_name='groups'"); } if (!empty($cfg['plugin']['freelancers']['rolereq'])) { $rconfig['config_value'] = $cfg['plugin']['freelancers']['rolereq']; $db->update($db_config, $rconfig, "config_cat='usergroupselector' AND config_name='required'"); } if (!empty($cfg['plugin']['freelancers']['allowchange'])) { $rconfig['config_value'] = $cfg['plugin']['freelancers']['allowchange']; $db->update($db_config, $rconfig, "config_cat='usergroupselector' AND config_name='allowchange'");