<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://frp.sage.fr/wiki1000/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>https://frp.sage.fr/wiki1000/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Chlem</id>
		<title>Wiki1000 - Contributions de l'utilisateur [fr]</title>
		<link rel="self" type="application/atom+xml" href="https://frp.sage.fr/wiki1000/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Chlem"/>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php/Sp%C3%A9cial:Contributions/Chlem"/>
		<updated>2026-04-30T06:57:53Z</updated>
		<subtitle>Contributions de l'utilisateur</subtitle>
		<generator>MediaWiki 1.18.6</generator>

	<entry>
		<id>https://frp.sage.fr/wiki1000/index.php/Fournisseur_de_service_SMS</id>
		<title>Fournisseur de service SMS</title>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php/Fournisseur_de_service_SMS"/>
				<updated>2016-06-01T12:48:53Z</updated>
		
		<summary type="html">&lt;p&gt;Chlem : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{version710}}&lt;br /&gt;
&lt;br /&gt;
Un fournisseur de service SMS configure un service capable d'envoyer des SMS&lt;br /&gt;
&lt;br /&gt;
[[image:sms_service_provider.png]]&lt;br /&gt;
&lt;br /&gt;
{{Tip|Un seul fournisseur peut être configuré}}&lt;br /&gt;
&lt;br /&gt;
L'envoi de SMS est utilisé dans le cadre de la double authentification et de la récupération de mot de passe.&lt;br /&gt;
&lt;br /&gt;
[[category:Administration]]&lt;br /&gt;
[[Category:Version710]]&lt;/div&gt;</summary>
		<author><name>Chlem</name></author>	</entry>

	<entry>
		<id>https://frp.sage.fr/wiki1000/index.php/Directives_conditionnelles_(langage)</id>
		<title>Directives conditionnelles (langage)</title>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php/Directives_conditionnelles_(langage)"/>
				<updated>2016-06-01T12:43:56Z</updated>
		
		<summary type="html">&lt;p&gt;Chlem : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Version710}}&lt;br /&gt;
&lt;br /&gt;
La directive de compilation conditionnelle &amp;quot;define&amp;quot; permet de définir une condition de compilation.&lt;br /&gt;
&lt;br /&gt;
===Définir une directive conditionnelle===&lt;br /&gt;
Les directives de compilation conditionnelle peuvent être définies :&lt;br /&gt;
&lt;br /&gt;
* Localement au niveau d'une procédure&lt;br /&gt;
: Une directive définie localement a une portée réduite au corps de la procédure.&lt;br /&gt;
&lt;br /&gt;
* Globalement au niveau du concepteur&lt;br /&gt;
: Une directive définie au niveau du concepteur a une portée globale dans l'ensemble du code.&lt;br /&gt;
&lt;br /&gt;
Pour définir une directive locale utilisez le mot clé {$DEFINE xx} :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure foo();&lt;br /&gt;
{$DEFINE FIX_1}&lt;br /&gt;
begin&lt;br /&gt;
  {$IFDEF FIX_1}&lt;br /&gt;
  // compiled if FIX_1 is defined&lt;br /&gt;
  {$ELSE}&lt;br /&gt;
  // compiled if FIX_1 is not defined&lt;br /&gt;
  {$ENDIF}&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour définir une directive de compilation globale ne l'a définissez pas au niveau du corps de la procédure :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
procedure foo();&lt;br /&gt;
begin&lt;br /&gt;
  {$IFDEF FIX_1}&lt;br /&gt;
  // compiled if FIX_1 is defined&lt;br /&gt;
  {$ELSE}&lt;br /&gt;
  // compiled if FIX_1 is not defined&lt;br /&gt;
  {$ENDIF}&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les directives définies globalement apparaissent dans le dialogue de préférence du concepteur :&lt;br /&gt;
&lt;br /&gt;
[[image:designer_pref_defines.png]]&lt;br /&gt;
&lt;br /&gt;
Vous pouvez activer ou désactiver une directive dans ce dialogue.&lt;br /&gt;
&lt;br /&gt;
Notez que :&lt;br /&gt;
* Les directives globales sont identifiées au moment de la compilation&lt;br /&gt;
* Lorsque vous activez / désactivez une directive les procédures impactées sont recompilées.&lt;br /&gt;
&lt;br /&gt;
Lorsque la directive n'apparait pas dans ce dialogue cela signifie que le code la comportant n'a pas encore été compilé. Vous pouvez soit créer explicitement la directive (fonction click droit &amp;quot;Ajouter&amp;quot;) soit compiler le code correspondant.&lt;br /&gt;
&lt;br /&gt;
===Utilisation des directives conditionnelles===&lt;br /&gt;
Les directives conditionnelles s'utilisent avec :&lt;br /&gt;
&lt;br /&gt;
* {$IFDEF xx}&lt;br /&gt;
:Bloc compilé si la directive est définie&lt;br /&gt;
* {$ELSE}&lt;br /&gt;
:Bloc compilé si la directive n'est pas définie&lt;br /&gt;
* {$ENDIF}&lt;br /&gt;
: Termine le bloc conditionnel&lt;br /&gt;
&lt;br /&gt;
[[Category:Version710]]&lt;br /&gt;
[[Category:Langage]]&lt;br /&gt;
[[Category:Directives]]&lt;/div&gt;</summary>
		<author><name>Chlem</name></author>	</entry>

	<entry>
		<id>https://frp.sage.fr/wiki1000/index.php/Contr%C3%B4le_des_autorisations_par_ACL_(Administration)</id>
		<title>Contrôle des autorisations par ACL (Administration)</title>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php/Contr%C3%B4le_des_autorisations_par_ACL_(Administration)"/>
				<updated>2016-06-01T12:19:55Z</updated>
		
		<summary type="html">&lt;p&gt;Chlem : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Version710}}&lt;br /&gt;
&lt;br /&gt;
Le contrôle des autorisations par ACL est une fonctionnalité permettant de contrôler à quelles fonctionnalités un utilisateur a accès.&lt;br /&gt;
&lt;br /&gt;
===Contrôle d'accès===&lt;br /&gt;
Historiquement la gestion des autorisations dans Sage FRP 1000 est implémentée par la gestion des menus. L'accès aux interfaces, et donc les autorisations correspondantes, est conditionné par les menus auquel l'utilisateur a accès. Toutefois, et particulièrement à partir de la version Web, il existe plusieurs manières d'ouvrir un écran sans passer par les menus. La gestion d'autorisation par les menus n'était donc pas suffisante.&lt;br /&gt;
&lt;br /&gt;
La nouvelle gestion introduite par cette fonctionnalité permet de combler cette faille, en effet le nouveau contrôle d'autorisation est appliqué globalement quel que soit la manière dont l'interface est ouverte.&lt;br /&gt;
&lt;br /&gt;
===Traçabilité===&lt;br /&gt;
La nouvelle gestion des accès permet aussi la traçabilité des accès, elle permet de répondre aux questions suivantes :&lt;br /&gt;
&lt;br /&gt;
* Quelles sont les interfaces autorisées pour un utilisateur ?&lt;br /&gt;
* Quelles étaient les interfaces autorisées pour un utilisateur à une certaine date ?&lt;br /&gt;
* Quelles sont les utilisateurs autorisés pour une interface ?&lt;br /&gt;
* Quelles étaient les utilisateurs autorisées pour une interface a une certaine date ?&lt;br /&gt;
&lt;br /&gt;
===Listes d'autorisation===&lt;br /&gt;
La gestion des autorisations s'appuie sur le concept de liste blanche et liste noire.&lt;br /&gt;
&lt;br /&gt;
La liste blanche est constituée des objets :&lt;br /&gt;
&lt;br /&gt;
* Pour lesquels l'utilisateur est explicitement autorisé, ce qui inclue ses personnalisations.&lt;br /&gt;
* Pour lesquels l'utilisateur est implicitement autorisé, ce qui inclue les objets référencés par un menu auquel l'utilisateur est rattaché (premier niveau) ET les objets référencés par ces objets (niveau supérieur)&lt;br /&gt;
* Les objets globaux pour lesquels tous les utilisateurs sont autorisés.&lt;br /&gt;
&lt;br /&gt;
La liste noire est constituée des objets :&lt;br /&gt;
&lt;br /&gt;
* Pour lesquels l'utilisateur est explicitement interdit.&lt;br /&gt;
&lt;br /&gt;
===Les objets globaux comprennent des interfaces qui sont toujours autorisées :===&lt;br /&gt;
* Les écrans de connexion et de changement de mot de passe&lt;br /&gt;
* Les écrans de gestion de compte&lt;br /&gt;
* L’écran notifiant une interdiction d'accès&lt;br /&gt;
&lt;br /&gt;
===La liste des objets référencés===&lt;br /&gt;
Cette liste est une table de références croisées entre les objets d'interface. Par exemple lorsqu'une interface (I1) contient un lien vers une autre interface (I2) cela constitue une référence R1 référençant I2 avec comme source I1&lt;br /&gt;
&lt;br /&gt;
===La liste blanche des objets implicites===&lt;br /&gt;
La liste blanche est alimentée :&lt;br /&gt;
&lt;br /&gt;
* Par les objets de premier niveau référencés par les entrées de menu&lt;br /&gt;
* Par les objets de niveau supérieur référencés par la liste des références.&lt;br /&gt;
&lt;br /&gt;
===Objets concernés===&lt;br /&gt;
Les objets concernés par le contrôle d'accès :&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Type d'objet&lt;br /&gt;
!Nom d'objet&lt;br /&gt;
!Contrôle liste blanche&lt;br /&gt;
!Contrôle liste noire&lt;br /&gt;
|-&lt;br /&gt;
|Ecrans &lt;br /&gt;
|*.dfm &lt;br /&gt;
|Oui &lt;br /&gt;
|Oui&lt;br /&gt;
|-&lt;br /&gt;
|Formats d'édition &lt;br /&gt;
|mod*.dfm &lt;br /&gt;
|Non &lt;br /&gt;
|Oui&lt;br /&gt;
|-&lt;br /&gt;
|Reports &lt;br /&gt;
|*.drp &lt;br /&gt;
|Non &lt;br /&gt;
|Oui&lt;br /&gt;
|-&lt;br /&gt;
|Formats d'export &lt;br /&gt;
|&lt;br /&gt;
|Non &lt;br /&gt;
|Oui&lt;br /&gt;
|-&lt;br /&gt;
|Formats d'import &lt;br /&gt;
|&lt;br /&gt;
|Non &lt;br /&gt;
|Oui&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Mise à jour de la liste d'autorisation===&lt;br /&gt;
La listes d'autorisation est impactées :&lt;br /&gt;
* Par les modifications d'un menu&lt;br /&gt;
* Par les associations explicite d'objet à un utilisateur.&lt;br /&gt;
* Par la modification des références entre interfaces &lt;br /&gt;
&lt;br /&gt;
Tous ces cas sont gérés automatiquement excepté le cas ou les références entre interfaces sont modifiées, par exemple si vous ajouter un lien vers une interface (Int référencée) à partir d'une autre interface (Int. source)&lt;br /&gt;
&lt;br /&gt;
Dans ce cas vous devez :&lt;br /&gt;
* Mettre à jour la table des références de l'interface source.&lt;br /&gt;
* Mettre à jour la liste des autorisation.&lt;br /&gt;
&lt;br /&gt;
===Rôle développeur===&lt;br /&gt;
En mode développement le contrôle d'accès peut devenir pénalisant car le développeur doit maintenir la liste d'autorisation à jour au cours du développement.&lt;br /&gt;
&lt;br /&gt;
Pour cette raison les utilisateurs ayant le rôle développeur (Droit d'ouvrir le concepteur de modèle) peuvent outre passé le contrôle d'accès lors de l'ouverture d'une interface.&lt;br /&gt;
&lt;br /&gt;
[[category:Administration]]&lt;br /&gt;
[[category:Autorisations]]&lt;br /&gt;
[[category:Version710]]&lt;/div&gt;</summary>
		<author><name>Chlem</name></author>	</entry>

	<entry>
		<id>https://frp.sage.fr/wiki1000/index.php/Contr%C3%B4le_des_acc%C3%A8s_par_ACL_(Administration)</id>
		<title>Contrôle des accès par ACL (Administration)</title>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php/Contr%C3%B4le_des_acc%C3%A8s_par_ACL_(Administration)"/>
				<updated>2016-06-01T12:16:37Z</updated>
		
		<summary type="html">&lt;p&gt;Chlem : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Version710}}&lt;br /&gt;
&lt;br /&gt;
Le contrôle des accès par ACL est une fonctionnalité permettant de contrôler les accréditations (qui a accès à quoi) de manière centralisée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:Administration]]&lt;br /&gt;
[[category:Autorisations]]&lt;br /&gt;
[[category:Version710]]&lt;/div&gt;</summary>
		<author><name>Chlem</name></author>	</entry>

	<entry>
		<id>https://frp.sage.fr/wiki1000/index.php/Configuration_des_applications_(administration)</id>
		<title>Configuration des applications (administration)</title>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php/Configuration_des_applications_(administration)"/>
				<updated>2016-05-30T16:08:33Z</updated>
		
		<summary type="html">&lt;p&gt;Chlem : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{version710}}&lt;br /&gt;
La configuration d'application permet de définir des scripts de configuration qui seront exécutés au chargement de l'application.&lt;br /&gt;
&lt;br /&gt;
Ces scripts permettent notamment :&lt;br /&gt;
* De définir des directives de compilation pour conditionner le code métier&lt;br /&gt;
* De définir des index personnalisés pour adapter les index aux usages du progiciel.&lt;br /&gt;
&lt;br /&gt;
===Pour définir une configuration===&lt;br /&gt;
Les configuration sont définies au niveau de l'application puis associées aux applications dans un dossier.&lt;br /&gt;
&lt;br /&gt;
Pour définir une configuration :&lt;br /&gt;
&lt;br /&gt;
[[image:app-conf-1.png]]&lt;br /&gt;
&lt;br /&gt;
puis saisissez le contenu du script :&lt;br /&gt;
&lt;br /&gt;
[[image:app-conf-2.png]]&lt;br /&gt;
&lt;br /&gt;
===Pour associer une configuration===&lt;br /&gt;
Pour associer une configuration à une application dans le contexte d'un dossier glisser l'application sur le noeud &amp;quot;Configurations dans ce dossier&amp;quot; de l'application :&lt;br /&gt;
&lt;br /&gt;
[[image:app-conf-3.png]]&lt;br /&gt;
&lt;br /&gt;
Notez que :&lt;br /&gt;
* Une configuration peut être partagée par plusieurs contextes de dossier.&lt;br /&gt;
* La liste des configurations est ordonnée, l'ordre de chargement de la configuration peut avoir une influence.&lt;br /&gt;
&lt;br /&gt;
Pour ordonner la liste des configurations :&lt;br /&gt;
&lt;br /&gt;
[[image:app-conf-4.png]]&lt;br /&gt;
&lt;br /&gt;
'''Exemple de script de configuration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  // defines&lt;br /&gt;
  {$DEFINEGLOBAL FIX_MY_PROBLEM}&lt;br /&gt;
&lt;br /&gt;
  // index&lt;br /&gt;
  ModelManager.AddCustomIndex('WFAddress','Country,City');&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voir aussi:&lt;br /&gt;
* [[AddCustomIndex (MM)|Ajout d'index personnalisé]]&lt;br /&gt;
* [[AddSearchKey (MM)|Ajout de clé de recherche globale]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Administration]]&lt;br /&gt;
[[Category:Directives]]&lt;br /&gt;
[[Category:Version710]]&lt;/div&gt;</summary>
		<author><name>Chlem</name></author>	</entry>

	<entry>
		<id>https://frp.sage.fr/wiki1000/index.php/Configuration_des_applications_(administration)</id>
		<title>Configuration des applications (administration)</title>
		<link rel="alternate" type="text/html" href="https://frp.sage.fr/wiki1000/index.php/Configuration_des_applications_(administration)"/>
				<updated>2016-05-30T15:57:02Z</updated>
		
		<summary type="html">&lt;p&gt;Chlem : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{version710}}&lt;br /&gt;
La configuration d'application permet de définir des scripts de configuration qui seront exécutés au chargement de l'application.&lt;br /&gt;
&lt;br /&gt;
Ces scripts permettent notamment :&lt;br /&gt;
* De définir des directives de compilation pour conditionner le code métier&lt;br /&gt;
* De définir des index personnalisés pour adapter les index aux usages du progiciel.&lt;br /&gt;
&lt;br /&gt;
===Pour définir une configuration===&lt;br /&gt;
Les configuration sont définies au niveau de l'application puis associées aux applications dans un dossier.&lt;br /&gt;
&lt;br /&gt;
Pour définir une configuration :&lt;br /&gt;
&lt;br /&gt;
[[image:app-conf-1.png]]&lt;br /&gt;
&lt;br /&gt;
puis saisissez le contenu du script :&lt;br /&gt;
&lt;br /&gt;
[[image:app-conf-2.png]]&lt;br /&gt;
&lt;br /&gt;
===Pour associer une configuration===&lt;br /&gt;
Pour associer une configuration à une application dans le contexte d'un dossier glisser l'application sur le noeud &amp;quot;Configurations dans ce dossier&amp;quot; de l'application :&lt;br /&gt;
&lt;br /&gt;
[[image:app-conf-3.png]]&lt;br /&gt;
&lt;br /&gt;
Notez que :&lt;br /&gt;
* Une configuration peut être partagée par plusieurs contexte de dossier.&lt;br /&gt;
* La liste des configuration est ordonnée, l'ordre de chargement de la configuration peut avoir une influence.&lt;br /&gt;
&lt;br /&gt;
Pour ordonner la liste des configurations :&lt;br /&gt;
&lt;br /&gt;
[[image:app-conf-4.png]]&lt;br /&gt;
&lt;br /&gt;
'''Exemple de script de configuration'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;delphi&amp;quot;&amp;gt;&lt;br /&gt;
begin&lt;br /&gt;
  // defines&lt;br /&gt;
  {$DEFINEGLOBAL FIX_MY_PROBLEM}&lt;br /&gt;
&lt;br /&gt;
  // index&lt;br /&gt;
  ModelManager.AddCustomIndex('WFAddress','Country,City');&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voir aussi:&lt;br /&gt;
* [[AddCustomIndex (MM)|Ajout d'index personnalisé]]&lt;br /&gt;
* [[AddSearchKey (MM)|Ajout de clé de recherche globale]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Administration]]&lt;br /&gt;
[[Category:Directives]]&lt;br /&gt;
[[Category:Version710]]&lt;/div&gt;</summary>
		<author><name>Chlem</name></author>	</entry>

	</feed>