Bladeren bron

switching gorup permissions to pivot

tags/0.1.0
Robin Thoni 8 jaren geleden
bovenliggende
commit
827909b679

+ 2
- 1
generate.php Bestand weergeven

48
     "mode" => 0775,
48
     "mode" => 0775,
49
     "ignore" => array(
49
     "ignore" => array(
50
         "tables" => array(
50
         "tables" => array(
51
-            "/luticate_users_groups/"
51
+            "/luticate_users_groups/",
52
+            "/luticate_permissions_(groups|users)/"
52
         ),
53
         ),
53
         "sp" => array(),
54
         "sp" => array(),
54
         "controllers" => array()
55
         "controllers" => array()

+ 0
- 0
sql/data_init.sql Bestand weergeven


dump.sql → sql/struct_init.sql Bestand weergeven

1
 --
1
 --
2
 -- PostgreSQL database dump
2
 -- PostgreSQL database dump
3
 --
3
 --
4
-
5
-SET statement_timeout = 0;
6
-SET lock_timeout = 0;
7
-SET client_encoding = 'UTF8';
8
-SET standard_conforming_strings = on;
9
-SET check_function_bodies = false;
10
-SET client_min_messages = warning;
11
-
12
---
13
---
14
-
15
-CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
16
-
17
-
18
 --
4
 --
5
+-- Name: sp_lu_get_all_user_permission(integer); Type: FUNCTION; Schema: public; Owner: dev
19
 --
6
 --
20
 
7
 
21
-COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
22
-
23
-
24
-SET search_path = public, pg_catalog;
8
+CREATE FUNCTION sp_lu_get_all_user_permission(_user_id integer, OUT _permisson_name character varying, OUT val boolean) RETURNS SETOF record
9
+LANGUAGE sql IMMUTABLE SECURITY DEFINER COST 10
10
+AS $$
11
+	SELECT p.name, sp_lu_get_user_permission(_user_id, p.name) FROM luticate_permissions p
12
+$$;
25
 
13
 
26
 --
14
 --
27
 -- Name: sp_lu_get_user_permission(integer, character varying); Type: FUNCTION; Schema: public; Owner: dev
15
 -- Name: sp_lu_get_user_permission(integer, character varying); Type: FUNCTION; Schema: public; Owner: dev
28
 --
16
 --
29
 
17
 
30
 CREATE FUNCTION sp_lu_get_user_permission(_user_id integer, _permisson_name character varying, OUT val boolean) RETURNS boolean
18
 CREATE FUNCTION sp_lu_get_user_permission(_user_id integer, _permisson_name character varying, OUT val boolean) RETURNS boolean
31
-    LANGUAGE plpgsql IMMUTABLE SECURITY DEFINER COST 10
32
-    AS $$
19
+LANGUAGE plpgsql IMMUTABLE SECURITY DEFINER COST 10
20
+AS $$
33
 DECLARE
21
 DECLARE
34
 groups int[];
22
 groups int[];
35
 g INT;
23
 g INT;
49
 	END if;
35
 	END if;
50
 	IF val is null then
36
 	IF val is null then
51
 	    SELECT "value" INTO val FROM luticate_permissions WHERE "name" = _permisson_name;
37
 	    SELECT "value" INTO val FROM luticate_permissions WHERE "name" = _permisson_name;
52
-	    IF val is null then
53
-	        val := FALSE;
54
-	    end if;
55
 	end if;
38
 	end if;
56
     END IF;
39
     END IF;
57
 END;
40
 END;
58
 $$;
41
 $$;
59
 
42
 
60
-
61
-ALTER FUNCTION public.sp_lu_get_user_permission(_user_id integer, _permisson_name character varying, OUT val boolean) OWNER TO dev;
62
-
63
 --
43
 --
64
 -- Name: luticate_groups_id_seq; Type: SEQUENCE; Schema: public; Owner: dev
44
 -- Name: luticate_groups_id_seq; Type: SEQUENCE; Schema: public; Owner: dev
65
 --
45
 --
66
 
46
 
67
 CREATE SEQUENCE luticate_groups_id_seq
47
 CREATE SEQUENCE luticate_groups_id_seq
68
-    START WITH 1
69
-    INCREMENT BY 1
70
-    NO MINVALUE
71
-    NO MAXVALUE
72
-    CACHE 1;
73
-
74
-
75
-ALTER TABLE public.luticate_groups_id_seq OWNER TO dev;
48
+START WITH 1
49
+INCREMENT BY 1
50
+NO MINVALUE
51
+NO MAXVALUE
52
+CACHE 1;
76
 
53
 
77
 SET default_tablespace = '';
54
 SET default_tablespace = '';
78
 
55
 
87
     name character varying NOT NULL
64
     name character varying NOT NULL
88
 );
65
 );
89
 
66
 
90
-
91
-ALTER TABLE public.luticate_groups OWNER TO dev;
92
-
93
 --
67
 --
94
 -- Name: luticate_permissions; Type: TABLE; Schema: public; Owner: dev; Tablespace: 
68
 -- Name: luticate_permissions; Type: TABLE; Schema: public; Owner: dev; Tablespace: 
95
 --
69
 --
99
     value boolean NOT NULL
73
     value boolean NOT NULL
100
 );
74
 );
101
 
75
 
102
-
103
-ALTER TABLE public.luticate_permissions OWNER TO dev;
104
-
105
 --
76
 --
106
 -- Name: luticate_permissions_groups; Type: TABLE; Schema: public; Owner: dev; Tablespace: 
77
 -- Name: luticate_permissions_groups; Type: TABLE; Schema: public; Owner: dev; Tablespace: 
107
 --
78
 --
112
     group_id integer NOT NULL
83
     group_id integer NOT NULL
113
 );
84
 );
114
 
85
 
115
-
116
-ALTER TABLE public.luticate_permissions_groups OWNER TO dev;
117
-
118
 --
86
 --
119
 -- Name: luticate_permissions_users; Type: TABLE; Schema: public; Owner: dev; Tablespace: 
87
 -- Name: luticate_permissions_users; Type: TABLE; Schema: public; Owner: dev; Tablespace: 
120
 --
88
 --
122
 CREATE TABLE luticate_permissions_users (
90
 CREATE TABLE luticate_permissions_users (
123
     name character varying(128) NOT NULL,
91
     name character varying(128) NOT NULL,
124
     value boolean,
92
     value boolean,
125
-    user_id integer
93
+    user_id integer NOT NULL
126
 );
94
 );
127
 
95
 
128
-
129
-ALTER TABLE public.luticate_permissions_users OWNER TO dev;
130
-
131
 --
96
 --
132
 -- Name: luticate_users_id_seq; Type: SEQUENCE; Schema: public; Owner: dev
97
 -- Name: luticate_users_id_seq; Type: SEQUENCE; Schema: public; Owner: dev
133
 --
98
 --
134
 
99
 
135
 CREATE SEQUENCE luticate_users_id_seq
100
 CREATE SEQUENCE luticate_users_id_seq
136
-    START WITH 1
137
-    INCREMENT BY 1
138
-    NO MINVALUE
139
-    NO MAXVALUE
140
-    CACHE 1;
141
-
142
-
143
-ALTER TABLE public.luticate_users_id_seq OWNER TO dev;
101
+START WITH 1
102
+INCREMENT BY 1
103
+NO MINVALUE
104
+NO MAXVALUE
105
+CACHE 1;
144
 
106
 
145
 --
107
 --
146
 -- Name: luticate_users; Type: TABLE; Schema: public; Owner: dev; Tablespace: 
108
 -- Name: luticate_users; Type: TABLE; Schema: public; Owner: dev; Tablespace: 
151
     username character varying(255) NOT NULL,
113
     username character varying(255) NOT NULL,
152
     email character varying(255) NOT NULL,
114
     email character varying(255) NOT NULL,
153
     password character varying(255) NOT NULL,
115
     password character varying(255) NOT NULL,
154
-    salt character varying(10) NOT NULL
116
+    salt character varying(10) NOT NULL,
117
+    profile_id integer,
118
+    firstname character varying(255) NOT NULL,
119
+    lastname character varying(255) NOT NULL
155
 );
120
 );
156
 
121
 
157
-
158
-ALTER TABLE public.luticate_users OWNER TO dev;
159
-
160
 --
122
 --
161
 -- Name: luticate_users_groups; Type: TABLE; Schema: public; Owner: dev; Tablespace: 
123
 -- Name: luticate_users_groups; Type: TABLE; Schema: public; Owner: dev; Tablespace: 
162
 --
124
 --
166
     group_id integer NOT NULL
128
     group_id integer NOT NULL
167
 );
129
 );
168
 
130
 
169
-
170
-ALTER TABLE public.luticate_users_groups OWNER TO dev;
171
-
172
 --
131
 --
173
 -- Name: luticate_groups_name_key; Type: CONSTRAINT; Schema: public; Owner: dev; Tablespace: 
132
 -- Name: luticate_groups_name_key; Type: CONSTRAINT; Schema: public; Owner: dev; Tablespace: 
174
 --
133
 --
175
 
134
 
176
 ALTER TABLE ONLY luticate_groups
135
 ALTER TABLE ONLY luticate_groups
177
-    ADD CONSTRAINT luticate_groups_name_key UNIQUE (name);
136
+ADD CONSTRAINT luticate_groups_name_key UNIQUE (name);
178
 
137
 
179
 
138
 
180
 --
139
 --
182
 --
141
 --
183
 
142
 
184
 ALTER TABLE ONLY luticate_groups
143
 ALTER TABLE ONLY luticate_groups
185
-    ADD CONSTRAINT luticate_groups_pkey PRIMARY KEY (id);
144
+ADD CONSTRAINT luticate_groups_pkey PRIMARY KEY (id);
186
 
145
 
187
 
146
 
188
 --
147
 --
190
 --
149
 --
191
 
150
 
192
 ALTER TABLE ONLY luticate_permissions
151
 ALTER TABLE ONLY luticate_permissions
193
-    ADD CONSTRAINT luticate_permissions_pkey PRIMARY KEY (name);
152
+ADD CONSTRAINT luticate_permissions_pkey PRIMARY KEY (name);
153
+
154
+
155
+--
156
+-- Name: luticate_permissions_users_pkey; Type: CONSTRAINT; Schema: public; Owner: dev; Tablespace: 
157
+--
158
+
159
+ALTER TABLE ONLY luticate_permissions_users
160
+ADD CONSTRAINT luticate_permissions_users_pkey PRIMARY KEY (name, user_id);
194
 
161
 
195
 
162
 
196
 --
163
 --
198
 --
165
 --
199
 
166
 
200
 ALTER TABLE ONLY luticate_users
167
 ALTER TABLE ONLY luticate_users
201
-    ADD CONSTRAINT luticate_users_email_key UNIQUE (email);
168
+ADD CONSTRAINT luticate_users_email_key UNIQUE (email);
202
 
169
 
203
 
170
 
204
 --
171
 --
206
 --
173
 --
207
 
174
 
208
 ALTER TABLE ONLY luticate_users_groups
175
 ALTER TABLE ONLY luticate_users_groups
209
-    ADD CONSTRAINT luticate_users_groups_pkey PRIMARY KEY (user_id, group_id);
176
+ADD CONSTRAINT luticate_users_groups_pkey PRIMARY KEY (user_id, group_id);
210
 
177
 
211
 
178
 
212
 --
179
 --
214
 --
181
 --
215
 
182
 
216
 ALTER TABLE ONLY luticate_users
183
 ALTER TABLE ONLY luticate_users
217
-    ADD CONSTRAINT luticate_users_pkey PRIMARY KEY (id);
184
+ADD CONSTRAINT luticate_users_pkey PRIMARY KEY (id);
218
 
185
 
219
 
186
 
220
 --
187
 --
222
 --
189
 --
223
 
190
 
224
 ALTER TABLE ONLY luticate_users
191
 ALTER TABLE ONLY luticate_users
225
-    ADD CONSTRAINT luticate_users_username_key UNIQUE (username);
192
+ADD CONSTRAINT luticate_users_username_key UNIQUE (username);
226
 
193
 
227
 
194
 
228
 --
195
 --
230
 --
197
 --
231
 
198
 
232
 ALTER TABLE ONLY luticate_permissions_groups
199
 ALTER TABLE ONLY luticate_permissions_groups
233
-    ADD CONSTRAINT pkey PRIMARY KEY (name, group_id);
200
+ADD CONSTRAINT pkey PRIMARY KEY (name, group_id);
234
 
201
 
235
 
202
 
236
 --
203
 --
237
 -- Name: foreign_group; Type: FK CONSTRAINT; Schema: public; Owner: dev
204
 -- Name: foreign_group; Type: FK CONSTRAINT; Schema: public; Owner: dev
238
 --
205
 --
239
 
206
 
240
-ALTER TABLE ONLY luticate_users_groups
241
-    ADD CONSTRAINT foreign_group FOREIGN KEY (group_id) REFERENCES luticate_groups(id);
207
+ALTER TABLE ONLY luticate_permissions_groups
208
+ADD CONSTRAINT foreign_group FOREIGN KEY (group_id) REFERENCES luticate_groups(id) ON DELETE CASCADE;
242
 
209
 
243
 
210
 
244
 --
211
 --
245
 -- Name: foreign_group; Type: FK CONSTRAINT; Schema: public; Owner: dev
212
 -- Name: foreign_group; Type: FK CONSTRAINT; Schema: public; Owner: dev
246
 --
213
 --
247
 
214
 
248
-ALTER TABLE ONLY luticate_permissions_groups
249
-    ADD CONSTRAINT foreign_group FOREIGN KEY (group_id) REFERENCES luticate_groups(id);
215
+ALTER TABLE ONLY luticate_users_groups
216
+ADD CONSTRAINT foreign_group FOREIGN KEY (group_id) REFERENCES luticate_groups(id) ON DELETE CASCADE;
250
 
217
 
251
 
218
 
252
 --
219
 --
254
 --
221
 --
255
 
222
 
256
 ALTER TABLE ONLY luticate_permissions_groups
223
 ALTER TABLE ONLY luticate_permissions_groups
257
-    ADD CONSTRAINT foreign_name FOREIGN KEY (name) REFERENCES luticate_permissions(name);
224
+ADD CONSTRAINT foreign_name FOREIGN KEY (name) REFERENCES luticate_permissions(name) ON DELETE CASCADE;
258
 
225
 
259
 
226
 
260
 --
227
 --
262
 --
229
 --
263
 
230
 
264
 ALTER TABLE ONLY luticate_permissions_users
231
 ALTER TABLE ONLY luticate_permissions_users
265
-    ADD CONSTRAINT foreign_name FOREIGN KEY (name) REFERENCES luticate_permissions(name);
266
-
267
-
268
---
269
---
270
-
271
-ALTER TABLE ONLY luticate_users_groups
272
-    ADD CONSTRAINT foreign_user FOREIGN KEY (user_id) REFERENCES luticate_users(id);
232
+ADD CONSTRAINT foreign_name FOREIGN KEY (name) REFERENCES luticate_permissions(name) ON DELETE CASCADE;
273
 
233
 
274
 
234
 
275
 --
235
 --
278
 --
237
 --
279
 
238
 
280
 ALTER TABLE ONLY luticate_permissions_users
239
 ALTER TABLE ONLY luticate_permissions_users
281
-    ADD CONSTRAINT foreign_user FOREIGN KEY (user_id) REFERENCES luticate_users(id);
240
+ADD CONSTRAINT foreign_user FOREIGN KEY (user_id) REFERENCES luticate_users(id) ON DELETE CASCADE;
282
 
241
 
283
 
242
 
284
 --
243
 --
244
+-- Name: foreign_user; Type: FK CONSTRAINT; Schema: public; Owner: dev
285
 --
245
 --
286
 
246
 
287
-REVOKE ALL ON SCHEMA public FROM PUBLIC;
288
-REVOKE ALL ON SCHEMA public FROM postgres;
289
-GRANT ALL ON SCHEMA public TO postgres;
290
-GRANT ALL ON SCHEMA public TO PUBLIC;
291
-
247
+ALTER TABLE ONLY luticate_users_groups
248
+ADD CONSTRAINT foreign_user FOREIGN KEY (user_id) REFERENCES luticate_users(id) ON DELETE CASCADE;
292
 
249
 
293
 --
250
 --
294
 -- PostgreSQL database dump complete
251
 -- PostgreSQL database dump complete
295
 --
252
 --
296
-

+ 4
- 2
src/Auth/DataAccess/LuticatePermissionsGroupsDataAccess.php Bestand weergeven

2
 
2
 
3
 namespace Luticate\Auth\DataAccess;
3
 namespace Luticate\Auth\DataAccess;
4
 
4
 
5
+use Luticate\Auth\DataAccess\Models\LuticateGroups;
5
 use Luticate\Utils\LuDataAccess;
6
 use Luticate\Utils\LuDataAccess;
6
 use Luticate\Auth\DataAccess\Models\LuticatePermissionsGroups;
7
 use Luticate\Auth\DataAccess\Models\LuticatePermissionsGroups;
7
 use Luticate\Auth\DBO\LuticatePermissionsGroupsDbo;
8
 use Luticate\Auth\DBO\LuticatePermissionsGroupsDbo;
33
 
34
 
34
     public static function delete($group_id, $permission_name)
35
     public static function delete($group_id, $permission_name)
35
     {
36
     {
36
-        $perm = self::getModelByName($group_id, $permission_name);
37
+        LuticateGroups::find($group_id)->permissions()->detach($permission_name);
38
+        /*$perm = self::getModelByName($group_id, $permission_name);
37
         if (is_null($perm))
39
         if (is_null($perm))
38
             return;
40
             return;
39
-        $perm->delete();
41
+        $perm->delete();*/
40
     }
42
     }
41
 
43
 
42
     public static function edit($group_id, $permission_name, $permission_value)
44
     public static function edit($group_id, $permission_name, $permission_value)

+ 5
- 0
src/Auth/DataAccess/Models/LuticateGroups.php Bestand weergeven

10
     {
10
     {
11
         return $this->belongsToMany('Luticate\Auth\DataAccess\Models\LuticateUsers', "luticate_users_groups", "group_id", "user_id");
11
         return $this->belongsToMany('Luticate\Auth\DataAccess\Models\LuticateUsers', "luticate_users_groups", "group_id", "user_id");
12
     }
12
     }
13
+
14
+    public function permissions()
15
+    {
16
+        return $this->belongsToMany('Luticate\Auth\DataAccess\Models\LuticatePermissions', "luticate_permissions_groups", "group_id", "name");
17
+    }
13
 }
18
 }

+ 0
- 10
src/Auth/DataAccess/Models/LuticatePermissionsGroups.php Bestand weergeven

1
-<?php
2
-
3
-namespace Luticate\Auth\DataAccess\Models;
4
-
5
-use Luticate\Auth\DBO\LuticatePermissionsGroupsDbo;
6
-
7
-class LuticatePermissionsGroups extends LuticatePermissionsGroupsModel
8
-{
9
-    protected $primaryKey = "name";
10
-}

+ 0
- 51
src/Auth/DataAccess/Models/LuticatePermissionsGroupsModel.php Bestand weergeven

1
-<?php
2
-
3
-/**
4
- * AUTO GENERATED BY LUTICATE GENERATOR
5
- * ANY CHANGES WILL BE OVERWRITTEN
6
- * DO NOT DIRECTLY USE THIS FILE
7
- * USE LuticatePermissionsGroups.php
8
- * TO MAKE YOUR CHANGES AND DATABASE ACCESS
9
-*/
10
-
11
-namespace Luticate\Auth\DataAccess\Models;
12
-
13
-use Luticate\Utils\LuModel;
14
-use Luticate\Auth\DBO\LuticatePermissionsGroupsDbo;
15
-
16
-class LuticatePermissionsGroupsModel extends LuModel
17
-{
18
-    function __construct()
19
-    {
20
-        parent::__construct();
21
-        $this->timestamps = false;
22
-    }
23
-
24
-    public function toDbo()
25
-    {
26
-        $dbo = new LuticatePermissionsGroupsDbo();
27
-
28
-        $dbo->setName($this->name);
29
-        $dbo->setValue($this->value);
30
-        $dbo->setGroupId($this->group_id);
31
-
32
-        return $dbo;
33
-    }
34
-
35
-    /**
36
-     * @param $dbo LuticatePermissionsGroupsDbo
37
-     * @param $model LuModel|null
38
-     * @return LuticatePermissionsGroups
39
-     */
40
-    public function fromDbo($dbo, $model = null)
41
-    {
42
-        if (is_null($model))
43
-            $model = new LuticatePermissionsGroups();
44
-
45
-        $model->name = $dbo->getName();
46
-        $model->value = $dbo->getValue();
47
-        $model->group_id = $dbo->getGroupId();
48
-
49
-        return $model;
50
-    }
51
-}

+ 0
- 10
src/Auth/DataAccess/Models/LuticatePermissionsUsers.php Bestand weergeven

1
-<?php
2
-
3
-namespace Luticate\Auth\DataAccess\Models;
4
-
5
-use Luticate\Auth\DBO\LuticatePermissionsUsersDbo;
6
-
7
-class LuticatePermissionsUsers extends LuticatePermissionsUsersModel
8
-{
9
-    protected $primaryKey = "name";
10
-}

+ 0
- 51
src/Auth/DataAccess/Models/LuticatePermissionsUsersModel.php Bestand weergeven

1
-<?php
2
-
3
-/**
4
- * AUTO GENERATED BY LUTICATE GENERATOR
5
- * ANY CHANGES WILL BE OVERWRITTEN
6
- * DO NOT DIRECTLY USE THIS FILE
7
- * USE LuticatePermissionsUsers.php
8
- * TO MAKE YOUR CHANGES AND DATABASE ACCESS
9
-*/
10
-
11
-namespace Luticate\Auth\DataAccess\Models;
12
-
13
-use Luticate\Utils\LuModel;
14
-use Luticate\Auth\DBO\LuticatePermissionsUsersDbo;
15
-
16
-class LuticatePermissionsUsersModel extends LuModel
17
-{
18
-    function __construct()
19
-    {
20
-        parent::__construct();
21
-        $this->timestamps = false;
22
-    }
23
-
24
-    public function toDbo()
25
-    {
26
-        $dbo = new LuticatePermissionsUsersDbo();
27
-
28
-        $dbo->setName($this->name);
29
-        $dbo->setValue($this->value);
30
-        $dbo->setUserId($this->user_id);
31
-
32
-        return $dbo;
33
-    }
34
-
35
-    /**
36
-     * @param $dbo LuticatePermissionsUsersDbo
37
-     * @param $model LuModel|null
38
-     * @return LuticatePermissionsUsers
39
-     */
40
-    public function fromDbo($dbo, $model = null)
41
-    {
42
-        if (is_null($model))
43
-            $model = new LuticatePermissionsUsers();
44
-
45
-        $model->name = $dbo->getName();
46
-        $model->value = $dbo->getValue();
47
-        $model->user_id = $dbo->getUserId();
48
-
49
-        return $model;
50
-    }
51
-}

Laden…
Annuleren
Opslaan