Subversion Repositories bacoAlunos

Rev

Rev 1616 | Rev 1620 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1616 jmachado 1
package pt.estgp.estgweb.web.controllers.widgetmodel;
2
 
3
import jomm.dao.impl.AbstractDao;
4
import org.apache.struts.action.ActionForm;
5
import org.json.JSONArray;
6
import org.json.JSONException;
7
import org.json.JSONObject;
8
import pt.estgp.estgweb.domain.SigesUser;
9
import pt.estgp.estgweb.domain.Student;
10
import pt.estgp.estgweb.domain.Teacher;
11
import pt.estgp.estgweb.domain.User;
12
import pt.estgp.estgweb.domain.dao.DaoFactory;
13
import pt.estgp.estgweb.web.controllers.utils.AbstractWidgetAjaxController;
14
import pt.estgp.estgweb.web.form.widgetmodel.WidgetModelForm;
1617 jmachado 15
import pt.estgp.estgweb.web.utils.RequestUtils;
16
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
17
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
1616 jmachado 18
 
19
import javax.servlet.http.HttpServletRequest;
20
import javax.servlet.http.HttpServletResponse;
21
import java.util.List;
22
 
23
/**
24
 * Created by jorgemachado on 06/01/17.
25
 */
26
public class ModelWidgetController extends AbstractWidgetAjaxController
27
{
28
 
29
    public JSONObject findUser(ActionForm form,HttpServletRequest request, HttpServletResponse response) throws JSONException {
30
 
31
        WidgetModelForm frm = (WidgetModelForm) form;
32
        1.5.0/docs/api/java/lang/String.html">String query = frm.getQ();
33
 
34
        JSONObject result = new JSONObject();
35
        JSONArray usersArray = new JSONArray();
36
        result.put("results",usersArray);
37
 
38
        if(query==null || query.trim().length() == 0)
39
            return result;
40
 
41
        AbstractDao.getCurrentSession().beginTransaction();
42
 
43
        result.put("results",usersArray);
44
        List<User> users = DaoFactory.getUserDaoImpl().findUsers(query);
1617 jmachado 45
        getUsersInJson(usersArray, users);
46
        AbstractDao.getCurrentSession().getTransaction().commit();
47
        return result;
48
    }
49
 
50
 
51
    public JSONObject findUserRoles(ActionForm form,HttpServletRequest request, HttpServletResponse response) throws JSONException {
52
 
53
        WidgetModelForm frm = (WidgetModelForm) form;
54
        1.5.0/docs/api/java/lang/String.html">String query = frm.getQ();
55
 
56
        JSONObject result = new JSONObject();
57
        JSONArray usersArray = new JSONArray();
58
        result.put("results",usersArray);
59
 
60
        if(query==null || query.trim().length() == 0)
61
            return result;
62
 
63
        AbstractDao.getCurrentSession().beginTransaction();
64
 
65
        result.put("results",usersArray);
66
        List<User> users = DaoFactory.getUserDaoImpl().loadRoleUsers(query);
67
        getUsersInJson(usersArray, users);
68
        AbstractDao.getCurrentSession().getTransaction().commit();
69
        return result;
70
    }
71
 
72
    private void getUsersInJson(JSONArray usersArray, List<User> users) throws JSONException {
1616 jmachado 73
        for(User u: users)
74
        {
75
            JSONObject user = new JSONObject();
76
            user.put("id",u.getId());
77
            user.put("username",u.getUsername());
78
            user.put("name",u.getName());
79
            if(u instanceof SigesUser)
80
            {
81
                user.put("sigesCode",((SigesUser)u).getSigesCode());
82
            }
83
            if(u instanceof Teacher)
84
            {
85
                user.put("type","teacher");
86
            }
87
            if(u instanceof Student)
88
            {
89
                user.put("type","student");
90
            }
91
            usersArray.put(user);
92
        }
93
    }
1617 jmachado 94
 
95
 
96
    /**
97
     * q json object:
98
     * {
99
     *     userId:Long,
100
     *     role:String,
101
     * }
102
     * Adds a role to a user
103
     *
104
     * @param form
105
     * @param request
106
     * @param response
107
     * @return Users in Json
108
     * @throws JSONException
109
     */
110
    public JSONObject addRole2User(ActionForm form,HttpServletRequest request, HttpServletResponse response) throws 1.5.0/docs/api/java/lang/Throwable.html">Throwable {
111
 
112
        WidgetModelForm frm = (WidgetModelForm) form;
113
        1.5.0/docs/api/java/lang/String.html">String query = frm.getQ();
114
        JSONObject roleUser = new JSONObject(query);
115
        1.5.0/docs/api/java/lang/Long.html">Long userId = roleUser.getLong("userId");
116
        1.5.0/docs/api/java/lang/String.html">String role = roleUser.getString("role");
117
 
118
        IServiceManager sm = ServiceManager.getInstance();
119
        1.5.0/docs/api/java/lang/String.html">String[] names = new 1.5.0/docs/api/java/lang/String.html">String[]{"userId","role_2_addRemove"}; //colocacao do nome de parametro role_2_add obrigatoria para validacao no filtro do serviço
120
        5+0%2Fdocs%2Fapi+Object">Object[] args = new 5+0%2Fdocs%2Fapi+Object">Object[]{userId,role};
121
        sm.execute(RequestUtils.getRequester(request, response), "AddRole2User", args, names);
122
 
123
        frm.setQ(role);
124
        addMessageAsString(request,"Utilizador adicionado com sucesso ao papel institucional");
125
        return findUserRoles(frm,request,response);
126
    }
127
 
128
    /**
129
     * q json object:
130
     * {
131
     *     userId:Long,
132
     *     role:String,
133
     * }
134
     * Adds a role to a user
135
     *
136
     * @param form
137
     * @param request
138
     * @param response
139
     * @return Users in Json
140
     * @throws JSONException
141
     */
142
    public JSONObject removeRole2User(ActionForm form,HttpServletRequest request, HttpServletResponse response) throws 1.5.0/docs/api/java/lang/Throwable.html">Throwable {
143
 
144
        WidgetModelForm frm = (WidgetModelForm) form;
145
        1.5.0/docs/api/java/lang/String.html">String query = frm.getQ();
146
        JSONObject roleUser = new JSONObject(query);
147
        1.5.0/docs/api/java/lang/Long.html">Long userId = roleUser.getLong("userId");
148
        1.5.0/docs/api/java/lang/String.html">String role = roleUser.getString("role");
149
 
150
        IServiceManager sm = ServiceManager.getInstance();
151
        1.5.0/docs/api/java/lang/String.html">String[] names = new 1.5.0/docs/api/java/lang/String.html">String[]{"userId","role_2_addRemove"}; //colocacao do nome de parametro role_2_add obrigatoria para validacao no filtro do serviço
152
        5+0%2Fdocs%2Fapi+Object">Object[] args = new 5+0%2Fdocs%2Fapi+Object">Object[]{userId,role};
153
        sm.execute(RequestUtils.getRequester(request, response), "RemoveRole2User", args, names);
154
 
155
        frm.setQ(role);
156
        addMessageAsString(request,"Utilizador removido com sucesso do papel institucional");
157
        return findUserRoles(frm,request,response);
158
    }
1616 jmachado 159
}