Subversion Repositories bacoAlunos

Rev

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