/** * event function to add a new role * @param object $evctl */ public function eventAddNewRole(EventControler $evctl) { $permission = $_SESSION["do_user"]->is_admin == 1 ? true : false; if (true === $permission) { if ($evctl->rolename != '' && $evctl->parentrole != '') { $role_detail = $this->get_role_detail($evctl->parentrole); if (is_array($role_detail) && count($role_detail) > 0) { $depth_lookup = $role_detail["depth"] + 1; $qry = "select max(idrole) as max_role from `role`"; $stmt = $this->getDbConnection()->executeQuery($qry); $data = $stmt->fetch(); $max_role = $data["max_role"]; if ($max_role != '') { $role_int = str_replace("N", "", $max_role); $new_role_int = $role_int + 1; $new_role = "N" . $new_role_int; $new_parent_role = $role_detail["parentrole"] . "::" . $new_role; $this->insert($this->getTable(), array("idrole" => $new_role, "rolename" => CommonUtils::purify_input($evctl->rolename), "parentrole" => $new_parent_role, "depth" => $depth_lookup, "editable" => 1)); // Adding role profile relation $profiles = $evctl->select_to; foreach ($profiles as $idprofile) { $do_role_prof_rel = new RoleProfileRelation(); $do_role_prof_rel->addNew(); $do_role_prof_rel->idrole = $new_role; $do_role_prof_rel->idprofile = $idprofile; $do_role_prof_rel->add(); $do_role_prof_rel->free(); } $dis = new Display($evctl->next_page); $dis->addParam("sqrecord", $idprofile); $evctl->setDisplayNext($dis); } } } } else { $_SESSION["do_crm_messages"]->set_message('error', _('You do not have permission to add record !')); $next_page = NavigationControl::getNavigationLink("Settings", "index"); $dis = new Display($next_page); $evctl->setDisplayNext($dis); } }