001: /*
002: * SalomeTMF is a Test Management Framework
003: * Copyright (C) 2005 France Telecom R&D
004: *
005: * This library is free software; you can redistribute it and/or
006: * modify it under the terms of the GNU Lesser General Public
007: * License as published by the Free Software Foundation; either
008: * version 2 of the License, or (at your option) any later version.
009: *
010: * This library is distributed in the hope that it will be useful,
011: * but WITHOUT ANY WARRANTY; without even the implied warranty of
012: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
013: * Lesser General Public License for more details.
014: *
015: * You should have received a copy of the GNU Lesser General Public
016: * License along with this library; if not, write to the Free Software
017: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
018: *
019: * @author Fayçal SOUGRATI
020: *
021: * Contact: mikael.marche@rd.francetelecom.com
022: */
023:
024: package org.objectweb.salome_tmf.api.api2ihm;
025:
026: import java.util.Properties;
027:
028: import org.objectweb.salome_tmf.api.ApiConstants;
029: import org.objectweb.salome_tmf.api.api2db.DataBase;
030: import org.objectweb.salome_tmf.api.api2ihm.adminProject.AdminProjectDelete;
031: import org.objectweb.salome_tmf.api.api2ihm.adminProject.AdminProjectDeleteImpl;
032: import org.objectweb.salome_tmf.api.api2ihm.adminProject.AdminProjectInsert;
033: import org.objectweb.salome_tmf.api.api2ihm.adminProject.AdminProjectInsertImpl;
034: import org.objectweb.salome_tmf.api.api2ihm.adminProject.AdminProjectSelect;
035: import org.objectweb.salome_tmf.api.api2ihm.adminProject.AdminProjectSelectImpl;
036: import org.objectweb.salome_tmf.api.api2ihm.adminProject.AdminProjectUpdate;
037: import org.objectweb.salome_tmf.api.api2ihm.adminProject.AdminProjectUpdateImpl;
038:
039: /**
040: * Classe constituant le point d'entrée sur les fonctions appartenant à l'aire fonctionnelle "Administration d'un projet"
041: */
042: public class AdminProject implements ApiConstants {
043:
044: public static int ALLOW_CREATE_TEST = 2;
045: public static int ALLOW_UPDATE_TEST = 4;
046: public static int ALLOW_DELETE_TEST = 8;
047:
048: public static int ALLOW_CREATE_CAMP = 16;
049: public static int ALLOW_UPDATE_CAMP = 32;
050: public static int ALLOW_DELETE_CAMP = 64;
051: public static int ALLOW_EXECUT_CAMP = 128;
052:
053: /**
054: * Pointeur sur la classe contenant les traitement relatifs aux requetes de suppression
055: */
056: AdminProjectDelete myAdminProjectDelete = null;
057:
058: /**
059: * Pointeur sur la classe contenant les traitement relatifs aux requetes d'insertion
060: */
061: AdminProjectInsert myAdminProjectInsert = null;
062:
063: /**
064: * Pointeur sur la classe contenant les traitement relatifs aux requetes de selection
065: */
066: AdminProjectSelect myAdminProjectSelect = null;
067:
068: /**
069: * Pointeur sur la classe contenant les traitement relatifs aux requetes de mise a jour
070: */
071: AdminProjectUpdate myAdminProjectUpdate = null;
072:
073: /**
074: * Vecteur de permission de l'utilisateur de l'api
075: *
076: */
077: static int permission = 0;
078:
079: /**
080: * Constructeur
081: * @param db BdD
082: */
083: public AdminProject(DataBase db) {
084: // Initialisation du fichier "properties"
085: Properties prop = Utile
086: .getPropertiesFile(ADMIN_PROJECT_STMTS_FILE_PATH);
087:
088: // Initialisation des pointeurs sur les sous classes
089: myAdminProjectDelete = new AdminProjectDeleteImpl(db, prop);
090: myAdminProjectInsert = new AdminProjectInsertImpl(db, prop);
091: myAdminProjectSelect = new AdminProjectSelectImpl(db, prop);
092: myAdminProjectUpdate = new AdminProjectUpdateImpl(db, prop);
093: }
094:
095: /**
096: * Fonction qui fixe le projet SalomeTMF dans lequel l'utilisateur travaille
097: * @param projectName BdD
098: */
099: public void setProject(String projectName) {
100: myAdminProjectDelete.setProject(projectName);
101: myAdminProjectInsert.setProject(projectName);
102: myAdminProjectSelect.setProject(projectName);
103: myAdminProjectUpdate.setProject(projectName);
104: //org.objectweb.salome_tmf.api.Api.getInstanceOfBugzillaAPI().init(projectName);
105: }
106:
107: /**
108: * Accesseur sur le champs "myAdminProjectDelete"
109: * @return Instance de la classe contenant les fonctions de suppression de la BdD
110: */
111: public AdminProjectDelete getAdminProjectDelete() {
112: return myAdminProjectDelete;
113: }
114:
115: /**
116: * Accesseur sur le champs "myAdminProjectInsert"
117: * @return Instance de la classe contenant les fonctions d'insertion dans la BdD
118: */
119: public AdminProjectInsert getAdminProjectInsert() {
120: return myAdminProjectInsert;
121: }
122:
123: /**
124: * Accesseur sur le champs "myAdminProjectSelect"
125: * @return Instance de la classe contenant les fonctions de selection de la BdD
126: */
127: public AdminProjectSelect getAdminProjectSelect() {
128: return myAdminProjectSelect;
129: }
130:
131: /**
132: * Accesseur sur le champs "myAdminProjectUpdate"
133: * @return Instance de la classe contenant les fonctions de mise à jour de la BdD
134: */
135: public AdminProjectUpdate getAdminProjectUpdate() {
136: return myAdminProjectUpdate;
137: }
138:
139: /**
140: * Définit l'utilisateur de l'api
141: * @param userLogin
142: */
143:
144: public void setUser(String userLogin) {
145: permission = myAdminProjectSelect
146: .getPermissionOfUser(userLogin);
147: System.out.println("Permissions : " + permission);
148: System.out.println("canCreateTest : " + canCreateTest());
149: System.out.println("canUpdateTest : " + canUpdateTest());
150: System.out.println("canDeleteTest : " + canDeleteTest());
151: System.out.println("canCreateCamp : " + canCreateCamp());
152: System.out.println("canUpdateCamp : " + canUpdateCamp());
153: System.out.println("canDeleteCamp : " + canDeleteCamp());
154: System.out.println("canExecutCamp : " + canExecutCamp());
155: //String email = myAdminProjectSelect.getMailsOfUser(userLogin);
156: /*
157: if (email != null)
158: org.objectweb.salome_tmf.api.Api.getInstanceOfBugzillaAPI().setBugUser(email, userLogin, "");
159: */
160: }
161:
162: static public boolean canCreateTest() {
163: return (((permission & ALLOW_CREATE_TEST) == ALLOW_CREATE_TEST) || canDeleteTest());
164: }
165:
166: static public boolean canUpdateTest() {
167: return (((permission & ALLOW_UPDATE_TEST) == ALLOW_UPDATE_TEST) || canCreateTest());
168: }
169:
170: static public boolean canDeleteTest() {
171: return ((permission & ALLOW_DELETE_TEST) == ALLOW_DELETE_TEST);
172: }
173:
174: static public boolean canCreateCamp() {
175: return (((permission & ALLOW_CREATE_CAMP) == ALLOW_CREATE_CAMP) || canDeleteCamp());
176: }
177:
178: static public boolean canUpdateCamp() {
179: return (((permission & ALLOW_UPDATE_CAMP) == ALLOW_UPDATE_CAMP) || canCreateCamp());
180: }
181:
182: static public boolean canDeleteCamp() {
183: return ((permission & ALLOW_DELETE_CAMP) == ALLOW_DELETE_CAMP);
184: }
185:
186: static public boolean canExecutCamp() {
187: return ((permission & ALLOW_EXECUT_CAMP) == ALLOW_EXECUT_CAMP);
188: }
189:
190: static public int getPermission() {
191: return permission;
192: }
193: }
|