cmdbAbstractObject bizmodel,searchable,structure false autoincrement organization id status name false code true active inactive status active true list parent_id true DEL_MANUAL parent_id name true DashboardLayoutTwoCols Organization:Overview false 300 0 0 Organization:Overview:FunctionalCIs Organization:Overview:FunctionalCIs:subtitle SELECT FunctionalCI WHERE org_id=:this->id finalclass NetworkDevice,Server,ApplicationSolution 20 0 Organization:Overview:Users SELECT Person AS p JOIN User AS u ON u.contactid=p.id WHERE p.org_id=:this->id true 5 0
10 20 30 40 50
10 10 20 30 40 10 20 30
cmdbAbstractObject bizmodel,searchable,structure false autoincrement location id status name false active inactive status active true list org_id Organization false DEL_MANUAL org_id name address true postal_code true city true country true Person location_id add_only 0 0 10 20 30 40 50
10 20 30 40 50 60 70 80
10 20 30 10 20 30 40 50 60 70 10 20 30 40
cmdbAbstractObject bizmodel,searchable,structure true autoincrement contact id finalclass status status='inactive' name false active inactive status active false list org_id Organization false DEL_MANUAL org_id name email true phone true yes no notify yes true radio_horizontal function true
10 20 30 40 50 60 70
10 20 30 40 50 60 70 10 20 30 40 10 20 30 40 50
Contact bizmodel,searchable,structure false autoincrement person id picture false true false false EVENT_DB_CHECK_TO_WRITE CheckUsersOnUpdate 1 96 96 128 128 images/silhouette.png true first_name false employee_number true mobile_phone true org_id]]> location_id Location true DEL_MANUAL false location_id name manager_id Person true DEL_MANUAL manager_id name lnkPersonToTeam person_id 0 0 team_id User contactid add_only on_host_display 0 0 false public EventListener ListChanges(); // Current User may not be allowed to see User class, so we can't use $this->Get('user_list') $oSearch = new DBObjectSearch('User'); $oSearch->AddCondition('contactid', $this->GetKey(), '='); $oSearch->AllowAllData(); $oUserSet = new DBObjectSet($oSearch); // Change was not made by a DataSynchro and the organization's person was changed and there are associated Users if (!ContextTag::Check(ContextTag::TAG_SYNCHRO) && array_key_exists('org_id', $aChanges) && ($oUserSet->Count() > 0)) { while($oUser = $oUserSet->Fetch()) { $oAddon = UserRights::GetModuleInstance(); $aOrgs = $oAddon->GetUserOrgs($oUser,'Organization'); $oSet = $oUser->Get('profile_list'); $aProfiles = $oSet->GetColumnAsArray('profile'); // User is not allowed on the new Organization and has 'Portal user' Profile and is enabled if ((count($aOrgs) > 0) && !in_array($this->Get('org_id'), $aOrgs) && in_array('Portal user',$aProfiles) && ($oUser->Get('status') === 'enabled')) { // Let's block the Person modification, // replace by $this->AddCheckWarning(...) if you don't want to block the modification $this->AddCheckIssue(Dict::Format('Class:Person/Error:ChangingOrgDenied', $this->Get('org_id_friendlyname'))); } } } } ]]> false public Overload-DBObject Get('demo_mode')) { if ($this->HasUserAccount()) { // Do not let users change user accounts in demo mode $oDeletionPlan->AddToDelete($this, null); $oDeletionPlan->SetDeletionIssues($this, array('deletion not allowed in demo mode.'), true); $oDeletionPlan->ComputeResults(); return false; } } return parent::CheckToDelete($oDeletionPlan); } ]]> false public Overload-DBObject Get('demo_mode')) { if ($this->HasUserAccount()) { // Do not let users change user accounts in demo mode return; } } parent::DBDeleteSingleObject(); } ]]> false public Overload-DBObject IsNew()) ) { if (MetaModel::GetConfig()->Get('demo_mode')) { if ($this->HasUserAccount()) { // Do not let users change user accounts in demo mode return OPT_ATT_READONLY; } } } return parent::GetAttributeFlags($sAttCode, $aReasons, $sTargetState); } ]]> false public Helper $this->GetKey()))); $bHasUserAccount = ($oUserSet->Count() > 0); } return $bHasUserAccount; } ]]> 10 20 30 40 50
10 55 40 10 10 20 30 40 50 60 70 80 50 5 10 10 10 20 30 40
10 20 30 40 50 60 70 80 90 100 110 10 20 30 40 50 60
Contact bizmodel,searchable false autoincrement team id true DashboardLayoutTwoCols Team:Overview false 300 0 0 Team:Overview:ActiveTickets SELECT Ticket WHERE team_id=:this->id AND operational_status = 'ongoing' finalclass count attribute asc 1 0 Class:UserRequest itop-structure/../../images/icons/icons8-customer.svg Team:Overview:UserRequest-ByStatus SELECT UserRequest WHERE team_id=:this->id status new,assigned,pending,resolved,closed 2 0 UI-RequestManagementOverview-OpenRequestByAgent SELECT UserRequest WHERE team_id=:this->id AND status!='closed' agent_id count attribute desc 3 0 Team:Overview:FunctionalCIs-ByType SELECT FunctionalCI AS fci JOIN lnkContactToFunctionalCI AS lnk ON lnk.functionalci_id = fci.id WHERE lnk.contact_id=:this->id finalclass count attribute asc 4 0 Team:Overview:UserRequest-ClosedByMonth SELECT UserRequest WHERE team_id=:this->id AND close_date > DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 12 MONTH),'%Y-%m-01 00:00:00') AND status='closed' close_date:month count attribute asc 5 0 Team:Overview:UserRequest-ClosedByAgent SELECT UserRequest WHERE team_id=:this->id AND close_date > DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 12 MONTH),'%Y-%m-01 00:00:00') AND status='closed' agent_id count attribute desc lnkPersonToTeam team_id 0 0 person_id 10 20 30 40
10 20 30 40 50 60 70 80 90
10 20 30 40 50 60 70 10 20 30 40
cmdbAbstractObject 1 bizmodel false autoincrement lnkpersontoteam id false true team_id Team false DEL_AUTO team_id name person_id Person false DEL_AUTO person_id name role_id ContactType true DEL_MANUAL role_id name
10 20 30
10 20 30 10 20 30
cmdbAbstractObject bizmodel,searchable true autoincrement typology id finalclass name false
10
10 10 10
cmdbAbstractObject bizmodel,searchable true autoincrement document id finalclass status name false org_id Organization false DEL_MANUAL org_id name documenttype_id DocumentType true DEL_MANUAL documenttype_id name version true description true rank draft 10 published 20 obsolete 30 status true list
10 20 30 35 40 50
10 20 30 10 20 30 40 50 10 20 30 40
Document bizmodel,searchable false autoincrement documentfile id file true false public Overload-cmdbAbstractObject add('
'); $oPage->add(''.Dict::S('Class:Document:PreviewTab').''); $oPage->add($this->DisplayDocumentInline($oPage, 'file')); $oPage->add('
'); } return $aFieldsMap; }]]>
10 20 30 35 40 50 60
10 20 30 40 50 10 20 30 40
Document bizmodel,searchable false autoincrement documentnote id text false
10 20 30 35 40 50 60
10 20 30 40 50 10 20 30 40
Document bizmodel,searchable false autoincrement documentweb id url true _blank
10 20 30 35 40 50
10 20 30 40 50 10 20 30 40
Typology bizmodel,searchable false autoincrement documenttype id
10
10 10
Typology bizmodel,searchable false autoincrement contacttype id
10
10 10
70 Organization UR_ACTION_MODIFY UR_ALLOWED_YES 10 DataAdministration $pages/csvimport.php 33 DataAdministration $pages/audit.php 50 DataAdministration 10 Catalogs SELECT Organization 1 20 2 ConfigManagement DashboardLayoutOneCol <cells> <cell id="0"> <rank>0</rank> <dashlets> <dashlet id="1" xsi:type="DashletHeaderDynamic"> <rank>1</rank> <title>Menu:Contact Menu:Contact:Count SELECT Contact status active,inactive 2 Team 3 Person 3 Contact Contact 4 Contact Contact 3 ConfigManagement SELECT Location 1 6 ConfigManagement SELECT Document 1 80 Catalogs DashboardLayoutOneCol Menu:ConfigManagement:Typology 0 0 Menu:ConfigManagement:Typology 8 ContactType 9 DocumentType 100 Catalogs $pages/tagadmin.php TagSetFieldData UR_ACTION_MODIFY ../css/backoffice/main.scss itop-structure/precompiled-themes/fullmoon/main.css $ibo-color-red-600 $ibo-color-red-100 "THIS IS A TEST INSTANCE" ../css/backoffice/main.scss ../css/backoffice/themes/page-banner.scss itop-structure/precompiled-themes/test-red/main.css module itop-structure -1 .ibo-has-description::after, .ibo-input-with-label--label.ibo-has-description::after{content:"\1F6C8"; font-weight: 200;} '; } } ]]>