MOVED mysql/person_has_perm.sql to mysql/core_person_has_perm.sql
authorAlan Knowles <alan@roojs.com>
Tue, 11 Oct 2016 03:08:46 +0000 (11:08 +0800)
committerAlan Knowles <alan@roojs.com>
Tue, 11 Oct 2016 03:08:46 +0000 (11:08 +0800)
mysql/core_person_has_perm.sql [new file with mode: 0644]

diff --git a/mysql/core_person_has_perm.sql b/mysql/core_person_has_perm.sql
new file mode 100644 (file)
index 0000000..a051137
--- /dev/null
@@ -0,0 +1,30 @@
+
+
+
+DROP FUNCTION IF EXISTS person_has_perm;
+
+DELIMITER $$
+CREATE FUNCTION person_has_perm(  
+       in_person_id INT(11),
+       in_perm_name VARCHAR(64),
+       in_perm_level VARCHAR(1)
+    )  RETURNS INT(11) DETERMINISTIC
+    BEGIN
+        
+        DECLARE v_id INT(11);
+        SET v_id = 0;
+        SELECT
+                group_members.id INTO v_id 
+            FROM
+                group_rights 
+            LEFT JOIN
+                group_members
+            ON 
+                group_rights.group_id = group_members.group_id  
+            WHERE 
+                group_rights.rightname= in_perm_name AND 
+                accessmask LIKE CONCAT('%', in_perm_level, '%') AND user_id = in_person_id LIMIT 1;
+        
+        RETURN v_id;
+    END $$
+DELIMITER ;