Rev 1876 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1283 | jmachado | 1 | package pt.estgp.estgweb.services.users; |
2 | |||
3 | import org.apache.log4j.Logger; |
||
1821 | jmachado | 4 | import org.reflections.Reflections; |
1699 | jmachado | 5 | import pt.estgp.estgweb.domain.*; |
1283 | jmachado | 6 | import pt.estgp.estgweb.domain.dao.DaoFactory; |
1821 | jmachado | 7 | import pt.estgp.estgweb.domain.dao.RoleContainer; |
1699 | jmachado | 8 | import pt.estgp.estgweb.filters.exceptions.AccessDeniedException; |
1283 | jmachado | 9 | import pt.utl.ist.berserk.logic.serviceManager.IService; |
10 | |||
11 | import java.io.BufferedReader; |
||
12 | import java.io.IOException; |
||
13 | import java.io.StringReader; |
||
14 | import java.util.ArrayList; |
||
15 | import java.util.List; |
||
1821 | jmachado | 16 | import java.util.Set; |
1283 | jmachado | 17 | |
18 | /** |
||
19 | * Created by jorgemachado on 29/01/16. |
||
20 | */ |
||
21 | public class UserRoleConfigService implements IService |
||
22 | { |
||
23 | private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(UserRoleConfigService.class); |
||
24 | |||
25 | private List<UserRoleConfig> loadRolesTranslations(UserSession sess) |
||
26 | { |
||
27 | List<UserRoleConfig> roles = DaoFactory.getUserRoleConfigDaoImpl().findAll(); |
||
28 | if(roles == null || roles.size() == 0) |
||
29 | { |
||
30 | roles = initRoles(); |
||
31 | } |
||
32 | return roles; |
||
33 | } |
||
34 | |||
35 | |||
36 | |||
37 | |||
38 | private static long lastUpdate = 0; |
||
39 | |||
40 | public List<UserRoleConfig> loadRolesIfDirty(UserSession sess) |
||
41 | { |
||
42 | if(lastUpdate == 0) |
||
43 | { |
||
44 | return loadRolesTranslations(sess); |
||
45 | } |
||
46 | UserRoleConfig lastChangeRole = DaoFactory.getUserRoleConfigDaoImpl().getLast("updateDate"); |
||
47 | if(lastChangeRole.getUpdateDate().getTime() >= lastUpdate) |
||
48 | { |
||
49 | List<UserRoleConfig> roles = loadRolesTranslations(sess); |
||
50 | lastUpdate = 1.5.0/docs/api/java/lang/System.html">System.currentTimeMillis(); |
||
51 | return roles; |
||
52 | } |
||
53 | |||
54 | return null; |
||
55 | } |
||
56 | |||
1699 | jmachado | 57 | |
1876 | grupo4 | 58 | /** |
1918 | grupo4 | 59 | * Serviço Tear 1 para substituição de Roles ou criação de Novos |
1876 | grupo4 | 60 | * @param oldRole |
61 | * @param nomeRole |
||
62 | * @param newRoleStr |
||
63 | * @param session |
||
64 | * @return |
||
65 | * @throws AccessDeniedException |
||
66 | */ |
||
67 | public ReplaceRoleResult createNewNormalizedRoleService(1.5.0/docs/api/java/lang/String.html">String oldRole,1.5.0/docs/api/java/lang/String.html">String nomeRole,1.5.0/docs/api/java/lang/String.html">String newRoleStr,UserSession session) throws AccessDeniedException { |
||
68 | ReplaceRoleResult result; |
||
69 | |||
70 | UserRoleConfigImpl newUserRoleConfig = DomainObjectFactory.createUserRoleConfigImpl(); |
||
71 | newUserRoleConfig.setRole(newRoleStr); |
||
72 | newUserRoleConfig.setValid(true); |
||
73 | newUserRoleConfig.setValue(nomeRole); |
||
74 | newUserRoleConfig.setValuePt(nomeRole); |
||
75 | newUserRoleConfig.setValueEn(""); |
||
76 | newUserRoleConfig.setValueEs(""); |
||
77 | newUserRoleConfig.setValueFr(""); |
||
78 | |||
79 | try { |
||
80 | |||
81 | if(oldRole == null || oldRole.trim().length() == 0) |
||
82 | { |
||
83 | result = new UserRoleConfigService().addUpdateRole(newUserRoleConfig,session,false); |
||
84 | } |
||
85 | else |
||
86 | { |
||
87 | |||
88 | result = new UserRoleConfigService().updateOldRoleWithView(oldRole, newUserRoleConfig, session,false); |
||
89 | } |
||
90 | |||
91 | |||
92 | if(result.roleKeyAlreadyExist) |
||
93 | { |
||
1918 | grupo4 | 94 | logger.error("Tentado CRIAR um Role que já existe e não é Administrador nem Super user"); |
95 | throw new AccessDeniedException("Tentado CRIAR um Role que já existe e não é Administrador nem Super user"); |
||
1876 | grupo4 | 96 | } |
97 | |||
98 | |||
99 | } catch (AccessDeniedException e) { |
||
1918 | grupo4 | 100 | logger.error("Tentado alterar um Role e não é Administrador nem Super user"); |
1876 | grupo4 | 101 | throw e; |
102 | } |
||
103 | |||
104 | return result; |
||
105 | } |
||
106 | |||
1699 | jmachado | 107 | public ReplaceRoleResult updateOldRoleWithView(1.5.0/docs/api/java/lang/String.html">String oldRole,UserRoleConfigImpl newViewRoleConfig, UserSession sess) |
108 | throws AccessDeniedException |
||
1283 | jmachado | 109 | { |
1821 | jmachado | 110 | return updateOldRoleWithView(oldRole, newViewRoleConfig, sess,true); |
111 | } |
||
112 | |||
113 | public ReplaceRoleResult updateOldRoleWithView(1.5.0/docs/api/java/lang/String.html">String oldRole,UserRoleConfigImpl newViewRoleConfig, UserSession sess,boolean updateCourses) |
||
114 | throws AccessDeniedException |
||
115 | { |
||
1699 | jmachado | 116 | UserRoleConfig oldUserRoleConfig = DaoFactory.getUserRoleConfigDaoImpl().findByRole(oldRole); |
1821 | jmachado | 117 | if(oldUserRoleConfig == null) |
118 | { |
||
119 | return addUpdateRole(newViewRoleConfig,sess,updateCourses); |
||
120 | } |
||
121 | else |
||
122 | { |
||
123 | newViewRoleConfig.setId(oldUserRoleConfig.getId()); |
||
124 | return addUpdateRole(newViewRoleConfig,sess,updateCourses); |
||
125 | } |
||
1699 | jmachado | 126 | } |
127 | |||
1821 | jmachado | 128 | public ReplaceRoleResult addUpdateRole(UserRoleConfigImpl viewRoleConfig, UserSession sess) throws AccessDeniedException { |
129 | return addUpdateRole(viewRoleConfig, sess,true); |
||
130 | } |
||
131 | public ReplaceRoleResult addUpdateRole(UserRoleConfigImpl viewRoleConfig, UserSession sess, boolean updateCourseRoles) |
||
1699 | jmachado | 132 | throws AccessDeniedException |
133 | { |
||
134 | |||
135 | ReplaceRoleResult replaceRoleResult; |
||
136 | //boolean isNew = userRoleConfig.getId() <= 0; |
||
137 | UserRoleConfig persistent; |
||
138 | 1.5.0/docs/api/java/lang/String.html">String newRoleStr = viewRoleConfig.getRole().trim(); |
||
139 | if(viewRoleConfig.getId() <= 0) |
||
1283 | jmachado | 140 | { |
1821 | jmachado | 141 | replaceRoleResult = replaceOrCreateRoleKey(null, newRoleStr, sess,updateCourseRoles); |
1699 | jmachado | 142 | if(replaceRoleResult.roleKeyAlreadyExist) |
143 | return replaceRoleResult; |
||
144 | persistent = replaceRoleResult.updatedUserRoleConfig; |
||
145 | } |
||
146 | else |
||
147 | { |
||
148 | persistent = DaoFactory.getUserRoleConfigDaoImpl().get(viewRoleConfig.getId()); |
||
149 | |||
150 | boolean chaveMudou = !newRoleStr.equals(persistent.getRole()); |
||
151 | if(chaveMudou) |
||
1283 | jmachado | 152 | { |
1699 | jmachado | 153 | if(sess.getUser().isSuperuserOrAdmin()) |
154 | { |
||
1821 | jmachado | 155 | replaceRoleResult = replaceOrCreateRoleKey(persistent.getRole(), newRoleStr, sess,updateCourseRoles); |
1699 | jmachado | 156 | |
157 | if(replaceRoleResult.roleKeyAlreadyExist) |
||
158 | return replaceRoleResult; |
||
159 | persistent = replaceRoleResult.updatedUserRoleConfig; |
||
160 | } |
||
161 | else |
||
162 | { |
||
1918 | grupo4 | 163 | throw new AccessDeniedException("Nao pode alterar o código do papel porque não é administrador"); |
1699 | jmachado | 164 | } |
1283 | jmachado | 165 | } |
1699 | jmachado | 166 | else |
1700 | jmachado | 167 | { |
168 | replaceRoleResult = new ReplaceRoleResult(newRoleStr); |
||
169 | } |
||
1699 | jmachado | 170 | |
171 | } |
||
172 | |||
173 | |||
174 | persistent.setValue(viewRoleConfig.getValue()); |
||
175 | persistent.setValid(viewRoleConfig.isValid()); |
||
176 | persistent.setValueEn(viewRoleConfig.getValueEn()); |
||
177 | persistent.setValueEs(viewRoleConfig.getValueEs()); |
||
178 | persistent.setValueFr(viewRoleConfig.getValueFr()); |
||
179 | persistent.setValuePt(viewRoleConfig.getValuePt()); |
||
180 | persistent.setObs(viewRoleConfig.getObs()); |
||
181 | |||
182 | return replaceRoleResult; |
||
183 | } |
||
184 | |||
185 | |||
1821 | jmachado | 186 | public static Set<Class<? extends RoleContainer>> roleContainerClasses = null; |
187 | private synchronized void init() |
||
188 | { |
||
189 | if(roleContainerClasses == null) |
||
190 | { |
||
191 | Reflections reflections = new Reflections("pt.estgp.estgweb"); |
||
192 | |||
193 | roleContainerClasses = reflections.getSubTypesOf(RoleContainer.class); |
||
194 | } |
||
195 | } |
||
196 | |||
197 | |||
1699 | jmachado | 198 | /** |
1918 | grupo4 | 199 | * Serviço de nível SUPORTE |
200 | * Usado pelo update de Roles e Pela normalização de Roles de Comissões de Curso |
||
201 | * Substitui a presença de um ROLE por um NOVO |
||
1699 | jmachado | 202 | * |
203 | * |
||
204 | * @param oldRole if null does not find old users for replace |
||
205 | * @param newRole need to be filled |
||
206 | * @param sess |
||
207 | * @return ReplaceRoleResult if roleKeyAlreadyExist = true - nothing was done need to be a none existing new role key |
||
208 | * ReplaceRoleResult.updatedUserRoleConfig tem o role antigo atualizado ou o novo criado com o newRole |
||
209 | */ |
||
1821 | jmachado | 210 | public ReplaceRoleResult replaceOrCreateRoleKey(1.5.0/docs/api/java/lang/String.html">String oldRole, 1.5.0/docs/api/java/lang/String.html">String newRole, UserSession sess,boolean updateCourses) |
1699 | jmachado | 211 | { |
1700 | jmachado | 212 | ReplaceRoleResult result = new ReplaceRoleResult(newRole); |
1699 | jmachado | 213 | |
214 | UserRoleConfig roleConfig = DaoFactory.getUserRoleConfigDaoImpl().findByRole(newRole); |
||
215 | if(roleConfig != null) |
||
216 | { |
||
217 | result.roleKeyAlreadyExist = true; |
||
218 | return result; |
||
219 | } |
||
220 | else if(oldRole == null) |
||
221 | { |
||
222 | roleConfig = DomainObjectFactory.createUserRoleConfigImpl(); |
||
223 | roleConfig.setRole(newRole); |
||
224 | DaoFactory.getUserRoleConfigDaoImpl().save(roleConfig); |
||
225 | result.updatedUserRoleConfig = roleConfig; |
||
226 | } |
||
227 | else |
||
228 | { |
||
229 | roleConfig = DaoFactory.getUserRoleConfigDaoImpl().findByRole(oldRole); |
||
230 | roleConfig.setRole(newRole); |
||
231 | result.updatedUserRoleConfig = roleConfig; |
||
232 | |||
233 | replaceUserRoles(oldRole, newRole, result); |
||
234 | |||
1821 | jmachado | 235 | if(updateCourses) |
236 | replaceCourseRoles(oldRole, newRole, result); |
||
1699 | jmachado | 237 | |
238 | replaceSchoolAndDepartmentRoles(oldRole, newRole, result); |
||
239 | |||
240 | replaceEventClasseManagerRoles(oldRole, newRole, result); |
||
1821 | jmachado | 241 | init(); |
242 | for (1.5.0/docs/api/java/lang/Class.html">Class serviceClass : roleContainerClasses) { |
||
243 | 1.5.0/docs/api/java/lang/System.html">System.out.println("Replacing Roles Notification Found: " + serviceClass.getName()); |
||
244 | try { |
||
245 | ((RoleContainer)serviceClass.newInstance()).replaceRoleNotification(oldRole,newRole,result); |
||
246 | } catch (1.5.0/docs/api/java/lang/InstantiationException.html">InstantiationException e) { |
||
247 | logger.error(e,e); |
||
248 | } catch (1.5.0/docs/api/java/lang/IllegalAccessException.html">IllegalAccessException e) { |
||
249 | logger.error(e, e); |
||
250 | } |
||
251 | } |
||
252 | //DaoFactory.getBpmnRoleSelectorDaoImpl().replaceRoleNotification(oldRole, newRole, result); |
||
1699 | jmachado | 253 | |
1821 | jmachado | 254 | //replaceBpmnActorPoolRoles(oldRole, newRole, result); |
1699 | jmachado | 255 | |
256 | |||
257 | } |
||
258 | return result; |
||
259 | } |
||
260 | |||
261 | |||
262 | private void replaceEventClasseManagerRoles(1.5.0/docs/api/java/lang/String.html">String oldRole, 1.5.0/docs/api/java/lang/String.html">String newRole, ReplaceRoleResult result) { |
||
263 | List<EventClass> eventClasses = DaoFactory.getEventClassDaoImpl().findByManagerRole(oldRole); |
||
264 | result.afectedEventClassManagers = eventClasses.size(); |
||
265 | for(EventClass eventClass: eventClasses) |
||
266 | { |
||
267 | eventClass.setManagersRole(newRole); |
||
268 | } |
||
269 | } |
||
270 | |||
271 | private void replaceUserRoles(1.5.0/docs/api/java/lang/String.html">String oldRole, 1.5.0/docs/api/java/lang/String.html">String newRole, ReplaceRoleResult result) { |
||
272 | List<User> users = DaoFactory.getUserDaoImpl().loadRoleUsers(oldRole); |
||
273 | result.afetectedUsers = users.size(); |
||
274 | for(User u : users) |
||
275 | { |
||
276 | if(u.hasRole(oldRole)) |
||
1283 | jmachado | 277 | { |
1699 | jmachado | 278 | u.removeRole(oldRole); |
1283 | jmachado | 279 | } |
1699 | jmachado | 280 | u.addRole(newRole); |
281 | } |
||
282 | } |
||
1283 | jmachado | 283 | |
1699 | jmachado | 284 | private void replaceCourseRoles(1.5.0/docs/api/java/lang/String.html">String oldRole, 1.5.0/docs/api/java/lang/String.html">String newRole, ReplaceRoleResult result) { |
285 | List<Course> courses = DaoFactory.getCourseDaoImpl().findValidateRole(oldRole); |
||
286 | result.afetectedCoursesValidatePrograms = courses.size(); |
||
287 | for(Course c :courses) |
||
1283 | jmachado | 288 | { |
1876 | grupo4 | 289 | c.setValidationRole(newRole); |
1283 | jmachado | 290 | } |
291 | } |
||
292 | |||
1699 | jmachado | 293 | private void replaceSchoolAndDepartmentRoles(1.5.0/docs/api/java/lang/String.html">String oldRole, 1.5.0/docs/api/java/lang/String.html">String newRole, ReplaceRoleResult result) { |
294 | List<CourseDepartment> departments = DaoFactory.getCourseDepartmentDaoImpl().findByDirectorRole(oldRole); |
||
295 | result.afetectedDepartmentsDirectors = departments.size(); |
||
296 | for(CourseDepartment department: departments) |
||
1283 | jmachado | 297 | { |
1699 | jmachado | 298 | department.setDirectorRole(newRole); |
1283 | jmachado | 299 | } |
1699 | jmachado | 300 | |
301 | departments = DaoFactory.getCourseDepartmentDaoImpl().findByBoardRole(oldRole); |
||
302 | result.afetectedDepartmentsBoards = departments.size(); |
||
303 | for(CourseDepartment department: departments) |
||
304 | { |
||
305 | department.setBoardRole(newRole); |
||
306 | } |
||
307 | |||
308 | List<CourseSchool> schools = DaoFactory.getCourseSchoolDaoImpl().findBySchoolDirector(oldRole); |
||
309 | result.afetectedSchoolsDirectors = schools.size(); |
||
310 | for(CourseSchool school: schools) |
||
311 | { |
||
312 | school.setSchoolDirectorRole(newRole); |
||
313 | } |
||
314 | |||
315 | schools = DaoFactory.getCourseSchoolDaoImpl().findBySchoolBoard(oldRole); |
||
316 | result.afetectedSchoolsBoard = schools.size(); |
||
317 | for(CourseSchool school: schools) |
||
318 | { |
||
319 | school.setSchoolBoardRole(newRole); |
||
320 | } |
||
321 | |||
322 | schools = DaoFactory.getCourseSchoolDaoImpl().findBySchoolSecretariado(oldRole); |
||
323 | result.afetectedSchoolsSecretario = schools.size(); |
||
324 | for(CourseSchool school: schools) |
||
325 | { |
||
326 | school.setSchoolSecretariadoRole(newRole); |
||
327 | } |
||
328 | |||
329 | schools = DaoFactory.getCourseSchoolDaoImpl().findBySchoolPresidentCtc(oldRole); |
||
330 | result.afetectedSchoolsPresidentCtc = schools.size(); |
||
331 | for(CourseSchool school: schools) |
||
332 | { |
||
333 | school.setCtcPresidentRole(newRole); |
||
334 | } |
||
335 | schools = DaoFactory.getCourseSchoolDaoImpl().findBySchoolMemberCtc(oldRole); |
||
336 | result.afetectedSchoolsMemberCtc = schools.size(); |
||
337 | for(CourseSchool school: schools) |
||
338 | { |
||
339 | school.setCtcMemberRole(newRole); |
||
340 | } |
||
341 | schools = DaoFactory.getCourseSchoolDaoImpl().findBySchoolSecretariadoCtc(oldRole); |
||
342 | result.afetectedSchoolsSecretarioCtc = schools.size(); |
||
343 | for(CourseSchool school: schools) |
||
344 | { |
||
345 | school.setCtcSecretariadoRole(newRole); |
||
346 | } |
||
347 | |||
348 | schools = DaoFactory.getCourseSchoolDaoImpl().findBySchoolPresidentPedagogico(oldRole); |
||
349 | result.afetectedSchoolsPresidentPedagogico = schools.size(); |
||
350 | for(CourseSchool school: schools) |
||
351 | { |
||
352 | school.setPedagogicoPresidentRole(newRole); |
||
353 | } |
||
354 | schools = DaoFactory.getCourseSchoolDaoImpl().findBySchoolMemberPedagogico(oldRole); |
||
355 | result.afetectedSchoolsMemberPedagogico = schools.size(); |
||
356 | for(CourseSchool school: schools) |
||
357 | { |
||
358 | school.setPedagogicoMemberRole(newRole); |
||
359 | } |
||
360 | schools = DaoFactory.getCourseSchoolDaoImpl().findBySchoolSecretariadoPedagogico(oldRole); |
||
361 | result.afetectedSchoolsSecretarioPedagogico = schools.size(); |
||
362 | for(CourseSchool school: schools) |
||
363 | { |
||
364 | school.setPedagogicoSecretariadoRole(newRole); |
||
365 | } |
||
1283 | jmachado | 366 | } |
367 | |||
368 | |||
369 | private List<UserRoleConfig> initRoles() |
||
370 | { |
||
371 | List<UserRoleConfig> roles = new ArrayList<UserRoleConfig>(); |
||
372 | 1.5.0/docs/api/java/io/BufferedReader.html">BufferedReader reader = new 1.5.0/docs/api/java/io/BufferedReader.html">BufferedReader(new 1.5.0/docs/api/java/io/StringReader.html">StringReader(INIT_ROLES)); |
||
373 | 1.5.0/docs/api/java/lang/String.html">String roleSpec = null; |
||
374 | try { |
||
375 | while((roleSpec = reader.readLine()) != null) |
||
376 | { |
||
377 | 1.5.0/docs/api/java/lang/String.html">String[] fields = roleSpec.split("="); |
||
378 | 1.5.0/docs/api/java/lang/String.html">String role = fields[0].substring("user.role.".length()); |
||
379 | 1.5.0/docs/api/java/lang/String.html">String desc = fields[1]; |
||
380 | UserRoleConfigImpl userRoleConfig = DomainObjectFactory.createUserRoleConfigImpl(); |
||
381 | userRoleConfig.setRole(role.trim()); |
||
382 | userRoleConfig.setValue(desc); |
||
383 | userRoleConfig.setValid(true); |
||
384 | roles.add(userRoleConfig); |
||
385 | DaoFactory.getUserRoleConfigDaoImpl().save(userRoleConfig); |
||
386 | } |
||
387 | } catch (1.5.0/docs/api/java/io/IOException.html">IOException e) { |
||
388 | logger.error(e,e); |
||
389 | } |
||
390 | return roles; |
||
391 | } |
||
392 | |||
1346 | jmachado | 393 | public 1.5.0/docs/api/java/lang/Integer.html">Integer checkIfAreNewStandardRoles(UserSession userSession) |
394 | { |
||
395 | int totalNew = 0; |
||
396 | 1.5.0/docs/api/java/io/BufferedReader.html">BufferedReader reader = new 1.5.0/docs/api/java/io/BufferedReader.html">BufferedReader(new 1.5.0/docs/api/java/io/StringReader.html">StringReader(INIT_ROLES)); |
||
397 | 1.5.0/docs/api/java/lang/String.html">String roleSpec = null; |
||
398 | try { |
||
399 | while((roleSpec = reader.readLine()) != null) |
||
400 | { |
||
401 | |||
402 | 1.5.0/docs/api/java/lang/String.html">String[] fields = roleSpec.split("="); |
||
403 | 1.5.0/docs/api/java/lang/String.html">String role = fields[0].substring("user.role.".length()); |
||
404 | 1.5.0/docs/api/java/lang/String.html">String desc = fields[1]; |
||
405 | |||
406 | UserRoleConfigImpl userRoleConfig = DaoFactory.getUserRoleConfigDaoImpl().findByRole(role); |
||
407 | if(userRoleConfig == null) |
||
408 | { |
||
409 | totalNew++; |
||
410 | userRoleConfig = DomainObjectFactory.createUserRoleConfigImpl(); |
||
411 | userRoleConfig.setRole(role.trim()); |
||
412 | userRoleConfig.setValue(desc); |
||
413 | userRoleConfig.setValid(true); |
||
414 | DaoFactory.getUserRoleConfigDaoImpl().save(userRoleConfig); |
||
415 | } |
||
416 | } |
||
417 | } catch (1.5.0/docs/api/java/io/IOException.html">IOException e) { |
||
418 | logger.error(e,e); |
||
419 | } |
||
420 | return totalNew; |
||
421 | } |
||
422 | |||
1283 | jmachado | 423 | private static final 1.5.0/docs/api/java/lang/String.html">String INIT_ROLES = "user.role.all=Todos\n" + |
1876 | grupo4 | 424 | "user.role.admin=Administrador\n" + |
425 | "user.role.student=Estudante\n" + |
||
1918 | grupo4 | 426 | "user.role.comissao.avaliacao.desempenho.docente=Comissão de Avaliação de Desempenho Docente\n" + |
1876 | grupo4 | 427 | "user.role.erasmusStudent=Estudante de Erasmus\n" + |
428 | "user.role.teacher=Professor\n" + |
||
1918 | grupo4 | 429 | "user.role.teacher.eg=Professor da Área de Engenharia\n" + |
430 | "user.role.teacher.dg=Professor da Área de Design\n" + |
||
431 | "user.role.teacher.ce=Professor da Área de Ciencias Empresariais\n" + |
||
432 | "user.role.teacher.ch=Professor da Área de Ciencias Humanas\n" + |
||
1876 | grupo4 | 433 | "user.role.teacher.td=Professor do DTD\n" + |
434 | "user.role.teacher.cesh=Professor do DCESH\n" + |
||
1918 | grupo4 | 435 | "user.role.student.eg=Aluno da Área de Engenharia\n" + |
436 | "user.role.student.dg=Aluno da Área de Design\n" + |
||
437 | "user.role.student.ce=Aluno da Área de Ciencias Empresariais\n" + |
||
438 | "user.role.student.ch=Aluno da Área de Ciencias Humanas\n" + |
||
1876 | grupo4 | 439 | "user.role.student.td=Aluno do DTD\n" + |
440 | "user.role.student.cesh=Aluno do DCESH\n" + |
||
1918 | grupo4 | 441 | "user.role.ci=Centro Informático\n" + |
442 | "user.role.worker=Funcionário\n" + |
||
1876 | grupo4 | 443 | "user.role.invited=Convidado\n" + |
1918 | grupo4 | 444 | "user.role.services=Serviços\n" + |
445 | "user.role.questionarios.tipologias.admin=Questionarios - Verificação de Tipologias\n" + |
||
446 | "user.role.questionarios.atribuicoes.admin=Questionarios - Atribuições de Cursos\n" + |
||
447 | "user.role.questionarios.atribuicoes.check_teachers=Questionarios - Verificação de Professores\n" + |
||
448 | "user.role.questionarios.admin=Questionários - Super Administrador\n" + |
||
449 | "user.role.questionarios.gerais=Questionários - Permissões Básicas (necessário)\n" + |
||
450 | "user.role.servicesPrograms=Gestão de Programas Curriculares\n" + |
||
451 | "user.role.servicesStudiesPlans=Gestão de Planos de Estudos\n" + |
||
452 | "user.role.servicesCoursesManagement=Gestão de Cursos\n" + |
||
453 | "user.role.servicesRolesManagement=Gestão de Papeis Institucionais\n" + |
||
454 | "user.role.event_class_manager=Gestão de Classes de Eventos\n" + |
||
455 | "user.role.event_manager_nfc=Gestão de Eventos do Nucleo de Formacao Continua\n" + |
||
456 | "user.role.administrativeCouncil=Membro da Direcção\n" + |
||
1876 | grupo4 | 457 | "user.role.administrativeCouncil.director=Director\n" + |
458 | "user.role.administrativeCouncil.vice=Vice Director\n" + |
||
1918 | grupo4 | 459 | "user.role.schoolSecretary=Secretário da Escola\n" + |
460 | "user.role.administrativeCouncilSecretariat=Secretaria da Direcção\n" + |
||
1876 | grupo4 | 461 | "user.role.teachersSecretariat=Secretaria de Pessoal Docente\n" + |
462 | "user.role.dtd.president=Presidente do DTD\n" + |
||
463 | "user.role.cesh.president=Presidente do DCESH\n" + |
||
464 | "user.role.dtd.presidency=Membro da Presidencia do DTD\n" + |
||
465 | "user.role.cesh.presidency=Membro da Presidencia do DCESH\n" + |
||
1918 | grupo4 | 466 | "user.role.scientificCouncil.president=CTC Presidente (Não utilizado)\n" + |
1618 | jmachado | 467 | |
468 | |||
469 | |||
1876 | grupo4 | 470 | "user.role.representativeCouncil.president=Presidente do Conselho de Representantes\n" + |
1918 | grupo4 | 471 | "user.role.pedagogicCouncil.president=Presidente do Conselho Pedagógico\n" + |
1876 | grupo4 | 472 | "user.role.representativeCouncil=Conselho de Representantes\n" + |
1918 | grupo4 | 473 | "user.role.scientificCouncil=CTC Membro (Não utilizado)\n" + |
1876 | grupo4 | 474 | "user.role.erasmusCouncil=Conselho Erasmus\n" + |
1918 | grupo4 | 475 | "user.role.pedagogicCouncil=Conselho Pedagógico\n" + |
1876 | grupo4 | 476 | "user.role.courseCoordinator=Coordenadores\n" + |
477 | "user.role.futureStudent=Futuros Alunos\n" + |
||
478 | "user.role.oldStudent=Antigos Alunos\n" + |
||
1918 | grupo4 | 479 | "user.role.studentAssociation=Associação de Estudantes\n" + |
480 | "user.role.computerCenter=Centro Informático\n" + |
||
1876 | grupo4 | 481 | "user.role.courseDirector=Presidente de Departamento\n" + |
1918 | grupo4 | 482 | "user.role.identifiersManager=Utilizador de Gestão de Identificadores\n" + |
483 | "user.role.identifiersCollectionCreator=Administrador de Colecções de Identificadores\n" + |
||
484 | "user.role.studentsID=Alunos de Informação e Documentação\n" + |
||
485 | "user.role.studentsFSIR=Alunos de Fontes de Informação e Serviço de Referência\n" + |
||
1876 | grupo4 | 486 | "user.role.sendMailMessages=Enviar Mensagens de Correio Electronico\n" + |
1918 | grupo4 | 487 | "user.role.pedagogicCouncilSecretariat=Secretariado do Conselho Pedagógico\n" + |
488 | "user.role.directionSecretariat=Secretariado da Direcção\n" + |
||
1876 | grupo4 | 489 | "user.role.studentsSecretariat=Secretaria de Alunos\n" + |
1918 | grupo4 | 490 | "user.role.assessementsTester=Testador de Provas de Avaliação\n" + |
1876 | grupo4 | 491 | "user.role.processes.admin=Inspector de Processos" + |
1918 | grupo4 | 492 | "user.role.validate.ei=Comissão de Curso de Engenharia Informática\n" + |
493 | "user.role.courseValidateProgramGPME=Comissão de Curso de Gestão de PME\n" + |
||
494 | "user.role.courseValidateProgramCET_TD=Comissão de Curso de CETS de TD\n" + |
||
495 | "user.role.courseValidateProgramEI=Comissão de Curso de EI\n" + |
||
496 | "user.role.courseValidateProgramEC=Comissão de Curso de EC\n" + |
||
497 | "user.role.courseValidateProgramBioEng=Comissão de Curso de BioEng\n" + |
||
498 | "user.role.courseValidateProgramEGI=Comissão de Curso de EGI\n" + |
||
499 | "user.role.courseValidateProgramEERA=Comissão de Curso de EERA\n" + |
||
500 | "user.role.courseValidateProgramDC=Comissão de Curso de DC\n" + |
||
501 | "user.role.courseValidateProgramDA=Comissão de Curso de DA\n" + |
||
502 | "user.role.courseValidateProgramTVAPE=Comissão de Curso de TVAPE\n" + |
||
503 | "user.role.courseValidateProgramMI=Comissão de Curso de MI\n" + |
||
504 | "user.role.courseValidateProgramEGPMEestranho=Comissão de Curso de EPGME\n" + |
||
505 | "user.role.courseValidatePrograms=Validação de Programas\n" + |
||
506 | "user.role.courseValidateProgramCET_CESH=Comissão de Curso de CETS de CESH\n" + |
||
507 | "user.role.courseValidateProgramAPM=Comissão de Curso de APM\n" + |
||
508 | "user.role.courseValidateProgramAA=Comissão de Curso de AA\n" + |
||
509 | "user.role.courseValidateProgramG=Comissão de Curso de G\n" + |
||
510 | "user.role.courseValidateProgramID=Comissão de Curso de ID\n" + |
||
511 | "user.role.courseValidateProgramRPS=Comissão de Curso de RPS\n" + |
||
512 | "user.role.courseValidateProgramTGI=Comissão de Curso de TGI\n" + |
||
513 | "user.role.courseValidateProgramRU=Comissão de Curso de RU\n" + |
||
514 | "user.role.courseValidateProgramCF=Comissão de Curso de Contabilidade e Finanças\n" + |
||
1876 | grupo4 | 515 | "user.role.courseValidateProgramNONE=Nenhuma\n" + |
1918 | grupo4 | 516 | "user.role.courseValidateProgramTPB=Comissão de Curso de Tecnologias de Produção de Biocombustíveis\n"+ |
517 | "user.role.board.institution=Board de Direcção do Instituto Politecnico\n"+ |
||
518 | "user.role.repositoryDocs=Administração do Repositório Digital\n"+ |
||
519 | "user.role.repositoryDeposit=Depositante do Repositório Digital\n"+ |
||
1670 | jmachado | 520 | |
521 | |||
522 | |||
1732 | jmachado | 523 | |
1876 | grupo4 | 524 | //ESCOLAS |
1670 | jmachado | 525 | |
526 | |||
527 | |||
1876 | grupo4 | 528 | //ESTG |
529 | "user.role.school.president.estg=Escola Director da ESTG\n"+ |
||
1918 | grupo4 | 530 | "user.role.school.board.estg=Escola Board de Direcção da ESTG\n"+ |
1876 | grupo4 | 531 | "user.role.school.secretariado.estg=Escola Secretariado da ESTG\n"+ |
532 | //CTC |
||
533 | "user.role.scientificCouncil.president.estg=CTC ESTG Presidente\n" + |
||
534 | "user.role.scientificCouncil.board.estg=CTC ESTG Membro\n" + |
||
535 | "user.role.scientificCouncil.secretariado.estg=CTC ESTG Secretariado\n" + |
||
536 | //Pedagogico |
||
1918 | grupo4 | 537 | "user.role.pedagogicCouncil.president.estg=Pedagógico ESTG Presidente\n" + |
538 | "user.role.pedagogicCouncil.board.estg=Pedagógico ESTG Membro\n" + |
||
539 | "user.role.pedagogicCouncil.secretariado.estg=Pedagógico ESTG Secretariado\n" + |
||
1670 | jmachado | 540 | |
1876 | grupo4 | 541 | //MEMBROS ESCOLAS |
1918 | grupo4 | 542 | "user.role.worker.estg=Funcionário ESTG\n" + |
543 | "user.role.worker.esae=Funcionário ESAE\n" + |
||
544 | "user.role.worker.esecs=Funcionário ESECS\n" + |
||
545 | "user.role.worker.ess=Funcionário ESS\n" + |
||
1670 | jmachado | 546 | |
1876 | grupo4 | 547 | "user.role.teacher.estg=Docentes ESTG\n" + |
548 | "user.role.teacher.esae=Docentes ESAE\n" + |
||
549 | "user.role.teacher.esecs=Docentes ESECS\n" + |
||
550 | "user.role.teacher.ess=Docentes ESS\n" + |
||
1670 | jmachado | 551 | |
1876 | grupo4 | 552 | "user.role.student.estg=Estudantes ESTG\n" + |
553 | "user.role.student.esae=Estudantes ESAE\n" + |
||
554 | "user.role.student.esecs=Estudantes ESECS\n" + |
||
555 | "user.role.student.ess=Estudantes ESS\n" + |
||
1728 | jmachado | 556 | |
557 | |||
1876 | grupo4 | 558 | //ESAE |
559 | "user.role.school.president.asae=Escola Director da ESAE\n"+ |
||
1918 | grupo4 | 560 | "user.role.school.board.esae=Escola Board de Direcção da ESAE\n"+ |
1876 | grupo4 | 561 | "user.role.school.secretariado.esae=Escola Secretariado da ESAE\n"+ |
562 | //CTC |
||
563 | "user.role.scientificCouncil.president.esae=CTC ESAE Presidente\n" + |
||
564 | "user.role.scientificCouncil.board.esae=CTC ESAE Membro\n" + |
||
565 | "user.role.scientificCouncil.secretariado.esae=CTC ESAE Secretariado\n" + |
||
566 | //Pedagogico |
||
1918 | grupo4 | 567 | "user.role.pedagogicCouncil.president.esae=Pedagógico ESAE Presidente\n" + |
568 | "user.role.pedagogicCouncil.board.esae=Pedagógico ESAE Membro\n" + |
||
569 | "user.role.pedagogicCouncil.secretariado.esae=Pedagógico ESAE Secretariado\n" + |
||
1670 | jmachado | 570 | |
571 | |||
572 | |||
1876 | grupo4 | 573 | //ESECS |
574 | "user.role.school.president.esecs=Escola Director da ESECS\n"+ |
||
1918 | grupo4 | 575 | "user.role.school.board.esecs=Escola Board de Direcção da ESECS\n"+ |
1876 | grupo4 | 576 | "user.role.school.secretariado.esecs=Escola Secretariado da ESECS\n"+ |
577 | //CTC |
||
578 | "user.role.scientificCouncil.president.esecs=CTC ESECS Presidente\n" + |
||
579 | "user.role.scientificCouncil.board.esecs=CTC ESECS Membro\n" + |
||
580 | "user.role.scientificCouncil.secretariado.esecs=CTC ESECS Secretariado\n" + |
||
581 | //Pedagogico |
||
1918 | grupo4 | 582 | "user.role.pedagogicCouncil.president.esecs=Pedagógico ESECS Presidente\n" + |
583 | "user.role.pedagogicCouncil.board.esecs=Pedagógico ESECS Membro\n" + |
||
584 | "user.role.pedagogicCouncil.secretariado.esecs=Pedagógico ESECS Secretariado\n" + |
||
1670 | jmachado | 585 | |
586 | |||
587 | |||
1876 | grupo4 | 588 | //ESS |
589 | "user.role.school.president.ess=Escola Director da ESS\n"+ |
||
1918 | grupo4 | 590 | "user.role.school.board.ess=Escola Board de Direcção da ESS\n"+ |
1876 | grupo4 | 591 | "user.role.school.secretariado.ess=Escola Secretariado da ESS\n"+ |
592 | //CTC |
||
593 | "user.role.scientificCouncil.president.ess=CTC ESS Presidente\n" + |
||
594 | "user.role.scientificCouncil.board.ess=CTC ESS Membro\n" + |
||
595 | "user.role.scientificCouncil.secretariado.ess=CTC ESS Secretariado\n" + |
||
596 | //Pedagogico |
||
1918 | grupo4 | 597 | "user.role.pedagogicCouncil.president.ess=Pedagógico ESS Presidente\n" + |
598 | "user.role.pedagogicCouncil.board.ess=Pedagógico ESS Membro\n" + |
||
599 | "user.role.pedagogicCouncil.secretariado.ess=Pedagógico ESS Secretariado\n" + |
||
1670 | jmachado | 600 | |
601 | |||
602 | |||
603 | |||
604 | |||
1876 | grupo4 | 605 | //ESCOLAS ANTIGOS NAO USAR |
1918 | grupo4 | 606 | "user.role.board.school.estg=Board de Direcção da ESTG\n"+ |
607 | "user.role.board.school.esae=Board de Direcção da ESAE\n"+ |
||
608 | "user.role.board.school.esecs=Board de Direcção da ESECS\n"+ |
||
609 | "user.role.board.school.ess=Board de Direcção da ESS\n"+ |
||
1670 | jmachado | 610 | |
611 | |||
1876 | grupo4 | 612 | //ESAE |
1918 | grupo4 | 613 | "user.role.department.board.agric.recurs.nat=Departamento Direção - Agricultura e Recursos Naturais\n" + |
614 | "user.role.department.board.cienc.tecnol.ani=Departamento Direção - Ciência e Tecnologia Animal\n" + |
||
1876 | grupo4 | 615 | "user.role.department.diretor.agric.recurs.nat=Departamento Diretor - Agricultura e Recursos Naturais\n" + |
1918 | grupo4 | 616 | "user.role.department.diretor.cienc.tecnol.ani=Departamento Diretor - Ciência e Tecnologia Animal\n" + |
1876 | grupo4 | 617 | //ESECS |
1918 | grupo4 | 618 | "user.role.department.board.comun.artes.tecn=Departamento Direção - Comunicação, Artes e Tecnologias\n" + |
619 | "user.role.department.board.educac.formac=Departamento Direção - Educação e Formação\n" + |
||
620 | "user.role.department.board.inter.des.soc=Departamento Direção - Intervenção e Desenvolvimento Social\n" + |
||
621 | "user.role.department.diretor.comun.artes.tecn=Departamento Diretor - Comunicação, Artes e Tecnologias\n" + |
||
622 | "user.role.department.diretor.educac.formac=Departamento Diretor - Educação e Formação\n" + |
||
623 | "user.role.department.diretor.inter.des.soc=Departamento Diretor - Intervenção e Desenvolvimento Social\n" + |
||
1876 | grupo4 | 624 | //ESS |
1918 | grupo4 | 625 | "user.role.department.board.cienc.tec.saude=Departamento Direção - Ciências e Tecnologias da Saúde\n" + |
626 | "user.role.department.diretor.cienc.tec.saude=Departamento Diretor - Ciências e Tecnologias da Saúde\n" + |
||
1876 | grupo4 | 627 | //ESTG |
1918 | grupo4 | 628 | "user.role.department.board.cienc.empre.sh=Departamento Direção - Ciências Empresariais, Sociais e Humanas\n" + |
629 | "user.role.department.board.tecnolo.design=Departamento Direção - Tecnologias e Design\n" + |
||
630 | "user.role.department.diretor.cienc.empre.sh=Departamento Diretor - Ciências Empresariais, Sociais e Humanas\n" + |
||
1876 | grupo4 | 631 | "user.role.department.diretor.tecnolo.design=Departamento Diretor - Tecnologias e Design\n" |
1585 | jmachado | 632 | ; |
1283 | jmachado | 633 | |
1626 | jmachado | 634 | |
635 | |||
636 | |||
1283 | jmachado | 637 | } |
1918 | grupo4 | 638 |