SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_PublicStringEscape    Script Date: 2009-7-10 19:03:44 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_PublicStringEscape]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_PublicStringEscape]
GO

--==============================================================================================
--==ûһַеĵ ' ת ''ǣеĵ
--== UDF ж̬ڵĳϣеĵţΪݣ  WHERE GoodsName='Lady's Overcoat' ξ
--==ΪгϣúΪ NVARCHAR(4000)
--==============================================================================================
--==@InputString -- ַ
--==ؽnvarchar -- ݴַ
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2008-10-26
--==============================================================================================

CREATE FUNCTION dbo.UDF_PublicStringEscape (@InputString NVARCHAR(4000))  

RETURNS nvarchar(4000) 

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	RETURN REPLACE(@InputString,'''','''''')
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ







GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  EXECUTE  ON [dbo].[UDF_PublicStringEscape]  TO [public]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_UserCurrent    Script Date: 2009-7-10 19:03:44 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_UserCurrent]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_UserCurrent]
GO

--==============================================================================================
--==ûصǰû
--==ʵʾCONVERT(Varchar(20),SYSTEM_USER)
--==============================================================================================
--==
--==ؽnvarchar -- ǰû
--==Ŀǰ UDF Ѿûʵô ɾ
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2008-10-26
--==============================================================================================

CREATE FUNCTION dbo.UDF_UserCurrent ()  

RETURNS nvarchar(50) 

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	RETURN CONVERT(nvarchar(50),SYSTEM_USER)
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ







GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  EXECUTE  ON [dbo].[UDF_UserCurrent]  TO [public]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_UserAdmin    Script Date: 2009-7-10 19:03:45 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_UserAdmin]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_UserAdmin]
GO

--==============================================================================================
--==ûصǰûǷΪ Admin  û
--== Admin  ûӵվеȨ
--==һû UserRole Ϊ 'Admin'Ϊ Admin  û
--==============================================================================================
--==@Name -- û
--==ؽInt -- 1/0 / Admin
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2008-10-26
--==============================================================================================

CREATE FUNCTION dbo.UDF_UserAdmin (@Name nvarchar(50))  

RETURNS INT

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	--==========================================
	--==
	--==========================================
	DECLARE @IsAdmin INT
	SET @IsAdmin=0	

	/*
	--==========================================
	--==ǰû
	--==========================================
	DECLARE @CurrentUser NVARCHAR(50)

	IF @Name IS NULL
		BEGIN
			SET @CurrentUser=dbo.UDF_UserCurrent()
		END
	ELSE
		BEGIN
			SET @CurrentUser=@Name
		END

	*/

	--==========================================
	--==ǰû UserRole Ϊ 'Admin' Ϊ Admin
	--==========================================
	IF EXISTS (SELECT [ID] FROM dbo.Users Where [Name]=@Name AND UserRole=dbo.UDF_UserRoleID(N'Admin'))
	BEGIN
		SET @IsAdmin=1
	END

	--==========================================
	--==ؽ
	--==========================================
	RETURN @IsAdmin
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
















GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  EXECUTE  ON [dbo].[UDF_UserAdmin]  TO [public]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_UserRoleID    Script Date: 2009-7-10 19:03:44 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_UserRoleID]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_UserRoleID]
GO

--==============================================================================================
--==û UserRoleName ѯ UserRole  UserRoleID
--==============================================================================================
--==@UserRoleName -- ָĽɫ
--==ؽInt -- ɫ ID
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2008-10-26
--==============================================================================================

CREATE FUNCTION dbo.UDF_UserRoleID(@UserRoleName nvarchar(50))  

RETURNS INT

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	--==========================================
	--==ر
	--==========================================
	DECLARE @UserRoleID INT
	SET @UserRoleID=0

	--==========================================
	--==ǰ @UserRoleName Ӧ UserRole ID
	--==========================================
	IF EXISTS (Select [ID] From dbo.UserRole Where RTRIM(LTRIM([Name]))=RTRIM(LTRIM(@UserRoleName)))
	BEGIN
		SET @UserRoleID=(Select [ID] From dbo.UserRole Where RTRIM(LTRIM([Name]))=RTRIM(LTRIM(@UserRoleName)))
	END

	--==========================================
	--==ؽ
	--==========================================
	RETURN @UserRoleID
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ









GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  EXECUTE  ON [dbo].[UDF_UserRoleID]  TO [public]
GO

SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_UserModerator    Script Date: 2009-7-10 19:03:44 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_UserModerator]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_UserModerator]
GO

--==============================================================================================
--==ûصǰûǷΪĳ Forum  Moderator  û
--== Moderator  û޸ı Forum ûӣܹվ
--==һûĳ Forum  Moderator  lily,ciciΪ Forum  Moderator  û
--==============================================================================================
--==@Name -- û
--==@ForumID -- ̳ ID
--==ؽInt -- 1/0 / Moderator
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2008-10-26
--==============================================================================================

CREATE FUNCTION dbo.UDF_UserModerator (@Name nvarchar(50),@ForumID int)  

RETURNS INT

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	--==========================================
	--==
	--==========================================
	DECLARE @IsModerator INT
	SET @IsModerator=0	

	/*
	--==========================================
	--==ǰû
	--==========================================
	DECLARE @CurrentUser NVARCHAR(50)

	IF @Name IS NULL
		BEGIN
			SET @CurrentUser=dbo.UDF_UserCurrent()
		END
	ELSE
		BEGIN
			SET @CurrentUser=@Name
		END
	*/

	--==========================================
	--==Ӹ Forum л Moderator Ŀ
	--==========================================
	DECLARE @Moderator NVARCHAR(1000)
	SET @Moderator=(Select Top 1 Moderator From dbo.Forum Where [ID]=@ForumID)

	--==========================================
	--==ǰû Moderator=1 ָ ForumΪ Moderator
	--==========================================
	IF @Name IN (Select Element From dbo.UDF_PublicSplit(@Moderator,N','))
	BEGIN
		SET @IsModerator=1
	END


	--==========================================
	--==ؽ
	--==========================================
	RETURN @IsModerator
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ



















GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  EXECUTE  ON [dbo].[UDF_UserModerator]  TO [public]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_UserCommunity    Script Date: 2009-7-10 19:03:45 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_UserCommunity]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_UserCommunity]
GO

--==============================================================================================
--==ûصǰûǷΪ Community  û
--==ֻ Community  ûſԷ
--==һû UserRole Ϊ 'Community'Ϊ Community  û
--==============================================================================================
--==@Name -- û
--==ؽInt -- 1/0 / Community
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2008-10-26
--==============================================================================================

CREATE FUNCTION dbo.UDF_UserCommunity (@Name nvarchar(50))  

RETURNS INT

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	--==========================================
	--==
	--==========================================
	DECLARE @IsCommunity INT
	SET @IsCommunity=0	

	/*
	--==========================================
	--==ǰû
	--==========================================
	DECLARE @CurrentUser NVARCHAR(50)

	IF @Name IS NULL
		BEGIN
			SET @CurrentUser=dbo.UDF_UserCurrent()
		END
	ELSE
		BEGIN
			SET @CurrentUser=@Name
		END
	*/
	
	--==========================================
	--==ǰû UserRole Ϊ 'Community' Ϊ Community
	--==========================================
	IF EXISTS (SELECT [ID] FROM dbo.Users Where [Name]=@Name AND UserRole=dbo.UDF_UserRoleID(N'Community'))
	BEGIN
		SET @IsCommunity=1
	END

	--==========================================
	--==ؽ
	--==========================================
	RETURN @IsCommunity
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ


















GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  EXECUTE  ON [dbo].[UDF_UserCommunity]  TO [public]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_GetForumIDFromFollowUpID    Script Date: 2009-7-10 19:03:44 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_GetForumIDFromFollowUpID]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_GetForumIDFromFollowUpID]
GO

--==============================================================================================
--==û FollowUpID  ForumID
--==============================================================================================
--==@FollowUpID --  ID
--==ؽInt -- Forum  ID
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2008-10-26
--==============================================================================================

CREATE FUNCTION dbo.UDF_GetForumIDFromFollowUpID(@FollowUpID int)  

RETURNS INT

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	--==========================================
	--==ر
	--==========================================
	DECLARE @ForumID INT
	SET @ForumID=0

	--==========================================
	--==
	--==========================================
	SET @ForumID=(Select ForumID From dbo.Topic Where [ID] =(select TopicID from dbo.FollowUp where [ID]=@FollowUpID))

	--==========================================
	--==ؽ
	--==========================================
	RETURN @ForumID
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ










GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  EXECUTE  ON [dbo].[UDF_GetForumIDFromFollowUpID]  TO [public]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_GetForumIDFromTopicID    Script Date: 2009-7-10 19:03:44 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_GetForumIDFromTopicID]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_GetForumIDFromTopicID]
GO

--==============================================================================================
--==û TopicID  ForumID
--==============================================================================================
--==@TopicID --  ID
--==ؽInt -- Forum  ID
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2008-10-26
--==============================================================================================

CREATE FUNCTION dbo.UDF_GetForumIDFromTopicID(@TopicID int)  

RETURNS INT

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	--==========================================
	--==ر
	--==========================================
	DECLARE @ForumID INT
	SET @ForumID=0

	--==========================================
	--==
	--==========================================
	SET @ForumID=(Select ForumID From dbo.Topic Where [ID] =@TopicID)

	--==========================================
	--==ؽ
	--==========================================
	RETURN @ForumID
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ











GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  EXECUTE  ON [dbo].[UDF_GetForumIDFromTopicID]  TO [public]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_GetTopicIDFromFollowUpID    Script Date: 2009-7-10 19:03:44 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_GetTopicIDFromFollowUpID]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_GetTopicIDFromFollowUpID]
GO

--==============================================================================================
--==û FollowUpID  TopicID
--==============================================================================================
--==@FollowUpID --  ID
--==ؽInt -- Topic  ID
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2008-10-26
--==============================================================================================

CREATE FUNCTION dbo.UDF_GetTopicIDFromFollowUpID(@FollowUpID int)  

RETURNS INT

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	--==========================================
	--==ر
	--==========================================
	DECLARE @TopicID INT
	SET @TopicID=0

	--==========================================
	--==
	--==========================================
	SET @TopicID=(Select TopicID From dbo.FollowUp Where [ID] =@FollowUpID)

	--==========================================
	--==ؽ
	--==========================================
	RETURN @TopicID
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ











GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  EXECUTE  ON [dbo].[UDF_GetTopicIDFromFollowUpID]  TO [public]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_PublicLoginExists    Script Date: 2009-7-10 19:03:44 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_PublicLoginExists]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_PublicLoginExists]
GO

--==============================================================================================
--==ûظûǷ  master..syslogins 
--==ڣ 1 򣬷 0
--==============================================================================================
--==@Name -- û
--==ؽInt -- 1/0 /
--== UDF ĿǰѾûʵüֵɾ
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2008-10-26
--==============================================================================================

CREATE FUNCTION dbo.UDF_PublicLoginExists (@Name nvarchar(50))  

RETURNS INT

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	--==========================================
	--==
	--==========================================
	DECLARE @LoginExists INT
	SET @LoginExists=0	
	
	--==========================================
	--==û  master.dbo.syslogins 򣬷 1 
	--==========================================
	IF @Name IN (Select [name] From master.dbo.syslogins)
	BEGIN
		SET @LoginExists=1
	END

	--==========================================
	--==ؽ
	--==========================================
	RETURN @LoginExists
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ











GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  EXECUTE  ON [dbo].[UDF_PublicLoginExists]  TO [public]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_PublicProfileExists    Script Date: 2009-7-10 19:03:44 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_PublicProfileExists]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_PublicProfileExists]
GO

--==============================================================================================
--==ûظû Profile ǷѾ Users 
--== UDF_PublicLoginExists(),UDF_PublicUserExists(),UDF_PublicProfileExists() һȷһϵͳûĴǷ Login,User,Profileڲ
--==ڣ 1 򣬷 0
--==============================================================================================
--==@Name -- û
--==ؽInt -- 1/0  /
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2008-10-26
--==============================================================================================

CREATE FUNCTION dbo.UDF_PublicProfileExists (@Name nvarchar(50))  

RETURNS INT

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	--==========================================
	--==
	--==========================================
	DECLARE @ProfileExists INT
	SET @ProfileExists=0		
	
	--==========================================
	--==û Users  򣬷 1 
	--==========================================
	IF @Name IN (Select [name] From dbo.Users) 
	BEGIN
		SET @ProfileExists=1
	END

	--==========================================
	--==ؽ
	--==========================================
	RETURN @ProfileExists
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ














GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  EXECUTE  ON [dbo].[UDF_PublicProfileExists]  TO [public]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_PublicUserExists    Script Date: 2009-7-10 19:03:44 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_PublicUserExists]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_PublicUserExists]
GO

--==============================================================================================
--==ûظûǷڵǰݿ  sysusers 
--==ڣ 1 򣬷 0
--==============================================================================================
--==@Name -- û
--==ؽInt -- 1/0 /
--==Ŀǰ UDF Ѿûʵô ɾ
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2008-10-26
--==============================================================================================

CREATE FUNCTION dbo.UDF_PublicUserExists (@Name nvarchar(50))  

RETURNS INT

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	--==========================================
	--==
	--==========================================
	DECLARE @UserExists INT
	SET @UserExists=0	
	
	--==========================================
	--==û  dbo.sysusers 򣬷 1 
	--==========================================
	IF @Name IN (Select [name] From dbo.sysusers) 
	BEGIN
		SET @UserExists=1
	END

	--==========================================
	--==ؽ
	--==========================================
	RETURN @UserExists
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ












GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  EXECUTE  ON [dbo].[UDF_PublicUserExists]  TO [public]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_PublicLoginOnline    Script Date: 2009-7-10 19:03:44 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_PublicLoginOnline]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_PublicLoginOnline]
GO

--==============================================================================================
--==ûظûǷ,   SP_WHO ʵǴ SP_WHO лһЩ룬Ϊ UDF ޷ SP зصļ¼
--==ڣ 1 򣬷 0
--==============================================================================================
--==@Name -- û
--==ؽInt -- 1/0  /
--==Ŀǰ UDF Ѿûʵôɾ
--== UDF ĿǰͣʹãΪʹ Table ûϵͳʹ master.dbo.sysprocesses ûϢĿǰǿȷ 0 ʾߡԺԿǽµ߼
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2008-10-26
--==============================================================================================

CREATE FUNCTION dbo.UDF_PublicLoginOnline (@Name nvarchar(50))  

RETURNS INT

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	--==========================================
	--==
	--==========================================
	DECLARE @LoginOnline INT
	SET @LoginOnline=0	
	
	--==========================================
	--==û  master.dbo.sysprocesses 򣬷 1 
	--==========================================
	/*
	IF EXISTS (SELECT spid FROM  master.dbo.sysprocesses WHERE spid >= 0 AND spid <= 32767 AND LTRIM(RTRIM(loginame))=LTRIM(RTRIM(@Name)))
	BEGIN
		SET @LoginOnline=1
	END
	*/

	--==========================================
	--==ؽ
	--==========================================
	RETURN @LoginOnline
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ


















GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  EXECUTE  ON [dbo].[UDF_PublicLoginOnline]  TO [public]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_GetCommunityIDFromForumID    Script Date: 2009-7-10 19:03:44 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_GetCommunityIDFromForumID]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_GetCommunityIDFromForumID]
GO

--==============================================================================================
--==û ForumID  CommunityID
--==============================================================================================
--==@ForumID -- ̳ ID
--==ؽInt -- Community  ID
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2008-10-26
--==============================================================================================

CREATE FUNCTION dbo.UDF_GetCommunityIDFromForumID(@ForumID int)  

RETURNS INT

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	--==========================================
	--==ر
	--==========================================
	DECLARE @CommunityID INT
	SET @CommunityID=0

	--==========================================
	--==
	--==========================================
	SET @CommunityID=(Select CommunityID From dbo.Forum Where [ID] =@ForumID)

	--==========================================
	--==ؽ
	--==========================================
	RETURN @CommunityID
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ












GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  EXECUTE  ON [dbo].[UDF_GetCommunityIDFromForumID]  TO [public]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_UserRoleJoin    Script Date: 2009-7-10 19:03:44 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_UserRoleJoin]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_UserRoleJoin]
GO

--==============================================================================================
--==ûݸû Users øû UserRole  ϸ 1,2 һַ
--==ַھӦнԭ UserRole б
--== SP UserAccountSelect 
--== UI.Admin.Account.UserAccountUI.cs DataBind() 
--==============================================================================================
--==@Name -- û
--==ؽַ磺1,2
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2008-10-26
--==============================================================================================

CREATE FUNCTION dbo.UDF_UserRoleJoin (@Name nvarchar(50))  

RETURNS nvarchar(4000) 

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	--================================
	--==صַ
	--================================
	DECLARE @UserRoles NVARCHAR(4000)

	--================================
	--== Users ص UserRole     COALESCE() ʵ֣
	--================================
	SELECT 

		@UserRoles=COALESCE(@UserRoles+N',',N'') + CONVERT(NVARCHAR(20),UserRole)

	FROM dbo.Users

	WHERE [Name]=@Name


	--================================
	--==
	--================================
	RETURN @UserRoles
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ






















GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  EXECUTE  ON [dbo].[UDF_UserRoleJoin]  TO [public]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_ModeratorClean    Script Date: 2009-7-10 19:03:44 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_ModeratorClean]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_ModeratorClean]
GO

--==============================================================================================
--==ûΪ Forum  Moderator ʱ򣬸 Moderator ܲڣĳЩûܸûг Users 
--==ǽû  @Moderator б޳
--== SP ForumSave, ForumModify 
--==============================================================================================
--==@Moderator -- б 
--==ؽַ 
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2008-10-26
--==============================================================================================

CREATE FUNCTION dbo.UDF_ModeratorClean (@Moderator nvarchar(1000))  

RETURNS nvarchar(1000) 

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	--================================
	--==صַ
	--================================
	DECLARE @ModeratorClean NVARCHAR(1000)

	--================================
	--==
	--================================
	SELECT 

		@ModeratorClean=COALESCE(@ModeratorClean+N',',N'')+ [Name] 

	FROM (Select Distinct Element From dbo.UDF_PublicSplit(@Moderator,N',')) mol 

	INNER JOIN (Select Distinct [Name] From dbo.Users) usr ON mol.Element=usr.[Name]


	--================================
	--==
	--================================
	RETURN @ModeratorClean
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
























GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  EXECUTE  ON [dbo].[UDF_ModeratorClean]  TO [public]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_UserDedicatedTo    Script Date: 2009-7-10 19:03:44 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_UserDedicatedTo]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_UserDedicatedTo]
GO

--==============================================================================================
--==ûصǰûǷĳ Knowledge  DedicatedTo Χ
--==Ϊ 1 Ϊ 0
--==============================================================================================
--==@Name -- û
--==ؽInt -- 1/0 / DedicatedTo Χ
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2008-10-26
--==============================================================================================

CREATE FUNCTION dbo.UDF_UserDedicatedTo (@Name nvarchar(50), @DedicatedTo NVARCHAR(4000))

RETURNS INT

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	--==========================================
	--==
	--==========================================
	DECLARE @IsDedicatedTo INT
	SET @IsDedicatedTo=0	

	--==========================================
	--==鿴ǰûǷλ DedicatedTo б
	--==========================================
	--IF @Name IN (Select [Element] From dbo.UDF_PublicSplit(@DedicatedTo,N','))
	IF @Name IN (Select [User] From dbo.UDF_UserResolve(@DedicatedTo))
	BEGIN
		SET @IsDedicatedTo=1
	END
	
	--==========================================
	--==ؽ
	--==========================================
	RETURN @IsDedicatedTo
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
























GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  EXECUTE  ON [dbo].[UDF_UserDedicatedTo]  TO [public]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_GetForumIDFromCommunityID    Script Date: 2009-7-10 19:03:44 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_GetForumIDFromCommunityID]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_GetForumIDFromCommunityID]
GO

--==============================================================================================
--==û CommunityID ظ Community µһ Forum  ID
--==============================================================================================
--==@CommunityID --  ID
--==ؽInt -- Forum  ID
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2008-10-26
--==============================================================================================

CREATE FUNCTION dbo.UDF_GetForumIDFromCommunityID(@CommunityID int)  

RETURNS INT

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	--==========================================
	--==ر
	--==========================================
	DECLARE @ForumID INT
	SET @ForumID=0

	--==========================================
	--==
	--==========================================
	SET @ForumID=(Select Top 1 [ID] From dbo.Forum Where CommunityID = @CommunityID Order By [ID])

	--==========================================
	--==ؽ
	--==========================================
	RETURN @ForumID
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ













GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  EXECUTE  ON [dbo].[UDF_GetForumIDFromCommunityID]  TO [public]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_KnowledgeCommentsPermission    Script Date: 2009-7-10 19:03:45 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_KnowledgeCommentsPermission]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_KnowledgeCommentsPermission]
GO


--==============================================================================================
--==ûظ֪ʶǷڵǰû context 
--==ֵ 0 κûۣͻ˲۽棩עnone ӵоȨֻҪ CommentsPermission аһ none򲻹Ȩζ壬ֹۣ
--==ֵ 1 κûۣͻһûûû֤
--==ֵ 2 ǰûѾ½ͬʱȨޣͻһ򼴿ɣҪûϵͳԶõǰ½ʻϢ
--==ֵ 3 ǰûûе½ǰ֪ʶָûۣͻ۽棬ͬʱûû⣬ҪʻϢ
--==============================================================================================
--==@KnowledgeID -- ֪ʶ ID
--==@User -- û
--==ؽInt -- 0/1/2 /3
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2009-04-12
--==============================================================================================

CREATE FUNCTION dbo.UDF_KnowledgeCommentsPermission (@KnowledgeID INT, @User NVARCHAR(50))

RETURNS INT

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	--==========================================
	--==
	--==========================================
	DECLARE @Result INT
	SET @Result=0	

	--==========================================
	--==֪ʶ CommentsPermission   ʹ View_KnowledgePermission ȡۻ View_KnowledgePermission
	--==========================================
	DECLARE @CommentsPermission  NVARCHAR(4000)

	SELECT @CommentsPermission =RTRIM(LTRIM(nowp.CommentsPermission))
	FROM dbo.Knowledge now 
	LEFT JOIN dbo.View_KnowledgePermission nowp ON nowp.KnowledgeID=now.[ID]	
	WHERE [ID]=@KnowledgeID
	
	--==========================================
	--==
	--==========================================
	--IF LOWER(@CommentsPermission)=N'none'
	IF N'none' IN (Select [Element] From dbo.UDF_PublicSplit(@CommentsPermission,N','))

		BEGIN
			--==========================================
			--==CommentsPermission=N'none'϶ ʹ admin Ҳnone ӵоȨ MainDirectory, SubDirectory, PageDirectory, Knowledge ζ壬ֻҪһ noneԶʧЧnone ã
			--==========================================
			SET @Result=0	
		END

	--ELSE IF (@CommentsPermission IS NULL) OR (@CommentsPermission=N'') OR (@CommentsPermission=N'*' )
	--ELSE IF (@CommentsPermission IS NULL) OR @CommentsPermission=N''
	ELSE IF REPLACE(@CommentsPermission,N',',N'')=N''

		BEGIN
			--==========================================
			--==CommentsPermission Ϊַ϶  κ˶ʹ½
			--==========================================
			SET @Result=1
		END

	ELSE IF dbo.UDF_UserAdmin(@User)=1
	--ELSE IF (@CommentsPermission=N'*'  AND dbo.UDF_UserClient(@User)=1) OR dbo.UDF_UserAdmin(@User)=1

		BEGIN
			--==========================================
			--==ǰû Admin Ѿ½
			--==========================================
			SET @Result=2
		END

	--ELSE IF @User IN (Select [Element] From dbo.UDF_PublicSplit(@CommentsPermission,N','))
	ELSE IF @User IN (Select [User] From dbo.UDF_UserResolve(@CommentsPermission))

		BEGIN
			--==========================================
			--==ǰûλûбУۣѾ½
			--==========================================
			SET @Result=2
		END

	ELSE

		BEGIN
			--==========================================
			--==Σָʾͻ Render ûͬʱ Render û Comments ͬʱû룬ϵͳڱ֮ǰ֤ûǷϷ
			--==========================================
			SET @Result=3	
		END


	--==========================================
	--==ؽ
	--==========================================
	RETURN @Result
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ


































GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  EXECUTE  ON [dbo].[UDF_KnowledgeCommentsPermission]  TO [public]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_PublicSplit    Script Date: 2009-7-10 19:03:44 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_PublicSplit]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_PublicSplit]
GO

--============================================================================================
--==UDFģ Split() ܣSQL Server вûͣء
--==עú֧ @Delimiter ΪոΣΪ£жٿո LEN(@Delimiter) ʼΪ 0
--==ַָָֿطָ֮ĵԪ 
--============================================================================================
--==@DelimitedString -- ַ
--==@Delimiter -- ָ ֿ֧ոΣ
--==ؽ -- ֳĵԪб
--============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2008-10-26
--============================================================================================

CREATE FUNCTION dbo.UDF_PublicSplit (@DelimitedString nvarchar(4000), @Delimiter nvarchar(100))

--============================================
--==صıṹ
--============================================
RETURNS @Array TABLE 
			(
			[ID] int IDENTITY(1,1), 
			Element nvarchar(1000) COLLATE database_default
			)

AS

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN
	--------------------------------------------------------
	--ر
	--------------------------------------------------------
	DECLARE @Index INT
	DECLARE @Start INT
	DECLARE @DelimiterSize INT

	--------------------------------------------------------
	--ָĳ
	--------------------------------------------------------
	SET @DelimiterSize = LEN(@Delimiter)
	
	--------------------------------------------------------
	--ַָÿָԪӵ
	--------------------------------------------------------
	WHILE LEN(@DelimitedString) > 0
	BEGIN
		SET @Index = CHARINDEX(@Delimiter, @DelimitedString)

		--------------------------------------------------------
		--ֻһķָԪûзָ־ڱַָ
		--------------------------------------------------------
		IF @Index = 0
			BEGIN
				INSERT INTO @Array(Element) VALUES(@DelimitedString)
				BREAK
			END

		--------------------------------------------------------
		--жָԪ
		--------------------------------------------------------
		ELSE
			BEGIN
				INSERT INTO @Array(Element) VALUES(SUBSTRING(@DelimitedString, 1,@Index - 1))
				SET @Start = @Index + @DelimiterSize
				SET @DelimitedString = SUBSTRING(@DelimitedString, @Start , LEN(@DelimitedString) - @Start + 1)
			END
	END
	
	RETURN
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ








GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  SELECT  ON [dbo].[UDF_PublicSplit]  TO [public]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_PublicLoginSpid    Script Date: 2009-7-10 19:03:44 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_PublicLoginSpid]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_PublicLoginSpid]
GO

--==============================================================================================
--==ûظû SPID б,   SP_WHO ʵǴ SP_WHO лһЩ룬Ϊ UDF ޷ SP зصļ¼
--==ú SP AdminUserAccountDelete ɾûǰȼ SPID ڣֹЩ SPID  Connection  ǿûߣȻſɾû
--== @Name='' 򷵻 ݿ SPID ʱûô
--==============================================================================================
--==@Name -- û
--==ؽ -- Spid ¼һܶ
--==Ŀǰ UDF Ѿûʵô ɾ
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2008-10-26
--==============================================================================================

CREATE FUNCTION dbo.UDF_PublicLoginSpid (@Name nvarchar(50))  

--==========================================
--==صıṹ
--==========================================
RETURNS @Spid TABLE
			(
			SPID SMALLINT
			)

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	--==========================================
	--== @Name ںϷûͿֵ
	--==========================================
	IF LEN(LTRIM(RTRIM(@Name)))>0
		BEGIN
			--==========================================
			--==  master.dbo.sysprocesses ָû SPID  ܶ
			--==========================================
			INSERT @Spid(SPID) SELECT spid FROM  master.dbo.sysprocesses WHERE spid >= 0 AND spid <= 32767 AND LTRIM(RTRIM(loginame))=LTRIM(RTRIM(@Name))
		END
	ELSE
		BEGIN
			--==========================================
			--==  master.dbo.sysprocesses ݿ SPID  ܶ
			--==========================================
			INSERT @Spid(SPID) SELECT spid FROM  master.dbo.sysprocesses WHERE spid >= 0 AND spid <= 32767 AND dbid=db_id(DB_NAME())
		END

	--==========================================
	--==ؽ
	--==========================================
	RETURN
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ













GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  SELECT  ON [dbo].[UDF_PublicLoginSpid]  TO [public]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_UserRoles    Script Date: 2009-7-10 19:03:44 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_UserRoles]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_UserRoles]
GO

--==============================================================================================
--==ûûԲĽɫб
--== UDF ʱûó
--==============================================================================================
--==@Name -- û
--==ؽ -- ûǵĽɫб
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2008-10-26
--==============================================================================================

CREATE FUNCTION dbo.UDF_UserRoles(@Name nvarchar(50))  

--============================================
--==صıṹ
--============================================
RETURNS @UserRoles TABLE 
					(
					[ID] int,
					UserRole nvarchar(50) COLLATE database_default,
					UserRoleC nvarchar(50) COLLATE database_default
					)

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	/*
	--==========================================
	--==ǰû
	--==========================================
	DECLARE @CurrentUser NVARCHAR(50)

	IF @Name IS NULL
		BEGIN
			SET @CurrentUser=dbo.UDF_UserCurrent()
		END
	ELSE
		BEGIN
			SET @CurrentUser=@Name
		END
	*/

	--==========================================
	--==ûɫб
	--==========================================
	INSERT @UserRoles([ID],UserRole,UserRoleC) SELECT ur.[ID],ur.[Name],ur.NameC FROM dbo.UserRole ur WHERE ur.[ID] IN (Select UserRole From dbo.Users Where [Name]=@Name)

	--==========================================
	--==ؽ
	--==========================================
	RETURN

END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ




























GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  SELECT  ON [dbo].[UDF_UserRoles]  TO [public]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_UserChiefEditor    Script Date: 2009-7-10 19:03:45 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_UserChiefEditor]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_UserChiefEditor]
GO

--==============================================================================================
--==ûصǰûǷΪ Chief Editor
--== Chief Editor  ûӵվݱ༭Ȩ
--==һû UserRole Ϊ ' Chief Editor'Ϊ  Chief Editor  û
--==============================================================================================
--==@Name -- û
--==ؽInt -- 1/0 /  Chief Editor
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2009-04-16
--==============================================================================================

CREATE FUNCTION dbo.UDF_UserChiefEditor (@Name nvarchar(50))  

RETURNS INT

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	--==========================================
	--==
	--==========================================
	DECLARE @IsChiefEditor INT
	SET @IsChiefEditor=0	

	--==========================================
	--==ǰû UserRole Ϊ 'Chief Editor' Ϊ Chief Editor
	--==========================================
	IF EXISTS (SELECT [ID] FROM dbo.Users Where [Name]=@Name AND UserRole=dbo.UDF_UserRoleID(N'Chief Editor'))
	BEGIN
		SET @IsChiefEditor=1
	END

	--==========================================
	--==ؽ
	--==========================================
	RETURN @IsChiefEditor
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

















GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  EXECUTE  ON [dbo].[UDF_UserChiefEditor]  TO [public]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_UserAdminEditor    Script Date: 2009-7-10 19:03:45 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_UserAdminEditor]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_UserAdminEditor]
GO

--==============================================================================================
--==ûصǰûǷΪ Admin  Chief Editor, Column Editor   û
--== SP KnowledgeGet, SP MenuMainDirectorySubDirectoryPageDirectory ȳϣõõ  û
--==============================================================================================
--==@Name -- û
--==ؽInt -- 1/0 / AdminEditor
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2009-04-17
--==============================================================================================

CREATE FUNCTION dbo.UDF_UserAdminEditor (@Name nvarchar(50))  

RETURNS INT

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	--==========================================
	--==
	--==========================================
	DECLARE @IsAdminEditor INT
	SET @IsAdminEditor=0	

	--==========================================
	--==ǰû UserRole Ϊ 'Admin'   'Chief Editor'  'Column Editor'Ϊ AdminEditor
	--==========================================
	IF EXISTS (SELECT [ID] FROM dbo.Users Where [Name]=@Name AND UserRole IN (dbo.UDF_UserRoleID(N'Admin'),dbo.UDF_UserRoleID(N'Chief Editor'),dbo.UDF_UserRoleID(N'Column Editor')))
	BEGIN
		SET @IsAdminEditor=1
	END

	--==========================================
	--==ؽ
	--==========================================
	RETURN @IsAdminEditor
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ


















GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  EXECUTE  ON [dbo].[UDF_UserAdminEditor]  TO [public]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_UserColumnEditor    Script Date: 2009-7-10 19:03:45 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_UserColumnEditor]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_UserColumnEditor]
GO

--==============================================================================================
--==ûصǰûǷΪ Column Editor
--== UDF Ǹ Menu 󣨽 UDF_UserChiefEditorǰû Editor
--==һû UserRole Ϊ ' Column Editor'Ϊ  Column Editor  û
--==============================================================================================
--==@Name -- û
--==ؽInt -- 1/0 /  Column Editor
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2009-04-16
--==============================================================================================

CREATE FUNCTION dbo.UDF_UserColumnEditor (@Name nvarchar(50))  

RETURNS INT

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	--==========================================
	--==
	--==========================================
	DECLARE @IsColumnEditor INT
	SET @IsColumnEditor=0	

	--==========================================
	--==ǰû UserRole Ϊ 'Column Editor' Ϊ Column Editor
	--==========================================
	IF EXISTS (SELECT [ID] FROM dbo.Users Where [Name]=@Name AND UserRole=dbo.UDF_UserRoleID(N'Column Editor'))
	BEGIN
		SET @IsColumnEditor=1
	END

	--==========================================
	--==ؽ
	--==========================================
	RETURN @IsColumnEditor
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ


















GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  EXECUTE  ON [dbo].[UDF_UserColumnEditor]  TO [public]
GO

SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_GroupMembersJoin    Script Date: 2009-7-10 19:03:44 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_GroupMembersJoin]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_GroupMembersJoin]
GO

--==============================================================================================
--==ûݸ Group  UserGroups ø Group гԱ eleanor,jackie,henry һַ
--== SP UserGroupSelect 
--== UI.Admin.Account.UserGroupUI.cs DataBind() 
--==============================================================================================
--==@GroupName -- 
--==ؽַ磺eleanor,jackie,henry
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2009-04-12
--== UDF Ϊ GroupMembers ӴԵʣʱãĳ Group µûӴﷵصĽܳ nvarchar(4000)
--==============================================================================================

CREATE FUNCTION dbo.UDF_GroupMembersJoin (@GroupName nvarchar(50))  

RETURNS nvarchar(4000) 

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	--================================
	--==صַ
	--================================
	DECLARE @GroupMembers NVARCHAR(4000)

	--================================
	--== UserGroups ص GroupMember  ,   COALESCE() ʵ֣
	--================================
	SELECT 

		@GroupMembers=COALESCE(@GroupMembers+N',',N'') + CONVERT(NVARCHAR(50),[User])

	FROM dbo.UserGroups ugs
	LEFT JOIN dbo.UserGroup ug ON ug.[ID]=ugs.UserGroupID

	WHERE ug.GroupName=@GroupName


	--================================
	--==
	--================================
	RETURN @GroupMembers
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ


























GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  EXECUTE  ON [dbo].[UDF_GroupMembersJoin]  TO [public]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_EditorDedicatedTo    Script Date: 2009-7-10 19:03:44 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_EditorDedicatedTo]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_EditorDedicatedTo]
GO

--==============================================================================================
--==ûصǰûǷĳ Directory (MainDirectory, SubDirectory, PageDirectory, Knowledge)   Editor  Χ
--==Ϊ 1 Ϊ 0
--==============================================================================================
--==@Name -- û
--==ؽInt -- 1/0 / Editor Χ
--==============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2009-04-12
--==============================================================================================

CREATE FUNCTION dbo.UDF_EditorDedicatedTo (@Name nvarchar(50), @DedicatedTo NVARCHAR(4000))

RETURNS INT

AS  

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN 
	--==========================================
	--==
	--==========================================
	DECLARE @IsDedicatedTo INT
	SET @IsDedicatedTo=0	

	--==========================================
	--==鿴ǰûǷλ DedicatedTo б
	--==========================================
	IF @Name IN (Select [User] From dbo.UDF_UserResolve(@DedicatedTo))
	BEGIN
		SET @IsDedicatedTo=1
	END
	
	--==========================================
	--==ؽ
	--==========================================
	RETURN @IsDedicatedTo
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  EXECUTE  ON [dbo].[UDF_EditorDedicatedTo]  TO [public]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

/****** Object:  User Defined Function dbo.UDF_UserResolve    Script Date: 2009-7-10 19:03:45 ******/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UDF_UserResolve]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UDF_UserResolve]
GO

--============================================================================================
--== UDF  N'its,eleanor,john,г,ܲ,,timothy' һģ˾ûûбսû
--==еû뵽бУ޳ ظģû
--============================================================================================
--==@UserList -- ˾ûûб
--==ؽ -- սû
--============================================================================================
--==Ȩ 2001-2009 CMS CMS http://www.zhuzhicms.com
--==޸ 2009-04-12
--============================================================================================

CREATE FUNCTION dbo.UDF_UserResolve (@UserList nvarchar(4000))

--============================================
--==صıṹ
--============================================
RETURNS @Array TABLE 
			(
			[User] nvarchar(50) COLLATE database_default
			)

AS

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

BEGIN
	--============================================
	--==
	--============================================	
	INSERT INTO @Array

	SELECT DISTINCT

	[User]=

		CASE 
			WHEN ugs.[User] IS NULL THEN split.[Element]  ELSE ugs.[User]
		END


	FROM dbo.UDF_PublicSplit(@UserList,N',') split 

	LEFT JOIN dbo.View_UserGroups ugs ON ugs.GroupName=split.Element  AND ugs.[User]<>N''

	WHERE split.[Element]<>N'' 

	--============================================
	--==
	--============================================	
	RETURN
END

--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ











GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

GRANT  SELECT  ON [dbo].[UDF_UserResolve]  TO [public]
GO

