コード例 #1
0
 /**
  * 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);
     }
 }