Cette nouvelle version de l'éditeur de table Cron prend en comptes Mac OS X Serveur. En Effet l'emplacement des tables Cron sur "Mac Os X Server" n'est pas au même endroit.
Compatible :
Mac OS X Tiger et Léopard (10.4 et 10.5)
mardi 26 février 2008
mardi 19 février 2008
Mac Pro Janvier 2008 - Loin du sans faute
Comme l'a fait remarquer MacBidouille, Apple à beaucoup de problème avec les cartes graphiques.
A un tel point qu'une pétition en ligne a été lancer pour faire pression sur Apple.
Mais ce n'est pas tout ! Les mêmes Mac Pro serait aussi affecter par des horloges défectueuse. Une horloge qui avance trop vite et vous fait faire des journée de 25h ou plus !
Il est impossible de dire à l'heure actuelle l'étendu du problèmes de l'horloge étant données le peut d'informations en ma possession.
A un tel point qu'une pétition en ligne a été lancer pour faire pression sur Apple.
Mais ce n'est pas tout ! Les mêmes Mac Pro serait aussi affecter par des horloges défectueuse. Une horloge qui avance trop vite et vous fait faire des journée de 25h ou plus !
Il est impossible de dire à l'heure actuelle l'étendu du problèmes de l'horloge étant données le peut d'informations en ma possession.
lundi 18 février 2008
Cron Editor
Autorisation sur Mac Os X
Après avoir galéré un bon moment, voici comment faire pour autorisé votre application à s'exécuter en temps que root. On appel cela parfois du self-authorization. Je vous livre le code à ajouter dans votre objet principal.
Language : Objective-C
Commencer par ajouter le FrameWorks "Security.frameworks" qui se trouve dans "/System/Library/Frameworks/".
Les entêtes à ajouter dans le fichier .m de votre controleur principal :
Les deux fonctions qui permettrons de demander le mot de passe à l'utilisateur :
Enfin, pour eviter les erreurs ou les avertissement lors de la compilation, il faut ajouter dans le fichier d'entête (.h) les lignes suivantes :
Language : Objective-C
Commencer par ajouter le FrameWorks "Security.frameworks" qui se trouve dans "/System/Library/Frameworks/".
Les entêtes à ajouter dans le fichier .m de votre controleur principal :
#include <security/authorization.h>
#include <security/authorizationdb.h>
#include <security/authorizationtags.h>
#include <sys/types.h>
#include <unistd.h>
Les deux fonctions qui permettrons de demander le mot de passe à l'utilisateur :
- (int) preAuthorizeAjouter ce code dans la fonction - (id) init
{
int err;
AuthorizationFlags authFlags;
NSLog (@"MyWindowController: preAuthorize");
if (_authRef)
return errAuthorizationSuccess;
NSLog (@"MyWindowController: preAuthorize: ** calling AuthorizationCreate...**\n");
authFlags = kAuthorizationFlagDefaults;
err = AuthorizationCreate (NULL, kAuthorizationEmptyEnvironment, authFlags, &_authRef);
if (err != errAuthorizationSuccess)
return err;
NSLog (@"MyWindowController: preAuthorize: ** calling AuthorizationCopyRights...**\n");
_authItem.name = kAuthorizationRightExecute;
_authItem.valueLength = 0;
_authItem.value = NULL;
_authItem.flags = 0;
_authRights.count = 1;
_authRights.items = (AuthorizationItem*) malloc (sizeof (_authItem));
memcpy (&_authRights.items[0], &_authItem, sizeof (_authItem));
authFlags = kAuthorizationFlagDefaults
| kAuthorizationFlagExtendRights
| kAuthorizationFlagInteractionAllowed
| kAuthorizationFlagPreAuthorize;
err = AuthorizationCopyRights (_authRef, &_authRights, kAuthorizationEmptyEnvironment, authFlags, NULL);
return err;
}
- (int) launchAuthPrgm
{
AuthorizationFlags authFlags;
int err;
// path
NSString * path = [[NSBundle mainBundle] executablePath];
if (![[NSFileManager defaultManager] isExecutableFileAtPath: path])
return -1;
// auth
if (!_authRef)
{
err = [self preAuthorize];
if (err != errAuthorizationSuccess)
return err;
}
// launch
NSLog (@"MyWindowController: launchWithPath: ** calling AuthorizationExecuteWithPrivileges...**\n");
authFlags = kAuthorizationFlagDefaults;
err = AuthorizationExecuteWithPrivileges (_authRef, [path cString], authFlags, NULL, NULL);
if(err==0) [NSApp terminate:self];
return err;
}
if(geteuid()!=0){Ce code lance l'authentification si l'utilisateur réel d'exécution du logiciel n'est pas Root.
[self launchAuthPrgm];
}
Enfin, pour eviter les erreurs ou les avertissement lors de la compilation, il faut ajouter dans le fichier d'entête (.h) les lignes suivantes :
AuthorizationRef _authRef;
AuthorizationItem _authItem;
AuthorizationRights _authRights;
Maintenant, à vous de développer !
- (int) preAuthorize;
- (int) launchAuthPrgm;
mercredi 13 février 2008
manageDev en retard
Le développement de l'utilitaire Web de gestion de projet est stoppé pour le moment par manque de temps pour le développer.
Si des âmes généreuses veulent ce pencher dessus, il m'est possible de vous donner les sources.
NOTE : Le frameWorks Ajax utilisé est celui d'Adobe : Spry.
Si des âmes généreuses veulent ce pencher dessus, il m'est possible de vous donner les sources.
NOTE : Le frameWorks Ajax utilisé est celui d'Adobe : Spry.
Inscription à :
Articles (Atom)
